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
413dc86d05
Rename internal "unknown" filter operator so that users cannot invoke it
2022-05-11 14:52:25 +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
0b11b499c2
Better backwards compatibility for legacy recursion marker
...
Fixes the problem with tag dropdowns @btheado
2022-05-10 10:21:56 +01:00
jeremy@jermolene.com
eef7d180a5
Remove obsolete code
...
Left over after refactoring
2022-05-10 10:21:19 +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
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
9be05f6f38
Use consistent parse tree node property for params
2022-05-07 13:22:53 +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
jeremy@jermolene.com
a9938a6c67
Improve recursion detection
...
While retaining backwards compatibility
2022-05-06 15:00:10 +01:00
jeremy@jermolene.com
e5164113c4
Don't create variables with value undefined for missing parameters
2022-05-05 14:47:22 +01:00
jeremy@jermolene.com
f307f00e32
Fixes to enable the transclude widget itself to be overridden
...
There are two big changes here:
Replace the previous "ts-wrapper" mechanism, which we had been using to redefine custom widgets inside their definitions to prevent recursive calls. Now we've got the genesis widget we can instead control recursion through a new "$remappable" attribute that allows the custom widget mechanism to be skipped.
We also extend the slot widget to allow a depth to be specified; it then reaches up by the indicated number of transclusion widgets to find the one from which it should retrieve the slot value.
2022-05-05 08:20:14 +01:00
jeremy@jermolene.com
e99137f4cc
Cache parse trees when transcluding variables
2022-05-03 17:59:45 +01:00
jeremy@jermolene.com
56c2242e4e
Introduce genesis widget for dynamically creating widgets
...
See the "RedefineLet" test for a contrived example of usage
2022-05-03 12:55:10 +01:00
jeremy@jermolene.com
e1df50d981
Fix parameter handling
2022-05-03 12:54:29 +01:00
jeremy@jermolene.com
c4743ebbec
Fix importing of function definitions
2022-05-03 09:39:05 +01:00
jeremy@jermolene.com
8f69c27632
Reuse attribute objects when executing custom widgets
2022-05-03 09:38:41 +01:00
jeremy@jermolene.com
0163c04b7d
Fix addAttributeToParseTreeNode handling of ordered attributes
2022-05-03 09:37:49 +01:00
jeremy@jermolene.com
2ea0374b55
Allow the let widget to create variables starting with $
2022-05-03 08:44:33 +01:00
jeremy@jermolene.com
3000d3339c
Remove extraneous code
2022-05-03 08:11:00 +01:00
jeremy@jermolene.com
a888cd57cd
Unquoted parameters should not eat a succeeding comma
...
Fixes #6672
2022-05-02 13:49:41 +01:00
jeremy@jermolene.com
a10106a4a6
Fix crash when transcluding an undefined variable
...
Thanks @pmario
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1114692359
2022-05-02 11:15:18 +01:00
jeremy@jermolene.com
fbd0357cae
Mustn't allow commas in parameter names
2022-05-02 11:04:32 +01:00
jeremy@jermolene.com
ea7199600d
Be as permissive as possible with parameter names
...
Previously restricted to upper and lower case, digits and dash and underscore
2022-05-02 10:56:09 +01:00
jeremy@jermolene.com
5f02cc49fd
Add support for accessing function parameters as name/value pairs
2022-05-02 10:00:50 +01:00
jeremy@jermolene.com
bbc6661192
Remove erroneous "tag" property
2022-05-02 09:26:18 +01:00
jeremy@jermolene.com
8b867be8ef
Add pragma rule for parameters declarations
2022-05-02 09:15:45 +01:00
jeremy@jermolene.com
99750d78b5
Allow brackets to be omitted for function definitions with no parameters
2022-04-30 13:06:28 +01:00
jeremy@jermolene.com
c9bd1b5274
Add wikitext shortcut for new-style function definitions
2022-04-30 12:44:26 +01:00
jeremy@jermolene.com
886c8620f5
Replace ubertransclude widget with transclude widget
2022-04-30 10:00:38 +01:00
jeremy@jermolene.com
aac2d6ccb0
Refactor ubertransclude functionality into transclude widget
2022-04-30 09:54:55 +01:00
jeremy@jermolene.com
c4991fff9e
Refactor transclude widget before uberfying it
2022-04-30 09:30:25 +01:00
jeremy@jermolene.com
f78e1f6f7d
Importvariables should skip parameters widgets
2022-04-29 22:36:07 +01:00
jeremy@jermolene.com
5bcf7b9edd
Add support for shortcut syntax for positional transclusion parameters
2022-04-29 22:35:47 +01:00
jeremy@jermolene.com
89b7a3bd28
Ubertransclusion positional parameters should be based on name, not position
2022-04-29 16:28:03 +01:00
jeremy@jermolene.com
9713da5071
Add support for positional parameters
2022-04-26 21:55:43 +01:00
jeremy@jermolene.com
31c3abb7ab
Add a definition for the value widget just so that it doesn't cause errors
...
Of course, it doesn't actually need to be a JS widget, it could be a wikitext widget...
2022-04-26 14:36:05 +01:00
jeremy@jermolene.com
a401732995
Use ts- prefix for system slot names
2022-04-26 14:27:28 +01:00
jeremy@jermolene.com
fae038dcbc
Remove need to explicitly clear widget mapping variable when invoking overridden widget
2022-04-26 14:24:31 +01:00
jeremy@jermolene.com
35616a0b39
Don't worry about ordered attributes
...
The changes in 0bffae2108
mean that we don't need to explicitly maintain the ordered attributes
2022-04-26 14:05:56 +01:00
jeremy@jermolene.com
7299d4fd1d
Merge branch 'master' into parameterised-transclusions
2022-04-26 14:03:03 +01:00
jeremy@jermolene.com
0bffae2108
Add utility method for getting ordered attributes
2022-04-26 14:02:31 +01:00
jeremy@jermolene.com
0e4e037bb7
Changed transclude widget in binary parser to ubertransclude
2022-04-26 13:05:31 +01:00
jeremy@jermolene.com
cd0617f033
Use the ubertransclude widget for the wikitext transclusion syntax
2022-04-26 12:45:05 +01:00
jeremy@jermolene.com
05b582a202
Fix and test missing target handling
2022-04-26 12:32:46 +01:00