In my defense, core vanilla Tiddlywiki will relink system tiddlers on a 
rename, and I decided to keep vanilla behavior as much as possible. If 
automatically changing system tiddlers is a problem, then perhaps it should 
also be submitted as an undesirable behavior to the Tiddlywiki bug tracker.

Otherwise, it sounds like all you need is a relink filter on Relink's 
general settings page. This filter specifies which tiddlers get touched 
during a rename. And it's default value would be `[all[]]` or 
`[all[]!is[system]]`

As for disabling Relink when the user is editing system tiddlers, I'm 
inclined to let them just uncheck the checkbox, particularly since a 
working solution for that would actually involve altering the underlying 
javascript). If someone's comfortable enough to edit a system tiddler, then 
surely they're comfortable enough to decide whether Relink should or 
shouldn't work its magic.

Although it does sound like you're working with a case where there are 
multiple users, and authorization schemes. If that's the case, I'll make 
sure Relink is hackable enough that your desired behavior is obtainable 
with a single system tiddler or so.

-Flibbles

On Monday, September 16, 2019 at 11:37:16 PM UTC-4, TonyM wrote:
>
> Flibbles,
>
> I will try and express myself better. I do not think these are special or 
> advanced features, I think they may be essential.
>
> But yes, All I am asking for is a little increased hackability. 
>
> First your solution is so good already, that its only because it is so 
> close to a universal solution, I feel I need to point this out. And perhaps 
> I have missed something about its current behaviour and I am happy to be 
> corrected.
>
> Your question re trashbin, The trashbin is just a plugin, and like other 
> plugins it stores things behind the $:/ prefix. The fact that relink can 
> reach into these tiddlers and modify them is new to tiddlwiki and sometimes 
> will be illogical. If I delete a tiddler it goes into the trash bin and I 
> may want it to remain there and not have relink touch it, otherwise it will 
> no longer contain what it contained when I deleted it.
>
> With all due respect every other plugin should not need to be designed to 
> deal with any other "Specific" plugin so Mohamad's Trashbin plugin should 
> not need to know about the relink plugin. Even if it did, how does it 
> exclude itself from relink?. However there is immense value of providing 
> some simple filter configurations so relink can accommodate any or all 
> future plugins by being able to reduce or limit the scope of what it 
> changes if necessary.
>
> There are two issues and I believe are general in nature and may be an 
> issue for many;
>
> Currently
>
>    1. On which tiddlers does relink occur?
>    Presently any tiddler you attempt to rename (Except shadow tiddlers)
>    2. Which tiddlers are changed by relink?
>    Any for which a complex set of search conditions are true
>
> 1. I would like to disable or enable the relink feature by filter setting. 
>     Until I have provided the appropriate additional fields for relink to 
> operate with - in Plugin > Configuration > Fields,  any relink will be 
> incomplete. 
>     In a published wiki, not in development It may be better not to permit 
> users to edit and relink system tiddlers AttributesMacrosOperators
>
>     Although its wonderful that relink can help keep a database or tiddler 
> valid with relinking.
>
> 2. I would love to be able to simply exclude some tiddlers from update by 
> relink according to a filter. For example I may want a log, a trashbin a 
> set of test data or anything not be updated. Relink already lets me see 
> what It will affect when relinking inside the info tab. If I discover the 
> rules will impact some tiddlers I do not want it to, a "rename filter" 
> could allow me to exclude them. 
>
> Personally I build a range of solutions in system tiddlers that are not 
> delivered by plugin thus have do not have a shadow tiddler, they will be 
> effected by relink even when I do not want them to. If import a bundle of 
> tiddlers built elsewhere there is a chance they may contain something that 
> relink will change inappropriately, A project I am starting now actually 
> generates additional wikis, so I have tiddlers in my wiki that are not part 
> of the current wiki but provide input to the wiki generation process. There 
> is a danger that these will inadvertently have code "relinked" within them 
> if I can't exclude them. This is even more likely to occur if I use good 
> naming conventions in my code. There are also circumstances where a local 
> variable is set to override a global setting and we may be happy for relink 
> to impact the global but not the local. 
>
> Item 1 Code change Proof of concept
> Att https://flibbles.github.io/tw5-relink/ I 
> changed $:/core/ui/EditTemplate/title to demonstrate excluding relink on 
> system tiddlers
> <$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>
> *<$list filter="[{!!draft.of}!is[system]]" variable=nul>*
> <$checkbox tiddler="$:/config/RelinkOnRename" field="text" checked="yes" 
> unchecked="no" default="no"> 
> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>
>
> <<conditional-list impossibles EditTemplate/Title/Impossibles/Prompt 
> "[{!!draft.title}relink:impossible<fromTitle>]">>
>
> <<conditional-list references EditTemplate/Title/References/Prompt 
> "[relink:references<fromTitle>!title[$:/StoryList]sort[title]]">>
> *</$list>*
> </$vars>
> The above works, relink will not even appear on system tiddlers.
>
> We could replace !is[system] with an appropriate reference to the exclude 
> filter.
>
> I believe you could apply a filter to the list of tiddlers relink is about 
> to change and and thus we will also have the ability to exclude some 
> tiddlers that would otherwise change because of an existing Attributes
> FieldsMacrosOperators
>
> And I'm unclear, but it sounds like not only that, but you want to be able 
>> to configure which fields, macros, widgets, and operators get updated per 
>> tiddler. So a `person-office` list field might get updated on tiddler A, 
>> but not tiddler B.
>>
>
> Yes in effect, but, In this case if tiddler B is named 
> "$:/trashbin/tiddler B" yes person-office will not be touched (in 
> "$:/trashbin/tiddler B")   if I excluded with "-[prefix[$:/trashbin/]]"
> Not any more complicated than this.
>
> Regards
> Tony
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/906374a8-ad5a-4c22-8a7e-b056d826c8bc%40googlegroups.com.

Reply via email to