* fix: apply automatic eslint fixes
* lint: allow hashbang comment for tiddlywiki.js
* lint: first back of manual lint fixes for unused vars
* lint: added more fixes for unused vars
* lint: missed files
* lint: updated eslint config with selected rules from #9669
* Add ((var)) syntax for passing multi-valued variables through transclude pipeline
Introduce ((var)) attribute syntax to explicitly pass
MVVs to procedures and functions via $transclude, solving the limitation
where <<var>> always resolves to the first value only for backwards
compatibility. Also adds ((var||sep)) and (((filter||sep))) inline display
syntax for debugging MVV values, and multivalued defaults for parameter attributes
* Create pr-draft.md
* Revert "Create pr-draft.md"
This reverts commit dd116af41b.
* Update change note
* Fix linting errors
* feat: eventcatcher with pointer capture support
* fix: various cleanups and improvements
* chore: lint
* chore: lint
* docs: updated eventcatcher docs
* docs: added changenote
* feat: provide access to event properties via JSON blob
* fix: added updated utils file
* fix: guard against missing nodes and not element nodes
* Initial commit
The idea is to extend the macro call syntax to accept dynamic parameter values (ie thing:{{more}} etc). Eventually, this will work in all the contexts in which the double angle bracket syntax is valid.
This initial commit gets the tests passing, but doesn't yet activate the new functionality.
* Test for standalone macro calls with dynamic parameters
* Parse attribute macros with the new parser
This fixes the tests
* Test for attribute macros
* Add some examples
* Tweak examples
* Fix test
* Temporarily disable a broken serializer test
* Fix/dynamic macro calls test (#9459)
* Revert "Temporarily disable a broken serializer test"
This reverts commit b3144300ee.
* restore synamic parameter parse result
* lint
* lint
* remove duplicate
* Update core/modules/parsers/parseutils.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update editions/test/tiddlers/tests/data/serialize/DynamicWidgetAttribute.tid
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update editions/test/tiddlers/tests/data/serialize/DynamicWidgetAttribute.tid
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: mixed qouted and unquoted
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix unneeded diff
* Minor docs update
* Genuflecting to the linter
* Remove debug logging
* Add change note
* Allow single closing square brackets within double square brackets quoted strings
* Only allow new style parameter values if the separator is an equals sign
* On reflection, new style values should not be allowed for anonymous parameters
Backwards compatibility
* Docs updates
* Docs updates
---------
Co-authored-by: lin onetwo <linonetwo012@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Make draft title translatable
* Update change note
* Improve number handling
Now generates "Draft of '...' 2" instead of "Draft 2 of '...'"
* Improve whitespace handling
We no longer needs to add whitespace in languages. We now handle it in javascript.
* Update language naming
* Update zh-Hans translation
* Update change note
* Refactor logic to make it less complex
Since we don't need to care about draft numbers, we can have two different templates for draft title with and without attribution. No need to trim the string now.
Also, we can reuse the getSubstitutedText method
* Update translators edition
* fixup! Update translators edition
* Switch to transclude and variable mechanism
* Adapt translators to the new mechanism
* Update change note
* Further simplify the logic
$tw.language.getString can already wikify translatable strings. No need for this.renderText
* Introduced preliminary idea for infinite recurse exception
* Better handling of infinite recursion
But it could be better still...
* the TransclusionError is a proper error
Moved the magic number to be on the error's class. Not sure if that's
a great idea.
* Fixed minor minor issue that came up in conflict
The minor fix to the jasmine regexp that escaped a '+' somehow
broke some random test.
* Removing patch fix for recursion errors
* Fixed issue where buttton and other widgets don't clean up
* Added release notes for #9548
* Update test-widget.js
If I don't fix those indentations, the entire TW codebase will explode or soemthing.
* Update test-widget.js
These lint problems are wasting my time.
* Fixed all core widgets to not leak when renderChildren fails
* Updated release notes to reflect what I'm actually fixing
* Update test-widget.js
Added warning not to use for-of loop for defining tests. The iterating variable needs to have its own method scope, or it risks being the same value for all tests.
* feat: support for data-attributes and on load actions
* feat: support for data-attributes and on load actions
* fix: typo
* fix: simplify variable assignment
* docs: added changenote
* Fix: bug in multivalue default params
* Enhance release notes for version 5.4.0
Updated GitHub links and contributors for release notes.
* Add FunctionDefaultValues test for default parameters
* Update function default values in FunctionDefaultValues.tid
* Update #8972.tid
* fix: correctly resolve default values for functions
* Update #8972.tid
* Fixes#8092 SelectWidget does not work with multiple options organised into group
* Consolidate variables
* Apply suggestion from @saqimtiaz
* Update core/modules/widgets/select.js
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
* added release note
* chore: lint fixes
---------
Co-authored-by: Saq Imtiaz <saq.imtiaz@gmail.com>
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
* Create RootStylesheet.tid
* put stylesheets into single <style> tags
* viewHandler should not be a widget
* format RootStylesheet
* add ROOT_STYLESHEET_TITLE constant
* use let widget in RootStylesheet
* use view widget from #8135 for testing
* reformat RootStylesheet
* update view widget
* update view widget
* update view widget
* update view widget
* update view widget
* update view widget
* trying to fix the date parsing
* refactor view widget with more extensible architecture
* remove performance instrumentation
* hardcode reset and base stylesheets
* adopt ES2017 syntax for view widget
* don't hardcode vanilla/base
* remove unused constructors
* remove unused variable
* make refresh method static
* trying to fix missingThis
* add changenote
* revert change in vanilla/base
* Revert changes to the view widget
* Refactor RootStylesheet.tid
* Use transclude widget instead of view widget
* Remove hardcoded noramlize.css
* Add comment for debugging
* Migrate some templates to use RootStylesheet
* Remove PAGE_STYLESHEET_TITLE
Since it is no longer used in render.js
* Update change note
---------
Co-authored-by: Simon Huber <huber.simon@protonmail.com>
* Initial commit
* Add line ending configuration for consistent tests
* Initial commit
* Correctly consider editcost parameter
* Move diffPartsToChars() to $tw.utils
* Remove superfluous file
* Correct "efficiency" parameter naming in the documentation
The parameter was incorrectly referred to as "efficent" in several places.
* Update diffPartsToChars to ES2017 style
* Consolidate let/const declarations
* Locale support for sort operator
* Add checkLanguageCode util function
* Update docs & add language code validation
* Replace multiple isDescending with reverse
* Revert "Replace multiple isDescending with reverse"
This reverts commit 793177b8bc.
* Simplify sortTiddler with Intl.Collator
* Add change notes
* Remove comment
* Update makeCompareFunction to support locale
* Update checkLanguageCode
* Add locale support for sortsub
* Add locale support for sort filter run prefix
* Revert "Add locale support for sort filter run prefix"
This reverts commit 9479a156d7.
* Remove checkLanguageCode
Since filters are able to catch errors now
* Update locale example
* Revert " Add locale support for sortsub"
This reverts commit 4a617188fc.
* Revert "Update makeCompareFunction to support locale"
This reverts commit 0ebca08036.
* Update docs
* Update change note
* Migrate to diff-match-patch-es & update api
* Update acknowledgements
* Update change notes
* Fix editcost attribute not working
* Make library compatible with ES2017
* Deprecate some utility functions
* Drop IE support
* Update two function
* Update comment
* Further simplify with arrow function
* Fix node error
* Deprecate logTable
* Deprecate class functions
* Attempt to fix error
* Deprecate two functions
* Remove deprecation for getLocationPath
* Deprecate stringifyNumber, domContains, domMatchesSelector
* Deprecate $tw.utils.each
* Revert "Deprecate $tw.utils.each"
This reverts commit 650df1d575.
* Simplify getFullScreenApis
* Replace LLMap with Map
* Revert "Replace LLMap with Map"
This reverts commit 4410ac194a.
* Move some deprecated functions to deprecated.js
* Remove Opera & MS prefix
* Deprecate getLocationPath
* Fix code style
* Revert "Remove Opera & MS prefix"
This reverts commit e5771c00be.
* Revert "Simplify getFullScreenApis"
This reverts commit 894cb479ea.
* Further simplify toggleClass
* Second attempt to simplify $tw.utils.each
* Revert "Second attempt to simplify $tw.utils.each"
This reverts commit 74cb4f766e.
* Third attempt to simplify $tw.utils.each
* Add missing comma
* Update comments
* Deprecate hopArray
Since it is easy to implement it with some method
* Update change notes
* Deprecate tagToCssSelector
Since tc-tagged-* classes are deprecated
* Fix RSOE from decodebase64
* Update change note
* Revert "Fix RSOE from decodebase64"
This reverts commit 4145f08623.
* Use a more general implementation
* Operator error should let whole filter fail
* Introduce let filter run prefix for assigning filter run result to a variable
* Get rid of the special behaviour for all[]
Not needed because the input to the filter run is available
* Fix tests
* Fix tests
* Cleanup
* Support for saving result lists in a variable
Extend let filter run prefix to store list of results, and add varlist operator for accessing variables as a list.
We already had partial support for variables returning a list of values in order for functions to work, now we extend it so that any variable can be used to store a list
We should extend the set widget so that it returns a result list that can be accessed with the varlist operator
* Docs update
* Introduce letlist widget for assigning lists to variables
Terrible name. Annoyingly, we can't overload the existing let or set widgets.
* Docs update
* Update DefaultTiddlers to highlight the new docs
* Fixed varlist crash with empty parameter
* Switch to triple brace syntax for assigning filtered lists
* Docs update
* Test for multivalued functions
* varlist operator: fixed crash accessing non-existent variable
See https://github.com/TiddlyWiki/TiddlyWiki5/pull/8972#issuecomment-2712068743
* Dispense with the letlist widget
What this PR actually does is rename the letlist widget to "let". The result is the same as using the letlist widget, but it is backwards compatible by virtue of the fact that all existing ways to access variables will only see the single value for the variable.
* Refactor the let filter run prefix to assign the input list to the variable named by the filter run
These semantics are much simpler, and allow the variable name to be computed.
* Missed off 211b135265
* Docs update
* Bug fix
* Introduce round brackets for multi-valued filter operands
Allowing us to drop the varlist operator
* Introduce => as a shortcut syntax for the let filter run prefix
Also relax the requirement for a filter run prefix to be followed by an opening square bracket
* Fix bug exposed in "Filter Operators" tiddler
See https://github.com/TiddlyWiki/TiddlyWiki5/pull/8972#issuecomment-2740003414
* Fix bug with missing variable attributes
See https://github.com/TiddlyWiki/TiddlyWiki5/pull/8972#issuecomment-2752792329
* Fix bug with round brackets for 2nd parameter onwards
* Allow functions to take multivalued parameters
* Simplify title operator
* Extend title operator to allow negated form to use multi-valued variables
* Remove duplicate test
* Update action-log widget to log multi-valued attributes
* Docs updates
* Fix typos
* Happy linter happy life
* Fix version numbers of from-version procedures
* Another incorrect version number
* Add change note
* Fix filenames of tests
* Typo
* Update let.js
* Docs updates