* Fix Node.js deprecated warning
* Add ChangeNote
* Change deprecation to bugfix for DEP0169 warning
Updated change type from 'deprecation' to 'bugfix' for the Node.js server's handling of the DEP0169 warning.
01d3cde96 refactored parseMacroParameterAsAttribute to use a
do/while(false) construct with break statements - this updates
parseAttribute with an analogous refactoring for consistency
* Fix invalid source positions in parse tree nodes
Several wikitext rules recorded start and end offsets that did not match
the source they represent. The offsets are only used for source position
mapping, not rendering or serialization, so output is unchanged and
source.slice(start, end) now equals the node text.
* import: the filter attribute start was set to the whole source string
instead of the numeric offset. It used this.parser.source where it
meant this.parser.pos, so every \import node carried a copy of the
entire source as its start.
* codeinline: the text node end pointed past the closing backtick, so the
span included the closing delimiter and could read one or two characters
too far. It now ends where the content ends.
* wikilinkprefix and extlink: a suppressed link such as ~SomeLink or
~http://example.com produced a text node whose span included the
leading ~ while its text did not. The span now starts after the ~.
* Add 5.4.1 change note for #9882
Document the parse tree source position fixes: inline code, suppressed
external links, suppressed wikilinks, and the import filter rule.
* Add tests for parse tree source positions
Cover the four wikitext parser rules whose `start` and `end` offsets are
corrected in this PR: codeinline, extlink, wikilinkprefix, and import.
* Update aho-corasick.js
Optimized Aho-Corasick string matching algorithm implementation with enhanced
performance and error handling for TiddlyWiki freelinking functionality.
- Uses WeakMap for failure links. WeakMap keys are compared by object identity
(reference equality), which is required here because trie nodes are plain
objects — a regular {} map would not work because JavaScript only supports
string and Symbol keys, forcing object keys to be coerced to strings.
- Outputs are merged at build time (classic AC optimization), eliminating the
need to walk the failure chain during search.
- search() converts case per character to avoid Unicode index desync (e.g.
Turkish İ expands under toLowerCase(), shifting subsequent indices).
- No match count cap in search(); truncation is handled at the render stage
by processTextWithMatches() to avoid silently dropping matches mid-text.
- Optional word boundary filtering: CJK always allowed; Latin requires
non-word characters on both sides.
* Update text.js
- Render output capped by $:/config/Freelinks/MaxLinks (default 500).
The cap applies to the final set of non-overlapping rendered links, not to
the raw search results: search always runs to completion so that the
longest-match selection has full information. Text beyond the cap remains
as plain text rather than being silently omitted.
* Create config-Freelinks-MAX_LINKS_TIDDLER.tid
setting for MAX_LINKS_TIDDLER
* Update and rename config-Freelinks-MAX_LINKS_TIDDLER.tid to config-Freelinks-MaxLinks.tid
fix typo
* Update settings.tid
add MaxLinks setting
* Update readme.tid
add MaxLinks setting text
* Create #9836.tid
release note
* Update tiddlywiki.info
add freelinks for test build
* Update macros-view.tid
fix structure problem
* Update text.js
add IGNORE_CASE_TIDDLER to whitelist
* Rename #9836.tid to #9836.tid
move to 5.4.1
* Update text.js
I deleted the wrong line last time, so I'm putting it back.
* Update text.js
eslint fix
* Update text.js
refactor: inline plain-text via dynamic core reference
* Delete plugins/tiddlywiki/freelinks/plain-text.js
remove plain-text.js: now inlined via dynamic core reference
* Update text.js
restore plain-text.js, remove new Function extraction
* Add files via upload
restore plain-text.js, remove new Function extraction
* Update #9836.tid
update new bug
* Update #9836.tid
tw version fix
* Update tiddlywiki.info
reverse to original
* [ja_JP] Japanese translation update from commit: 3ed481b
* [ja_JP] Japanese translation update from commit: ad3587b
* [ja_JP] Japanese translation update from commit: 6bc77cf
* [ja_JP] Japanese translation update from commit: 5d1c1ea, c4991a5
* [ja_JP] Japanese translation update from commit: 37a4613
* [ja_JP] Japanese translation update from commit: 748ef8a
* [ja_JP] Japanese translation update from commit: 92caa73
* [ja_JP] Japanese translation update from commit: 87ba87b
* [ja_JP] Japanese translation update from commit: 15ba415
* [ja_JP] Japanese translation update from commit: 64ee20e
* [ja_JP] Japanese translation update from commit: 5d1c1ea,add3d42
* [ja_JP] Japanese translation update from commit: 64ee20e
* [ja_JP] Japanese translation update from commit: b001333
* [ja_JP] Japanese translation update from commit: b434b9d
* [ja_JP] Japanese translation update from commit: 3983086
* [ja_JP] Japanese translation update from commit: 3ed481b
* [ja_JP] Japanese translation update from commit: ad3587b
* [ja_JP] Japanese translation update from commit: 6bc77cf
* [ja_JP] Japanese translation update from commit: 5d1c1ea, c4991a5
* [ja_JP] Japanese translation update from commit: 37a4613
* [ja_JP] Japanese translation update from commit: 748ef8a
* [ja_JP] Japanese translation update from commit: 92caa73
* [ja_JP] Japanese translation update from commit: 87ba87b
* [ja_JP] Japanese translation update from commit: 15ba415
* [ja_JP] Japanese translation update from commit: 64ee20e
* [ja_JP] Japanese translation update from commit: 5d1c1ea,add3d42
* [ja_JP] Japanese translation update from commit: 64ee20e
* [ja_JP] Japanese translation update from commit: b001333
* [ja_JP] Japanese translation update from commit: b434b9d
* [ja_JP] Japanese translation update from commit: 3983086
* Fix RSOD when $tw.utils.addClass receives a class string with whitespace
PR #9251 replaced the manual setAttribute("class", ...) implementation of
$tw.utils.addClass/removeClass/toggleClass with direct Element.classList
calls. Unlike setAttribute, classList.add/remove/toggle throws
InvalidCharacterError on any token containing whitespace, so callers that
pass a whole class string (e.g. modal.js passing tiddler.fields.class)
now crash.
Manual repro on tw5-com: open SampleWizard, set the `class` field to
"aaa bbb", Done, open popup -> OK -> open nested popup -> RSOD.
Fix: split the className argument on whitespace in deprecated.js and feed
individual tokens to classList. A small splitClasses() helper keeps the
three functions symmetrical.
Adds adversarial regression tests in test-utils.js covering:
- ASCII whitespace variants (space, tab, CR, LF, mixed runs, padding)
- Unicode whitespace (U+00A0 non-breaking space)
- de-duplication across single and multiple calls
- remove/toggle no-op on missing tokens
- toggle with status undefined / true / false
- silent no-op for whitespace-only / empty / non-string / null input
- silent no-op when the element has no classList
* Move new tests to their own file
* Add backwards-compat regression tests for deprecated.js
Locks in pre-5.4.0 tolerant behaviour of $:/core/modules/utils/
deprecated.js helpers that regressed in PR #9251. Each spec targets an
edge-case input the current one-line modern equivalents reject:
- repeat: negative count / null / undefined str
- startsWith / endsWith: RegExp search arg
- stringifyNumber: null / undefined
- domContains: boolean return, self-check
- hasClass: null element, classless element
- getLocationPath: query preservation, hash stripping
(browser-only; pends in Node because the TW5 sandbox has no `window`)
Also picks up the addClass/removeClass/toggleClass whitespace specs
moved out of test-utils.js by the previous commit, so all deprecated.js
coverage lives together.
Fails 8 specs on current HEAD; the follow-up deprecated.js restoration
commit turns them green.
* Restore pre-5.4.0 behaviour of deprecated.js utilities
PR #9251 replaced several helpers in $:/core/modules/utils/deprecated.js
with one-line ES2017 equivalents that diverge from the originals on
edge-case inputs. Follow-up PRs fixed the most visible cases
(getLocationHash #9622, isDate #9771, addClass empty-string #9561 and
whitespace 005e17537); this commit closes the rest:
- repeat: manual loop tolerates negative count / null / undefined str
- startsWith / endsWith: substring compare tolerates RegExp search arg
- stringifyNumber: `num + ""` coercion tolerates null / undefined
- domContains: `a !== b && a.contains(b)` returns boolean, handles self
- hasClass: null-element guard, strict-false return
- getLocationPath: `toString().split("#")[0]` preserves the query
string in permalinks (startup/story.js:214, 217) -- the most visible
user-facing regression, causing ?lang=de etc. to silently drop.
IE-only fallbacks in Math.sign, strEndsWith, domContains, and
domMatchesSelector are removed; TW5 no longer supports IE.
Covered by the regression specs added in the previous commit.
* make comments more refined
PR #8093 used `child.children.length === 0` to distinguish a plain <option> from an <optgroup>. This test misfires when an <option> contains inline HTML.
E.g. tc-tiddlylink anchors auto-generated for "$:/..." titles.
So on refresh the option's `selected` state was never restored.
- This change switches to a tagName check.
- Adds a regression test plus a guard for the original PR #8092 optgroup
behaviour.
* fix: limit macro call parser to need >> to work, prevent > in regex
* test: add malformed macro parameter regression coverage
The parser fix on this branch only changes parseMacroParameterAsAttribute() when an unquoted value starts with <<, so the previous broader parser tests did not prove the regression. Add a focused structural test that fails without the guard and passes with it.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
* Revert "fix: limit macro call parser to need >> to work, prevent > in regex"
This reverts commit f96b062902.
* lint: test
* Reapply "fix: limit macro call parser to need >> to work, prevent > in regex"
This reverts commit 075f7cc282.
---------
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
The reAttributeName regexp in parseMacroParameterAsAttribute was too
permissive, allowing single-character names like dollar sign followed by
colon. This caused values such as dollar-colon-slash-plugins-foo to be
mis-parsed as a named parameter dollar with value slash-plugins-foo.
Fix: when the separator is colon (legacy syntax), require the parameter
name to match [A-Za-z0-9-_]+ (same as the historic parseMacroParameter).
When the separator is equals (new-style dynamic parameters from #9055),
the wide character set is preserved so that names like double-dollar-one
continue to work.
Adds regression test Transclude/Procedures/Dollar/Param.
* [ja_JP] Japanese translation update from commit: a71ac56
* [ja_JP] Japanese translation update from commit: 32a3a3e
* [ja_JP] Japanese translation update from commit: 65fcded
* [ja_JP] Japanese translation update from commit: a3acbaa
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\functions\Functions.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\functions\Functions.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\definitions\Base64.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\definitions\Definitions.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\definitions\Cascading Style Sheets.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\definitions\Tiddlyhost.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\reference\Reference.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Horizontal Rules in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\_tw_shared\doc-utilities\wikitext-macros.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Block Quotes in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Code Blocks in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Conditional Shortcut Syntax.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Block Quotes in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Block Quotes in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Dashes in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Description Lists in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Filtered Attribute Values.tid'
* [ja-JP] A little correction to the Japanese translation
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Formatting in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Headings in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Paragraphs in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Hard Linebreaks in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Hard_Linebreaks_with_CSS.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Hard_Linebreaks_with_CSS_-_Example.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\HTML Entities.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Literal Attribute Values.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Lists in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Tables in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Table Classes Captions Headers and Footers.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transcluded Attribute Values.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Utility Classes.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Widgets in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\parser\WikiText Parser Modes.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\HTML in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\HTML_Links_in_WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Typed Blocks in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Anchor Links using HTML.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Linking in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Macro Calls.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Macro Definitions.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Macro Parameter Handling.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Substituted Attribute Values.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Substituted Attribute Values.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\Concatenating variables to create a URL.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\Concatenating a text reference to create a URL.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\procedures\Procedure Calls.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\procedures\Procedure Definitions.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\procedures\Procedure Parameter Handling.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transclusion and Substitution.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transclusion in WikiText.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transclusion Basic Usage.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transclusion Basic Usage.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Transclusion with Templates.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Variable Attribute Values.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\variables\Behaviour of variables invoked via widget attributes.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Tables in WikiText CSS Utility Classes.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Widget Attributes.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\TemplateTiddlers.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\Transclusion.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\parser\table-example.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\parser\WikiText parser mode_ transclusion examples.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\TextReference.tid'
* [ja_JP] Japanese translation update from commit: 5d0d2b1, e8fe6b9, 33b2f51
* [ja_JP] Japanese translation update from commit: 3543fe5
* [ja_JP] Japanese translation update from commit: 9c09841
* [ja_JP] Japanese translation update from commit: 390b755, 3e966d4, d17525e
* [ja_JP] Japanese translation update from commit: 4007610, 65afdac
* [ja_JP] Japanese translation update from commit: 5e8420a, 2adf091
* [ja_JP] Japanese translation update from commit: b673651
* [ja_JP] Japanese translation update from commit: a494361, 3af2a0a, 0e765bd
* [ja_JP] Japanese translation update from commit: daa24a5
* [ja_JP] Japanese translation update from commit: daa24a5, 881aed8
* [ja_JP] Japanese translation update from commit: 98e7255
* [ja_JP] Japanese translation update from commit: 4d9e683, cd8b1fa, 0177f09
* [ja_JP] Japanese translation update from commit: a494361
* [ja_JP] Japanese translation update from commit: eee3a0c, 169a381, f4fd5e7, 6332089, 1ce9973, c05c0d3, 9268a8c, e16635a
* [ja_JP] Delete duplicate Japanese translation files
* [ja_JP] Japanese translation update from commit: c02c3a0
* [ja_JP] Japanese translation update from commit: 147d758
* [ja_JP] Japanese translation update from commit: c6e4b7a, c4e2793, 12630d4
* [ja_JP] Japanese translation update from commit: 11b09be
* [ja_JP] Japanese translation update from commit: f7e50e0, e9557b5, 4ccdaf3, 6f93ce6
* [ja_JP] Japanese translation update from commit: f7e50e0, e9557b5, e87dadd, 814353d, 35a7a66, 5d91c27
* [ja_JP] Japanese translation update from commit: f7e50e0, e9557b5, 35a7a66
* [ja_JP] Japanese translation update from commit: d880cb1, 5176f00, 814353d, 35a7a66
* [ja_JP] Japanese translation update from commit: 5e8420a, 2adf091
* wip: non-existent variables as attributes should be undefined
* wip: non-existent variables as attributes should be undefined
* tests: added missing test
* fix: restore mistakenly commited files
* fix: whitespace
* Add elements to gitignore, that are used for automated future test
* Add playwright configuration for Edge users that have no Chrome installed
* update tw-mcp setting
* fr-FR translation for the Alerts aria string
* fr-FR translation for WikiInformation-related strings
* fr-FR updates for TiddlySpot/TiddlyHost-related strings
* fr-FR translation for Stability- and InfoTab-related strings
* Document alternating table row styling
Resolves issue #8738 (and explains why my old wiki row styles were swapped).
* Make note more prominent
Use note macro for note
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
---------
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
* Update aho-corasick.js
fix transition logic; ensure complete outputs (via failure-output merge); clean up stats/build scoping; clarify CJK boundary behavior.
* Update text.js
implement global longest-match priority with overlap suppression; fix refresh invalidation to ignore $:/state and drafts; handle deletions precisely to avoid rebuilding on draft deletion; add defensive check for cached automaton presence.
* Update text.js
remove comment
* Update aho-corasick.js
remove comment
* Create #9672.tid
* Create #2026-0222.tid
* Delete editions/tw5.com/tiddlers/releasenotes/5.4.0/#2026-0222.tid
* Update text.js
remove \"
* Update and rename #9672.tid to #9676.tid
change to right number
* Update #9397.tid
update the existing release note with the new PR link instead of creating a new release note.
* Delete editions/tw5.com/tiddlers/releasenotes/5.4.0/#9676.tid
update the existing release note with the new PR link instead of creating a new release note.
* Rename #9397.tid to #9676.tid
update the existing release note with the new PR link instead of creating a new release note.
* Update and rename #9676.tid to #9397.tid
add link
* Rename #9397.tid to #9676.tid
* Update tiddlywiki.info
add plugin for test build
* Update tiddlywiki.info
reverse change, ready to be merge.
Where tabs have been selected using a filter it is sometimes useful to set the default tab dynamically from the filter results. In most of these cases it is also desirable that the state not be persistent.
* Short-circuit the import option; only show it when you click a button
* Add aira-label
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* perf(import): lazy evaluate import options panel, shortcircuit when no options, and flatten let widgets
- Only parse $:/Import JSON when user expands the import options panel
- Skip all import option logic if no $:/tags/ImportOptions tiddlers exist
- Merge nested let widgets into single multi-variable let for better performance and readability
- Add lingo for import options panel and no-match message
This greatly improves import speed for large wikis, especially when no import options are present.
* fix(import): use correct transclusion for aria-label on import options panel buttons\n\nBind aria-label using {{$:/language/Import/Listing/ImportOptions/Caption}} instead of macro literal, matching TiddlyWiki convention and ensuring accessibility tools read the correct label.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 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
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 381388f, 4dc89f6, 5fa1098
* [ja_JP] Japanese translation update from commit: 3c1d658
* [ja_JP] Japanese translation update from commit: 3c1d658
* [ja_JP] Japanese translation update from commit: 29a567f, 6aee5eb
* [ja_JP] Japanese translation update from commit: 0ac2b6c
* [ja_JP] Japanese translation update from commit: 1994574
* [ja_JP] Japanese translation update from commit: 5dfdbc8
* [ja_JP] Japanese translation update from commit: 1994574
* [ja_JP] Japanese translation update from commit: 81d8d67
* [ja_JP] Japanese translation update from commit: 81d8d67
* [ja_JP] Japanese translation update from commit: 4196d96
* [ja_JP] Japanese translation update from commit: 1994574
* [ja_JP] Japanese translation update from commit: 1994574
* [ja-JP] Japanese translation of 'community\project\TiddlyWiki Project.tid'
* [ja-JP] Japanese translation of 'community\docs\Community Cards Caveats.tid'
* [ja-JP] Japanese translation of 'community\project\TiddlyWiki People.tid'
* [ja-JP] Japanese translation of 'community\project\Vacant Positions.tid'
* [ja-JP] Japanese translation of 'community\docs\Community Cards.tid'
* [ja-JP] Japanese translation of 'community\docs\Displaying Community Cards.tid'
* [ja-JP] Japanese translation of 'community\docs\Submitting a Community Card.tid'
* [ja-JP] Japanese translation of 'community\tools\cards\Procedures.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\Resources.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\Resources.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\Community Links Aggregator.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\TiddlyWiki Newsletter.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\marketplace\TiddlyWiki Marketplace.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\HelloThumbnail.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\Improving TiddlyWiki Documentation.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\Translate TiddlyWiki into your language.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\TiddlyWiki_European_Meetup_2016.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\TiddlyWiki_European_Meetup_2017.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\editions\Tidme by oflg.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\editions\_Cardo-A Task and Project Management Wiki_ by David_Szego.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\editions\Drift by Tony K.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\editions\Stroll by David Gifford.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\plugins\GSD5.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\plugins\TiddlyWiki for Scholars.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\_TiddlyStudy_ by Kebi.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\resources\Wikilabs by PMario.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\resources\Projectify by Nicolas Petton.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\plugins\TW5-Graph by Flibbles.tid'
* [ja-JP] Japanese translation has been modified to display the ja-title.
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\articles\_A free, open source wiki revisited_ by Mark Gibbs, NetworkWorld.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\articles\_Notizen mit TiddlyWiki systemubergreifend nutzen_ by Michael Sonntag.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\articles\_Setting Up a Personal TiddlyWiki Server on OS X_ by Kris Johnson.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\articles\_TiddlyWiki 5 im Betatest_ by besim.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\articles\_TiddlyWiki_ by Sander de Boer.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\resources\TiddlyWiki Posts.tid'
* [ja-JP] A little correction to the Japanese translation
* 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
* Implement translations and indentation fixes for Advanced Info tab
* update change note
* Update CascadeInfo hint for current tiddler context
Clarified hint for cascade info in TiddlerInfo.
* docs: update github-links in release note #9634
* Add tm-save-dom-to-image message
* Temporarily include the geospatial plugin in the Netlify previews
* Scale should default to 1x
* Fix saving SVG images
* Add example of saving in SVG format
* Add library version number
* Document peculiarities of JPEG quality parameter
* Allow format="jpg" as well as the more technically correct "jpeg"
* Document what happens if the selector returns multiple DOM nodes
* Refactor image-to-dom to be a separate plugin
* Add support for oncompletion handler
* Remove ELS marker
Thanks @ericshulman
* 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
* UI: Show details on cascade filters in the "Advanced info" tab
* Update CascadeInfo.tid with new formatting
* Remove codeblock for conciseness
* Add change note for #9634
* Refactor CascadeInfo.tid for active filters
Improve filter logic and names of variable
* Change heading names
Updated the CascadeInfo.tid to change 'Active Filter Condition' to 'Active Cascade Filter' and adjusted the corresponding variables.
* [ja_JP] Japanese translation update from commit: 5ff4e02
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hire-jeremy\Hire Jeremy Sidebar Segment.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hire-jeremy\Hire Jeremy Sidebar Segment.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hire-jeremy\HireJeremy.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\thumbnails\HelloThumbnail - Community Survey.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\thumbnails\HelloThumbnail - TW5-Graph.tid'
* [ja_JP] Japanese translation update from commit: e3af967
* [ja_JP] Japanese translation update from commit: bdc0fe1
* [ja_JP] Japanese translation update from commit: e3af967
* [ja_JP] Japanese translation update from commit: bdc0fe1, e3af967
* [ja_JP] Japanese translation update from commit: fdafdba, e3af967, ecba671, 935e89b
* [ja_JP] Japanese translation update from commit: bdc0fe1, e3af967
* [ja_JP] Japanese translation update from commit: 0763ee5
* [ja_JP] Japanese translation update from commit: bdc0fe1
* [ja_JP] Japanese translation update from commit: b0d950f, 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: b0d950f, 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: 4dc89f6
* [ja_JP] Japanese translation update from commit: b0d950f
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\Commands.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\BuildCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\ClearPasswordCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\CommandsCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\DeleteTiddlersCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\EditionsCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\FetchCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\HelpCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\ImportCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\InitCommand.tid'
* [ja-JP] Japanese translation of 'editions\ja-JP\tiddlers\commands\ListenCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\LoadCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\MakeLibraryCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\OutputCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\PasswordCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\RenderCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\SaveCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\SaveWikiFolderCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\SetFieldCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\UnpackPluginCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\VerboseCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\VersionCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\RenderTiddlerCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\RenderTiddlersCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\SaveTiddlerCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\SaveTiddlersCommand.tid'
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\commands\ServerCommand.tid'
* Allow title, tags, text as focus for editing existing tiddlers
* Add release note
* Update description field
* refresh select widget, it .default parameter is changed
* remove default variable, because it is not needed anymore. select widget refresh handling deals with it
* Undo select widget changes
* 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.
* Refactored fields.tid
* Add changenote
* Optimize indentation and remove unneeded variable
* Consolidate some variables, procedures and functions
* Streamlined conditional and reveal structures
* Eliminate the fieldmangler widget
* Add tc-edit-field-exists to new field name input if applicable
* Call save-tiddler-actions on Ctrl-Enter in name input field
* 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
* Update documents for list-links-draggable Macro.tid
add : `<<.from-version 5.4.0>> `
* Update documentation for list-tagged-draggable Macro.tid
Added `<<.from-version 5.4.0>> `
* Update list-links-draggable Macro.tid
Correct extra space and remove colon
* Remove duplicate title view field in list.tid
Removed redundant view field for title in list.tid.
This PR should fix issue reported here: https://github.com/TiddlyWiki/TiddlyWiki5/issues/9555
* 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>
* [DOCS] Fix some typos in "days Operator (Examples)"
* Remove created and modified fields from days.tid
Remove created and modified fields from days.tid
* [DOCS] Make TaskManagementExamples more "hackable"
* Update modified date in TaskManagementExample.tid
* Fix modified date in TaskManagementExampleDraggable
These are mostly RGB entries that were previously missing, filled in with values from Vanilla.
The goal is still not to have any direct RGB colours in the palette, just computed colours derived from the base colours
The map filter run prefix is often used as a way to move a computed value in the input list into a variable so that it can be used as a parameter of a filter operator. The apply filter run prefix extends this idea to make the input list available as variables $1, $2 etc. Unlike the map prefix, the apply filter run is only evaluated once.
Instead, we'll special case transforming `<<colour X>>` into `[function[colour],[x]]`
Makes everything much easier and avoids all the kerfuffle of not being able to mix palettes
Also introduces palette inheritance
This finally allows us to have a palette that automatically switches between dark and light variants. The mechanism is more flexible that that, and allows for multiple colour schemes (night, morning, day, evening, for example) with automatic switching between them.
Will requires #7999 to work fully; for the moment when you switch between dark and light you will see the preview change, and then next time you select the palette it will be in the correct mode
Using the new wikify operator.
Currently has a bug whereby redirected colours (like "tiddler-background") do not work. Direct colours like "background" do work.
Note the hacks needed to makeFakeWidgetWithVariables work
The replacement library from https://colorjs.io/ is much, much larger but I think we can develop a custom build that uses treeshaking to whittle the code down to the bits that we need. @linonetwo does that sound feasible?
I intend the explore further improvements but I wanted to start by establishing a library that can do modern P3 and OKLCH colour calculations.
2024-10-21 09:03:39 +01:00
1098 changed files with 22687 additions and 6694 deletions
Get the browser location.hash. We don't use location.hash because of the way that Firefox auto-urldecodes it (see http://stackoverflow.com/questions/1703552/encoding-of-window-location-hash)
// Unregister the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting unregistering to an array of tiddler titles. Returns an array of the titles affected
report.push("TiddlyWiki has been started in [[safe mode|https://tiddlywiki.com/static/SafeMode.html]]. All plugins are temporarily disabled. Most customisations have been disabled by renaming the following tiddlers:")
report.push("TiddlyWiki has been started in [[safe mode|https://tiddlywiki.com/static/SafeMode.html]]. All plugins are temporarily disabled. Most customisations have been disabled by renaming the following tiddlers:");
// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS
Appearance/Hint: Ways to customise the appearance of your TiddlyWiki.
Basics/AnimDuration/Prompt: Animation duration
Basics/AutoFocus/Prompt: Default focus field for new tiddlers
Basics/AutoFocusEdit/Prompt: Default focus field for existing tiddlers
Basics/Caption: Basics
Basics/DefaultTiddlers/BottomHint: Use [[double square brackets]] for titles with spaces. Or you can choose to {{retain story ordering||$:/snippets/retain-story-ordering-button}}
LoadedModules/Hint: These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process.
Palette/Caption: Palette
Palette/CustomSettings/Prompt: Custom settings for current palette: <<palette-link>>
Palette/Editor/Clone/Caption: clone
Palette/Editor/Clone/Prompt: It is recommended that you clone this shadow palette before editing it
Palette/Editor/Delete/Hint: delete this entry from the current palette
Palette/Editor/Names/External/Show: Show color names that are not part of the current palette
Palette/Editor/Names/External/Show: Show inherited palette entries
Palette/Editor/Prompt/Modified: This shadow palette has been modified
Add a tracker to the filter tracker. Returns null if any of the parameters are invalid, or a tracker id if the tracker was added successfully. Options include:
filterString: the filter string to track
fnEnter: function to call when a title enters the filter results. Called even if the tiddler does not actually exist. Called as (title), and should return a truthy value that is stored in the tracker as the "enterValue"
fnLeave: function to call when a title leaves the filter results. Called as (title,enterValue)
fnChange: function to call when a tiddler changes in the filter results. Only called for filter results that identify a tiddler or shadow tiddler. Called as (title,enterValue), and may optionally return a replacement enterValue
fnProcess: function to call each time the tracker is processed, after any enter, leave or change functions are called. Called as (changes)
*/
track(options={}){
const{
filterString,
fnEnter,
fnLeave,
fnChange,
fnProcess
}=options;
constid=this.nextTrackerId++;
consttracker={
id,
filterString,
fnEnter,
fnLeave,
fnChange,
fnProcess,
previousResults:[],
resultValues:{}
};
this.trackers.set(id,tracker);
// Process the tracker
this.processTracker(id);
returnid;
}
untrack(id){
this.trackers.delete(id);
}
processTrackers(){
for(constidofthis.trackers.keys()){
this.processTracker(id);
}
}
processTracker(id){
consttracker=this.trackers.get(id);
if(!tracker)return;
constresults=[];
// Evaluate the filter and remove duplicate results
Parse a macro parameter as an attribute. Returns null if not found, otherwise returns {name:, type: "filtered|string|indirect|macro", value|filter|textReference:, start:, end:,}, with the name being optional
Look for an HTML attribute definition. Returns null if not found, otherwise returns {type: "attribute", name:, type: "filtered|string|indirect|macro", value|filter|textReference:, start:, end:,}
Look for an HTML attribute definition. Returns null if not found, otherwise returns {name:, type: "filtered|string|indirect|macro", value|filter|textReference:, start:, end:,}
// Value looks like a macro invocation (starts with << with a closing >> ahead) but does not parse as one. Return null so the enclosing tag fails to parse rather than silently binding the attribute to "true" and treating the remainder as further attributes (restores v5.3.8 behaviour)
returnnull;
}
node.type="string";
node.value="true";
}while(false);
}else{
// If there is no equals sign or colon, then this is an attribute with no value, defaulting to "true"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.