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/CAAY2DnPgvWcYAPj6_fSVJyron-7tBRxxOuz55578OSY2ZXLS0Q%40mail.gmail.com.