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 [email protected] 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/06d6e04c-b22b-41e9-9990-6f455f613a3bn%40googlegroups.com.
