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;
>>>>
>>>> <&macrocall $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.

Reply via email to