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.

