@fred nicely done. Quite pleasing to see what the new filter operators have been useful in this as well. Would you mind if I add this as another export example to the Streams docs?
On Saturday, July 17, 2021 at 5:59:52 AM UTC+2 [email protected] wrote: > Here's a version that wraps in <div> only the nodes that have line breaks > in them; there's certainly a cleaner way to do this, but here it is as > inspiration/proof-of-concept. > > wikitext output below code; the screen capture sent previously is > unchanged. > > \define print-row() > \whitespace trim > <$vars lb=" > > "> > <$set name="depth" > filter="[<currentTiddler>get-stream-root:includeall[]count[]]"> > <$set name="prefix" filter="[[*]pad<depth>,[*]removesuffix[*]]" select="0"> > <$set name="prewrap" > filter="[<currentTiddler>regexp:text[\n]then[<div>]]" select="0"> > <$set name="postwrap" > filter="[<currentTiddler>regexp:text[\n]then[</div>]]" select="0"> > <$list > filter="[<currentTiddler>get[text]addprefix<prewrap>addprefix<prefix>addsuffix<postwrap>addsuffix<lb>]" > > select="0" variable="nodetext"> > > <$text text=<<nodetext>> /> > <$list filter="[<currentTiddler>has[stream-list]]" variable="_NULL"> > <$list filter="[enlist{!!stream-list}is[tiddler]]"> > <<print-row>> > </$list> > </$list> > </$list> > </$set> > </$set> > </$set> > </$set> > </$vars> > > \end > > \define print-stream() > \whitespace trim > <$list filter="[enlist{!!stream-list}is[tiddler]]"> > <<print-row>> > </$list> > \end > > <$button> export > <$wikify name="flat" text=<<print-stream>> > > <$action-setfield $tiddler="report" text=<<flat>>/> > </$wikify> > </$button> > > > ------------- > > *''Version 1.0'' > **Add affordance to collapse/expand all nodes of a stream > **''CSS'' > ***Update css to respect color palette > **''Settings'' > ***''Configuration settings for context menu items'' > ****Include other menu items like demote/promote that are disabled by > default > ****Config screen for enabling/disabling context menu items > ****Allow specifying that a contextmenu item should be displayed on narrow > screens (mobile) only? > ***Config tiddler for node content template > *Have an option to detach a bullet from a list. > *''Version 1.1'' > **//Provide a better UI to rename bullets while editing// > > **<div>UI ideas re: modals > > https://getbootstrap.com/docs/3.4/javascript/#popovers > > > http://www.uxforthemasses.com/wp-content/uploads/2015/08/LinkedIn-edit-example.jpg > </div> > *''Other Ideas'' > **drag and drop considerations > ***copy/transclude via modifier keys to another tiddler doesnt include > nested children > **option to flatten a bullet list to one tiddler, for publishing/export > **context menu that applies to entire stream > **Consider different styling for default bullet > *''Version 2.0'' > **''templating for list row items and row controls'' > ***Allow for different kinds of stream tiddlers (todo, comments, etc) > **Use draft mechanism for editing > ***navigator.js L266 > > > > On Fri, 16 Jul 2021 at 23:20, Frédéric Demers <[email protected]> wrote: > >> Greetings all, >> >> Using bits and pieces I cobbled together (like a plumber), I found a way >> to flatten a stream of nodes into another tiddler and preserve the >> hierarchy of the nodes. >> >> The key was to 1) use the recursive macro provide by Saq, 2) use the >> get-stream-root[]count[] filter to determine depth of the node, and 3) >> use the pad[]operator to turn said depth in the correct number of * >> characters. >> I had to work a bit to extract the wikitext correctly. I wrapped each >> node in a <div> tag pair to allow multi-line nodes... though a smarter >> filter set could do that only if line feeds are present in the node text. >> >> rendered preview enclosed, wikitext output below the sample code. >> >> \define print-row() >> \whitespace trim >> <$set name="depth" >> filter="[<currentTiddler>get-stream-root:includeall[]count[]]"> >> <$set name="prefix" filter="[[*]pad<depth>,[*]removesuffix[*]]" >> select="0"> >> <$vars lb="</div> >> "> >> <$list >> filter="[<currentTiddler>get[text]addprefix[<div>]addprefix<prefix>addsuffix<lb>]" >> >> select="0" variable="nodetext"> >> <$text text=<<nodetext>> /> >> <$list filter="[<currentTiddler>has[stream-list]]" variable="_NULL"> >> <$list filter="[enlist{!!stream-list}is[tiddler]]"> >> <<print-row>> >> </$list> >> </$list> >> >> </$list> >> </$vars> >> </$set> >> </$set> >> \end >> >> \define print-stream() >> \whitespace trim >> <$list filter="[enlist{!!stream-list}is[tiddler]]"> >> <<print-row>> >> </$list> >> \end >> >> <$button> export >> <$wikify name="flat" text=<<print-stream>> > >> <$action-setfield $tiddler="report" text=<<flat>>/> >> </$wikify> >> </$button> >> >> >> -------------------------------------------------------------------------------------------------- >> >> *<div>''Version 1.0''</div> >> **<div>Add affordance to collapse/expand all nodes of a stream</div> >> **<div>''CSS''</div> >> ***<div>Update css to respect color palette</div> >> **<div>''Settings''</div> >> ***<div>''Configuration settings for context menu items''</div> >> ****<div>Include other menu items like demote/promote that are disabled >> by default</div> >> ****<div>Config screen for enabling/disabling context menu items</div> >> ****<div>Allow specifying that a contextmenu item should be displayed on >> narrow screens (mobile) only?</div> >> ***<div>Config tiddler for node content template</div> >> *<div>Have an option to detach a bullet from a list.</div> >> *<div>''Version 1.1''</div> >> **<div>//Provide a better UI to rename bullets while editing//</div> >> **<div>UI ideas re: modals >> >> https://getbootstrap.com/docs/3.4/javascript/#popovers >> >> >> http://www.uxforthemasses.com/wp-content/uploads/2015/08/LinkedIn-edit-example.jpg >> </div> >> *<div>''Other Ideas''</div> >> **<div>drag and drop considerations</div> >> ***<div>copy/transclude via modifier keys to another tiddler doesnt >> include nested children</div> >> **<div>option to flatten a bullet list to one tiddler, for >> publishing/export</div> >> **<div>context menu that applies to entire stream</div> >> **<div>Consider different styling for default bullet</div> >> *<div>''Version 2.0''</div> >> **<div>''templating for list row items and row controls''</div> >> ***<div>Allow for different kinds of stream tiddlers (todo, comments, >> etc)</div> >> **<div>Use draft mechanism for editing</div> >> ***<div>navigator.js L266</div> >> >> >> >> On Thursday, 15 July 2021 at 14:34:58 UTC-4 [email protected] wrote: >> >>> My previous two rather lengthy replies to this thread seem not have been >>> published. I am hoping I've accidentally hit "reply to author". If not, >>> I'll find the time to try again over the weekend. >>> >>> Saq >>> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "TiddlyWiki" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/tiddlywiki/-xTFWPwzq6g/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/tiddlywiki/e2ab027b-2f6d-4d30-9221-c496a02f19a5n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/tiddlywiki/e2ab027b-2f6d-4d30-9221-c496a02f19a5n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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/a418fcd4-937c-4ff0-b087-5aa7bbbffb76n%40googlegroups.com.

