Hi Eric,
 Thank you for update.

--Mohammad


On Saturday, January 25, 2020 at 3:27:07 PM UTC+3:30, Eric Shulman wrote:
>
> On Saturday, January 25, 2020 at 1:33:57 AM UTC-8, Mohammad wrote:
>>
>> Hello again Eric,
>> Based on your recent reply, I made some change to *toc-item-drop* macro 
>> the and it seems it work now!
>> Please have a look and let me know if you confirm it.
>>
>
> Good Work!
>
> However... it needed a little bit of tweaking...
>
> * "drop after" wasn't working
> * only do "list-before/list-after" fixups for "drop before" and "drop 
> after" (not "drop into")
>
> Here's my updated code (which has been uploaded to 
> http://www.TiddlyTools.com/InsideTW)
> \define toc-item-drop()
> <$reveal default=<<actionTiddler>> type="nomatch" text=<<item>>> <!-- DON'T 
> DROP ON SELF -->
>    <!-- get OLDTAG and NEWTAG, exclude special TiddlyBook tags -->
>    <$vars sourcetags={{{ [<actionTiddler>get[tags]] }}}
>           targettags={{{ [<item>get[tags]] }}}>
>    <$vars oldtag={{{ [enlist<sourcetags>!enlist<toc-ignore-tags>] }}}
>           newtag={{{ [enlist<targettags>!enlist<toc-ignore-tags>] }}}>
>    <$reveal default=<<modifier>> type="match" text="normal"> <!-- DROP 
> BEFORE SIBLING -->
>       <$set name="order" filter="[<newtag>tagging[]]">
>       <$list filter=<<order>>> <$action-deletefield $field="list-before"/> 
> <$action-deletefield $field="list-after"/> </$list>
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="-[<oldtag>]" />
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="[<newtag>]" />
>       <$action-listops $tiddler=<<oldtag>>        $field="list" 
> $subfilter="-[<actionTiddler>]" />
>       <$action-listops $tiddler=<<newtag>>        $field="list" 
> $subfilter="[enlist<order>] -[<actionTiddler>] 
> +[append<actionTiddler>putbefore<item>]" />
>       </$set>
>    </$reveal>
>    <$reveal default=<<modifier>> type="match" text="shift"> <!-- DROP 
> AFTER SIBLING -->
>       <$set name="order" filter="[<newtag>tagging[]]">
>       <$list filter=<<order>>> <$action-deletefield $field="list-before"/> 
> <$action-deletefield $field="list-after"/> </$list>
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="-[<oldtag>]" />
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="[<newtag>]" />
>       <$action-listops $tiddler=<<oldtag>>        $field="list" 
> $subfilter="-[<actionTiddler>]" />
>       <$action-listops $tiddler=<<newtag>>        $field="list" 
> $subfilter="[enlist<order>] -[<actionTiddler>] 
> +[append<actionTiddler>putafter<item>]" />
>       </$set>
>    </$reveal>
>    <$reveal default=<<modifier>> type="match" text="ctrl"> <!-- DROP AS 
> CHILD -->
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="-[<oldtag>]" />
>       <$action-listops $tiddler=<<actionTiddler>> $field="tags" 
> $subfilter="[<item>]" />
>       <$action-listops $tiddler=<<oldtag>>        $field="list" 
> $subfilter="-[<actionTiddler>]" />
>       <$action-listops $tiddler=<<item>>          $field="list" 
> $subfilter="[<actionTiddler>]" />
>    </$reveal>
>    </$vars>
>    </$vars>
> </$reveal>
> \end
>
> Notes:
> * To make "drop after" work, it was necessary to first *remove* the 
> actionTiddler from the list, and then re-add it
> * The "[enlist<order>]" didn't need a leading "+", since it will, by 
> definition, override all previous ordering in the list
> * Strictly speaking, clearing the list-before/list-after *could* be 
> skipped, allowing items to remain "locked" into a specific sequence.  
> However, since the effective ordering is preserved by the [enlist<order>], 
> its OK to clear list-before/list-after, and "unlocking" the list ordering 
> is probably more intuitive overall.
>
> Thank you VERY much for your help.  You saved me quite a bit of 
> experimentation and debugging!  Great bit of collaborative effort here!
>
> -e
>

-- 
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/a554e11f-0584-44b8-9d55-af1e071a3b5c%40googlegroups.com.

Reply via email to