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/35dce4fb-a718-4dbb-909d-d611ce69eaf9n%40googlegroups.com.