tiddlywiki 5.3.1 → 5.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +9 -2
- package/bin/build-site.sh +25 -5
- package/bin/ci-test.sh +16 -0
- package/boot/boot.js +12 -0
- package/core/language/en-GB/Exporters.multids +1 -1
- package/core/language/en-GB/Help/commands.tid +1 -1
- package/core/language/en-GB/Help/savewikifolder.tid +2 -2
- package/core/language/en-GB/Help/server.tid +1 -1
- package/core/language/en-GB/Types/image_svg_xml.tid +1 -1
- package/core/language/en-GB/Types/image_x-icon.tid +1 -1
- package/core/modules/commands/savetiddlers.js +1 -1
- package/core/modules/editor/engines/framed.js +1 -1
- package/core/modules/editor/engines/simple.js +1 -1
- package/core/modules/filters/all.js +5 -5
- package/core/modules/filters/encodings.js +6 -2
- package/core/modules/filters/json-ops.js +95 -1
- package/core/modules/filters/listops.js +1 -0
- package/core/modules/parsers/textparser.js +5 -4
- package/core/modules/parsers/wikiparser/rules/conditional.js +120 -0
- package/core/modules/parsers/wikiparser/wikiparser.js +31 -8
- package/core/modules/savers/github.js +1 -1
- package/core/modules/startup/windows.js +2 -1
- package/core/modules/syncer.js +160 -122
- package/core/modules/utils/dom/dom.js +3 -3
- package/core/modules/utils/dom/http.js +1 -1
- package/core/modules/utils/fakedom.js +5 -1
- package/core/modules/utils/utils.js +27 -4
- package/core/modules/widgets/browse.js +10 -0
- package/core/modules/widgets/button.js +15 -3
- package/core/modules/widgets/checkbox.js +11 -0
- package/core/modules/widgets/draggable.js +16 -5
- package/core/modules/widgets/droppable.js +14 -2
- package/core/modules/widgets/image.js +19 -14
- package/core/modules/widgets/link.js +12 -2
- package/core/modules/widgets/list.js +176 -19
- package/core/modules/widgets/radio.js +4 -0
- package/core/modules/widgets/range.js +4 -0
- package/core/modules/widgets/scrollable.js +66 -1
- package/core/modules/widgets/select.js +34 -26
- package/core/modules/widgets/transclude.js +19 -6
- package/core/modules/widgets/widget.js +35 -19
- package/core/modules/wiki.js +2 -2
- package/core/templates/html-json-skinny-tiddler.tid +0 -1
- package/core/templates/html-json-tiddler.tid +1 -1
- package/core/templates/store.area.template.html.tid +4 -4
- package/core/ui/ControlPanel/Basics.tid +2 -2
- package/core/ui/EditTemplate/body/default.tid +12 -8
- package/core/ui/EditTemplate/fields.tid +2 -2
- package/core/ui/EditTemplate/type.tid +1 -1
- package/core/ui/EditorToolbar/preview.tid +6 -0
- package/core/ui/PageTemplate.tid +1 -1
- package/core/ui/ViewTemplate/subtitle.tid +2 -5
- package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
- package/core/wiki/macros/colour-picker.tid +6 -6
- package/core/wiki/macros/image-picker.tid +5 -5
- package/core/wiki/macros/list.tid +95 -78
- package/core/wiki/macros/tabs.tid +9 -1
- package/core/wiki/macros/tag-picker.tid +2 -2
- package/core/wiki/macros/tag.tid +2 -1
- package/core/wiki/macros/toc.tid +2 -2
- package/editions/de-AT/tiddlers/HelloThere.tid +2 -2
- package/editions/de-AT/tiddlers/community/Fur_Entwickler.tid +1 -1
- package/editions/de-AT-server/tiddlers/system/favicon.png +0 -0
- package/editions/{es-ES-server/tiddlers/system/favicon.ico.meta → de-AT-server/tiddlers/system/favicon.png.meta} +1 -1
- package/editions/dev/tiddlers/images/favicon.png +0 -0
- package/editions/{de-AT-server/tiddlers/system/favicon.ico.meta → dev/tiddlers/images/favicon.png.meta} +1 -1
- package/editions/dev/tiddlers/new/HookMechanism.tid +28 -3
- package/editions/empty/tiddlywiki.info +5 -2
- package/editions/es-ES/tiddlers/Forums.tid +4 -5
- package/editions/es-ES/tiddlers/HelloThere.tid +2 -2
- package/editions/es-ES/tiddlers/Typography.tid +1 -1
- package/editions/es-ES/tiddlers/images/favicon.png +0 -0
- package/editions/{dev/tiddlers/images/favicon.ico.meta → es-ES/tiddlers/images/favicon.png.meta} +1 -1
- package/editions/es-ES/tiddlers/images/green_favicon.png +0 -0
- package/editions/es-ES/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
- package/editions/es-ES-server/tiddlers/system/favicon.png +0 -0
- package/editions/{es-ES/tiddlers/images/favicon.ico.meta → es-ES-server/tiddlers/system/favicon.png.meta} +1 -1
- package/editions/fr-FR/tiddlers/images/favicon.png +0 -0
- package/editions/fr-FR/tiddlers/images/favicon.png.meta +2 -0
- package/editions/fr-FR/tiddlers/images/green_favicon.png +0 -0
- package/editions/fr-FR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
- package/editions/fr-FR-server/tiddlers/system/favicon.png +0 -0
- package/editions/fr-FR-server/tiddlers/system/favicon.png.meta +2 -0
- package/editions/highlightdemo/tiddlywiki.info +1 -1
- package/editions/ja-JP/tiddlers/images/favicon.png +0 -0
- package/editions/ja-JP/tiddlers/images/favicon.png.meta +2 -0
- package/editions/ja-JP/tiddlers/images/green_favicon.png +0 -0
- package/editions/ja-JP/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
- package/editions/katexdemo/tiddlywiki.info +1 -1
- package/editions/ko-KR/tiddlers/images/favicon.png +0 -0
- package/editions/ko-KR/tiddlers/images/favicon.png.meta +2 -0
- package/editions/ko-KR/tiddlers/images/green_favicon.png +0 -0
- package/editions/ko-KR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
- package/editions/ko-KR-server/tiddlers/system/favicon.png +0 -0
- package/editions/ko-KR-server/tiddlers/system/favicon.png.meta +2 -0
- package/editions/pluginlibrary/tiddlywiki.info +2 -2
- package/editions/prerelease/tiddlers/{Release 5.3.2.tid → Release 5.3.3.tid } +23 -25
- package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
- package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
- package/editions/prerelease/tiddlers/system/favicon.png +0 -0
- package/editions/prerelease/tiddlers/system/favicon.png.meta +2 -0
- package/editions/prerelease/tiddlers/system/temp-my-scroll-position.tid +3 -0
- package/editions/resumebuilder/tiddlywiki.info +1 -1
- package/editions/server/tiddlywiki.info +1 -1
- package/editions/server-external-js/tiddlywiki.info +1 -1
- package/editions/test/playwright.spec.js +25 -0
- package/editions/test/tiddlers/tests/data/conditionals/Basic.tid +26 -0
- package/editions/test/tiddlers/tests/data/conditionals/BlockMode.tid +37 -0
- package/editions/test/tiddlers/tests/data/conditionals/Else.tid +26 -0
- package/editions/test/tiddlers/tests/data/conditionals/Elseif.tid +32 -0
- package/editions/test/tiddlers/tests/data/conditionals/MissingEndIf.tid +26 -0
- package/editions/test/tiddlers/tests/data/conditionals/MultipleResults.tid +12 -0
- package/editions/test/tiddlers/tests/data/conditionals/Nested.tid +38 -0
- package/editions/test/tiddlers/tests/data/conditionals/NestedElseif.tid +60 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplates.tid +29 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesInBlockMode.tid +32 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesOverriddenByAttributes.tid +33 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplate.tid +30 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplateInBlockMode.tid +32 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithLimit.tid +25 -0
- package/editions/test/tiddlers/tests/data/list-widget/WithMissingTemplate.tid +26 -0
- package/editions/test/tiddlers/tests/data/transclude/CustomWidget-CodeblockOverride-TextParser.tid +20 -0
- package/editions/test/tiddlers/tests/data/transclude/Variable-Refreshing.tid +27 -0
- package/editions/test/tiddlers/tests/data/transclude/Variable-Static.tid +15 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/ButtonWidget-DataAttributes.tid +27 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/CheckboxWidget-DataAttributes.tid +22 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DraggableWidget-DataAttributes.tid +27 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DroppableWidget-DataAttributes.tid +27 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/LinkWidget-DataAttributes.tid +27 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/OrderedStyleAttributes.tid +15 -0
- package/editions/test/tiddlers/tests/data/widgets/DataAttributes/SelectWidget-DataAttributes.tid +27 -0
- package/editions/test/tiddlers/tests/data/widgets/ElementWidgetEventAttributes.tid +15 -0
- package/editions/test/tiddlers/tests/data/widgets/ElementWidgetStyleAttributes.tid +15 -0
- package/editions/test/tiddlers/tests/test-filters.js +1 -0
- package/editions/test/tiddlers/tests/test-json-filters.js +40 -0
- package/editions/test/tiddlers/tests/test-utils.js +23 -0
- package/editions/test/tiddlers/tests/test-widget.js +62 -0
- package/editions/tw.org/tiddlers/$__favicon.ico.png +0 -0
- package/editions/tw.org/tiddlywiki.info +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{classic.tiddlywiki.com.ico.meta → classic.tiddlywiki.com.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{links.tiddlywiki.org.ico.meta → links.tiddlywiki.org.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.dev.ico.meta → tiddlywiki.com.dev.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.ico.meta → tiddlywiki.com.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.prerelease.ico.meta → tiddlywiki.com.prerelease.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.png +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.upgrade.ico.meta → tiddlywiki.com.upgrade.png.meta} +1 -1
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.png +0 -0
- package/editions/tw5.com/tiddlers/about/Archive.tid +82 -0
- package/editions/tw5.com/tiddlers/community/Chinese Community.tid +20 -0
- package/editions/tw5.com/tiddlers/community/editions/Tidme by oflg.tid +16 -0
- package/editions/tw5.com/tiddlers/community/plugins/FSRS4TW by oflg.tid +10 -0
- package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +3 -1
- package/editions/tw5.com/tiddlers/concepts/Macros.tid +7 -3
- package/editions/tw5.com/tiddlers/concepts/Title List.tid +5 -1
- package/editions/tw5.com/tiddlers/filters/decodebase64 Operator.tid +6 -1
- package/editions/tw5.com/tiddlers/filters/encodebase64 Operator.tid +6 -1
- package/editions/tw5.com/tiddlers/filters/examples/jsonset.tid +59 -0
- package/editions/tw5.com/tiddlers/filters/examples/jsonstringify Operator (Examples).tid +7 -5
- package/editions/tw5.com/tiddlers/filters/examples/stringify_Operator_(Examples).tid +5 -3
- package/editions/tw5.com/tiddlers/filters/jsonextract.tid +8 -0
- package/editions/tw5.com/tiddlers/filters/jsonget.tid +8 -0
- package/editions/tw5.com/tiddlers/filters/jsonset.tid +64 -0
- package/editions/tw5.com/tiddlers/filters/jsonstringify Operator.tid +14 -15
- package/editions/tw5.com/tiddlers/filters/jsontype.tid +8 -0
- package/editions/tw5.com/tiddlers/filters/stringify_Operator.tid +12 -15
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +1 -1
- package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +6 -1
- package/editions/tw5.com/tiddlers/howtos/Constructing JSON tiddlers.tid +3 -3
- package/editions/tw5.com/tiddlers/images/Favicon template.svg +296 -0
- package/editions/tw5.com/tiddlers/images/Favicon template.svg.meta +3 -0
- package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
- package/editions/tw5.com/tiddlers/images/favicon.png +0 -0
- package/editions/tw5.com/tiddlers/images/favicon.png.meta +2 -0
- package/editions/tw5.com/tiddlers/images/green_favicon.png +0 -0
- package/editions/tw5.com/tiddlers/images/green_favicon.png.meta +2 -0
- package/editions/tw5.com/tiddlers/macros/CoreMacros.tid +1 -1
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +12 -5
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-permalink.tid +1 -1
- package/editions/tw5.com/tiddlers/pragmas/Pragma_ _whitespace.tid +7 -3
- package/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid +3 -1
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.0.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.1.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.10.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.11.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.12.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.13.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.14.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.15.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.16.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.17.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.18.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.19.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.2.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.20.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.21.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.3.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.4.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.5.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.6.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.7.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.9.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.2.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.3.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.6.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.7.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.0.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid +8 -1
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid +184 -0
- package/editions/tw5.com/tiddlers/releasenotes/Releases.tid +3 -1
- package/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +5 -0
- package/editions/tw5.com/tiddlers/widgets/BrowseWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/Custom Widgets.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +3 -2
- package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +1 -1
- package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +2 -1
- package/editions/tw5.com/tiddlers/widgets/LinkWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +25 -2
- package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid +27 -2
- package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +4 -1
- package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +17 -1
- package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/wikitext/Conditional Shortcut Syntax.tid +62 -0
- package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -3
- package/editions/tw5.com/tiddlywiki.info +9 -3
- package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png +0 -0
- package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png.meta +2 -0
- package/editions/zh-Hans/tiddlers/images/favicon.png +0 -0
- package/editions/zh-Hans/tiddlers/images/favicon.png.meta +2 -0
- package/editions/zh-Hans/tiddlers/images/green_favicon.png +0 -0
- package/editions/zh-Hans/tiddlers/images/green_favicon.png.meta +2 -0
- package/editions/zh-Hant/tiddlers/images/favicon.png +0 -0
- package/editions/zh-Hant/tiddlers/images/favicon.png.meta +2 -0
- package/editions/zh-Hant/tiddlers/images/green_favicon.png +0 -0
- package/editions/zh-Hant/tiddlers/images/green_favicon.png.meta +2 -0
- package/languages/de-DE/Exporters.multids +1 -1
- package/languages/de-DE/Help/commands.tid +2 -2
- package/languages/de-DE/Help/server.tid +1 -1
- package/languages/de-DE/Types/image_x-icon.tid +1 -1
- package/languages/es-ES/Buttons.multids +2 -0
- package/languages/es-ES/Fields.multids +4 -0
- package/languages/es-ES/Help/listen.tid +1 -1
- package/languages/es-ES/Help/savewikifolder.tid +16 -1
- package/languages/es-ES/Help/server.tid +1 -1
- package/languages/es-ES/Misc.multids +3 -0
- package/languages/es-ES/SiteTitle.tid +1 -1
- package/languages/pl-PL/Exporters.multids +1 -1
- package/languages/pl-PL/Help/commands.tid +1 -1
- package/languages/pl-PL/Help/savewikifolder.tid +3 -1
- package/languages/pl-PL/Help/server.tid +1 -1
- package/languages/zh-Hans/Exporters.multids +1 -1
- package/languages/zh-Hans/Help/commands.tid +1 -1
- package/languages/zh-Hans/Help/server.tid +1 -1
- package/languages/zh-Hans/Types/image_svg_xml.tid +1 -1
- package/languages/zh-Hans/Types/image_x-icon.tid +1 -1
- package/languages/zh-Hant/Exporters.multids +1 -1
- package/languages/zh-Hant/Help/commands.tid +1 -1
- package/languages/zh-Hant/Help/server.tid +1 -1
- package/languages/zh-Hant/Types/image_svg_xml.tid +1 -1
- package/languages/zh-Hant/Types/image_x-icon.tid +1 -1
- package/licenses/cla-individual.md +10 -0
- package/package.json +4 -1
- package/playwright.config.js +46 -0
- package/plugins/tiddlywiki/codemirror/styles.tid +5 -0
- package/plugins/tiddlywiki/comments/styles.tid +8 -8
- package/plugins/tiddlywiki/dynannotate/docs/readme.tid +1 -0
- package/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +28 -27
- package/plugins/tiddlywiki/evernote/modules/enex-deserializer.js +82 -23
- package/plugins/tiddlywiki/evernote/readme.tid +1 -0
- package/plugins/tiddlywiki/evernote/samples/sample-enex-with-image.xml.enex +2 -2
- package/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js +1 -1
- package/plugins/tiddlywiki/qrcode/barcodereader.js +90 -0
- package/plugins/tiddlywiki/qrcode/docs/barcodereader.tid +44 -0
- package/plugins/tiddlywiki/qrcode/{doc/usage.tid → docs/makeqr.tid} +4 -4
- package/plugins/tiddlywiki/qrcode/docs.tid +3 -0
- package/plugins/tiddlywiki/qrcode/{MakeContactQR.tid → examples/make/MakeContactQR.tid} +1 -1
- package/plugins/tiddlywiki/qrcode/{MakeGenericQR.tid → examples/make/MakeGenericQR.tid} +1 -1
- package/plugins/tiddlywiki/qrcode/{MakeWifiQR.tid → examples/make/MakeWifiQR.tid} +1 -1
- package/plugins/tiddlywiki/qrcode/examples/make/make.tid +5 -0
- package/plugins/tiddlywiki/qrcode/examples/read/BarCodeReader.tid +17 -0
- package/plugins/tiddlywiki/qrcode/examples/read/read.tid +5 -0
- package/plugins/tiddlywiki/qrcode/examples.tid +3 -0
- package/plugins/tiddlywiki/qrcode/files/html5-qrcode/LICENSE +201 -0
- package/plugins/tiddlywiki/qrcode/files/html5-qrcode/README.md +398 -0
- package/plugins/tiddlywiki/qrcode/files/html5-qrcode/html5-qrcode.min.js +1 -0
- package/plugins/tiddlywiki/qrcode/files/tiddlywiki.files +20 -4
- package/plugins/tiddlywiki/qrcode/makeqr.js +1 -1
- package/plugins/tiddlywiki/qrcode/plugin.info +1 -1
- package/plugins/tiddlywiki/qrcode/readme.tid +15 -0
- package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +0 -1
- package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +1 -2
- package/plugins/tiddlywiki/upgrade/UpgradeWizard.tid +2 -2
- package/plugins/tiddlywiki/upgrade/favicon.png +0 -0
- package/plugins/tiddlywiki/upgrade/favicon.png.meta +2 -0
- package/readme.md +1 -1
- package/themes/tiddlywiki/vanilla/base.tid +37 -7
- package/themes/tiddlywiki/vanilla/settings.multids +1 -1
- package/editions/de-AT-server/tiddlers/system/favicon.ico +0 -0
- package/editions/dev/tiddlers/images/favicon.ico +0 -0
- package/editions/es-ES/tiddlers/images/favicon.ico +0 -0
- package/editions/es-ES/tiddlers/images/green_favicon.ico +0 -0
- package/editions/es-ES-server/tiddlers/system/favicon.ico +0 -0
- package/editions/fr-FR/tiddlers/images/favicon.ico +0 -0
- package/editions/fr-FR/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/fr-FR/tiddlers/images/green_favicon.ico +0 -0
- package/editions/fr-FR-server/tiddlers/system/favicon.ico +0 -0
- package/editions/fr-FR-server/tiddlers/system/favicon.ico.meta +0 -2
- package/editions/ja-JP/tiddlers/images/favicon.ico +0 -0
- package/editions/ja-JP/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/ja-JP/tiddlers/images/green_favicon.ico +0 -0
- package/editions/ko-KR/tiddlers/images/favicon.ico +0 -0
- package/editions/ko-KR/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/ko-KR/tiddlers/images/green_favicon.ico +0 -0
- package/editions/ko-KR-server/tiddlers/system/favicon.ico +0 -0
- package/editions/ko-KR-server/tiddlers/system/favicon.ico.meta +0 -2
- package/editions/prerelease/tiddlers/system/favicon.ico +0 -0
- package/editions/prerelease/tiddlers/system/favicon.ico.meta +0 -2
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.ico +0 -0
- package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.ico +0 -0
- package/editions/tw5.com/tiddlers/community/editions/TiddlyMemo by oflg.tid +0 -16
- package/editions/tw5.com/tiddlers/community/tutorials/Install and run TiddlyWiki on a CentOS 6 VPS using Nginx.tid +0 -16
- package/editions/tw5.com/tiddlers/images/favicon.ico +0 -0
- package/editions/tw5.com/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/tw5.com/tiddlers/images/green_favicon.ico +0 -0
- package/editions/tw5.com/tiddlers/images/green_favicon.ico.meta +0 -2
- package/editions/tw5.com-server/tiddlers/system/favicon.ico +0 -0
- package/editions/tw5.com-server/tiddlers/system/favicon.ico.meta +0 -2
- package/editions/zh-Hans/tiddlers/images/favicon.ico +0 -0
- package/editions/zh-Hans/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/zh-Hans/tiddlers/images/green_favicon.ico +0 -0
- package/editions/zh-Hans/tiddlers/images/green_favicon.ico.meta +0 -2
- package/editions/zh-Hant/tiddlers/images/favicon.ico +0 -0
- package/editions/zh-Hant/tiddlers/images/favicon.ico.meta +0 -2
- package/editions/zh-Hant/tiddlers/images/green_favicon.ico +0 -0
- package/editions/zh-Hant/tiddlers/images/green_favicon.ico.meta +0 -2
- package/plugins/tiddlywiki/qrcode/doc/examples.tid +0 -3
- package/plugins/tiddlywiki/qrcode/doc/readme.tid +0 -13
- package/plugins/tiddlywiki/upgrade/favicon.ico +0 -0
- package/plugins/tiddlywiki/upgrade/favicon.ico.meta +0 -2
- /package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.org.ico.meta → tiddlywiki.org.png.meta} +0 -0
- /package/plugins/tiddlywiki/qrcode/files/{LICENSE → qrcode/LICENSE} +0 -0
- /package/plugins/tiddlywiki/qrcode/files/{README.md → qrcode/README.md} +0 -0
- /package/plugins/tiddlywiki/qrcode/files/{qrcode.js → qrcode/qrcode.js} +0 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Transclude/Variable/Refreshing
|
2
|
+
description: Transcluding and refreshing a function
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\function list-join(filter, sep:", ") [subfilter<filter>join<sep>]
|
9
|
+
|
10
|
+
<$tiddler tiddler="TestData">
|
11
|
+
|
12
|
+
<<list-join "[enlist{!!items}]">>
|
13
|
+
|
14
|
+
</$tiddler>
|
15
|
+
|
16
|
+
+
|
17
|
+
title: TestData
|
18
|
+
|
19
|
+
|
20
|
+
+
|
21
|
+
title: Actions
|
22
|
+
|
23
|
+
<$action-setfield $tiddler="TestData" items={{{ [range[10]join[ ]] }}}/>
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p>1, 2, 3, 4, 5, 6, 7, 8, 9, 10</p>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
title: Transclude/Variable/Static
|
2
|
+
description: Transcluding a function
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
items: 1 2 3 4 5 6 7 8 9 10
|
8
|
+
|
9
|
+
\function list-join(filter, sep:", ") [subfilter<filter>join<sep>]
|
10
|
+
|
11
|
+
<<list-join "[enlist{!!items}]">>
|
12
|
+
+
|
13
|
+
title: ExpectedResult
|
14
|
+
|
15
|
+
<p>1, 2, 3, 4, 5, 6, 7, 8, 9, 10</p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/ButtonWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Widgets/DataAttributes/ButtonWidget
|
2
|
+
description: Data Attributes for ButtonWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$button tag="div" class="myclass" data-title="mytiddler" style.color="red" onclick="clicked">
|
10
|
+
my tiddler
|
11
|
+
</$button>
|
12
|
+
<$button tag="div" class="myclass" data-title={{Temp}} style.color={{{ [[Temp]get[color]] }}}>
|
13
|
+
hello
|
14
|
+
</$button>
|
15
|
+
+
|
16
|
+
title: Actions
|
17
|
+
|
18
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
19
|
+
+
|
20
|
+
title: Temp
|
21
|
+
color: black
|
22
|
+
|
23
|
+
Title1
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p><div class="myclass" data-title="mytiddler" style="color:red;">my tiddler</div><div class="myclass" data-title="Title2" style="color:red;">hello</div></p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/CheckboxWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
title: Widgets/DataAttributes/CheckboxWidget
|
2
|
+
description: Data Attributes for CheckboxWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$checkbox tag="done" data-title={{Temp}} style.color={{{ [[Temp]get[color]] }}} onclick="clicked"> Is it done?</$checkbox>
|
10
|
+
+
|
11
|
+
title: Actions
|
12
|
+
|
13
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
14
|
+
+
|
15
|
+
title: Temp
|
16
|
+
color: black
|
17
|
+
|
18
|
+
Title1
|
19
|
+
+
|
20
|
+
title: ExpectedResult
|
21
|
+
|
22
|
+
<p><label class="tc-checkbox "><input data-title="Title2" type="checkbox" style="color:red;"><span>Is it done?</span></label></p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DraggableWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Widgets/DataAttributes/DraggableWidget
|
2
|
+
description: Data Attributes for DraggableWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$draggable tag="div" class="myclass" data-title="mytiddler" style.color="red" onclick="clicked">
|
10
|
+
my tiddler
|
11
|
+
</$draggable>
|
12
|
+
<$draggable tag="div" class="myclass" data-title={{Temp}} style.color={{{ [[Temp]get[color]] }}}>
|
13
|
+
hello
|
14
|
+
</$draggable>
|
15
|
+
+
|
16
|
+
title: Actions
|
17
|
+
|
18
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
19
|
+
+
|
20
|
+
title: Temp
|
21
|
+
color: black
|
22
|
+
|
23
|
+
Title1
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p><div class="myclass tc-draggable" data-title="mytiddler" draggable="true" style="color:red;">my tiddler</div><div class="myclass tc-draggable" data-title="Title2" draggable="true" style="color:red;">hello</div></p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DroppableWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Widgets/DataAttributes/DroppableWidget
|
2
|
+
description: Data Attributes for DroppableWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$droppable tag="div" class="myclass" data-title="mytiddler" style.color="red" onclick="clicked">
|
10
|
+
my tiddler
|
11
|
+
</$droppable>
|
12
|
+
<$droppable tag="div" class="myclass" data-title={{Temp}} style.color={{{ [[Temp]get[color]] }}}>
|
13
|
+
hello
|
14
|
+
</$droppable>
|
15
|
+
+
|
16
|
+
title: Actions
|
17
|
+
|
18
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
19
|
+
+
|
20
|
+
title: Temp
|
21
|
+
color: black
|
22
|
+
|
23
|
+
Title1
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p><div class="myclass tc-droppable" data-title="mytiddler" style="color:red;">my tiddler</div><div class="myclass tc-droppable" data-title="Title2" style="color:red;">hello</div></p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/LinkWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Widgets/DataAttributes/LinkWidget
|
2
|
+
description: Data Attributes for LinkWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$link data-id="mytiddler" style.color="red" to="Temp" onclick="clicked">
|
10
|
+
link to Temp
|
11
|
+
</$link>
|
12
|
+
<$link tag="button" data-id={{Temp}} style.color={{{ [[Temp]get[color]] }}} to="SomeTiddler">
|
13
|
+
some tiddler
|
14
|
+
</$link>
|
15
|
+
+
|
16
|
+
title: Actions
|
17
|
+
|
18
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
19
|
+
+
|
20
|
+
title: Temp
|
21
|
+
color: black
|
22
|
+
|
23
|
+
Title1
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p><a class="tc-tiddlylink tc-tiddlylink-resolves" data-id="mytiddler" href="#Temp" style="color:red;">link to Temp</a><button class="tc-tiddlylink tc-tiddlylink-missing" data-id="Title2" draggable="true" style="color:red;">some tiddler</button></p>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
title: Widgets/DataAttributes/OrderedStyleAttributes
|
2
|
+
description: Ordered style attributes
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<div style="background:red;color:blue;" style.background="green">
|
10
|
+
hello
|
11
|
+
</div>
|
12
|
+
+
|
13
|
+
title: ExpectedResult
|
14
|
+
|
15
|
+
<p><div style="background:green;color:blue;">hello</div></p>
|
package/editions/test/tiddlers/tests/data/widgets/DataAttributes/SelectWidget-DataAttributes.tid
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
title: Widgets/DataAttributes/SelectWidget
|
2
|
+
description: Data Attributes for SelectWidget
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<$select tiddler='New Tiddler' field='text' default='Choose a new text' data-title={{Temp}} style.color={{{ [[Temp]get[color]] }}} onclick="clicked">
|
10
|
+
<option disabled>Choose a new text</option>
|
11
|
+
<option>A Tale of Two Cities</option>
|
12
|
+
<option>A New Kind of Science</option>
|
13
|
+
<option>The Dice Man</option>
|
14
|
+
</$select>
|
15
|
+
+
|
16
|
+
title: Actions
|
17
|
+
|
18
|
+
<$action-setfield $tiddler="Temp" $field="text" $value="Title2" color="red"/>
|
19
|
+
+
|
20
|
+
title: Temp
|
21
|
+
color: black
|
22
|
+
|
23
|
+
Title1
|
24
|
+
+
|
25
|
+
title: ExpectedResult
|
26
|
+
|
27
|
+
<p><select data-title="Title2" value="Choose a new text" style="color:red;"><option disabled="true">Choose a new text</option><option>A Tale of Two Cities</option><option>A New Kind of Science</option><option>The Dice Man</option></select></p>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
title: Widgets/ElementWidgetEventAttributes
|
2
|
+
description: Element widget should not support event attributes starting with "on"
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<div class="hello" onclick="clicked">
|
10
|
+
TiddlyWiki
|
11
|
+
</div>
|
12
|
+
+
|
13
|
+
title: ExpectedResult
|
14
|
+
|
15
|
+
<p><div class="hello">TiddlyWiki</div></p>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
title: Widgets/ElementWidgetStyleAttributes
|
2
|
+
description: Element widget should support style.* attributes
|
3
|
+
type: text/vnd.tiddlywiki-multiple
|
4
|
+
tags: [[$:/tags/wiki-test-spec]]
|
5
|
+
|
6
|
+
title: Output
|
7
|
+
|
8
|
+
\whitespace trim
|
9
|
+
<div class="hello" onclick="clicked" style.color="blue" style.color="red" style.background="yellow">
|
10
|
+
TiddlyWiki
|
11
|
+
</div>
|
12
|
+
+
|
13
|
+
title: ExpectedResult
|
14
|
+
|
15
|
+
<p><div class="hello" style="color:red;background:yellow;">TiddlyWiki</div></p>
|
@@ -365,6 +365,7 @@ Tests the filtering mechanism.
|
|
365
365
|
expect(wiki.filterTiddlers("[sort[title]first[8]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
366
366
|
expect(wiki.filterTiddlers("[sort[title]first[x]]").join(",")).toBe("$:/ShadowPlugin");
|
367
367
|
expect(wiki.filterTiddlers("[sort[title]last[]]").join(",")).toBe("TiddlerOne");
|
368
|
+
expect(wiki.filterTiddlers("[sort[title]last[0]]").join(",")).toBe("");
|
368
369
|
expect(wiki.filterTiddlers("[sort[title]last[2]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
369
370
|
expect(wiki.filterTiddlers("[sort[title]last[8]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
370
371
|
expect(wiki.filterTiddlers("[sort[title]last[x]]").join(",")).toBe("TiddlerOne");
|
@@ -53,6 +53,11 @@ describe("json filter tests", function() {
|
|
53
53
|
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[2]]")).toEqual(["true"]);
|
54
54
|
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[3]]")).toEqual(["false"]);
|
55
55
|
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[4]]")).toEqual(["null"]);
|
56
|
+
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[-5]]")).toEqual(["five"]);
|
57
|
+
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[-4]]")).toEqual(["six"]);
|
58
|
+
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[-3]]")).toEqual(["true"]);
|
59
|
+
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[-2]]")).toEqual(["false"]);
|
60
|
+
expect(wiki.filterTiddlers("[{First}jsonget[d],[f],[-1]]")).toEqual(["null"]);
|
56
61
|
});
|
57
62
|
|
58
63
|
it("should support the jsonextract operator", function() {
|
@@ -70,6 +75,11 @@ describe("json filter tests", function() {
|
|
70
75
|
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[2]]")).toEqual(["true"]);
|
71
76
|
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[3]]")).toEqual(["false"]);
|
72
77
|
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[4]]")).toEqual(["null"]);
|
78
|
+
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[-5]]")).toEqual(['"five"']);
|
79
|
+
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[-4]]")).toEqual(['"six"']);
|
80
|
+
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[-3]]")).toEqual(["true"]);
|
81
|
+
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[-2]]")).toEqual(["false"]);
|
82
|
+
expect(wiki.filterTiddlers("[{First}jsonextract[d],[f],[-1]]")).toEqual(["null"]);
|
73
83
|
});
|
74
84
|
|
75
85
|
it("should support the jsonindexes operator", function() {
|
@@ -85,6 +95,11 @@ describe("json filter tests", function() {
|
|
85
95
|
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[2]]")).toEqual([]);
|
86
96
|
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[3]]")).toEqual([]);
|
87
97
|
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[4]]")).toEqual([]);
|
98
|
+
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[-5]]")).toEqual([]);
|
99
|
+
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[-4]]")).toEqual([]);
|
100
|
+
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[-3]]")).toEqual([]);
|
101
|
+
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[-2]]")).toEqual([]);
|
102
|
+
expect(wiki.filterTiddlers("[{First}jsonindexes[d],[f],[-1]]")).toEqual([]);
|
88
103
|
});
|
89
104
|
|
90
105
|
it("should support the jsontype operator", function() {
|
@@ -101,6 +116,31 @@ describe("json filter tests", function() {
|
|
101
116
|
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[2]]")).toEqual(["boolean"]);
|
102
117
|
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[3]]")).toEqual(["boolean"]);
|
103
118
|
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[4]]")).toEqual(["null"]);
|
119
|
+
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[-5]]")).toEqual(["string"]);
|
120
|
+
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[-4]]")).toEqual(["string"]);
|
121
|
+
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[-3]]")).toEqual(["boolean"]);
|
122
|
+
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[-2]]")).toEqual(["boolean"]);
|
123
|
+
expect(wiki.filterTiddlers("[{First}jsontype[d],[f],[-1]]")).toEqual(["null"]);
|
124
|
+
});
|
125
|
+
|
126
|
+
it("should support the jsonset operator", function() {
|
127
|
+
expect(wiki.filterTiddlers("[jsonset[a],[aa]]")).toEqual(['"First"','"Second"','"Third"']);
|
128
|
+
expect(wiki.filterTiddlers("[{First}jsonset[]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']);
|
129
|
+
expect(wiki.filterTiddlers("[{First}jsonset[],[Antelope]]")).toEqual(['"Antelope"']);
|
130
|
+
expect(wiki.filterTiddlers("[{First}jsonset:number[],[not a number]]")).toEqual(['0']);
|
131
|
+
expect(wiki.filterTiddlers("[{First}jsonset[id],[Antelope]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":"Antelope"}']);
|
132
|
+
expect(wiki.filterTiddlers("[{First}jsonset:notatype[id],[Antelope]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":"Antelope"}']);
|
133
|
+
expect(wiki.filterTiddlers("[{First}jsonset:boolean[id],[false]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":false}']);
|
134
|
+
expect(wiki.filterTiddlers("[{First}jsonset:boolean[id],[Antelope]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']);
|
135
|
+
expect(wiki.filterTiddlers("[{First}jsonset:number[id],[42]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":42}']);
|
136
|
+
expect(wiki.filterTiddlers("[{First}jsonset:null[id]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":null}']);
|
137
|
+
expect(wiki.filterTiddlers("[{First}jsonset:array[d],[f],[5]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null,[]]}}']);
|
138
|
+
expect(wiki.filterTiddlers("[{First}jsonset:object[d],[f],[5]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null,{}]}}']);
|
139
|
+
expect(wiki.filterTiddlers("[{First}jsonset:number[d],[f],[-1],[42]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,42]}}']);
|
140
|
+
expect(wiki.filterTiddlers("[{First}jsonset[missing],[id],[Antelope]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']);
|
141
|
+
expect(wiki.filterTiddlers("[{First}jsonset:json[\"Antelope\"]]")).toEqual(['"Antelope"']);
|
142
|
+
expect(wiki.filterTiddlers("[{First}jsonset:json[id],[{\"a\":313}]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]},"id":{"a":313}}']);
|
143
|
+
expect(wiki.filterTiddlers("[{First}jsonset:json[notjson]]")).toEqual(['{"a":"one","b":"","c":1.618,"d":{"e":"four","f":["five","six",true,false,null]}}']);
|
104
144
|
});
|
105
145
|
|
106
146
|
it("should support the format:json operator", function() {
|
@@ -48,6 +48,29 @@ describe("Utility tests", function() {
|
|
48
48
|
expect($tw.utils.base64Decode($tw.utils.base64Encode(booksEmoji))).toBe(booksEmoji, "should round-trip correctly");
|
49
49
|
});
|
50
50
|
|
51
|
+
it("should handle base64 encoding emojis in URL-safe variant", function() {
|
52
|
+
var booksEmoji = "📚";
|
53
|
+
expect($tw.utils.base64Encode(booksEmoji, false, true)).toBe("8J-Tmg==", "if surrogate pairs are correctly treated as a single code unit then base64 should be 8J+Tmg==");
|
54
|
+
expect($tw.utils.base64Decode("8J-Tmg==", false, true)).toBe(booksEmoji);
|
55
|
+
expect($tw.utils.base64Decode($tw.utils.base64Encode(booksEmoji, false, true), false, true)).toBe(booksEmoji, "should round-trip correctly");
|
56
|
+
});
|
57
|
+
|
58
|
+
it("should handle base64 encoding binary data", function() {
|
59
|
+
var binaryData = "\xff\xfe\xfe\xff";
|
60
|
+
var encoded = $tw.utils.base64Encode(binaryData,true);
|
61
|
+
expect(encoded).toBe("//7+/w==");
|
62
|
+
var decoded = $tw.utils.base64Decode(encoded,true);
|
63
|
+
expect(decoded).toBe(binaryData, "Binary data did not round-trip correctly");
|
64
|
+
});
|
65
|
+
|
66
|
+
it("should handle base64 encoding binary data in URL-safe variant", function() {
|
67
|
+
var binaryData = "\xff\xfe\xfe\xff";
|
68
|
+
var encoded = $tw.utils.base64Encode(binaryData,true,true);
|
69
|
+
expect(encoded).toBe("__7-_w==");
|
70
|
+
var decoded = $tw.utils.base64Decode(encoded,true,true);
|
71
|
+
expect(decoded).toBe(binaryData, "Binary data did not round-trip correctly");
|
72
|
+
});
|
73
|
+
|
51
74
|
it("should handle stringifying a string array", function() {
|
52
75
|
var str = $tw.utils.stringifyList;
|
53
76
|
expect(str([])).toEqual("");
|
@@ -527,6 +527,68 @@ describe("Widget module", function() {
|
|
527
527
|
expect(wrapper.children[0].children[15].sequenceNumber).toBe(53);
|
528
528
|
});
|
529
529
|
|
530
|
+
var testListJoin = function(oldList, newList) {
|
531
|
+
return function() {
|
532
|
+
var wiki = new $tw.Wiki();
|
533
|
+
// Add some tiddlers
|
534
|
+
wiki.addTiddler({title: "Numbers", text: "", list: oldList});
|
535
|
+
var text = "<$list filter='[list[Numbers]]' variable='item' join=', '><<item>></$list>";
|
536
|
+
var widgetNode = createWidgetNode(parseText(text,wiki),wiki);
|
537
|
+
// Render the widget node to the DOM
|
538
|
+
var wrapper = renderWidgetNode(widgetNode);
|
539
|
+
// Test the rendering
|
540
|
+
expect(wrapper.innerHTML).toBe("<p>" + oldList.split(' ').join(', ') + "</p>");
|
541
|
+
// Change the list and ensure new rendering is still right
|
542
|
+
wiki.addTiddler({title: "Numbers", text: "", list: newList});
|
543
|
+
refreshWidgetNode(widgetNode,wrapper,["Numbers"]);
|
544
|
+
expect(wrapper.innerHTML).toBe("<p>" + newList.split(' ').join(', ') + "</p>");
|
545
|
+
}
|
546
|
+
}
|
547
|
+
|
548
|
+
it("the list widget with join should update correctly when empty list gets one item", testListJoin("", "1"));
|
549
|
+
it("the list widget with join should update correctly when empty list gets two items", testListJoin("", "1 2"));
|
550
|
+
it("the list widget with join should update correctly when single-item list is appended to", testListJoin("1", "1 2"));
|
551
|
+
it("the list widget with join should update correctly when single-item list is prepended to", testListJoin("1", "2 1"));
|
552
|
+
it("the list widget with join should update correctly when list is appended", testListJoin("1 2 3 4", "1 2 3 4 5"));
|
553
|
+
it("the list widget with join should update correctly when last item is removed", testListJoin("1 2 3 4", "1 2 3"));
|
554
|
+
it("the list widget with join should update correctly when first item is inserted", testListJoin("1 2 3 4", "0 1 2 3 4"));
|
555
|
+
it("the list widget with join should update correctly when first item is removed", testListJoin("1 2 3 4", "2 3 4"));
|
556
|
+
it("the list widget with join should update correctly when first two items are swapped", testListJoin("1 2 3 4", "2 1 3 4"));
|
557
|
+
it("the list widget with join should update correctly when last two items are swapped", testListJoin("1 2 3 4", "1 2 4 3"));
|
558
|
+
it("the list widget with join should update correctly when last item is moved to the front", testListJoin("1 2 3 4", "4 1 2 3"));
|
559
|
+
it("the list widget with join should update correctly when last item is moved to the middle", testListJoin("1 2 3 4", "1 4 2 3"));
|
560
|
+
it("the list widget with join should update correctly when first item is moved to the back", testListJoin("1 2 3 4", "2 3 4 1"));
|
561
|
+
it("the list widget with join should update correctly when middle item is moved to the back", testListJoin("1 2 3 4", "1 3 4 2"));
|
562
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 1", testListJoin("1 3 4", "1 2 3"));
|
563
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 2", testListJoin("1 3 4", "1 3 2"));
|
564
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 3", testListJoin("1 3 4", "2 1 3"));
|
565
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 4", testListJoin("1 3 4", "2 3 1"));
|
566
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 5", testListJoin("1 3 4", "3 1 2"));
|
567
|
+
it("the list widget with join should update correctly when the last item disappears at the same time as other edits 6", testListJoin("1 3 4", "3 2 1"));
|
568
|
+
|
569
|
+
var testCounterLast = function(oldList, newList) {
|
570
|
+
return function() {
|
571
|
+
var wiki = new $tw.Wiki();
|
572
|
+
// Add some tiddlers
|
573
|
+
wiki.addTiddler({title: "Numbers", text: "", list: oldList});
|
574
|
+
var text = "<$list filter='[list[Numbers]]' variable='item' counter='c'><<item>><$text text={{{ [<c-last>match[no]then[, ]] }}} /></$list>";
|
575
|
+
var widgetNode = createWidgetNode(parseText(text,wiki),wiki);
|
576
|
+
// Render the widget node to the DOM
|
577
|
+
var wrapper = renderWidgetNode(widgetNode);
|
578
|
+
// Test the rendering
|
579
|
+
expect(wrapper.innerHTML).toBe("<p>" + oldList.split(' ').join(', ') + "</p>");
|
580
|
+
// Append a number
|
581
|
+
wiki.addTiddler({title: "Numbers", text: "", list: newList});
|
582
|
+
refreshWidgetNode(widgetNode,wrapper,["Numbers"]);
|
583
|
+
expect(wrapper.innerHTML).toBe("<p>" + newList.split(' ').join(', ') + "</p>");
|
584
|
+
}
|
585
|
+
}
|
586
|
+
|
587
|
+
it("the list widget with counter-last should update correctly when list is appended", testCounterLast("1 2 3 4", "1 2 3 4 5"));
|
588
|
+
it("the list widget with counter-last should update correctly when last item is removed", testCounterLast("1 2 3 4", "1 2 3"));
|
589
|
+
it("the list widget with counter-last should update correctly when first item is inserted", testCounterLast("1 2 3 4", "0 1 2 3 4"));
|
590
|
+
it("the list widget with counter-last should update correctly when first item is removed", testCounterLast("1 2 3 4", "2 3 4"));
|
591
|
+
|
530
592
|
it("should deal with the list widget followed by other widgets", function() {
|
531
593
|
var wiki = new $tw.Wiki();
|
532
594
|
// Add some tiddlers
|
Binary file
|
@@ -21,7 +21,7 @@
|
|
21
21
|
"static": [
|
22
22
|
"--render","$:/core/templates/static.template.html","static.html","text/plain",
|
23
23
|
"--render","$:/core/templates/alltiddlers.template.html","alltiddlers.html","text/plain",
|
24
|
-
"--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
|
24
|
+
"--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
|
25
25
|
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"]
|
26
26
|
},
|
27
27
|
"config": {
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,82 @@
|
|
1
|
+
title: TiddlyWiki Archive
|
2
|
+
created: 20231005205623086
|
3
|
+
modified: 20231005210538879
|
4
|
+
tags: About
|
5
|
+
|
6
|
+
\procedure versions()
|
7
|
+
5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9
|
8
|
+
5.1.10 5.1.11 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16 5.1.17 5.1.18 5.1.19
|
9
|
+
5.1.20 5.1.21 5.1.22 5.1.23
|
10
|
+
5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7
|
11
|
+
5.3.0 5.3.1
|
12
|
+
\end
|
13
|
+
|
14
|
+
Older versions of TiddlyWiki are available in the [[archive|https://github.com/Jermolene/jermolene.github.io/tree/master/archive]]:
|
15
|
+
|
16
|
+
<table>
|
17
|
+
<tbody>
|
18
|
+
<tr>
|
19
|
+
<th>
|
20
|
+
Version
|
21
|
+
</th>
|
22
|
+
<th>
|
23
|
+
Released
|
24
|
+
</th>
|
25
|
+
<th>
|
26
|
+
Lifetime
|
27
|
+
</th>
|
28
|
+
<th>
|
29
|
+
Summary
|
30
|
+
</th>
|
31
|
+
<th>
|
32
|
+
Download
|
33
|
+
</th>
|
34
|
+
</tr>
|
35
|
+
<$list filter="[enlist<versions>reverse[]]" variable="version">
|
36
|
+
<$let
|
37
|
+
filename=`TiddlyWiki-$(version)$`
|
38
|
+
emptyFilename=`Empty-$(filename)$`
|
39
|
+
releaseTiddler={{{ [<version>addprefix[Release ]] }}}
|
40
|
+
releaseDate={{{ [<releaseTiddler>get[released]format:date[TIMESTAMP]] }}}
|
41
|
+
nextVersion={{{ [enlist<versions>after<version>] }}}
|
42
|
+
nextReleaseTiddler={{{ [<nextVersion>addprefix[Release ]] }}}
|
43
|
+
nextReleaseDate={{{ [<nextReleaseTiddler>get[released]format:date[TIMESTAMP]] }}}
|
44
|
+
lifetime={{{ [<nextReleaseDate>subtract<releaseDate>divide[86400000]add[0.5]fixed[0]] }}}
|
45
|
+
>
|
46
|
+
<tr>
|
47
|
+
<td>
|
48
|
+
<$link to=<<releaseTiddler>>>
|
49
|
+
<$text text=`v$(version)$`/>
|
50
|
+
</$link>
|
51
|
+
</td>
|
52
|
+
<td>
|
53
|
+
<$view tiddler=<<releaseTiddler>> field="released" format="date" template="DDth mmm YYYY"/>
|
54
|
+
</td>
|
55
|
+
<td>
|
56
|
+
<$list filter="[<lifetime>compare:number:lt[0]]" variable="ignore">
|
57
|
+
Current
|
58
|
+
</$list>
|
59
|
+
<$list filter="[<lifetime>compare:number:gteq[0]]" variable="ignore">
|
60
|
+
<$text text=<<lifetime>>/>
|
61
|
+
day<$list filter="[<lifetime>!compare:number:eq[1]]" variable="ignore">s</$list>
|
62
|
+
</$list>
|
63
|
+
</td>
|
64
|
+
<td>
|
65
|
+
<$transclude $tiddler=<<releaseTiddler>> $field="description" $format="inline">
|
66
|
+
(none)
|
67
|
+
</$transclude>
|
68
|
+
</td>
|
69
|
+
<td>
|
70
|
+
<a href={{{ [<filename>addprefix[https://tiddlywiki.com/archive/full/]]}}} rel="noopener noreferrer" target="_blank">
|
71
|
+
Complete
|
72
|
+
</a>
|
73
|
+
|
|
74
|
+
<a href={{{ [<emptyFilename>addprefix[https://tiddlywiki.com/archive/empty/]]}}} rel="noopener noreferrer" target="_blank">
|
75
|
+
Empty
|
76
|
+
</a>
|
77
|
+
</td>
|
78
|
+
</tr>
|
79
|
+
</$let>
|
80
|
+
</$list>
|
81
|
+
</tbody>
|
82
|
+
</table>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
title: 中文社区 - Chinese Community
|
2
|
+
tags: Community
|
3
|
+
|
4
|
+
# A Chinese community tutorial program that people can edit together:
|
5
|
+
#* Main site: [ext[https://tw-cn.netlify.app/]]
|
6
|
+
#* Accelerated access: [ext[https://tw-cn.cpolar.top/]]
|
7
|
+
#* Alternate: [ext[https://tiddly-wiki-chinese-tutorial.vercel.app]]
|
8
|
+
# Tiddlywiki Chinese Chat Forum: [ext[https://talk.tidgi.fun/topic/6]]
|
9
|
+
# Chinese translation of Tiddlywiki official website [ext[https://bramchen.github.io/tw5-docs/zh-Hans/]]
|
10
|
+
# The best Chinese introductory tutorial for newbies [ext[https://keatonlao.github.io/tiddlywiki-xp/]]
|
11
|
+
|
12
|
+
---
|
13
|
+
|
14
|
+
# 大家可以一起编辑的中文社区教程项目:
|
15
|
+
#* 主站:[ext[https://tw-cn.netlify.app/]]
|
16
|
+
#* 加速访问:[ext[https://tw-cn.cpolar.top/]]
|
17
|
+
#* 备用:[ext[https://tiddly-wiki-chinese-tutorial.vercel.app]]
|
18
|
+
# 太微中文交流论坛:[ext[https://talk.tidgi.fun/topic/6]]
|
19
|
+
# 太微官网汉化版:[ext[https://bramchen.github.io/tw5-docs/zh-Hans/]]
|
20
|
+
# 最适合新手的中文入门教程:[ext[https://keatonlao.github.io/tiddlywiki-xp/]]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
created: 20220417010615742
|
2
|
+
modified: 20231005060241771
|
3
|
+
tags: [[Community Editions]]
|
4
|
+
title: Tidme by oflg
|
5
|
+
type: text/vnd.tiddlywiki
|
6
|
+
url: https://github.com/oflg/Tidme
|
7
|
+
|
8
|
+
Lifelong knowledge, deep in Mind.
|
9
|
+
|
10
|
+
{{!!url}}
|
11
|
+
|
12
|
+
Tidme uses advanced [[Incremental Learning|https://help.supermemo.org/wiki/Incremental_learning]] concepts to make it your powerful second brain for acquiring lifelong knowledge.
|
13
|
+
|
14
|
+
* Read Articles like SuperMemo
|
15
|
+
* Learn languages like LingQ
|
16
|
+
* Memory Notes like Anki
|