It would be an honour Saq!

On Sat, 17 Jul 2021 at 06:50, Saq Imtiaz <saq.imt...@gmail.com> wrote:

> @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 fred....@gmail.com 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 <fred....@gmail.com> 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 saq.i...@gmail.com 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
>>> tiddlywiki+...@googlegroups.com.
>>> 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 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
> tiddlywiki+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tiddlywiki/a418fcd4-937c-4ff0-b087-5aa7bbbffb76n%40googlegroups.com
> <https://groups.google.com/d/msgid/tiddlywiki/a418fcd4-937c-4ff0-b087-5aa7bbbffb76n%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 tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/CAAY2DnP-_RCsSg-NZDmtQMp1RfYztGc7ky_4YQ3XTWFWjT0dGA%40mail.gmail.com.

Reply via email to