jeremy@jermolene.com
778b8dec7f
Merge branch 'master' into parameterised-transclusions
2022-11-23 09:01:42 +00:00
Jeremy Ruston
cb0d0cfa6d
Support nested macro definitions ( #7004 )
...
* First commit
* Switched to \end <name> instead of all those repeated backslashes
Thanks @kookma. See https://github.com/Jermolene/TiddlyWiki5/pull/7004#issuecomment-1286429236
* Docs update
2022-11-22 17:10:37 +00:00
jeremy@jermolene.com
45958db074
Merge branch 'master' into parameterised-transclusions
2022-11-22 16:29:45 +00:00
Maurycy Zarzycki
4f7b10e055
CSV parser improvements ( #7042 )
2022-11-20 17:51:01 +00:00
jeremy@jermolene.com
120b93c242
New test for undefined parameters
2022-10-19 08:37:27 +01:00
jeremy@jermolene.com
32710ef9e6
Merge branch 'master' into parameterised-transclusions
2022-10-18 17:23:57 +01:00
Rob Hoelz
24dbf69180
Fix [is[variable]] operator doesn't work for "fake" variables #6303 ( #6996 )
...
* Add tests for [is[variable]] and "faked" variables
See GH #6303
* Make is[variable] and variables[] operators resilient to fake widgets
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
2022-10-18 17:08:04 +01:00
jeremy@jermolene.com
5194b24108
Parameter parenthesis should be mandatory in function/procedure/widget definitions
...
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1280404387
2022-10-17 08:31:07 +01:00
jeremy@jermolene.com
9d4aa47356
Clarify/simplify some tests
2022-10-09 13:54:08 +01:00
jeremy@jermolene.com
0a309f4865
Merge branch 'master' into parameterised-transclusions
2022-10-01 10:18:34 +01:00
Jeremy Ruston
db6abb9703
Improve recursion detection for transclusion and filters ( #6970 )
2022-10-01 10:13:40 +01:00
Jeremy Ruston
4e9267ea58
Introduce genesis widget ( #6961 )
...
* Initial Commit
* Fix version number
* Fix docs date
2022-09-24 14:07:42 +01:00
jeremy@jermolene.com
e3d13696c8
Remove implementation of $:/globals/
...
Performance with this implementation is inherently poor because of the need to perform a wiki lookup for each child widget created.
2022-09-24 12:56:06 +01:00
jeremy@jermolene.com
8f9d5cabaa
Missing tests for parameters widget
2022-09-16 16:07:32 +01:00
jeremy@jermolene.com
a3ba6f9370
Tests and docs for function operator
2022-09-11 10:49:02 +01:00
jeremy@jermolene.com
82b22523aa
Rejig genesis widget to be easier to use
2022-09-09 10:37:39 +01:00
jeremy@jermolene.com
f6ee0cdf4c
Add test to show that global widgets need not use the _parameters field
2022-09-03 12:57:45 +01:00
jeremy@jermolene.com
9317804464
FIx transcluding of functions
...
This first implementation concatenates the results of the filter (with no separator) and then wikifies the result.
The test in this commit is quite interesting...
2022-08-04 09:28:56 +01:00
jeremy@jermolene.com
17c9bf7546
Protect against excessively recursive functions
2022-07-21 09:17:57 +01:00
jeremy@jermolene.com
30f7b37cba
Make use of type attribute consistent
2022-07-18 19:44:37 +01:00
jeremy@jermolene.com
189fe428b7
Merge branch 'master' into parameterised-transclusions
2022-07-04 21:15:42 +01:00
Nolan Darilek
f02bd2392f
Various accessibility improvements ( #6742 )
...
* Add `main` and `article` roles to stories and story.
* Support `role` and \aria-checked` in buttons, and integrate with sidebar tabs.
* Add `region` role to sidebar, and set caption as `aria-label`.
* Add accessibility roles and labels to static templates.
* Update test fixtures with new ARIA tab attributes.
2022-06-28 14:05:52 +01:00
jeremy@jermolene.com
79b20bdaa8
Fix up handling of slot/fill for custom widgets
...
Previously we were wrapping the body in an implicit `<$fill $name="ts-body">` widget
2022-06-09 18:02:47 +01:00
jeremy@jermolene.com
f513b403fe
Remove support for $:/tags/Global
...
It is not needed now that we have true global variables
2022-06-01 08:24:20 +01:00
jeremy@jermolene.com
613f4af20f
Fix refreshing of global variables
...
Global variables access within attributes will automatically trigger a refresh if the attribute text changes, but that wasn't happening for transclusions.
2022-05-31 09:19:01 +01:00
jeremy@jermolene.com
006ae6e759
Refactor $parameters widget
...
The objective is to add a $depth attribute so that it is possible to reach up to retrieve the parameters of ancestor transclusions. However, doing so requires changing the encoding of parameter names so that it is not possible for a user parameter to clash with an attribute like $depth. So now we have to double up dollars on any attribute names seen by the parameters widget, just like with the transclude widget itself.
2022-05-31 09:03:20 +01:00
jeremy@jermolene.com
150266c731
Use underscores for new system fields for global variable tiddlers
...
For consistency with `_canonical_uri`; unlike many system fields, the behaviour of these fields is baked into the core JS code.
2022-05-30 18:38:25 +01:00
jeremy@jermolene.com
3af2cc2691
Introduce function operator for calling functions
...
Can invoke any functions, not just those start with a period. And can pass zero parameters (in contrast when invoked as a custom filter operator there's no way to omit the first parameter).
2022-05-30 18:05:54 +01:00
jeremy@jermolene.com
f803e00567
Test showing how to un-override a core widget
2022-05-28 16:58:20 +01:00
jeremy@jermolene.com
5d413d3e2d
Change to ?
for conditional definitions
2022-05-28 13:49:02 +01:00
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
jeremy@jermolene.com
7fc65d0d1a
Remove accidental commit 6cc99fcbe3
2022-05-27 08:36:31 +01:00
jeremy@jermolene.com
6f9f92fa69
Add support for $:/tags/Global
2022-05-26 21:11:53 +01:00
jeremy@jermolene.com
0e08150028
Remove unneeded test tiddler
2022-05-25 18:04:32 +01:00
jeremy@jermolene.com
6cc99fcbe3
WIP
2022-05-25 15:15:17 +01:00
jeremy@jermolene.com
cbce4ebb7b
Allow custom functions to be invoked as attributes
2022-05-23 20:18:54 +01:00
jeremy@jermolene.com
9e8d05f699
Require period prefix for custom filter operator functions
...
To ensure that custom filter operators cannot clash with future core operators.
2022-05-23 16:40:21 +01:00
jeremy@jermolene.com
3e09eacd20
Missed off 22e7ec2381
2022-05-23 16:32:19 +01:00
jeremy@jermolene.com
ec1ec8ccd8
Fix invocation of JS macros
2022-05-21 16:31:34 +01:00
jeremy@jermolene.com
e50101322f
Require $$ for custom widgets, and that overridden JS widgets must exist
...
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1133637763
2022-05-21 15:47:19 +01:00
jeremy@jermolene.com
bbd9e2f243
Rename <$value> widget to <$fill>
2022-05-13 09:18:25 +01:00
jeremy@jermolene.com
36cf50aa96
Use \widget for custom widget definitions, and remove need for angle brackets
...
Need to do some refactoring of all those isFunctionDefinition/isProcedureDefinition/isWidgetDefinition flags into a single property
2022-05-13 08:49:53 +01:00
jeremy@jermolene.com
904e30a0e2
Detect recursion by tracking widget tree depth
...
The old recursion marker approach was very slow, and didn't catch test cases like editions/test/tiddlers/tests/data/transclude/Recursion.tid
2022-05-12 16:26:33 +01:00
jeremy@jermolene.com
774459fa73
Transclude: replace paramNames/paramValues with more robust JSON payload
...
More details at https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1123719153
2022-05-11 13:51:11 +01:00
jeremy@jermolene.com
e092113f9f
Switch to using \procedure to define new-style macros, and \function for custom filter operator functions
...
I now need to update the OP!
2022-05-09 18:00:09 +01:00
jeremy@jermolene.com
64448ae774
Make the macrocall widget delegate to the transclude widget
2022-05-08 20:48:33 +01:00
jeremy@jermolene.com
4f2f689ab9
Clarify that the recent changes allow functions to be invoked with the double bracket syntax
...
In other words, the transclude widget distinguishes between functions and macros and handles the parameters appropriately
2022-05-08 16:05:32 +01:00
jeremy@jermolene.com
e9630328f1
Extend transclude widget to work with old-style macros and use it for the macrocall shortcut syntax
2022-05-08 15:59:20 +01:00
jeremy@jermolene.com
2fe2d20ddf
Genesis widget should pass raw attributes onto child widget...
...
...so that it can more efficiently handle refreshing itself.
2022-05-07 11:41:28 +01:00
jeremy@jermolene.com
e01dfa1507
Experimental support for custom filter operators
...
Just as we can define custom widgets we can also define custom parameterised filter operators
2022-05-06 15:01:17 +01:00