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.