* 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>
* refactor: extract a new $tw.wiki.getParser
* feat: allow $tw.utils.getParseTreeText to render other rules' text
* feat: two example getText handler
* Revert "feat: allow $tw.utils.getParseTreeText to render other rules' text"
This reverts commit 8a12498fa9.
* refactor: keep original getParseTreeText not touched
* refactor: use serialize in rules
* refactor: $tw.utils.extend({},options) -> options || {}
* Update codeinline.js
* Create test-wikitext-serialize.js
* DEBUG: only run my tests for development, remove before PR merge
* lint: if
* feat: add rule: 'parseBlock' metadata
* feat: handle tailing \n that may be missing
* feat: allow recursive
* feat: generate more rule and tests
* feat: generate more rule and tests
* fix: remove pragma:true, otherwise following text will become children of it
* fix: condition manually
Deekseek is silly
* fix: some test
* fix: some test
* feat: $tw.utils.serializeAttribute
* fix: use "" for string param
* feat: list
* refactor: ' -> "
* fix: parsemode don't have node
* fix: render invisible comment and parsemode as data element
* feat: add void: true, in ast node to prevent render
* feat: use void widget, so methods always return a widget
* feat: ast to use new widget type void
* test: add rule: 'parseBlock' and isRuleEnd: true
* lint: quote
* Update widget.js
* fix: void node need to handle its children
* Update test-wikitext-parser.js
* lint: quote
* Update void.js
* Update test-wikitext-parser.js
* fix: macrodef with comment (void node) not working
* lint: ' -> "
* feat: add to styleblock
* feat: styleblock
* feat: styleinline
* Update table.js
* lint: useless comments
* feat: transcludeblock
* refactor: reuse block on inline when possible
* feat: use void node to carry important info for typedblock
* feat: run all tests
* lint: useless ai generated comments
* Update conditional.js to not include space
* Update test-wikitext-serialize.js
* Update conditional.js
* refactor: move tiddlers to /data
* refactor: no need for new $tw.Wiki()
* lint: double quote
* refactor: lowercase the parseblock rule name
* fix: Wiki parser initialize blockRuleClasses only when first new an instance
* feat: restore inline macro def
* fix: macro in widget param
* fix: positional attribute in macro call
* fix: table space and horizrule block new line
* feat: make sure block rule all have \n\n for visiblity
* lint: function param
* fix: empty list item
* feat: add \n\n based on isBlock, if could also be inline
* fix: conditional without elseif
* refactor: use isBlock in macrodef to know inline or block
* fix: link may not have attribute and children
* DEBUG: render result and diff below body only on browser
DEBUG: render result below body only on browser
DEBUG: render result below body
DEBUG: fix build
DEBUG: show render result as ViewTemplate
* fix: remove pad space in />
* test: remove pad space in />
* Revert DEBUG: render result and diff below body only on browser
* refactor: fold commentText variable
* refactor: fold long comment
* fix: double quotes for parameter values
* Update void.js
* refactor: move all exports.serialize = function(tree,serialize) { to plugin
* fix: expost listTypes from core, and require it in plugin
* refactor: move serializeWikitextParseTree to plugin and init it
* refactor: move serializeAttribute util also to the plugin
* fix: Delete unused file
* Update macrodef.js
* Update test-wikitext-parser.js
* lint: fix
* Update plugins/tiddlywiki/wikitext-serialize/rules/filteredtranscludeblock.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update core/modules/widgets/void.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update plugins/tiddlywiki/wikitext-serialize/rules/list.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update plugins/tiddlywiki/wikitext-serialize/rules/list.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update plugins/tiddlywiki/wikitext-serialize/rules/styleblock.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Remove unused methods from VoidNodeWidget
Deleted render, execute, and refresh methods from VoidNodeWidget as they are no longer needed. The widget now only inherits from the base Widget class and exports the constructor.
* docs: about regex in styleinline.js
* Update parsetree.js
* Update core/modules/widgets/void.js
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
* feat: Ensure at least one space after the style/class
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
* eslint manual fixes
- update eslint to 2017
- add self to forbidden globals
- fix a few unfixable bugs caught by eslint
- convert newer features in twitter-archivist
* add eslint plugin to forbid features
* import changes from @saqimtiaz
* add package.json changes
* Move Node.js specific files out of the core plugin
* Package server files as new $:/core-server plugin
* Missed commander.js
* Fix crash in browser
* Extend server-only mechanism to be usable by other plugins
* in
* Revert "Extend server-only mechanism to be usable by other plugins"
This reverts commit 3faf503073.
* Revert "in"
This reverts commit b80213128f.
* Reapply "Extend server-only mechanism to be usable by other plugins"
This reverts commit c6c83bc18b.
* Fix test failure
* Move filesystem utilities into core-server
* Move old-style release notes out of the way
* Move the 5.4.0 release note into the right place
* Revert "Move the 5.4.0 release note into the right place"
This reverts commit 3f5c2bfba3.
* Revert "Move old-style release notes out of the way"
This reverts commit ee16e48a43.
This commit fixes#8976, and adds tests for procedures, functions,
and macro definitions with spaces after the end statements, both
with and without names.
* feat: add removeEventListener , and allow register multiple listeners
Instead of remove old one when add new one.
* refactor: simplify the logic, similar to wiki class's addEventListener
* feat: prevent adding the same event listener multiple times
* add tc-tesc-case class to testcase-widget
* add default and custom class to testcase-widget
* Testcase widget update tests for default and custom class definitions
* allow internal link to be wikitex formatted as bold
* fix typo
* add new classes to all emphasis and inline-code elements
* fix tests for new STRONG classes
* Extend element widget with support for CSS custom properties.
* chore: added tests
* chore: code style
* docs: added documentation for support for CSS custom properties
* docs: added documentation for support for CSS custom properties
* create empty tags only if template or additionalFields contain a tags-field
* fix typos
* add tests for tm-new-tiddler message
* tm-new-tiddler add standard test with tags field
* Add test for existing table parsing functionality
* Add expected start/end for tr elements in table wikitext test
* Populate start/end properties for tr elements
* Add expected start/end for th/td elements in table wikitext test
* Populate start/end properties for th/td elements
* fix: ignore self-referential transclusion
* feat: support old <$transclude tiddler param
* fix: restore old behavior: include itself like backlinks[]
* refactor: use LinkedList in transcludes[] and backtranscludes[]
* fix: only fallback to title when {{!!xxx}}, not when input is empty
* refactor: move transcludes ast extractor to a file
* refactor: move links ast extractor to a file
* Revert "refactor: move links ast extractor to a file"
This reverts commit 5600a00cd8.
* Revert "refactor: move transcludes ast extractor to a file"
This reverts commit 61d5484f09.
* lint: use pushTop and remove space
commit 5687d9f44b
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Wed Dec 6 11:33:43 2023 +0800
Fix for html parser
commit df0a1b184e
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Wed Dec 6 02:47:47 2023 +0800
Fix HTML AST node boundary parsing in WikiText
commit ac8dda0a1a
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Sat Dec 2 13:02:52 2023 +0800
update test-wikitext-parser.js, change for-const-of -to .utils.each, add more range attributes
commit e2b9a4ed57
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Wed Nov 29 22:35:39 2023 +0800
Add more start-end range attributes for AST
commit d3e62ec56a
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Wed Nov 29 20:45:00 2023 +0800
Add rule attribute for WikiText AST nodes
commit 4200495055
Author: Gk0Wk <nmg_wk@yeah.net>
Date: Wed Nov 29 15:48:38 2023 +0800
Add start and end properties to AST nodes for list, codeblock, and all other elements