mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-07 10:34:53 +00:00
f636349007
The basic idea is that if we don't find a variable `foo` then we fallback to retrieving the value from the tiddler `$:/global/foo`, if it exists. This allows us to replace the usual importvariables-based mechanism for global definitions, avoiding cluttering up the variable namespace with every macro. In order to permit subprocedures to be overridden, we also introduce a mechanism for conditional definitions: preceding the word definition|procedure|function|widget with a + causes the definition only to occur if the specified variable doesn't already exist. In the next commit we'll apply this mechanism to the tabs macro
26 lines
553 B
Plaintext
26 lines
553 B
Plaintext
title: Globals/ProceduresWithConditionalDefinitions
|
|
description: Global procedures with conditional definitions to allow overriding
|
|
type: text/vnd.tiddlywiki-multiple
|
|
tags: [[$:/tags/wiki-test-spec]]
|
|
|
|
title: Output
|
|
|
|
\whitespace trim
|
|
|
|
<<this-is-one>>|<<this-is-one blah>>~
|
|
<$let example="TWO"><<this-is-one>>|<<this-is-one blah>></$let>
|
|
+
|
|
title: $:/global/this-is-one
|
|
|
|
\whitespace trim
|
|
|
|
\+procedure example()
|
|
ONE
|
|
\end
|
|
|
|
\parameters (foo:"nothing")
|
|
<<example>>-<$text text=<<foo>>/>
|
|
+
|
|
title: ExpectedResult
|
|
|
|
<p>ONE-nothing|ONE-blah~TWO-nothing|TWO-blah</p> |