Yes. But following along with your thinking was kinda slow. I had to reread a few times to "get" what you were saying. It was probably me - too tired at the time.
On Tuesday, December 1, 2020 at 11:11:15 PM UTC-6 TonyM wrote: > CodaCoda, > > Yes I understand that, but I will review the cheat sheet to see if I give > it sufficient weight. > > Did you look at the online version > https://anthonymuscio.github.io/#Standard%20Nomenclature the filtered > transclusions section could promote its use more. > > Tony > > On Wednesday, 2 December 2020 at 06:40:53 UTC+11 codacoder...@outlook.com > wrote: > >> Hi Tony >> >> Bold effort! >> >> I spotted something in there that I do quite often, but I do it a little >> differently: >> >> You: >> >> <$wikify name=style-value text="""color: {{!!color}}"""> >> style=<<style-value>> >> </$wikify> >> >> Me: >> >> <span style={{{ [[color:]] [{!!c}] +[join[]] }}}>Check this in >> devtools</span> >> >> Not sure which you might prefer... >> >> >> On Thursday, October 1, 2020 at 8:13:01 PM UTC-5 TonyM wrote: >> >>> Folks, >>> >>> This working tiddler is published here; >>> >>> https://anthonymuscio.github.io/#Standard%20Nomenclature >>> >>> Regards >>> Tony >>> >>> >>> On Thursday, 1 October 2020 12:17:43 UTC+10, TonyM wrote: >>> >>>> Folks, >>>> >>>> I have being building a "CheatSheet" that I would appreciate expert >>>> review if possible. Please respond with references to the number of each >>>> item. >>>> >>>> You can see it is built on Tobias and Eric's work to name a few. It >>>> tries and make simple, some particularly tricky issues that new and >>>> experienced users face. >>>> >>>> Regards >>>> Tony >>>> >>>> Important note: >>>> >>>> - The following is a Cheatsheet or quick reference to the following >>>> wikitext, variables, widgets, filters, operators and the use of >>>> references variables, macros, html tags and their attributes/parameters >>>> - *Key widgets* that are used sometimes, for a complete solution >>>> are $text <https://tiddlywiki.com/#TextWidget>, $macrocall >>>> <https://tiddlywiki.com/#MacroCallWidget>, $wikify >>>> <https://tiddlywiki.com/#WikifyWidget> and $transclude >>>> <https://tiddlywiki.com/#TranscludeWidget>, otherwise this >>>> documentation relates to all widgets. >>>> - Many *non-coders* may find this intimidating however should keep >>>> the following in mind; >>>> - much of this is actually essential not just for programming, >>>> but logical necessary, similar to the use of punctuation in hand >>>> writting. >>>> - Whilst it may seem complex at first, the application of these >>>> rules is not only consistent throughout TiddlyWiki, but has a lot in >>>> common >>>> with most other implementations of html, programming languages, >>>> mark-up and >>>> a lot more. >>>> - This document is a summary of things learned over a number of >>>> years by the author, don't expect to understand it overnight. >>>> - Somewhere on this learning curve you will have to stop calling >>>> yourself a *non-coder*. >>>> - Prior knowledge of these will help, and regardless what you learn >>>> to use TiddlyWiki it will include transferable skills. >>>> - You are not required to learn much that is single purpose, and >>>> all will unleash the power of TiddlyWiki >>>> - In this cheat sheet the use of single square brackets indicates >>>> something optional, eg; <<macroname [params]>> [params] means that >>>> is optional. >>>> >>>> ❶ General wiki text (including inside macros)For additional >>>> possibilities with inside macros see *❸ Within macro definitions* >>>> below. >>>> >>>> 1. literal values when literal values are used as parameters or >>>> attributes the quoting rules apply see *➃ Using literals and >>>> parameters* >>>> 2. <br> <hr> html tags immediate closure >>>> 3. <section> </section> later closure >>>> 4. <<variable/macrocall [params]>> immediate closure, see ➀ for >>>> later closure >>>> 5. <$widgetname [params] /> immediate closure >>>> 6. <$widgetname [params]> inside the widget </$widgetname> later >>>> closure (for more see *➁ Content of widgets*) >>>> 7. {{tiddlername}} transclude the content of the tiddlername's text >>>> field and render >>>> 8. {{!!fieldname}} transclude the content of the currentTiddlers >>>> fieldname and render >>>> 9. {{tiddlername!!fieldname}} transclude the content of the >>>> tiddlername's fieldname and render >>>> 10. {{{ [<currentTiddler>addprefix[$:/myprefix/]] }}} filtered >>>> transclusion, see also *❻ More on filtered transclusions* >>>> 11. Not valid in General wiki text >>>> 1. <variable> >>>> 2. "<variable>", >>>> 3. [[<variable>]] >>>> >>>> ❷ Widget and HTML attributes or parameters html element attributes >>>> <https://tiddlywiki.com/#HTML%20in%20WikiText>, e.g. $macrocall >>>> >>>> 1. <$widget attribute="literal value"/> see *➃ Using literals and >>>> parameters* >>>> 2. <$widget attribute=<<variable>>/> using a variable >>>> 3. <$widget attribute=<<callMacroToComputeValue>>/> using a macro >>>> 4. <$widget attribute={{transclusion}}/> using a transclusion see >>>> 5. <$widget attribute={{{ filter }}}/> filtered transclusion ;❻ >>>> 6. <htmltag attribute="literal value"/> see *➃ Using literals and >>>> parameters* >>>> 7. <htmltag attribute=<<variable>>/> using a variable as a HTML >>>> attribute >>>> 8. <htmltag attribute=<<callMacroToComputeValue>>/> using a >>>> variable as a HTML attribute >>>> 9. <htmltag attribute={{transclusion}}/> using a variable as a HTML >>>> attribute see more on transclusions ❻ and ❼ >>>> 10. <htmltag attribute={{{ filter }}}/> filtered transclusion ;❻ >>>> 11. {{!!transclusion}} a field who's value can also be inside [[ ]] >>>> ???? >>>> 12. *Not valid in widget attributes/parameters* >>>> 1. <$widget attribute="prefix-<<variable>>"/> can not >>>> concatenate literals and variables in a parameter >>>> 2. <$widget attribute=[[prefix-<<variable>>]]/> can not >>>> concatenate literals and variables in a parameter or treat it as a >>>> tiddler >>>> link at same time >>>> 3. <$widget attribute="prefix-{{transclusion}}"/> can not >>>> concatenate literals and transclusions/textreferences in a parameter >>>> >>>> ❸ Within macro definitions*Within macro definitions refers to the >>>> following cases* >>>> >>>> \define macrocname(parms) In here >>>> \define macrocname(parms) here >>>> and in here >>>> \end >>>> >>>> Keep in mind macros definitions also have full access to wiki text as >>>> documented in *❶ General wiki text* >>>> *Note:* representations using the $ sign are 'substitutions' so you >>>> must provide the delimiters such as quotes with the substitution if >>>> required'"See footnote *➂ The value of Substitutions* for more,it is >>>> importiant you understand *➃ Using literals and parameters* if you >>>> want to use substitutions. >>>> >>>> 1. $macroParameter$, "$macroParameter$", [[$macroParameter$]] >>>> <<__macroParameter__>> >>>> 2. $(variable)$ references a variable from the context of the >>>> calling macro, this is away to avoid the use of a parameter in >>>> macrocalls. >>>> 3. : <<__macroParameter__>> Parameter-as-variable access to a >>>> parameter defined in the macro parameters list as it it were a variable. >>>> 1. There are a few cases where a substitution may not be >>>> suitable but a variable is. >>>> 4. <$widget attribute="prefix-$macroParameter$"/> >>>> 5. <$widget attribute=$macroParameter$/> unsafe when >>>> $macroParameter$ has spaces or other special characters. >>>> 6. $variable$, "$variable$", [[$variable$]] ????? >>>> >>>> ❹ Macro parameters Macro Calls in WikiText >>>> <https://tiddlywiki.com/#Macro%20Calls%20in%20WikiText> >>>> >>>> 1. When literal values are used as parameters or attributes the >>>> quoting rules apply, see ➃ Using literals and parameters >>>> 2. <<macroname "1st" "2nd">> refers to Nth parameter in macro >>>> definition >>>> 3. <<macroname param:"value">> refers to the name parameter >>>> 4. <<macroname param:"$macroParameter$">> only inside macro were >>>> $param$ and $(varname)$ are valid see >>>> 5. Since parameters in macros is limited, we use the macrocall >>>> widget to give the same paramater possibilities as widgets. >>>> 6. <$macrocall $name=macroname param="literal" param1=<<variable>> >>>> param2={{transclusion}} param3={{{ filter }}} /> >>>> 1. in the macrocall widget you *need* to know the parameter name >>>> to pass a value >>>> 7. The following missuses can be replaced by the use of >>>> 1. $(variable)$ in the macro definition >>>> 2. use the $macrocall widget to allow evaluated parameters >>>> 8. *Not valid in Macro parameters* but the $macrocall widget offers >>>> a work around. >>>> 1. <<macroname <<variable>> >> the << and >> get confused >>>> 2. <<macroname "<<variable>>" >> The paramerter will contain the >>>> value of <<variable>> ?? the << and >> get confused ?? >>>> 3. <<macroname param:<<variable>> >> the << and >> get confused >>>> 4. <<macroname {{transclusion}}>> the transclusion will not >>>> occur before the macrocall >>>> 5. <<macroname param:{{transclusion}}>> the transclusion will >>>> not occur before the macrocall >>>> >>>> ❺ In filters >>>> >>>> 1. There is no need in filters to differentiate between html and >>>> widgets tags so only single delimiters are needed. >>>> 2. Also once a delimiter is in use, you must avoid using the [] you >>>> would have needed. So an operator[literalvalue] becomes >>>> operator<varname> >>>> 3. *Operator* below refers to any filter operator >>>> <https://tiddlywiki.com/#Filter%20Operators> eg "tag" >>>> 4. [operator<variable>] (no inner square brackets!) >>>> 5. [operator{transclusion}] only single curly brackets! >>>> 6. [operator{!!fieldname}] only single curly brackets! >>>> 7. [operator{tiddlername!!fieldname}] only single curly brackets! >>>> 8. operator[$macroParameter$] (only filters within macros) >>>> 9. *Not valid in filters* >>>> 1. [operator[$(variable)$]] test this! >>>> 2. [operator<macroname parameter>] Macros used in filters can >>>> not contain parameters to the macro >>>> 1. workaround - use the wikify widget >>>> 10. *Note:* If a tiddler or tiddler!!fieldname contains a >>>> complete filter, you can transclude that whole filter as a parameter >>>> 1. For example filter={{tiddlername}} filter={!!fieldname}} >>>> filter={{tiddlername!!fieldname}} >>>> 2. however in this case you can't now manipulate the filter eg; ~ >>>> filter="{{tiddlername}}addprefix[$:/]]~ >>>> 11. *Wikify workaround* for parameters to a macro >>>> >>>> <$wikify name=newvar text="""<<macroname parameter>>"""> >>>> ... [operator<newvar>] .... >>>> </$wikify> >>>> >>>> ❻ More on filtered transclusionsAlso refered to as triple curly braces {{{ >>>> filter }}} they excel in particular uses such as concatenation, >>>> evaluation, maths and as parameter to widget especially the $macrocall >>>> widget. >>>> >>>> 1. {{{ somename }}} somename >>>> <https://anthonymuscio.github.io/#somename> a tiddler link >>>> 2. {{{ some name }}} some <https://anthonymuscio.github.io/#some> >>>> name <https://anthonymuscio.github.io/#name> two tiddler links >>>> 3. {{{ [[some name]] }}} some name >>>> <https://anthonymuscio.github.io/#some%20name> tiddler whos title >>>> contains spaces >>>> 4. {{{ [[somename]get[caption]else{!!title}] }}} caption of somename >>>> <https://anthonymuscio.github.io/#caption%20of%20somename> tiddler >>>> whos title contains spaces >>>> 5. filtered transclusions can be placed inside a TextWidget >>>> <https://anthonymuscio.github.io/#TextWidget> to return only text >>>> (not something later rendered) >>>> 6. '<$text text={{{ [[somename]get[caption]else{!!title}] }}}/>' >>>> 'caption >>>> of somename' use text so the caption does not become a link >>>> 7. filtered transclusions can be placed inside a WikifyWidget >>>> <https://anthonymuscio.github.io/#WikifyWidget> to evaluate a >>>> result for subsequent use >>>> >>>> rather that containing something which is later evaluated at render >>>> time) >>>> >>>> <$wikify name=result text="""{{{ [[somename]get[caption]else{!!title}] }}} >>>> > >>>> The <<result>> variable containes the result of the wikify only before its >>>> closure >>>> </$wikify> >>>> >>>> ❼ More on transclusions - as templates >>>> >>>> - See *❶ General wiki text (including inside macros)* for the >>>> reference to tiddlername and fieldnames >>>> - some times a parameter accepts a "text reference" which is >>>> similar in apperence to a transclusion >>>> - eg; "tiddlername", "!!fieldname" or "tiddlername!!fieldname" these >>>> are "references" >>>> - See *❻ More on filtered transclusions* for the use of triple >>>> curly braces. >>>> >>>> SO far >>>> >>>> 1. Transclude transclusions >>>> 2. Transclude with current tiddler >>>> 1. Eg button >>>> 3. Transclude with named tiddler >>>> 1. Eg button? >>>> 4. transclude widget. >>>> 5. Not valid for transclusions >>>> 1. {{||tiddlername!!caption}} as it aske for the field caption >>>> in tiddlername, but insists on using the currentTiddler. >>>> >>>> ------------------------------ >>>> *Footnotes* >>>> >>>> ➀ The following is an example of *later closure* of a macro; >>>> >>>> <<variable >>>> [params] >>>> >> >>>> >>>> ➁ Content of widgetsSometimes used OR for example The content of the >>>> <$text> widget is not used.This may be an opportunity to add notes in >>>> your wiki text that will not be displayed in the resultIn many cases >>>> such as the ListWidget <https://anthonymuscio.github.io/#ListWidget> the >>>> content is used such as for the display templated of the list resultsIf >>>> the template=parameter is used then the widget content is not >>>> used<$widgetname >>>> [params]> inside the widget </$widgetname> later closure >>>> >>>> <$widgetname [params]> >>>> inside the widget >>>> </$widgetname> >>>> >>>> The *macrocall widget* is a case in point, The content of the >>>> <$macrocall> widget is ignored. So we can use it as such; >>>> >>>> <¯ocall $name=macroname param="literal" param1=<<variable>> >>>> param2={{transclusion}} param3={{{ filter }}} > >>>> So in here we could document the function and parameters of this >>>> particular macrocall >>>> /> >>>> >>>> ➂ The value of SubstitutionsA key advantage of substitutions (in >>>> macros) is their placement can also be a concatenation of values.see >>>> also ❻ More on filtered transclusions (also for concatenation)it is >>>> important you understand ➃ Using literals and parameters with substitutions >>>> >>>> \define concatenate-parameters(param1 param2) $param1$/$param2$ >>>> \define concatenate-variables() $(currentTiddler)$/$(subtiddler)$ >>>> >>>> <<concatenate-parameters tiddlername subtiddler>> >>>> >>>> <$set name=subtiddler value="mysubtiddler"> >>>> <<concatenate-variables>> >>>> </$set> >>>> >>>> >>>> - The $(...)$ syntax means "substitute the variable, defined before >>>> this macro was invoked". >>>> >>>> This is a way of accessing values without the use of actual macro >>>> parameters, get or set the variable before calling the macro➃ Using >>>> literals and parametersEach parameter value can be enclosed in 'single >>>> quotes', "double quotes", """triple double quotes""" or [[double >>>> square brackets]].Triple double quotes allow a value to contain almost >>>> anything. If a value contains *no spaces or single or double quotes*, >>>> it requires no delimiters.You can choose ' or " or """ if you want to >>>> wrap something that contains (or may contain) one of the other quotes. In >>>> this regard the """literal""" is the safest.*However* often wrapping a >>>> macrocall, or widget in quotes will turn it into a literal and it will not >>>> be evaluatedOther uses >>>> >>>> - Double double Quotes "" are not used to delimit >>>> - Double single quotes '' are used to open and close bold in wiki >>>> text. >>>> - Triple Double Quotes """ is used to mark a block of text. >>>> - Single tick back tick (unshifted ~ on QWERTY keyboards) highlight >>>> inline code eg; this is between single back ticks and will not be >>>> rendered. >>>> >>>> Summarised as >>>> >>>> - If value is a single word not containing spaces or other >>>> delimiters parname=value (no quotes) >>>> - If value is two words spaces parname='value word2' parname="value >>>> word2" parname=value word2 all work. note double "" does not. >>>> - If you want to use a delimiter such as ' or " in a string you >>>> must use the other >>>> - If our value is parname="something "quote here" something else" >>>> it does not know when it is starting or ending >>>> - parname='something "quote here" something else' this works >>>> - parname="something 'quote here' something else" as does this >>>> >>>> The advantage of the triple quotes is they rarely appear in content so >>>> parname=something 'quote here' and "here is another" something else works >>>> and is the most reliable.The above are the rules for literals, or >>>> fixed typed values.Tiddlywiki uses quotes for literals so if you put >>>> it around other things '<<macroname>>' "<<macroname>>" >>>> """<<macroname>>""" it turns it into a literal >>>> >>>> However when we use the following as a parameter or attribute value >>>> they are already delimited by the << or {{ or {{{ so no need to add >>>> quotes and turn them into literals. >>>> >>>> parname=<<macroname>> >>>> parname=<<varname>> >>>> parname={{{ [filter] }}} >>>> parname={{!!fieldname}} >>>> parname={{tiddlername}} >>>> parname={{tiddlername!!fieldname}} >>>> But in the above cases the value is retrieved from elsewhere, and that >>>> value needs to be appropriate for the parameter you are providing. >>>> >>>> Keep in mind double and triple braces are used in wikitext because html >>>> tags <div></div> etc... are permitted in wiki text, So we need << to >>>> separate them from < only singles are required in filters, because >>>> filters do not handle html tags. >>>> >>> -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/ceb43aa1-1df9-4391-90ae-c58d046e5f88n%40googlegroups.com.