diff --git a/editions/tw5.com/tiddlers/macros/syntax/Macro Call Syntax.tid b/editions/tw5.com/tiddlers/macros/syntax/Macro Call Syntax.tid index 846200cc9..f070bbeac 100644 --- a/editions/tw5.com/tiddlers/macros/syntax/Macro Call Syntax.tid +++ b/editions/tw5.com/tiddlers/macros/syntax/Macro Call Syntax.tid @@ -1,9 +1,13 @@ created: 20150221105732000 modified: 20150221222352000 -tags: [[Macro Syntax]] +tags: [[Macro Syntax]] $:/deprecated title: Macro Call Syntax type: text/vnd.tiddlywiki +<<.deprecated-since "5.3.0" "Procedure Call Syntax">> + +---------- + <<.preamble """What follows is a formal presentation of the syntax of the WikiText syntax for macro calls, using [[railroad diagrams|Railroad Diagrams]]. A [[simpler overview|Macro Calls in WikiText]] is also available.""">> <$railroad text=""" diff --git a/editions/tw5.com/tiddlers/macros/syntax/Macro Definition Syntax.tid b/editions/tw5.com/tiddlers/macros/syntax/Macro Definition Syntax.tid index 81877b3a5..ecc389d54 100644 --- a/editions/tw5.com/tiddlers/macros/syntax/Macro Definition Syntax.tid +++ b/editions/tw5.com/tiddlers/macros/syntax/Macro Definition Syntax.tid @@ -1,9 +1,13 @@ created: 20150220200255000 modified: 20150221222349000 -tags: [[Macro Syntax]] +tags: [[Macro Syntax]] $:/deprecated title: Macro Definition Syntax type: text/vnd.tiddlywiki +<<.deprecated-since "5.3.0" "Procedure Definition Syntax">> + +---------- + <<.preamble """What follows is a formal presentation of the syntax of the `\define` pragma, using [[railroad diagrams|Railroad Diagrams]]. A [[simpler overview|Macro Definitions in WikiText]] is also available.""">> <$railroad text=""" diff --git a/editions/tw5.com/tiddlers/macros/syntax/Procedure Call Syntax.tid b/editions/tw5.com/tiddlers/macros/syntax/Procedure Call Syntax.tid new file mode 100644 index 000000000..c7ab07644 --- /dev/null +++ b/editions/tw5.com/tiddlers/macros/syntax/Procedure Call Syntax.tid @@ -0,0 +1,33 @@ +created: 20240310165023000 +modified: 20240310172648116 +tags: [[Procedure Syntax]] +title: Procedure Call Syntax +type: text/vnd.tiddlywiki + +<<.preamble """What follows is a formal presentation of the syntax of the WikiText syntax for procedure calls, using [[railroad diagrams|Railroad Diagrams]].""">> + +!! procedure-name + +<$railroad text=""" +"<<" [[ procedure-name |Procedures]] [: [[whitespace|"Filter Whitespace"]] [:{param-value}] ]">>" +"""/> + +* The [[procedure's|Procedures]] <<.place procedure-name>> is a sequence of non-whitespace characters other than `(` or `>`. + +* <<.place whitespace>> denotes a sequence of [[whitespace characters|Filter Whitespace]]. + +!!! param-value + +Each ''individual'' <<.place param-value>> has the following syntax: + +<$railroad text=""" +\start none +\end none +[: param-name [:[[whitespace|"Filter Whitespace"]]] ":" [:[[whitespace|"Filter Whitespace"]]] ] value [: [[whitespace|"Filter Whitespace"]] ] +"""/> + +* The <<.place param-name>> is a sequence of letters (`A`--`Z`, `a`--`z`), digits (`0`--`9`), hyphens (`-`) and underscores (`_`). + +* The <<.place value>> is specified as follows: + +<$railroad text={{$:/editions/tw5.com/railroad/macro-parameter-value}}/> diff --git a/editions/tw5.com/tiddlers/macros/syntax/Procedure Definition Syntax.tid b/editions/tw5.com/tiddlers/macros/syntax/Procedure Definition Syntax.tid new file mode 100644 index 000000000..7a621ee59 --- /dev/null +++ b/editions/tw5.com/tiddlers/macros/syntax/Procedure Definition Syntax.tid @@ -0,0 +1,93 @@ +created: 20240310165023000 +modified: 20240310175033730 +tags: [[Procedure Syntax]] +title: Procedure Definition Syntax +type: text/vnd.tiddlywiki + +<<.preamble """What follows is a formal presentation of the syntax of the [[Pragma: \procedure]], using [[railroad diagrams|Railroad Diagrams]]. """>> + +! \procedure + +There are 2 types of procedure definitions + +* Single line definitions +* Multi line definitions + +!! Single Line + +Single line definitions should only be used for very short bodies, where the procedure name, params and the body fit into 1 line terminated with a line-feed. + +<$railroad text=""" +"\procedure" +[[<"space">|"Filter Whitespace"]] +"procedure-name" +<"(params)"> +[:[[<"space">|"Filter Whitespace"]]] +"body" +"lf" +"""/> + +!! Multi Line + +The majority of procedure definitions will have a body, that spans over several lines of wikitext. Those procedure definitions are terminated using the "\end" pragma + +<$railroad text=""" +"\procedure" +[[<"space">|"Filter Whitespace"]] +"procedure-name" +<"(params)"> +[:[[<"space">|"Filter Whitespace"]]] +body +"\end" +"""/> + +The [[procedure-name|Procedures]] is a sequence of non-whitespace characters other than `(` or `>`. + + +* <<.place procedure-name>> is a sequence of letters (`A`--`Z`, `a`--`z`), digits (`0`--`9`), hyphens (`-`) and underscores (`_`) +* <<.place body>> is wikitext including [[nested procedures|Pragma: \procedure]] +* <<.place space>> denotes a sequence of [[whitespace characters|Filter Whitespace]] + +!! params + +The parameter declaration list <<.place (params)>> has the following syntax: + +<$railroad text=""" +\start none +\end none +"(" [:"sep"] [:{ parameter "sep" }] ")" +"""/> + +* <<.place sep>> is any sequence of characters that does not match a <<.place param-name>>.
Among other things, this includes commas, spaces and linefeeds. + + +Each ''individual'' <<.place parameter>> has the following syntax: + +<$railroad text=""" +\start none +\end none +"param-name" [: [:[[<"space">|"Filter Whitespace"]]] ":" [:[[<"space">|"Filter Whitespace"]]] default ] +"""/> + +* <<.place param-name>> is a sequence of letters (`A`--`Z`, `a`--`z`), digits (`0`--`9`), hyphens (`-`) and underscores (`_`). + +* <<.place default>> is an optional value of a parameter is specified as follows: + +<$railroad text={{$:/editions/tw5.com/railroad/macro-parameter-value}}/> + +!! body + +The <<.place body>> of the definition has the following syntax: + +<$railroad text=""" +\start none +\end none +{[[<"wikitext">|WikiText]] "lf"} +"""/> + +* <<.place wikitext>> is any sequence of characters that doesn't terminate the macro definition. +** If [[nested procedures|Pragma: \procedure]] are used they need to be at the start of the wikitext. There are the same rules as if the wikitext would be in a tiddler. +** Pragmas need to be before standard wikitext. + +* <<.place lf>> denotes a linefeed. + diff --git a/editions/tw5.com/tiddlers/macros/syntax/Procedure Syntax.tid b/editions/tw5.com/tiddlers/macros/syntax/Procedure Syntax.tid new file mode 100644 index 000000000..2ef519fcc --- /dev/null +++ b/editions/tw5.com/tiddlers/macros/syntax/Procedure Syntax.tid @@ -0,0 +1,11 @@ +created: 20240310165023000 +modified: 20240310173318213 +tags: Procedures +title: Procedure Syntax +type: text/vnd.tiddlywiki + +Plain text description can be found at [[Procedures]] + +<> + +<<.tip "The railroad boxes in the linked tiddlers can be used to navigate.">> diff --git a/editions/tw5.com/tiddlers/procedures/Procedures.tid b/editions/tw5.com/tiddlers/procedures/Procedures.tid index 15b422647..8c80e61f5 100644 --- a/editions/tw5.com/tiddlers/procedures/Procedures.tid +++ b/editions/tw5.com/tiddlers/procedures/Procedures.tid @@ -1,5 +1,5 @@ created: 20221007124007426 -modified: 20230419103154329 +modified: 20240310173130052 tags: Concepts Reference title: Procedures type: text/vnd.tiddlywiki @@ -18,11 +18,13 @@ The name wrapped in double angled [[brackets|Brackets]] is used a shorthand way ``` <> -<> +<> ``` The parameters that are specified in the procedure call are made available as variables. +<<.tip """If a procedure has more than 1 parameter, it is highly encouraged to use "named parameters", as shown in the second example above. Even if it is more to type, it will pay off in the long run.""">> + !! How Procedures Work Procedures are implemented as a special kind of [[variable|Variables]]. The only thing that distinguishes them from ordinary variables is the way that the parameters are handled. @@ -32,4 +34,4 @@ Procedures are implemented as a special kind of [[variable|Variables]]. The only * [[Procedure Definitions]] describes how to create procedures * [[Procedure Calls]] describes how to use procedures * [[Procedure Parameter Handling]] describes how procedure parameters work - +* [[Procedure Syntax]] is a formal syntax description using railroad diagrams diff --git a/editions/tw5.com/tiddlers/system/Deprecated.tid b/editions/tw5.com/tiddlers/system/Deprecated.tid index d363f07ed..5a7b501e7 100644 --- a/editions/tw5.com/tiddlers/system/Deprecated.tid +++ b/editions/tw5.com/tiddlers/system/Deprecated.tid @@ -7,6 +7,6 @@ Deprecated features of TiddlyWiki are those that have been superseded by newer, Deprecated features will still work, but are not recommended for new content. -Tiddlers tagged $:/deprecated: +''Tiddlers tagged'' $:/deprecated: <> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid b/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid index 98fbf6bb0..891e00bca 100644 --- a/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid +++ b/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid @@ -7,6 +7,3 @@ type: text/vnd.tiddlywiki Deprecated features are marked with a special warning button. See: [[How to apply custom styles by tag]] for an example. -''Tiddlers tagged `$:/deprecated`'' - -><> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/wikitext-macros.tid b/editions/tw5.com/tiddlers/system/wikitext-macros.tid index a978743a4..c09b0d8fe 100644 --- a/editions/tw5.com/tiddlers/system/wikitext-macros.tid +++ b/editions/tw5.com/tiddlers/system/wikitext-macros.tid @@ -1,6 +1,6 @@ code-body: yes created: 20150117184156000 -modified: 20220617122915793 +modified: 20240315144208842 tags: $:/tags/Macro title: $:/editions/tw5.com/wikitext-macros type: text/vnd.tiddlywiki @@ -23,17 +23,19 @@ type: text/vnd.tiddlywiki \end \procedure open-tiddler-in-window() +\whitespace notrim <$button actions=<> class="tc-btn-invisible tc-tiddlylink"> open ''this'' tiddler in a new window \end \procedure activateEditionWindow(url) -<$action-sendmessage $message="tm-open-external-window" $param="""$url$""" windowName="_edition" windowFeatures="width=800 height=600" /> +<$action-sendmessage $message="tm-open-external-window" $param=<> windowName="_edition" windowFeatures="width=800 height=600" /> \end \procedure open-external-window(url) -<$button actions=<> class="tc-btn-invisible tc-tiddlylink"> +\whitespace notrim +<$button actions=<> class="tc-btn-invisible tc-tiddlylink"> open the ''example edition'' in a new window \end @@ -63,7 +65,7 @@ type: text/vnd.tiddlywiki

That renders as:

- <$macrocall $name="src"/> + <$transclude $variable="src" $mode="block"/> \end @@ -86,7 +88,7 @@ type: text/vnd.tiddlywiki <> \end -\procedure flex-card(class,bordercolor:"",backgroundcolor:"",textcolor:"",imageField:"image",captionField:"caption",subtitle:"",descriptionField:"description", inkField:"link") +\procedure flex-card(class,bordercolor:"",backgroundcolor:"",textcolor:"",imageField:"image",captionField:"caption",subtitle:"",descriptionField:"description",linkField:"link") <$link class={{{ [addprefix[tc-card ]] }}} to={{{ [getelse] }}}>
!is[blank]addprefix[5px solid ]] }}} style.background={{!!background}} style.backgroundColor=<> style.color=<> style.fill=<>> <$list filter="[has[ribbon-text]]" variable="ignore">