Vytas, I will look closer today, but I am impressed with your progress. In the a discussion thread we discussed it at a high level approach but you have taken this to implementation.
Can I ask are you using the uni-links plugin with this or not? Regards Tonyu On Tuesday, May 1, 2018 at 8:30:07 AM UTC+10, Vytas wrote: > > Hi, > > Motivated by the discussion ( > https://groups.google.com/forum/#!topic/tiddlywiki/Y1V7oyBLpSs) about the > breakage of tiddler links, I have followed the ideas by Mark S., TonyM, > Jeremy and others to create four tiddlers, which you will find attached to > this post: > > > 1. "initiate-id-change" provides a button in ViewToolbar of a tiddler > (consider a tiddler with title "First tiddler title" and creation time > "20180430183239679"). This button will start a dialog to set the the value > of the "id" field for a tiddler under consideration. > 2. "finalize-id-change" provides a modal dialog with a Confirm button > which will set the "id" field of "First tiddler title" to > "2018-04-30-First > tiddler title-21:32:39-679ms". Now, let's say you have changed the title > "First tiddler title" to "Actual tiddler title". > 3. "excise-title" provides a button in EditorToolbar (of "Some other > tiddler") which will excise the selected tiddler title (e.g. "Actual > tiddler title") into a temporary tiddler. > 4. "insert-linktoid" provides another button in EditorToolbar (of > "Some other tiddler") which, by making use of the tiddler title stored in > a > temporary tiddler, will insert a macro <<linktoid "2018-04-30-First > tiddler > title-21:32:39-679ms">> in the edit-window of "Some other tiddler". In the > view-window, the outcome of this macro will be the same as of [[Actual > tiddler title]]. > > Advantages of this method: > > - You can change the title of the tiddler without breaking links to > it, as long as you link via id which remain fixed. > - While IDs are highly readable, their writability is provided by > excision and buttons. > > Known disadvantages: > > - The assigning of IDs is not completely automatic. For every tiddler > you want to link to, you have to press two buttons to generate its ID (you > can limit it to one button if you do not want the confirmation step). > - I have not managed to reduce the production of a link from the > selected title to one click of a button. So far, you have to click one > button to excise the title and another button to produce the link. > - The "linktoid" macro provides soft links, so they "are not detected > by link-related filter operators such as backlinks, links, all and is". > > > In this post, for easier access, I will provide the body text of two of > the four tiddlers. (I remind that these tiddlers require appropriate tags > and fields, which are part of the attached .json files.) > > I would enjoy getting any feedback or ideas how to optimize/improve this > tool. Anyway, I hope that it works not only for me :) > > Vytas > > ---------------------------------------------- > > The body text of "finalize-id-change": > > \define id_value() $(cr_date)$-$(curr_title)$-$(cr_time)$-$(cr_msec)$ms > > > <$wikify name=cr_date text='<$view tiddler=<<currentTiddler>> > field="created" format="date" template="YYYY-0MM-0DD"/>'> > <$wikify name=cr_time text='<$view tiddler=<<currentTiddler>> > field="created" format="date" template="0hh:0mm:0ss"/>'> > <$wikify name=cr_msec text='<$view tiddler=<<currentTiddler>> > field="created" format="date" template="XXX"/>'> > > > <$set name="curr_title" tiddler=<<currentTiddler>> field="title"> > > > You are about to change the 'id' field value of <$link to=<<currentTiddler > >>><<currentTiddler>></$link> to: > <p>''<<id_value>>''.</p> > This can break existing links to <$link to=<<currentTiddler>>><< > currentTiddler>></$link>. > > > <p> > <$button tooltip="Set id to this tiddler"> > <$action-setfield $tiddler=<<currentTiddler>> id=<<id_value>>/> > <$action-sendmessage $message="tm-close-tiddler" > $param="finalize-id-change"/> > Confirm > </$button> > </p> > > > </$set> > > > </$wikify> > </$wikify> > </$wikify> > > > The body text of "insert-linktoid": > > \define linktoid(idvar) > <$list filter="[field:id[$idvar$]!has[draft.of]]"/> > \end > > > \define linktoid2(idvar) > <<linktoid "$idvar$">> > \end > > > <$set name="titlevar" tiddler="$:/temporary_tiddler_for_title_storage" > field="text"> > <$set name="idvar" tiddler=<<titlevar>> field="id"> > <$action-sendmessage > $message="tm-edit-text-operation" > $param="replace-selection" > text=<<linktoid2 $(idvar)$>> > /> > <$action-deletetiddler $tiddler="$:/temporary_tiddler_for_title_storage"/> > </$set> > </$set> > -- 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 post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tiddlywiki. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/9b89c09f-a6c4-478a-9232-05af9b17149e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

