1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-18 19:39:55 +00:00
TiddlyWiki5/editions/test/tiddlers/tests/data/globals/ProceduresWithConditionalDefinitions.tid
jeremy@jermolene.com f636349007 Introduce true global variables
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
2022-05-28 12:23:50 +01:00

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>