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
b531984f50
Restore "Add default settings for styled inline SPANs ( #6877 )"
...
This reverts commit 6f98edd6bd
.
2022-10-16 17:28:36 +01:00
jeremy@jermolene.com
8f079e2d45
Fix handling of orderedattributes when adding classes/styles
...
Fixes issue referred to in https://github.com/Jermolene/TiddlyWiki5/pull/6877#issuecomment-1277590200
2022-10-16 17:27:46 +01:00
Maurycy Zarzycki
cfd894e6fb
allow select widget class to update if it uses a filter and is output changes ( #6987 )
...
* allow select widget class to update if it uses a filter and the filter output changes
* rewrite code to be more idiomatic + updates local property
2022-10-15 12:26:21 +01:00
jeremy@jermolene.com
3a4589dc79
Transcluding functions: fix missing parameters passed as undefined
...
Thanks @btheado – see https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1276187372
2022-10-12 17:15:39 +01:00
jeremy@jermolene.com
6f98edd6bd
Revert "Add default settings for styled inline SPANs ( #6877 )" because of failed tests
...
This reverts commit 23e0eeb556
.
2022-10-07 18:43:09 +01:00
Mario Pietsch
23e0eeb556
Add default settings for styled inline SPANs ( #6877 )
...
* add default settings for styled inline SPANs
* change color names in palettes and vanilla-base
* change parser behaviour if custom class is used
* tc-inline-style will only be set if no other custom setting is appliead
* Add tests for inline-styles
* add one more test
* remove space after if
2022-10-07 18:05:49 +01:00
Maurycy Zarzycki
f33c7e2aef
Allow global keyboard shortcuts to override all other shortcuts by providing a special field ( #6735 )
...
* allow global keyboard shortcuts to override all other shortcuts by providing a special field
* rework the global shortcuts taking priority
* replace bool option with options object in KeyboardManager's keydown handler
* update keyboard shortcut documentation to add information about the new priority setting
* add support for priority global keyboard shortcuts to code mirror
* update the feature's docs to point out it was/will be introduced in 5.2.4
* rollback unnecessary change
2022-10-07 17:31:04 +01:00
jeremy@jermolene.com
12a87840fd
Merge branch 'master' into parameterised-transclusions
2022-10-07 16:57:54 +01:00
jeremy@jermolene.com
93100a1c8f
Remove support for conditional definitions
...
It was introduced for use cases associated with the global mechanism that was dropped in e3d13696c8
2022-10-03 14:39:45 +01:00
jeremy@jermolene.com
4007610d52
Prefer "modal" over "wizard" in the core
...
See https://github.com/Jermolene/TiddlyWiki5/discussions/6965#discussioncomment-3754315
2022-10-02 18:59:05 +01:00
jeremy@jermolene.com
fb34df84ed
New image shortcut should not add journal tags
...
Fixes #6968
2022-10-02 18:55:26 +01:00
jeremy@jermolene.com
36896c3db8
Use view template body when opening tiddler in new window
2022-10-02 17:22:48 +01:00
jeremy@jermolene.com
1841b0fa4f
Fix tests
2022-10-01 14:05:13 +01:00
jeremy@jermolene.com
0a309f4865
Merge branch 'master' into parameterised-transclusions
2022-10-01 10:18:34 +01:00
jeremy@jermolene.com
47f80339b2
Update transclude widget to use error widget
...
Missed off #6970
2022-10-01 10:15:14 +01:00
Jeremy Ruston
db6abb9703
Improve recursion detection for transclusion and filters ( #6970 )
2022-10-01 10:13:40 +01:00
jeremy@jermolene.com
1df4c29d73
Relax the restriction on the let widget being unable to create variables starting with a dollar
2022-10-01 09:47:26 +01:00
jeremy@jermolene.com
668168dfea
Some widget.js cleanups
2022-09-27 08:58:10 +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
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
3090bb104e
Fix visible transclude
2022-09-16 16:07:44 +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
fa86631d2e
Improve indentation
...
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#discussion_r967655251
2022-09-13 16:29:09 +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
ecd467496d
Add custom view template body for globals, and a new sidebar tab under "more"
...
And also a custom view template title that greys out the $:/global/ part of the title
2022-09-10 11:03:40 +01:00
jeremy@jermolene.com
580e33d30f
Merge branch 'master' into parameterised-transclusions
2022-09-10 11:01:45 +01:00
jeremy@jermolene.com
d825f1c875
Use view template body cascade for the default preview
2022-09-10 11:01:29 +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
Xavier Cazin
0b1fc8e574
Make dialogs over deleting AdvancedSearch filter results translatable ( #6933 )
...
* Add fr-FR strings over deleting AvancedSearch filter results
* Add default strings over deleting AvancedSearch filter results
* Make dialogs over deleting results from AdvancedSearch filters translatable
2022-08-31 17:32:55 +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
Mario Pietsch
d7b9e6fb02
Getting started new table layout ( #6894 )
...
* change core GettingStarted tiddler table layout
* rename tc-table-no-grid to tc-table-no-border
2022-08-09 18:42:01 +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
3fd2cfc339
Preparing for v5.2.4
...
Note that we currently only plan to release v5.2.4 if there's an issue with v5.2.3, and that the next release version will be v5.3.0
2022-08-02 17:31:20 +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
53c5cc535e
Put hide-body at the start of the view template body cascade
2022-07-29 14:20:26 +01:00
jeremy@jermolene.com
f891eacddc
Ensure code-body field can override new stylesheet view
...
See https://github.com/Jermolene/TiddlyWiki5/issues/6813#issuecomment-1199108091
2022-07-29 11:16:20 +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
jeremy@jermolene.com
a453121e96
Render command help: use single quotes for safety
...
See https://github.com/Jermolene/TiddlyWiki5/issues/6827#issuecomment-1198540330
2022-07-29 09:48:49 +01:00
Mario Pietsch
0ad0001e29
Fix #6840 tab macro stat handling ( #6841 )
2022-07-28 21:26:09 +01:00
Mario Pietsch
2441819c70
Remove hardcoded spaces and replace with SPAN and proper class ( #6825 )
2022-07-28 17:02:14 +01:00
jeremy@jermolene.com
ca762ab7a6
Additional example of render command
...
Fixes #6827
2022-07-28 16:33:57 +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
7e9c2a1a10
Fix crash when viewing $:/core/ui/ViewTemplate/body/rendered-plain-text
...
Fixes #6805
2022-07-21 09:05:20 +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
Jeremy Ruston
1ca6305acb
Split the tiddler subtitle into individual segments tagged $:/tags/ViewTemplate/Subtitle ( #6779 )
2022-07-15 17:37:25 +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
Jeremy Ruston
338dc11436
Show stylesheets as rendered plain text with highlighting ( #6778 )
...
* First commit
* Enable syntax highlighting when highlight plugin is installed
* Use highlighting for the control panel stylesheet listings
2022-07-14 09:00:56 +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
Mohammad Rahmani
4cd3c065e7
Add emptyMessage to list-links-draggable and correct docs ( #6776 )
2022-07-13 15:58:27 +01:00
Mario Pietsch
0112d04033
Fix 6731 tag and field name trim ( #6740 )
...
* this commit should fix #6731 . It trims field and tag whitespace
* this commit increases tag space visibility as mentioned in 002d47b4d9
* fix a missing HTML end tag
* fix $:/Manager select element max width
2022-07-09 08:35:38 +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
jeremy@jermolene.com
189fe428b7
Merge branch 'master' into parameterised-transclusions
2022-07-04 21:15:42 +01:00
Nolan Darilek
92c4c82005
Add ARIA region for editor. ( #6749 )
2022-07-01 15:39:52 +01:00
FSpark
2c607ee8e6
Add storyTiddler to render command ( #6746 )
2022-06-29 08:58:40 +01:00
Nolan Darilek
7ac7d26f86
Add alert
role to notifications so they're automatically spoken by screen readers. ( #6743 )
2022-06-28 17:48:03 +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
945c9e619a
Merge branch 'master' into parameterised-transclusions
2022-06-22 08:51:46 +01:00
jeremy@jermolene.com
5e35c8dda6
Revert "Allow global keyboard shortcuts to work in framed editor ( #6705 )"
...
This reverts commit 8e64e21039
.
See https://github.com/Jermolene/TiddlyWiki5/pull/6705#issuecomment-1162738927
2022-06-22 08:18:13 +01:00
jeremy@jermolene.com
6e1138e504
Merge branch 'master' into parameterised-transclusions
2022-06-17 16:40:54 +01:00
jeremy@jermolene.com
a29889a741
Fix layout bug introduced in d5030eb87b
...
Thanks @pmario
2022-06-17 14:03:36 +01:00
jeremy@jermolene.com
d5030eb87b
Prevent Chrome from offering password autocomplete for search boxes
...
Fixes #6723
2022-06-14 09:45:49 +01:00
jeremy@jermolene.com
05d2c029a4
Merge branch 'master' into parameterised-transclusions
2022-06-14 08:34:47 +01:00
jeremy@jermolene.com
4e6efed58f
Revert "Fix #6721 "
...
This reverts commit b216579255
which was committed to the wrong branch
2022-06-14 08:34:42 +01:00
jeremy@jermolene.com
35b0833e0c
Fix handling of {!!title} in a filter with no currentTiddler
...
Fixes #6721
2022-06-14 08:33:47 +01:00
Jeremy Ruston
b216579255
Fix #6721
2022-06-13 15:43:28 +00:00
jeremy@jermolene.com
3e33d309ed
Docs: format:json
...
Also tweak to the behaviour of format:json if the input string is not valid JSON
2022-06-11 17:29:20 +01:00
Maurycy Zarzycki
8e64e21039
Allow global keyboard shortcuts to work in framed editor ( #6705 )
...
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
2022-06-11 08:57:08 +01:00
jeremy@jermolene.com
227079f3da
Add format:json operator
...
I've been finding this useful for debugging, and it kind of goes with the JSON operators
2022-06-10 09:29:56 +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
defe3e42e6
Adjust naming of transclusion metaparameter
2022-06-05 16:10:41 +01:00
jeremy@jermolene.com
7680280d87
Fix typo
2022-06-05 15:59:03 +01:00
jeremy@jermolene.com
542df63ccf
Simplify metaparameters implementation
2022-06-03 11:21:32 +01:00
jeremy@jermolene.com
c42df2233a
Make slot fill data available to transclusions
...
Allows transcluded content to dynamically process <$fill> widgets within the calling transclusion
2022-06-03 08:53:51 +01:00
jeremy@jermolene.com
139047b4f8
Typo from f513b403fe
2022-06-01 10:06:27 +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
bd9d7c3d6a
Clean up unknown filter
2022-05-30 18:04:37 +01:00
jeremy@jermolene.com
0c3f82855b
Minor cleanups
2022-05-29 10:55:15 +01:00
jeremy@jermolene.com
8106ad390d
Merge branch 'master' into parameterised-transclusions
2022-05-29 10:52:45 +01:00
jeremy@jermolene.com
bb47cc97f5
Fix code_body typo
2022-05-29 10:51:49 +01:00
jeremy@jermolene.com
9424e9d1f2
Cleaning up after f636349007
2022-05-28 17:32:09 +01:00
jeremy@jermolene.com
58f01c9a20
Fix tabs global so it doesn't crash when viewed directly
2022-05-28 13:50:08 +01:00
jeremy@jermolene.com
5d413d3e2d
Change to ?
for conditional definitions
2022-05-28 13:49:02 +01:00
jeremy@jermolene.com
0d78b3fa38
Convert the tabs macro into a global
...
So far it appears to be totally backwards compatible... In practice, I think maybe this and the conversion of the other macros should go into a separate subsequent PR.
2022-05-28 12:24:48 +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
a2fbebf509
Add utility function for parsing macro parameter definitions
2022-05-27 18:37:42 +01:00
jeremy@jermolene.com
6f9f92fa69
Add support for $:/tags/Global
2022-05-26 21:11:53 +01:00
jeremy@jermolene.com
dec45f0fc3
Fix importvariables to work with setvariables as well as set (they are aliases)
2022-05-26 21:11:32 +01:00
jeremy@jermolene.com
45b7b4bc6d
Make is[variable] and variables[] operators resilient to fake widgets
2022-05-26 08:23:54 +01:00
jeremy@jermolene.com
e2d45e176a
Merge branch 'master' into parameterised-transclusions
2022-05-25 18:08:17 +01:00
jeremy@jermolene.com
7e4722f07a
Fix crash with missing palette tiddler
2022-05-25 18:08:08 +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
22e7ec2381
Procedures and widgets inherit whitespace trim setting from their definition
2022-05-23 15:30:33 +01:00
jeremy@jermolene.com
170c4b1799
Merge branch 'master' into parameterised-transclusions
2022-05-23 11:28:12 +01:00
Cameron Fischer
696c5c9c7a
Compiled filters are cached ( #6402 )
...
* Compiled filters are cached
* Adjusting comments, and filtercache cap
2022-05-23 11:26:56 +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
6eb4fbeead
Fix double palette entries
...
Fixes #6700
Thanks to Eric Shulman
2022-05-20 17:13:12 +01:00
Max Schillinger
7cbe1e1d83
Fix toggling of the numbered list prefix in Markdown tiddlers ( #6697 )
...
* Fix toggling of the numbered list prefix in Markdown tiddlers
* Define startsWith in utils.js because it's not available in ECMAScript5.1
2022-05-17 22:31:50 +02:00
Max Schillinger
5ea315fb98
Allow toggling wrap-lines text operations (like mono block) ( #6698 )
2022-05-17 22:16:54 +02:00
FlashSystems
e9405ac810
Fix for Bug #6618 ( #6628 )
...
* Fix for Bug #6618
This Commit fixes Bug #6618 . It is a little bit more complicated than
using one tiddler to store the new value for a field. Because the
following can happen:
* The user types "not-a-date" into the field value of a simple text field.
* The user now selects a field name that uses a HTML5 date editor. The
Editor will show no date because the value cannot be parsed.
* The user saves the tiddler by clicking the checkmark.
Now the date-field contains the value "not-a-date" but the user was not
aware that this will be added. The edit control showed no date (because
the value was invalid) and the user assumed the field was empty and
won't be added to the tiddler.
To prevent this, every kind of field editor gets its own storage tiddler.
Its name is derived from the SHA256-hash of the name of the tiddler that
is returned by the Field Editor Cascade. That way every editor in the
cascade is only seeing its input. As long as the default setup (with one
default editor) is used, everything works like in 5.2.1.
This commit also fixes the bug that the after adding a field the
field-type input box was not focused again.
* Update Documentation for Field Editor Cascade
The fix for bug #6618 makes the handling of the tiddler backing the edit
operation much more complicated. See previous commit "Fix for Bug #6618 "
for more details.
2022-05-14 13:30:04 +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
8e4c13382b
Fix visible transclusion example
2022-05-10 08:10:32 +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
Mario Pietsch
bc8c011eb3
Fix title indentation problem ( #6679 )
...
* fix-6678-title-indent
* optimize code as suggested by Saq
2022-05-09 15:49:42 +01:00
Simon Huber
b4deb7cc45
Add tv-widgetnode-width and tv-widgetnode-height ( #6681 )
...
* Add tv-widgetnode-width and tv-widgetnode-height to collectDOMVariables
* Add docs
* update docs
* Update modified field
2022-05-09 10:42:23 +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
Simon Huber
4b8594c4a8
Fix: eventcatcher widget - variables can be undefined ( #6668 )
...
* Fix: eventcatcher widget - variables can be undefined
* Fix: selectedNode can be an svg where offsetLeft ... are undefined
* Make check for offsetLeft short
* remove second collectDOMNodeVariables
2022-05-06 17:11:13 +01:00
lin onetwo
9b9e443c73
Fix lazy all template with user defined macro cause error ( #6644 )
...
* Fix lazy all template with user defined macro cause error
Fixes https://github.com/Jermolene/TiddlyWiki5/issues/6637
* fix: exclude the SJCL library when saving
@Jermolene said:
The construction -[type[application/javascript]library[yes]] is used in the core as a rather clumsy way to exclude the SJCL library when saving. The same construction is in the usual $:/core/save/all filter too.
It's possible that we should review unintended side effects of that behaviour, but here we should leave it alone.
2022-05-06 17:09:33 +01:00
jeremy@jermolene.com
c5b10d5c1d
Add visible transclusions component and demo
...
Very useful to see transclusions explicitly
Makes a good demo of a super-complicated widget override.
2022-05-06 15:39:45 +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
ea51b8a3fe
Merge branch 'master' into parameterised-transclusions
2022-05-05 08:30:48 +01:00
jeremy@jermolene.com
f3bf5b6e85
Add support for $:/tags/Macro/View/Body macros
2022-05-05 08:30:05 +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
Simon Huber
5d55850c73
Update some palettes in the light of colorscheme: dark ( #6661 )
...
* Update CupertinoDark.tid
* Update GruvBoxDark.tid
* Update Nord.tid
2022-04-27 22:22:54 +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