Here's an alternate use case that isn't well-served by text or HTML output: 
 Say I want to use TiddlyWiki to generate some C++ source code which 
utilizes substitutions.  (I have actually done this insofar as generating 
pseudocode for filtering routines, so it isn't too far afield of 
practicality.)

Here's my source code template -- in this case,  

"*SourceTemplate*"  (plain text tiddler)
//Inherit from this class 
template<typename T_Traits> <<className>>
{
  typedef T_Traits Traits;
}

And here's a bit of code to display it:
<$vars className=MyClass>
<$wikify name=source text={{SourceTemplate}}>
<pre><code><$text text=<<source>>/></code></pre>
</$wikify>
</$vars>

When wikified to text, the //comment and <template parameter list> are both 
identified as formatting and removed:

Inherit from this class 
template MyClass
{
  typedef T_Traits Traits;
}


Wikifying to HTML instead interprets these as formatting.  (We can avoid 
the extraneous <p> tags by parsing in inline mode)

<em>Inherit from this class 
template<typename T_Traits="true"> <a class="tc-tiddlylink 
tc-tiddlylink-missing" href="#MyClass">MyClass</a>
{
  typedef T_Traits Traits;
}</typename></em>


How do you suggest approaching problems like this without adding undue 
complexity?


For a bit more perspective, attached is a tiddler I wrote last year to 
generate C++-like pseudocode for digital filter difference equations up to 
a certain level of complexity.  (It includes an example rendering.)  This 
was rather difficult to make, and it's something I'd love to be able to do 
more easily with the new wikify widget -- and ideally without having to 
worry about the gotchas mentioned above.




On Tuesday, 10 May 2016 13:06:44 UTC-5, Jeremy Ruston wrote:
>
> Hi Evan
>
> Here's a bit of code demonstrating a place where the wikify widget's 
> behavior is troublesome -- I attempt to render some SVG code, here sourced 
> from a variable, and get nothing for reasons which might not be immediately 
> clear.
>
>
> The problem here is that the `output` attribute of the wikify widget 
> defaults to “text”, giving you the text content of the wikified output (in 
> this case, there is no text output, of course). The fix is to add 
> `output=“html”` to the wikify widget.
>
> Best wishes
>
> Jeremy.
>
>
>
> !!Without Backtick 
>
> <$vars radius=40 svg="<svg width=100 height=100><circle cx=50 cy=50 
> r=<<radius>>/></svg>">
> <$wikify name=svg_code text=<<svg>> >
> <<svg_code>>
> <pre><code><$text text=<<svg_code>>/></code></pre>
> </$wikify>
> </$vars>
>
> The work-around I discovered after some brief experimentation?  Enclose 
> the text in `code snippet` or ```code block``` markup as below, so that all 
> content is unformatted.  Unfortunately, this will prevent any enclosed 
> transclusions, widgets or macros from expanding in the $wikify widget.
>
> !!With Backtick (macro call is not expanded)
>
> <$vars radius=40 svg="`<svg width=100 height=100><circle cx=50 cy=50 
> r=<<radius>>/></svg>`">
> <$wikify name=svg_code text=<<svg>> >
> <<svg_code>>
> <pre><code><$text text=<<svg_code>>/></code></pre>
> </$wikify>
> </$vars>
>
> This is far from a show-stopping problem, but it felt worth pointing out. 
>  In the long run, I think that the nicest solution for wikifying with text 
> output (especially code) would be a parsing mode which handles only 
> variables, macros, widgets and transclusions.  (I would also suggest that 
> this mode preserve whitespace.)
>
> Anyway.  Keep up the great work, Jeremy, and don't burn yourself out 
> trying to hurry it out the door!
>
> -- Evan
>
> -- 
> 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] <javascript:>.
> To post to this group, send email to [email protected] 
> <javascript:>.
> Visit this group at https://groups.google.com/group/tiddlywiki.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tiddlywiki/30501eac-3d18-4f83-8cc0-a5cb15cce75a%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/tiddlywiki/30501eac-3d18-4f83-8cc0-a5cb15cce75a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/f19dae6a-31e9-443f-8309-920aa17124a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: _FilterMacros.json
Description: application/json

Reply via email to