* [ja_JP] Japanese translation update from commit: c625e3c, ac83b46, 314ce12
* [ja_JP] Japanese translation update from commit: b0d950f, 381388f, 4dc89f6, 6a39a4e
* [ja_JP] Japanese translation update from commit: 29a567f, 3597e65, 3378497
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: b0d950f, 381388f
* [ja_JP] Japanese translation update from commit: 614ba84
* [ja_JP] Japanese translation update from commit: 23a23d9
* [ja_JP] Japanese translation update from commit: 8993572
* [ja_JP] Japanese translation update from commit: 8993572, 697171a, 75e89a1, ee55ab6, a73e03c, ac83b46
* [ja_JP] Japanese translation update from commit: 8993572
* [ja_JP] Japanese translation update from commit: 8993572
* [ja_JP] Japanese translation update from commit: 81862b5
* [ja_JP] Japanese translation update from commit: 81d8d67
* [ja_JP] Japanese translation update from commit: 899a498
* [ja-JP] A little correction to the Japanese translation
* [ja_JP] Japanese translation update from commit: d63a189
* [ja_JP] Japanese translation update from commit: 789d64f
* [ja_JP] Japanese translation update from commit: 5490b78
* [ja-JP] A little correction to the Japanese translation
* [ja-JP] A little correction to the Japanese translation
* [ja-JP] A little correction to the Japanese translation
* [ja-JP] A little correction to the Japanese translation
* [ja_JP] Japanese translation update from commit: 29a567f
* Update aho-corasick.js
False positive matches
Symptom: Words like "it is", "Choose", "Set up" are incorrectly linked to tiddler "FooBar" when a tiddler titled "xxx x FooBar" exists.
Root cause: The Aho-Corasick algorithm's output merging mechanism in buildFailureLinks caused failure link outputs to be incorrectly merged into intermediate nodes, resulting in false matches.
Fix:
Remove incorrect output merging in buildFailureLinks
Implement proper output collection during search by traversing the failure link chain
Add exact match validation: verify that the matched text exactly equals the pattern before accepting it
Add cycle detection to prevent infinite loops in failure link traversal
* Update text.js
First character disappearing
Symptom: When freelinking is enabled, the first character of matched words disappears (e.g., "The" becomes "he", "Filter" becomes "ilter").
Root cause: When the current tiddler's title was being filtered out, it was done too late in the process (during parse tree construction), causing text rendering issues.
Fix:
Move the current tiddler title filtering to the match validation stage (in processTextWithMatches)
Use substring instead of slice for better stability
Add proper case-insensitive comparison for title matching
* Update text.js
add back description
* Update aho-corasick.js
add back description
* Update tiddlywiki.info
add freelinks plugin for testing
* Update tiddlywiki.info
restore
* Update tiddlywiki.info
add freelinks plugin for test
* Update aho-corasick.js
erase comment
* Update text.js
erase comment
* Update aho-corasick.js
add back some commets
* Update aho-corasick.js
clean comment
* change note #9397
change note #9397
* Update tiddlywiki.info
reversed to original
* Update #9397.tid
update detail
* Update #9397.tid
another link added
* Update #9397.tid
add "release: 5.4.0"
* Update #9397.tid
some format modified
* 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
* Add comment to disable indent rule
* Enable no-eval rule
And only disable it in evalGlobal
* Diable indent rule in bootprefix
* Update change note
* 更新 boot.js
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
---------
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
* 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
* fix: should use tree.isSelfClosing || isVoidElement
* docs: about html
* fix: Void element without self-closing slash (e.g., <br> instead of <br/>)
* Update editions/test/tiddlers/tests/data/serialize/VoidElements.tid
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Leilei332 I hope you don't mind, but I've nominated you to be the lead of the QA team. If you're happy to take the role, please could you submit a community card?