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.