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
1aba8a1f65
Slight optimisation to user defined widgets
2022-09-24 12:41:28 +01:00
jeremy@jermolene.com
fddaa9fdb1
Merge branch 'master' into parameterised-transclusions
2022-09-24 11:07:53 +01:00
jeremy@jermolene.com
81ac987484
Optimise variable prototype chain handling
...
With this improvement and 53d229592d
I'm measuring a 10-15% performance improvement between v5.2.3 and master using https://github.com/Jermolene/tiddlywiki-performance-test-rig
2022-09-24 08:28:16 +01:00
jeremy@jermolene.com
0a00da6db9
Optimise fake dom
...
Object.setPrototypeOf() appears to be significantly faster
2022-09-23 18:09:45 +01:00
jeremy@jermolene.com
166a156584
Fix typo: Safe mode should prevent globally disabling parser rules
2022-09-23 18:08:28 +01:00
Robin Munn
51bdf60ee8
Fix bug when using built-in list
field as listField parameter to checkbox widget ( #6897 )
...
* Fix bug with checkbox widget and `list` field
The `list` field is stored as a list and frozen against modifications,
and getFieldList() returns it directly without creating a copy. So
before we modify it, we need to make a copy so we're not modifying a
frozen list. This bug doesn't manifest with custom fields, which are
stored as strings, only with the built-in `list` field.
* Fix checkboxes referencing non-existent tiddlers
This fixes the "tiddler is undefined" error when a checkbox's listField
property references a tiddler that doesn't (yet) exist.
* Better logic for checkbox listField handling
If the field contains an array, then it's almost certainly referenced
elsewhere and needs a defensive copy made. If it contained a string,
then it's safe to modify without making a defensive copy.
2022-09-22 18:52:55 +01:00
jeremy@jermolene.com
0196844f17
Merge branch 'master' into parameterised-transclusions
2022-09-21 09:33:24 +01:00
jeremy@jermolene.com
8f9d5cabaa
Missing tests for parameters widget
2022-09-16 16:07:32 +01:00
Cameron Fischer
debfd42d51
Log message not to have spaces and <empty string> ( #6947 )
2022-09-15 12:10:33 +01:00
jeremy@jermolene.com
cc7b276787
Remove negation from function operator
...
This implementation was not useful.
2022-09-11 10:48:37 +01:00
jeremy@jermolene.com
68a1d61f33
Update function operator to return the input list if the function is missing
2022-09-11 10:48:05 +01:00
jeremy@jermolene.com
977a133028
Tweak comments
2022-09-09 14:16:08 +01:00
jeremy@jermolene.com
b751f7e793
Parameters widget: protect against negative $depth
2022-09-09 12:04:50 +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
e3697e29bb
When transcluding functions, pass an empty item list to the filter, and just return the first item
2022-09-09 10:22:06 +01:00
jeremy@jermolene.com
7b465888c8
Revert "WIP"
...
This reverts commit 8654dfc679
.
2022-09-04 16:43:40 +01:00
jeremy@jermolene.com
8654dfc679
WIP
2022-09-04 16:41:25 +01:00
jeremy@jermolene.com
5c860ed39b
Fix error in 25312b3e32
2022-09-04 16:26:47 +01:00
jeremy@jermolene.com
25312b3e32
Refactor filter recursion detection to avoid an unneeded wrapper function
2022-09-04 16:23:49 +01:00
jeremy@jermolene.com
11e0c66a4c
Transcluded functions should operate on the entire store
2022-09-03 20:11:45 +01:00
jeremy@jermolene.com
a439cb58be
Fix caching of parse variables/macros/procedures
2022-09-03 20:11:23 +01:00
jeremy@jermolene.com
966707ea1c
More comments
2022-09-03 16:57:38 +01:00
jeremy@jermolene.com
1b08cd40bf
Coding style tweak
2022-09-03 16:36:36 +01:00
jeremy@jermolene.com
00b6645c94
Disable overriding core widgets in safe mode
2022-09-03 12:58:10 +01:00
Jeremy Ruston
35b9faaa89
JSON Filter Operators (Revised Attempt) ( #6936 )
...
* First commit
Cherry-picked from #6666
* Adjust release version number
Just in case we decide to make a release before we merge #6666
2022-09-02 18:15:45 +01:00
jeremy@jermolene.com
d852123f61
Tweak semantics of JSON operators to match #6932
...
This allows us to later bring in the optimisations without breaking backwards compatibility.
2022-09-02 17:14:50 +01:00
jeremy@jermolene.com
54e1083dd6
Merge branch 'master' into parameterised-transclusions
2022-09-01 09:00:57 +01:00
jeremy@jermolene.com
127f660c91
Edit widget: remove default text "Type the text for the tiddler 'foo'"
...
Fixes #6152
2022-08-28 15:12:51 +01:00
jeremy@jermolene.com
2b8b133d4a
Merge branch 'master' into parameterised-transclusions
2022-08-17 18:11:21 +01:00
Mario Pietsch
2ff5bd5a0f
Fix removing a field with empty name ( #6888 )
...
* allow us to remove a field with empty key
* fix typo in if clause
2022-08-09 18:44:45 +02: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
6207ec4812
Merge branch 'master' into parameterised-transclusions
2022-08-02 17:49:28 +01:00
jeremy@jermolene.com
667da96c97
Fix crash when closing plugin library
...
Fixes #6855
2022-07-31 15:35:14 +01:00
jeremy@jermolene.com
34b1b8128f
Server: correctly print URL when running on IPv6
...
Since https://github.com/nodejs/node/issues/40537 users are more likely to encounter IPv6 connections.
IPv6 URLs require square brackets around raw addresses.
With this change VS Code correctly hyperlinks the message `Serving on http://[::1]:8080 `
2022-07-29 10:07:59 +01:00
Saq Imtiaz
613b3df367
Image lazy loading ( #6809 )
...
* Extend image widget with lazy loading support
* docs: added from-version to docs update
2022-07-21 15:30:56 +01:00
jeremy@jermolene.com
b1cf9f241e
Merge branch 'master' into parameterised-transclusions
2022-07-21 10:10:49 +01:00
Saq Imtiaz
0237d9ed94
feat(filters): extend :map filter run prefix to accept a suffix to enable mapflat ( #6806 )
2022-07-21 09:23:01 +01:00
jeremy@jermolene.com
17c9bf7546
Protect against excessively recursive functions
2022-07-21 09:17:57 +01:00
jeremy@jermolene.com
745707fea3
Parameters widget: Be defensive about negative depths
2022-07-19 10:27:36 +01:00
jeremy@jermolene.com
d4e0eb193b
Slot widget: be more defensive about negative depth values
2022-07-19 10:26:20 +01:00
jeremy@jermolene.com
a2182255cc
Simplify the fill widget
...
We can rely on the default processing in the base class
2022-07-19 10:02:09 +01:00
jeremy@jermolene.com
30f7b37cba
Make use of type attribute consistent
2022-07-18 19:44:37 +01:00
Saq Imtiaz
fe1147c6fd
Fix: restore drag and drop on mobile chrome ( #6789 )
2022-07-15 18:19:44 +01:00
Saq Imtiaz
19331cc6f9
Fix: brittle selector implementation for draggable widget ( #6786 )
...
* Fix: fixes #6595 , brittle selector implementation for draggable widget
* Docs: updated for fix to selector implementation for draggable widget
2022-07-15 15:38:09 +01:00
Saq Imtiaz
f6e021d70f
Feat: dynamically refresh class for draggable widget DOM node instead of re-rendering the widget ( #6787 )
2022-07-15 15:37:27 +01:00
Robin Munn
18d8173dcc
New insertafter filter operator ( #6771 )
...
* Implement insertafter operator (like insertbefore)
Currently, the behavior of insertafter if the target is not found is to
append the inserted tiddler to the end of the list, like insertbefore
does. In the next commit, we'll add a suffix to customize what both
insertafter and insertbefore do when the target is not found.
* Add failing tests for insertafter suffixes
Also includes tests for insertbefore suffixes (start/end), since we'll
be implementing both of those at the same time.
* Add start/end suffixes for insertafter/before
The tests that exercise the start/end suffixes now pass.
2022-07-13 17:08:17 +01:00
jeremy@jermolene.com
f93fe50044
Fix anchor links do not work with addressbar=permalink and animationduration=0
...
Fixes #6757
2022-07-05 18:39:14 +01:00
jeremy@jermolene.com
ceec7b5737
Style tweaks for #6755
2022-07-05 17:47:57 +01:00
Mario Pietsch
76bc2f7524
Fix svg foreignObject that contains DIVs ( #6755 )
...
* xmlns attribute defined in element takes precedence
* use predefined tagNamespaces variable as default value
* change code as suggested by Jeremy
2022-07-05 17:46:31 +01:00