with capture:

On Sat, 17 Jul 2021 at 09:05, Frédéric Demers <fred.dem...@gmail.com> wrote:

> nevermind, I think I solved it.... at least, significant progress
>
> here's the wikitext for the challenging nodes; renders pretty well:
>
> * <div>
>
> ''Streams'' uses the following tiddler fields to maintain the structure of
> a stream:
>
> * each node tiddler has a field `stream-type`
> * each node that has children, contains their titles in a list in the
> field `stream-list`
> * each node that has a parent, contains the parent's title in the field
> `parent`
>
> ''You can manipulate these tiddlers just as you would any other tiddlers,
> with filters and list and action widgets''
>
> </div>
> * To make it easier to work with Streams tiddlers and their nodes, two
> filters have been introduced. See [[Streams 0.2 improvements/Filters]]
> * <div>
>
> This is an example of a button that can export the content of the nodes of
> a tiddler whose title is in the variable `myTiddler` and save the combined
> text to a single tiddler:
>
> ```
> <$button> save to a single tiddler
> <$vars lb="
>
> ">
> <$action-setfield $tiddler="report" text={{{
> [<myTiddler>get-stream-nodes[]]
>  :reduce[get[text]addprefix<lb>addprefix<accumulator>] }}}/>
> </$vars>
> </$button>
> ```
> Note that this disregards the node hierarchy.</div>
> * <div>
>
> Similarly to export the combined text of the nodes as HTML you can use the
> `<$wikify>` widget:
>
> ```
> <$button> export as HTML
> <$wikify name="text" text="""<$list
> filter="[<myTiddler>get-stream-nodes[]]">
> <$transclude mode=block/>
> </$list>""" output="html">
> <$action-setfield $tiddler="report" text=<<text>>/>
> </$wikify>
> </$button>
> ```
>
> </div>
> * <div>
>
> Here is an example of a macro that can be used to export a stream using a
> custom HTML structure:
>
> ```
> \define print-row()
> \whitespace trim
> <$(innerTag)$>{{!!text}}
> <$list filter="[<currentTiddler>has[stream-list]]" variable="_NULL">
> <$(outerTag)$>
> <$list filter="[enlist{!!stream-list}is[tiddler]]">
> <<print-row>>
> </$list>
> </$(outerTag)$>
> </$list>
> </$(innerTag)$>
> \end
>
> \define print-stream()
> \whitespace trim
> <$(outerTag)$>
> <$list filter="[enlist{!!stream-list}is[tiddler]]">
> <<print-row>>
> </$list>
> </$(outerTag)$>
> \end
>
> \define export-stream(tiddler:"" outerTag:"article" innerTag:"section")
> \whitespace trim
> <$vars outerTag="$outerTag$" innerTag="$innerTag$"
> currentTiddler="$tiddler$">
> <<print-stream>>
> </$vars>
> \end
>
> ```
>
> Try the following:
>
> * `<<export-stream tiddler:Roadmap>>` to export using article and section
> tags
> * `<<export-stream tiddler:Roadmap outerTag:ul innerTag:li>>` to export as
> a list in HTML
>
> If you need a copy to clipboard button it would look something like this:
>
> ```
> <$button>
> <$wikify name="stream-html" text=<<export-stream tiddler:Roadmap>>
> output="html" >
> <$action-sendmessage $message="tm-copy-to-clipboard"
> $param=<<stream-html>>/>
> </$wikify>
> Copy stream to clipboard as HTML
> </$button>
> ```
>
> Similarly you can write recursive macros to output as just flat text (with
> no structure or hierarchy) or wiki text list syntax (assuming you have no
> multi-line content).</div>
>
> On Sat, 17 Jul 2021 at 09:01, Saq Imtiaz <saq.imt...@gmail.com> wrote:
>
>> @fred
>>
>>
>>> I noticed my solution does not work so well for complex node content, as
>>> those in:
>>> https://saqimtiaz.github.io/streams/#Working%20with%20streams%20tiddlers
>>>
>>>
>>> The reason is that wrapping in <div> tags mangles them badly; I tried a
>>> few alternatives (<span>, more white space, ..), no success yet. Any
>>> suggestions?
>>>
>>
>> This is actually the real challenge and why there currently isn't a
>> default export option from Streams. Depending on the nature of the content,
>> it seems difficult to generalize a single export format that will work and
>> one of the common pitfalls is to think of Streams nodes as a list,*
>> which they are not.*
>>
>> A stream node is a tiddler which can contain any kind of content, and not
>> all kinds of content can be mapped to a list item. It might be easier to
>> set limitations in one's usage as to what to put inside of a node and have
>> an export format that works accordingly, rather than trying to come up with
>> a universal export format that works for all content. Hence my suggestion
>> of gathering real world user data to drive the process.
>>
>> --
>> 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/a0431024-302d-4433-95f0-021234984ab0n%40googlegroups.com
>> <https://groups.google.com/d/msgid/tiddlywiki/a0431024-302d-4433-95f0-021234984ab0n%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/CAAY2DnNRE1aSaR7f%3DTUDcS7bZjkXscbUphpKWk4SVeES7sYWJQ%40mail.gmail.com.

Reply via email to