Hi Evan

I think that this ancient ticket might be roughly equivalent to what you’re 
after:

https://github.com/Jermolene/TiddlyWiki5/issues/345 
<https://github.com/Jermolene/TiddlyWiki5/issues/345>

The proposal still reflects my thinking in this area.

Best wishes

Jeremy.


> On 12 Jan 2018, at 04:58, Evan Balster <balster.e...@gmail.com> wrote:
> 
> Hey, all —
> 
> Currently TiddlyWiki implements plain-text wikification by applying WikiText 
> parsing to generate a DOM, then extracting and concatenating any text-widgets 
> in the DOM while discarding everything else.  While this functionality is 
> very useful, it has some tricky drawbacks — wikification involves (often) 
> unnecessary work processing irrelevant parse rules, and anything resembling 
> an <element> or //wikitext markup will be stripped out, when this might be 
> very undesirable (eg, when encountering JavaScript or C++ comments).
> 
> I'd like to propose an alternative mode where only those parse rules which 
> are applicable to plaintext are considered — that is, widgets, transclusions 
> (including lists), variables and a few other items.  That way, we can write 
> things like this (a method stub generator):
> 
> <$list variable=class filter="[tag[Class]]">
> <$list filter="[tag[Method][tag<class>]]">
> // {{!!summary}}
> {{!!return_type}} {{!!name}}({{!!parameters}}) {
> }
> 
> </$list>
> </$list>
> 
> I'd like to propose, further, that this functionality be available for 
> attributes.  This will eliminate several situations where it's necessary to 
> use macros or $wikify, replacing these mechanisms with a more efficient, 
> briefer, pre-parsable expression.  As noted by Jeremy, one of the most common 
> user mistakes involves expecting wiki syntax inside quoted strings (or 
> imported via macro/transclusion) to work in an attribute...  Things like 
> title="my name is {{!!name}}".  I see very few reasons (aside from 
> compatibility) why they shouldn't work as expected!
> 
> A conservative approach could mandate a double-equals syntax or an 
> alternative quotation style for wikified attributes:
> 
> <div style=="size: {{!!size}}px;"> 
> 
> ...Though if I'm to be honest I would prefer to see all attributes parsed by 
> default with an alternative syntax for "direct" values.  Perhaps I'm too 
> radical.  :)
> 
> I don't think wikification needs to change much to implement this — another 
> parse mode, with a smaller ruleset.  The tricker part of the implementation 
> is getting widgets to parse imported text according to the proper rules.  To 
> that end, I suggest that the namespace variable could be used to determine 
> parsing behavior for imported text.  In the future this might also be 
> leveraged to keep inappropriate elements out of <math> and <svg> namespaces...
> 
> 
> With these changes, I believe TiddlyWiki's logic would become more powerful 
> and, crucially, more consistent, helping newcomers to learn it with fewer 
> "gotchas" and making it simpler for experts like me to build complicated 
> constructs.  I also think it's an essential piece of the puzzle for evolving 
> TiddlyWiki beyond macro dependency.
> 
> Interested to hear others' thoughts.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "TiddlyWikiDev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to tiddlywikidev+unsubscr...@googlegroups.com 
> <mailto:tiddlywikidev+unsubscr...@googlegroups.com>.
> To post to this group, send email to tiddlywikidev@googlegroups.com 
> <mailto:tiddlywikidev@googlegroups.com>.
> Visit this group at https://groups.google.com/group/tiddlywikidev 
> <https://groups.google.com/group/tiddlywikidev>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tiddlywikidev/7e867e78-da41-466a-b9ab-754439100af2%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/tiddlywikidev/7e867e78-da41-466a-b9ab-754439100af2%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywikidev+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywikidev@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywikidev.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/6255944F-3695-40B0-9E48-829C3D5A3282%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to