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 AttributesFields
MacrosOperators

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 that 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/ca783f4b-d0fc-4772-a80d-98dc6b4935c5%40googlegroups.com.

Reply via email to