tiddlywiki 5.1.23 → 5.2.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/.eslintignore +5 -12
- package/.eslintrc.yml +17 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +5 -0
- package/.github/workflows/ci.yml +3 -0
- package/bin/build-site.sh +2 -2
- package/bin/build-tw-org.sh +97 -0
- package/bin/optimise-svgs.js +43 -41
- package/boot/boot.js +155 -47
- package/boot/bootprefix.js +1 -0
- package/contributing.md +1 -1
- package/core/copyright.tid +1 -1
- package/core/images/minus-button.tid +4 -0
- package/core/images/plugin-generic-language.tid +1 -1
- package/core/images/plugin-generic-plugin.tid +1 -1
- package/core/images/plugin-generic-theme.tid +1 -1
- package/core/images/plus-button.tid +4 -0
- package/core/language/en-GB/ControlPanel.multids +19 -2
- package/core/language/en-GB/Docs/ModuleTypes.multids +1 -0
- package/core/language/en-GB/EditTemplate.multids +2 -0
- package/core/language/en-GB/Fields.multids +4 -3
- package/core/language/en-GB/Help/listen.tid +3 -2
- package/core/language/en-GB/Help/render.tid +5 -4
- package/core/language/en-GB/Help/save.tid +1 -1
- package/core/language/en-GB/Import.multids +6 -0
- package/core/language/en-GB/Misc.multids +4 -3
- package/core/modules/commander.js +1 -1
- package/core/modules/commands/fetch.js +1 -1
- package/core/modules/commands/init.js +1 -1
- package/core/modules/commands/render.js +55 -54
- package/core/modules/commands/rendertiddlers.js +1 -1
- package/core/modules/commands/savelibrarytiddlers.js +1 -1
- package/core/modules/commands/savewikifolder.js +18 -4
- package/core/modules/config.js +1 -1
- package/core/modules/deserializers.js +102 -89
- package/core/modules/editor/engines/framed.js +20 -4
- package/core/modules/editor/engines/simple.js +6 -2
- package/core/modules/editor/factory.js +85 -12
- package/core/modules/editor/operations/text/focus-editor.js +17 -0
- package/core/modules/editor/operations/text/insert-text.js +23 -0
- package/core/modules/editor/operations/text/wrap-lines.js +5 -3
- package/core/modules/filterrunprefixes/cascade.js +53 -0
- package/core/modules/filterrunprefixes/filter.js +22 -4
- package/core/modules/filterrunprefixes/map.js +46 -0
- package/core/modules/filterrunprefixes/reduce.js +19 -19
- package/core/modules/filterrunprefixes/sort.js +62 -0
- package/core/modules/filters/all.js +3 -3
- package/core/modules/filters/backlinks.js +3 -3
- package/core/modules/filters/contains.js +1 -1
- package/core/modules/filters/crypto.js +27 -0
- package/core/modules/filters/deserializers.js +27 -0
- package/core/modules/filters/editiondescription.js +1 -1
- package/core/modules/filters/encodings.js +3 -13
- package/core/modules/filters/field.js +1 -1
- package/core/modules/filters/fields.js +1 -1
- package/core/modules/filters/filter.js +12 -1
- package/core/modules/filters/format/date.js +2 -2
- package/core/modules/filters/format/relativedate.js +2 -2
- package/core/modules/filters/format/titlelist.js +25 -0
- package/core/modules/filters/has.js +1 -1
- package/core/modules/filters/insertbefore.js +1 -1
- package/core/modules/filters/is/draft.js +3 -3
- package/core/modules/filters/links.js +3 -3
- package/core/modules/filters/listops.js +14 -1
- package/core/modules/filters/lookup.js +29 -6
- package/core/modules/filters/math.js +102 -7
- package/core/modules/filters/moduleproperty.js +30 -0
- package/core/modules/filters/modules.js +16 -4
- package/core/modules/filters/prefix.js +30 -12
- package/core/modules/filters/range.js +7 -3
- package/core/modules/filters/reduce.js +2 -0
- package/core/modules/filters/regexp.js +1 -1
- package/core/modules/filters/removeprefix.js +16 -6
- package/core/modules/filters/removesuffix.js +20 -6
- package/core/modules/filters/search.js +1 -0
- package/core/modules/filters/sortsub.js +7 -4
- package/core/modules/filters/strings.js +26 -14
- package/core/modules/filters/suffix.js +32 -10
- package/core/modules/filters/tag.js +1 -1
- package/core/modules/filters/untagged.js +7 -14
- package/core/modules/filters/x-listops.js +5 -5
- package/core/modules/filters.js +32 -14
- package/core/modules/indexers/field-indexer.js +1 -1
- package/core/modules/indexers/tag-indexer.js +2 -2
- package/core/modules/info/platform.js +1 -1
- package/core/modules/keyboard.js +15 -7
- package/core/modules/macros/{uniquetitle.js → unusedtitle.js} +8 -7
- package/core/modules/parsers/htmlparser.js +4 -2
- package/core/modules/parsers/imageparser.js +1 -0
- package/core/modules/parsers/parseutils.js +41 -11
- package/core/modules/parsers/wikiparser/rules/commentblock.js +8 -2
- package/core/modules/parsers/wikiparser/rules/commentinline.js +1 -1
- package/core/modules/parsers/wikiparser/rules/html.js +7 -10
- package/core/modules/parsers/wikiparser/rules/import.js +1 -1
- package/core/modules/parsers/wikiparser/rules/macrocallblock.js +24 -28
- package/core/modules/parsers/wikiparser/rules/macrocallinline.js +17 -27
- package/core/modules/parsers/wikiparser/rules/table.js +1 -1
- package/core/modules/parsers/wikiparser/wikiparser.js +48 -25
- package/core/modules/pluginswitcher.js +1 -1
- package/core/modules/saver-handler.js +2 -1
- package/core/modules/savers/andtidwiki.js +1 -1
- package/core/modules/savers/download.js +1 -1
- package/core/modules/savers/gitea.js +3 -3
- package/core/modules/savers/github.js +3 -3
- package/core/modules/savers/gitlab.js +3 -3
- package/core/modules/savers/put.js +6 -3
- package/core/modules/savers/tiddlyfox.js +1 -1
- package/core/modules/savers/twedit.js +1 -1
- package/core/modules/savers/upload.js +15 -3
- package/core/modules/server/routes/delete-tiddler.js +1 -1
- package/core/modules/server/routes/get-favicon.js +1 -2
- package/core/modules/server/routes/get-file.js +21 -17
- package/core/modules/server/routes/get-index.js +1 -23
- package/core/modules/server/routes/get-login-basic.js +3 -2
- package/core/modules/server/routes/get-status.js +1 -2
- package/core/modules/server/routes/get-tiddler-html.js +3 -3
- package/core/modules/server/routes/get-tiddler.js +2 -3
- package/core/modules/server/routes/get-tiddlers-json.js +1 -2
- package/core/modules/server/routes/put-tiddler.js +3 -3
- package/core/modules/server/server.js +113 -17
- package/core/modules/startup/browser-messaging.js +2 -2
- package/core/modules/startup/favicon.js +1 -1
- package/core/modules/startup/load-modules.js +3 -0
- package/core/modules/startup/render.js +8 -3
- package/core/modules/startup/rootwidget.js +19 -4
- package/core/modules/startup/startup.js +2 -3
- package/core/modules/startup/story.js +5 -5
- package/core/modules/startup/windows.js +22 -9
- package/core/modules/storyviews/classic.js +5 -5
- package/core/modules/storyviews/pop.js +3 -3
- package/core/modules/storyviews/zoomin.js +3 -3
- package/core/modules/syncer.js +2 -6
- package/core/modules/tiddler.js +3 -3
- package/core/modules/upgraders/plugins.js +1 -1
- package/core/modules/upgraders/system.js +5 -6
- package/core/modules/utils/crypto.js +2 -2
- package/core/modules/utils/csv.js +1 -1
- package/core/modules/utils/dom/dom.js +6 -2
- package/core/modules/utils/dom/dragndrop.js +33 -10
- package/core/modules/utils/dom/http.js +18 -1
- package/core/modules/utils/dom/modal.js +3 -2
- package/core/modules/utils/dom/popup.js +1 -1
- package/core/modules/utils/dom/scroller.js +12 -8
- package/core/modules/utils/edition-info.js +1 -5
- package/core/modules/{startup/css-escape-polyfill.js → utils/escapecss.js} +17 -27
- package/core/modules/utils/fakedom.js +1 -1
- package/core/modules/utils/filesystem.js +89 -52
- package/core/modules/utils/linked-list.js +143 -57
- package/core/modules/utils/logger.js +2 -2
- package/core/modules/utils/performance.js +1 -1
- package/core/modules/utils/pluginmaker.js +2 -4
- package/core/modules/utils/transliterate.js +8 -1
- package/core/modules/utils/utils.js +80 -8
- package/core/modules/widgets/action-confirm.js +4 -3
- package/core/modules/widgets/action-createtiddler.js +12 -5
- package/core/modules/widgets/action-deletefield.js +1 -1
- package/core/modules/widgets/action-listops.js +6 -11
- package/core/modules/widgets/action-log.js +3 -3
- package/core/modules/widgets/action-navigate.js +12 -1
- package/core/modules/widgets/action-popup.js +3 -1
- package/core/modules/widgets/action-sendmessage.js +17 -7
- package/core/modules/widgets/action-setmultiplefields.js +86 -0
- package/core/modules/widgets/button.js +5 -2
- package/core/modules/widgets/codeblock.js +7 -1
- package/core/modules/widgets/draggable.js +17 -8
- package/core/modules/widgets/droppable.js +2 -2
- package/core/modules/widgets/dropzone.js +122 -25
- package/core/modules/widgets/edit-bitmap.js +6 -6
- package/core/modules/widgets/edit-shortcut.js +3 -3
- package/core/modules/widgets/element.js +1 -1
- package/core/modules/widgets/entity.js +1 -1
- package/core/modules/widgets/eventcatcher.js +52 -23
- package/core/modules/widgets/fieldmangler.js +16 -30
- package/core/modules/widgets/image.js +15 -5
- package/core/modules/widgets/importvariables.js +2 -2
- package/core/modules/widgets/jsontiddler.js +91 -0
- package/core/modules/widgets/keyboard.js +39 -20
- package/core/modules/widgets/let.js +96 -0
- package/core/modules/widgets/link.js +9 -2
- package/core/modules/widgets/linkcatcher.js +4 -4
- package/core/modules/widgets/list.js +65 -26
- package/core/modules/widgets/log.js +1 -1
- package/core/modules/widgets/macrocall.js +1 -1
- package/core/modules/widgets/messagecatcher.js +110 -0
- package/core/modules/widgets/navigator.js +41 -41
- package/core/modules/widgets/radio.js +14 -5
- package/core/modules/widgets/raw.js +1 -1
- package/core/modules/widgets/reveal.js +4 -4
- package/core/modules/widgets/scrollable.js +32 -30
- package/core/modules/widgets/select.js +1 -1
- package/core/modules/widgets/setmultiplevariables.js +81 -0
- package/core/modules/widgets/setvariable.js +2 -2
- package/core/modules/widgets/text.js +1 -1
- package/core/modules/widgets/tiddler.js +1 -1
- package/core/modules/widgets/transclude.js +9 -2
- package/core/modules/widgets/vars.js +3 -5
- package/core/modules/widgets/view.js +10 -3
- package/core/modules/widgets/widget.js +89 -35
- package/core/modules/widgets/wikify.js +1 -1
- package/core/modules/wiki-bulkops.js +20 -15
- package/core/modules/wiki.js +213 -89
- package/core/palettes/Blanca.tid +1 -0
- package/core/palettes/Blue.tid +1 -0
- package/core/palettes/BrightMute.tid +1 -0
- package/core/palettes/ContrastDark.tid +1 -0
- package/core/palettes/ContrastLight.tid +1 -0
- package/core/palettes/CupertinoDark.tid +1 -0
- package/core/palettes/DarkPhotos.tid +1 -0
- package/core/palettes/DesertSand.tid +1 -0
- package/core/palettes/GruvBoxDark.tid +1 -0
- package/core/palettes/Nord.tid +1 -0
- package/core/palettes/Rocker.tid +1 -0
- package/core/palettes/SolarFlare.tid +1 -0
- package/core/palettes/SolarizedDark.tid +1 -0
- package/core/palettes/SolarizedLight.tid +1 -0
- package/core/palettes/SpartanDay.tid +1 -0
- package/core/palettes/SpartanNight.tid +1 -0
- package/core/palettes/Twilight.tid +1 -0
- package/core/palettes/Vanilla.tid +1 -0
- package/core/templates/external-js/save-all-external-js.tid +1 -0
- package/core/templates/external-js/save-offline-external-js.tid +8 -0
- package/core/templates/external-js/tiddlywiki.js.tiddlers.tid +4 -0
- package/core/templates/external-js/tiddlywiki5-external-js.html.tid +3 -2
- package/core/templates/html-div-tiddler.tid +1 -1
- package/core/templates/html-json-skinny-tiddler.tid +4 -0
- package/core/templates/html-json-tiddler.tid +3 -0
- package/core/templates/save-lazy-images.tid +1 -1
- package/core/templates/store.area.template.html.tid +35 -12
- package/core/templates/tiddlywiki5.html.tid +1 -1
- package/core/ui/Components/plugin-info.tid +57 -55
- package/core/ui/Components/tag-link.tid +1 -1
- package/core/ui/ControlPanel/Cascades/EditTemplateBody.tid +9 -0
- package/core/ui/ControlPanel/Cascades/FieldEditor.tid +9 -0
- package/core/ui/ControlPanel/Cascades/StoryTiddler.tid +9 -0
- package/core/ui/ControlPanel/Cascades/TiddlerColour.tid +9 -0
- package/core/ui/ControlPanel/Cascades/TiddlerIcon.tid +9 -0
- package/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid +9 -0
- package/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid +9 -0
- package/core/ui/ControlPanel/Cascades.tid +9 -0
- package/core/ui/ControlPanel/Plugins/Installed/Languages.tid +1 -0
- package/core/ui/ControlPanel/Plugins/Installed/Plugins.tid +1 -0
- package/core/ui/ControlPanel/Plugins/Installed/Themes.tid +1 -0
- package/core/ui/ControlPanel/Plugins.tid +1 -1
- package/core/ui/ControlPanel/Saving/GitHub.tid +1 -1
- package/core/ui/ControlPanel/Saving/TiddlySpot.tid +0 -2
- package/core/ui/EditTemplate/Preview/diffs-current.tid +1 -1
- package/core/ui/EditTemplate/Preview/diffs-shadow.tid +1 -1
- package/core/ui/EditTemplate/body/canonical-uri.tid +13 -0
- package/core/ui/EditTemplate/body/default.tid +38 -0
- package/core/ui/EditTemplate/body-editor.tid +10 -1
- package/core/ui/EditTemplate/body-toolbar-button.tid +8 -6
- package/core/ui/EditTemplate/body.tid +1 -47
- package/core/ui/EditTemplate/fieldEditor-default.tid +3 -0
- package/core/ui/EditTemplate/fields.tid +7 -5
- package/core/ui/EditTemplate/tags.tid +3 -3
- package/core/ui/EditTemplate/title.tid +1 -1
- package/core/ui/EditTemplate/type.tid +2 -2
- package/core/ui/EditTemplate.tid +2 -2
- package/core/ui/EditorToolbar/file-import.tid +41 -0
- package/core/ui/EditorToolbar/link-dropdown.tid +1 -1
- package/core/ui/EditorToolbar/preview.tid +4 -4
- package/core/ui/EditorToolbar/stamp-dropdown-item-template.tid +53 -0
- package/core/ui/EditorToolbar/stamp-dropdown.tid +1 -43
- package/core/ui/EditorToolbar/stamp.tid +1 -0
- package/core/ui/ExportTiddlyWikiCore.tid +22 -0
- package/core/ui/ImportListing.tid +20 -1
- package/core/ui/ListTaggedCascade.tid +14 -0
- package/core/ui/MoreSideBar/plugins/Languages.tid +1 -1
- package/core/ui/MoreSideBar/plugins/Plugins.tid +1 -1
- package/core/ui/MoreSideBar/plugins/Theme.tid +1 -1
- package/core/ui/PageControls/advanced-search.tid +1 -0
- package/core/ui/PageControls/closeall.tid +4 -1
- package/core/ui/PageControls/controlpanel.tid +1 -0
- package/core/ui/PageControls/encryption.tid +6 -2
- package/core/ui/PageControls/export-tiddlywikicore.tid +22 -0
- package/core/ui/PageControls/fold-all.tid +4 -1
- package/core/ui/PageControls/full-screen.tid +4 -1
- package/core/ui/PageControls/home.tid +4 -1
- package/core/ui/PageControls/import.tid +4 -1
- package/core/ui/PageControls/language.tid +0 -1
- package/core/ui/PageControls/manager.tid +4 -1
- package/core/ui/PageControls/more-page-actions.tid +4 -1
- package/core/ui/PageControls/new-image.tid +3 -1
- package/core/ui/PageControls/new-journal.tid +4 -1
- package/core/ui/PageControls/newtiddler.tid +3 -1
- package/core/ui/PageControls/palette.tid +0 -1
- package/core/ui/PageControls/print.tid +4 -1
- package/core/ui/PageControls/refresh.tid +4 -1
- package/core/ui/PageControls/savewiki.tid +4 -1
- package/core/ui/PageControls/storyview.tid +0 -1
- package/core/ui/PageControls/tag-button.tid +4 -1
- package/core/ui/PageControls/theme.tid +0 -1
- package/core/ui/PageControls/timestamp.tid +6 -2
- package/core/ui/PageControls/unfold-all.tid +4 -1
- package/core/ui/PageTemplate/story.tid +1 -1
- package/core/ui/PaletteManager.tid +1 -1
- package/core/ui/PluginListItemTemplate.tid +13 -3
- package/core/ui/SideBar/Open.tid +2 -2
- package/core/ui/StoryTiddlerTemplate.tid +3 -0
- package/core/ui/TagPickerTagTemplate.tid +3 -3
- package/core/ui/TagTemplate.tid +2 -2
- package/core/ui/TiddlerIcon.tid +8 -0
- package/core/ui/ViewTemplate/body/blank.tid +3 -0
- package/core/ui/ViewTemplate/body/code.tid +3 -0
- package/core/ui/ViewTemplate/body/default.tid +7 -0
- package/core/ui/ViewTemplate/{import.tid → body/import.tid} +9 -3
- package/core/ui/ViewTemplate/body/plugin.tid +10 -0
- package/core/ui/ViewTemplate/body.tid +1 -9
- package/core/ui/ViewTemplate/title/default.tid +6 -0
- package/core/ui/ViewTemplate/title/system.tid +6 -0
- package/core/ui/ViewTemplate/title.tid +6 -22
- package/core/ui/ViewTemplate.tid +6 -1
- package/core/ui/ViewToolbar/clone.tid +0 -1
- package/core/ui/ViewToolbar/close-others.tid +0 -1
- package/core/ui/ViewToolbar/edit.tid +0 -1
- package/core/ui/ViewToolbar/fold-others.tid +0 -1
- package/core/ui/ViewToolbar/fold.tid +0 -2
- package/core/ui/ViewToolbar/info.tid +1 -0
- package/core/ui/ViewToolbar/more-tiddler-actions.tid +0 -1
- package/core/ui/ViewToolbar/new-here.tid +1 -0
- package/core/ui/ViewToolbar/new-journal-here.tid +1 -0
- package/core/ui/ViewToolbar/open-window.tid +0 -1
- package/core/ui/ViewToolbar/permalink.tid +0 -1
- package/core/ui/ViewToolbar/permaview.tid +0 -1
- package/core/wiki/allfields.tid +1 -1
- package/core/wiki/config/EditTabIndex.tid +1 -2
- package/core/wiki/config/EditTemplateBodyFilters.multids +5 -0
- package/core/wiki/config/EditorEnableImportFilter.tid +4 -0
- package/core/wiki/config/EditorImportContentTypesFilter.tid +4 -0
- package/core/wiki/config/FieldEditorFilters.multids +4 -0
- package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
- package/core/wiki/config/StoryTiddlerTemplateFilters.multids +5 -0
- package/core/wiki/config/TiddlerColourFilters.multids +5 -0
- package/core/wiki/config/TiddlerIconFilters.multids +5 -0
- package/core/wiki/config/ViewTemplateBodyFilters.multids +9 -0
- package/core/wiki/config/ViewTemplateTitleFilters.multids +5 -0
- package/core/wiki/config/shortcuts/shortcuts-mac.multids +0 -2
- package/core/wiki/config/shortcuts/shortcuts.multids +2 -2
- package/core/wiki/debugstylesheets.tid +9 -0
- package/core/wiki/macros/export.tid +6 -6
- package/core/wiki/macros/list.tid +2 -2
- package/core/wiki/macros/tag.tid +4 -2
- package/core/wiki/peek-stylesheets.tid +3 -0
- package/core/wiki/tags/ControlPanelPlugins.tid +1 -1
- package/core/wiki/tags/EditTemplateBodyFilter.tid +2 -0
- package/core/wiki/tags/StoryTiddlerTemplateFilter.tid +2 -0
- package/core/wiki/tags/TiddlerColourFilter.tid +3 -0
- package/core/wiki/tags/TiddlerIconFilter.tid +3 -0
- package/core/wiki/tags/ViewTemplateBodyFilter.tid +3 -0
- package/core/wiki/tags/ViewTemplateTitleFilter.tid +3 -0
- package/core/wiki/title.tid +4 -1
- package/core/wiki/viewswitcher.tid +2 -2
- package/editions/dev/tiddlers/HelloThere.tid +3 -1
- package/editions/dev/tiddlers/from Heigele and Jurke/Data-Storage.tid +1 -9
- package/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid +2 -2
- package/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid +1 -1
- package/editions/dev/tiddlers/from tw5.com/moduletypes/WikiRuleModules.tid +6 -5
- package/editions/dev/tiddlers/new/Data Storage in Single File TiddlyWiki.tid +100 -0
- package/editions/dev/tiddlers/new/Data Storage.tid +10 -0
- package/editions/dev/tiddlers/new/Hook_ th-before-importing.tid +68 -0
- package/editions/dev/tiddlers/new/Hook_ th-closing-tiddler.tid +20 -0
- package/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid +3 -1
- package/editions/dev/tiddlers/new/ParserSubclassingMechanism.tid +42 -0
- package/editions/dev/tiddlers/new/TiddlyWiki Drag and Drop Interop.tid +15 -0
- package/editions/dev/tiddlers/new/dragndropinterop.html +35 -0
- package/editions/dev/tiddlers/new/dragndropinterop.html.meta +3 -0
- package/editions/dev/tiddlers/new/save-dragndropinterop.tid +3 -0
- package/editions/dynaviewdemo/tiddlers/SideBar-Open.tid +1 -1
- package/editions/dynaviewdemo/tiddlers/ViewTemplate.tid +4 -7
- package/editions/es-ES/tiddlers/Page_and_tiddler_layout_customisation.tid +1 -1
- package/editions/fr-FR/output/images/Blurry%20Lawn.jpg +0 -0
- package/editions/fr-FR/output/images/Newnham%20Horizon.jpg +0 -0
- package/editions/fr-FR/output/index.html +5051 -0
- package/editions/fr-FR/output/text/Alice%20in%20Wonderland.tid +3709 -0
- package/editions/fr-FR/tiddlers/$ _config_ViewTemplateTitleFilters_fr-default.tid +7 -0
- package/editions/fr-FR/tiddlers/$ _core_ui_ViewTemplate_title_fr-default.tid +8 -0
- package/editions/fr-FR/tiddlers/$__deprecated.tid +9 -0
- package/editions/fr-FR/tiddlers/$__editions_fr-FR_util-macros.tid +1 -0
- package/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +69 -5
- package/editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid +15 -0
- package/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid +2 -2
- package/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid +15 -8
- package/editions/fr-FR/tiddlers/CamelCase.tid +6 -3
- package/editions/fr-FR/tiddlers/Code Blocks in WikiText.tid +27 -16
- package/editions/fr-FR/tiddlers/Community Links Aggregator.tid +11 -0
- package/editions/fr-FR/tiddlers/Community.tid +6 -4
- package/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid +11 -11
- package/editions/fr-FR/tiddlers/Deprecated - What does it mean.tid +17 -0
- package/editions/fr-FR/tiddlers/Developers.tid +10 -5
- package/editions/fr-FR/tiddlers/Federatial.tid +11 -0
- package/editions/fr-FR/tiddlers/Formatting in WikiText.tid +12 -12
- package/editions/fr-FR/tiddlers/Forums.tid +27 -13
- package/editions/fr-FR/tiddlers/GettingStarted.tid +16 -14
- package/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid +3 -1
- package/editions/fr-FR/tiddlers/HTML in WikiText.tid +77 -28
- package/editions/fr-FR/tiddlers/Headings in WikiText.tid +2 -2
- package/editions/fr-FR/tiddlers/HelloThere.tid +15 -12
- package/editions/fr-FR/tiddlers/HelloThumbnail - Latest Version.tid +1 -1
- package/editions/fr-FR/tiddlers/How to export tiddlers.tid +31 -0
- package/editions/fr-FR/tiddlers/ImageWidget.tid +33 -0
- package/editions/fr-FR/tiddlers/Images in WikiText.tid +69 -0
- package/editions/fr-FR/tiddlers/Importing Tiddlers.tid +26 -0
- package/editions/fr-FR/tiddlers/JeremyRuston.tid +9 -9
- package/editions/fr-FR/tiddlers/Linking in WikiText.tid +108 -19
- package/editions/fr-FR/tiddlers/ListField.tid +6 -6
- package/editions/fr-FR/tiddlers/Macros in WikiText.tid +5 -5
- package/editions/fr-FR/tiddlers/Macros.tid +17 -8
- package/editions/fr-FR/tiddlers/Page and tiddler layout customisation.tid +1 -1
- package/editions/fr-FR/tiddlers/PermaLinks.tid +19 -19
- package/editions/fr-FR/tiddlers/Philosophy of Tiddlers.tid +2 -2
- package/editions/fr-FR/tiddlers/Saving.tid +63 -4
- package/editions/fr-FR/tiddlers/Share Plugin.tid +15 -0
- package/editions/fr-FR/tiddlers/{Sharing_a_TiddlyWiki_on_Dropbox.tid → Sharing a TiddlyWiki on Dropbox.tid } +12 -4
- package/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid +18 -0
- package/editions/fr-FR/tiddlers/Structuring TiddlyWiki.tid +6 -6
- package/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid +11 -10
- package/editions/fr-FR/tiddlers/Tagging.tid +24 -18
- package/editions/fr-FR/tiddlers/TaskManagementExample.tid +3 -1
- package/editions/fr-FR/tiddlers/TiddlerLinks.tid +5 -5
- package/editions/fr-FR/tiddlers/TiddlyFox Apocalypse.tid +46 -0
- package/editions/fr-FR/tiddlers/TiddlyFox.tid +6 -3
- package/editions/fr-FR/tiddlers/TiddlyWiki.tid +6 -4
- package/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid +2 -2
- package/editions/innerwikidemo/tiddlywiki.info +2 -1
- package/editions/introduction/tiddlers/slides/TiddlyWiki.tid +1 -1
- package/editions/introduction/tiddlywiki.info +8 -1
- package/editions/prerelease/tiddlers/{Release 5.1.24.tid → Release 5.2.3.tid } +44 -12
- package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
- package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
- package/editions/prerelease/tiddlers/system/download-empty.tid +10 -0
- package/editions/server-external-js/tiddlywiki.info +7 -4
- package/editions/test/tiddlers/tests/data/deserializers/case 1.tid +4 -0
- package/editions/test/tiddlers/tests/data/deserializers/case 2.tid +12 -0
- package/editions/test/tiddlers/tests/data/deserializers/case 3.tid +18 -0
- package/editions/test/tiddlers/tests/data/deserializers/case 4.tid +19 -0
- package/editions/test/tiddlers/tests/data/deserializers/case 5.tid +20 -0
- package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid +33 -0
- package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid +43 -0
- package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid +43 -0
- package/editions/test/tiddlers/tests/test-action-widgets.js +55 -0
- package/editions/test/tiddlers/tests/test-deserializers.js +39 -0
- package/editions/test/tiddlers/tests/test-filters.js +1018 -753
- package/editions/test/tiddlers/tests/test-html-parser.js +33 -12
- package/editions/test/tiddlers/tests/test-linked-list.js +182 -66
- package/editions/test/tiddlers/tests/test-parsetextreference.js +132 -0
- package/editions/test/tiddlers/tests/test-prefixes-filter.js +319 -5
- package/editions/test/tiddlers/tests/test-tags.js +19 -0
- package/editions/test/tiddlers/tests/test-utils.js +10 -0
- package/editions/test/tiddlers/tests/test-widget.js +189 -0
- package/editions/test/tiddlers/tests/test-wikitext-parser.js +140 -20
- package/editions/test/tiddlers/tests/test-wikitext-tabs-macro.js +86 -0
- package/editions/tw.org/tiddlers/$__DefaultTiddlers.tid +6 -0
- package/editions/tw.org/tiddlers/$__SiteSubtitle.tid +6 -0
- package/editions/tw.org/tiddlers/$__SiteTitle.tid +6 -0
- package/editions/tw.org/tiddlers/$__StoryList.tid +3 -0
- package/editions/tw.org/tiddlers/$__favicon.ico.png +0 -0
- package/editions/tw.org/tiddlers/$__favicon.ico.png.meta +4 -0
- package/editions/tw.org/tiddlers/$__palette.tid +6 -0
- package/editions/tw.org/tiddlers/$__palettes_BlueFlavour +165 -0
- package/editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta +8 -0
- package/editions/tw.org/tiddlers/$__palettes_FlowingSun +165 -0
- package/editions/tw.org/tiddlers/$__palettes_FlowingSun.meta +8 -0
- package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid +6 -0
- package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid +6 -0
- package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid +6 -0
- package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid +6 -0
- package/editions/tw.org/tiddlers/HelloThere.tid +14 -0
- package/editions/tw.org/tiddlers/Table of Contents.tid +11 -0
- package/editions/tw.org/tiddlers/TiddlyWiki.tid +8 -0
- package/editions/tw.org/tiddlywiki.info +30 -0
- package/editions/tw5.com/tiddlers/$__StoryList.tid +5 -0
- package/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid +1 -1
- package/editions/tw5.com/tiddlers/{License.tid → about/License.tid} +0 -0
- package/editions/tw5.com/tiddlers/commands/NamedCommandParameters.tid +2 -2
- package/editions/tw5.com/tiddlers/community/Community Editions.tid +24 -0
- package/editions/tw5.com/tiddlers/community/Community Links Aggregator.tid +10 -0
- package/editions/tw5.com/tiddlers/community/Community Palettes.tid +24 -0
- package/editions/tw5.com/tiddlers/community/Community Plugins.tid +24 -0
- package/editions/tw5.com/tiddlers/community/Community Themes.tid +24 -0
- package/editions/tw5.com/tiddlers/community/Community.tid +5 -3
- package/editions/tw5.com/tiddlers/community/Contributing.tid +49 -13
- package/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid +3 -3
- package/editions/tw5.com/tiddlers/community/Forums.tid +16 -13
- package/editions/tw5.com/tiddlers/community/Other Resources.tid +24 -0
- package/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid +2 -2
- package/editions/tw5.com/tiddlers/community/TW Icons by morosanuae.tid +9 -0
- package/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid +2 -2
- package/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid +17 -0
- package/editions/tw5.com/tiddlers/community/editions/Stroll by David Gifford.tid +18 -0
- package/editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid +25 -0
- package/editions/tw5.com/tiddlers/community/{resources → editions}/_Cardo-A Task and Project Management Wiki_ by David_Szego.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → editions}/_Noteself_ by Danielo Rodriguez.tid +2 -2
- package/editions/tw5.com/tiddlers/community/examples/PETTIL.tid +1 -1
- package/editions/tw5.com/tiddlers/community/examples/Reveal.js by Devin Weaver.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → examples}/_Lucky Sushi_ online shop by sini-Kit.tid +3 -3
- package/editions/tw5.com/tiddlers/community/palettes/Dracula for tiddlywiki.tid +22 -0
- package/editions/tw5.com/tiddlers/community/palettes/palletes by JD.tid +20 -0
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Ace Editor Plugin by Joerg Plewe.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/BJHacks.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Disqus comments plugin by bimlas.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Encrypt single tiddler plugin.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Eucalys Tiddly World.tid +4 -3
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Favorites by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Full Text Search Plugin by Rob Hoelz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/GSD5.tid +3 -3
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/IndexedDB Plugin by Andreas Abeck.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Json Mangler plugin by Joshua Fontany.tid +3 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Kin filter operator by bimlas.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Kookma Plugin Library by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Leaflet_maps_plugin_by_Sylvain_Comte.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Locator plugin by bimlas.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/MathJax Plugin by Martin Kantor.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Plugins by TheDiveO.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Refnotes by Mohammad.tid +4 -4
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Searchwikis by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Shiraz by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Slider by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tiddler Commander by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid +14 -0
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyMap by Felix Kuppers.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyWiki for Scholars.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tiddlyshow by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Timelines by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tinka by Andreas Hahn.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Todolist by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Trashbin by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/Utility by Mohammad.tid +1 -1
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_JD Mobile Layout plugin_ by JD.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Mal's Sandbox_ by Mal.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_SK_Plugins_ by Stephen Kimmel.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Slides and Stories_ by Jan.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_TW5-TeXZilla_ plugin by Joe Renes.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Tekan_ Kanban that stays with you_ by Riz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/datepicker based on Pikaday.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/rboue's plugins for TiddlyWiki.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → plugins}/vis.js Timeline.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/BrainTest.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Code styles and auto format settings for IDEs.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/CouchDB Adaptor.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Filter Examples by Tobias Beer.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Font Awesome 5 Free SVGs for TiddlyWiki by morosanuae.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Gospel_Bubbles_by_Rev_David_Gifford.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Grok TiddlyWiki by Soren Bjornstad.tid +16 -0
- package/editions/tw5.com/tiddlers/community/resources/Heeg.ru.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Projectify by Nicolas Petton.tid +20 -0
- package/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/SeeAlso by Matias Goldman.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TB5 a pocket full of tips by Tobias Beer.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TW-Scripts by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TW5 Magick.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TW5-SingleExecutable_by_Jed_Carty.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid +27 -0
- package/editions/tw5.com/tiddlers/community/resources/TWCommunitySearch.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TWaddle by Matias Goldman.tid +1 -1
- package/editions/tw5.com/tiddlers/community/resources/TiddlyChrome by Arlen Beiler.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid +4 -4
- package/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Notes.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Video Tutorials by Francis Meetze.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for Sublime Text 3 by roma0104.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for ViM.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki guide FR.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki wu.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Playground.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Twexe_ Single File Tiddlywiki5 executable.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/Wikilabs by PMario.tid +3 -3
- package/editions/tw5.com/tiddlers/community/resources/Wills QnD gTD.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_ATWiki_ by Lamusia Project.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_Dynamic Tables_ by Jed Carty.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid +3 -2
- package/editions/tw5.com/tiddlers/community/resources/_In My Socks_ by Jed Carty.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid +3 -2
- package/editions/tw5.com/tiddlers/community/resources/_TWeb.at_ by Mario Pietsch.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid +6 -3
- package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Knowledge Network_ by Dmitry Sokolov.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Toolmap_ by David Gifford.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Bourbon_ from mkt_memory.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Forum on Reddit_ by Riz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_muritest_ by Simon Huber.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid +2 -2
- package/editions/tw5.com/tiddlers/community/resources/twproxy by Steve Gattuso.tid +2 -2
- package/editions/tw5.com/tiddlers/community/themes/Mono theme by JD.tid +11 -0
- package/editions/tw5.com/tiddlers/community/themes/Notebook theme by Nicolas Petton.tid +19 -0
- package/editions/tw5.com/tiddlers/community/themes/Whitespace a negative-spacious webapp-nostalgic theme by JD.tid +11 -0
- package/editions/tw5.com/tiddlers/community/{resources → themes}/_Ghostwriter theme by Rory Gibson_ by Riz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → themes}/_Moments-A little color won't hurt_ by Riz.tid +2 -2
- package/editions/tw5.com/tiddlers/community/{resources → tutorials}/GitHub Saver Tutorial by Mohammad.tid +2 -2
- package/editions/tw5.com/tiddlers/concepts/Cascades.tid +48 -0
- package/editions/tw5.com/tiddlers/concepts/Concepts.tid +5 -3
- package/editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid +31 -0
- package/editions/tw5.com/tiddlers/concepts/Edit Template Body Cascade.tid +16 -0
- package/editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid +17 -0
- package/editions/tw5.com/tiddlers/concepts/Filters.tid +15 -10
- package/editions/tw5.com/tiddlers/concepts/Macros.tid +1 -3
- package/editions/tw5.com/tiddlers/concepts/Messages.tid +2 -2
- package/editions/tw5.com/tiddlers/concepts/ModuleType.tid +2 -2
- package/editions/tw5.com/tiddlers/concepts/Order of Tagged Tiddlers.tid +1 -1
- package/editions/tw5.com/tiddlers/concepts/PermaLinks.tid +2 -2
- package/editions/tw5.com/tiddlers/concepts/Pragma.tid +2 -2
- package/editions/tw5.com/tiddlers/concepts/Railroad Diagrams.tid +2 -1
- package/editions/tw5.com/tiddlers/concepts/ShadowTiddlers.tid +14 -3
- package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template Cascade.tid +16 -0
- package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template.tid +13 -0
- package/editions/tw5.com/tiddlers/concepts/SystemTags.tid +9 -9
- package/editions/tw5.com/tiddlers/concepts/TagTiddlers.tid +1 -1
- package/editions/tw5.com/tiddlers/concepts/Tiddler Colour Cascade.tid +16 -0
- package/editions/tw5.com/tiddlers/concepts/Tiddler Icon Cascade.tid +16 -0
- package/editions/tw5.com/tiddlers/concepts/TiddlerFields.tid +2 -1
- package/editions/tw5.com/tiddlers/concepts/View Template Body Cascade.tid +19 -0
- package/editions/tw5.com/tiddlers/concepts/View Template Title Cascade.tid +16 -0
- package/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +1 -1
- package/editions/tw5.com/tiddlers/customising/Creating new toolbar buttons.tid +35 -0
- package/editions/tw5.com/tiddlers/customising/Customise TiddlyWiki.tid +3 -3
- package/editions/tw5.com/tiddlers/customising/Customising TiddlyWiki's user interface.tid +75 -0
- package/editions/tw5.com/tiddlers/definitions/BT.tid +3 -2
- package/editions/tw5.com/tiddlers/definitions/MathML.tid +2 -2
- package/editions/tw5.com/tiddlers/definitions/Osmosoft.tid +3 -2
- package/editions/tw5.com/tiddlers/definitions/node-webkit.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid +1 -1
- package/editions/tw5.com/tiddlers/demonstrations/Apple.tid +7 -2
- package/editions/tw5.com/tiddlers/demonstrations/Caruso - Ave Maria.tid +1 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Demo Tiddler List with Custom Story Tiddler Template.tid +10 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Styles.tid +32 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Template.tid +26 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/TiddlerTemplateFilter.tid +6 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerColourCascadeDemo/CustomTiddlerColourCascadeDemo.tid +9 -0
- package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid +9 -0
- package/editions/tw5.com/tiddlers/demonstrations/ImageGallery Example.tid +5 -16
- package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/Demonstration_ keyboard-driven-input Macro.tid +121 -0
- package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/kdi-demo-configtid.tid +7 -0
- package/editions/tw5.com/tiddlers/demonstrations/SampleNotification.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerFirst.tid +3 -1
- package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerSecond.tid +3 -1
- package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerThird.tid +3 -1
- package/editions/tw5.com/tiddlers/demonstrations/SampleWizard.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/SampleWizard2.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Contents.tid +3 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/First.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstOne.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstThree.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstTwo.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Fourth.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Second.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondOne.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThree.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeOne.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeThree.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeTwo.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondTwo.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Third.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdOne.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdThree.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdTwo.tid +2 -2
- package/editions/tw5.com/tiddlers/demonstrations/Tagged with TagMacro.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/Compose ballad.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/Get the Ring.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/Go to Mordor.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/Kill the Dragon.tid +4 -4
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/Make the beds.tid +3 -3
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/done.tid +3 -1
- package/editions/tw5.com/tiddlers/demonstrations/Tasks/task.tid +3 -2
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Days of the Week.tid +5 -4
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Friday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Monday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Saturday.tid +3 -2
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Sunday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Thursday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Tuesday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Wednesday.tid +2 -1
- package/editions/tw5.com/tiddlers/demonstrations/sampletag1.tid +3 -0
- package/editions/tw5.com/tiddlers/demonstrations/sampletag2.tid +3 -0
- package/editions/tw5.com/tiddlers/features/DateFormat.tid +11 -2
- package/editions/tw5.com/tiddlers/features/Importing Tiddlers.tid +1 -1
- package/editions/tw5.com/tiddlers/features/LazyLoading.tid +2 -3
- package/editions/tw5.com/tiddlers/features/Modals.tid +2 -1
- package/editions/tw5.com/tiddlers/features/Performance Instrumentation.tid +1 -1
- package/editions/tw5.com/tiddlers/features/Scalability.tid +4 -2
- package/editions/tw5.com/tiddlers/fileformats/TiddlerFiles.tid +15 -4
- package/editions/tw5.com/tiddlers/filters/Filter Operators.tid +11 -7
- package/editions/tw5.com/tiddlers/filters/Mathematics Operators.tid +2 -1
- package/editions/tw5.com/tiddlers/filters/acos Operator.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/all.tid +2 -2
- package/editions/tw5.com/tiddlers/filters/asin Operator.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/atan Operator.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/atan2 Operator.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/average.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/butlast.tid +3 -1
- package/editions/tw5.com/tiddlers/filters/charcode.tid +17 -0
- package/editions/tw5.com/tiddlers/filters/cos Operator.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/deserializers Operator.tid +14 -0
- package/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid +3 -3
- package/editions/tw5.com/tiddlers/filters/enlist Operator.tid +2 -3
- package/editions/tw5.com/tiddlers/filters/enlist-input Operator.tid +1 -1
- package/editions/tw5.com/tiddlers/filters/examples/acos Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/asin Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/atan Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/atan2 Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/average Operator (Examples).tid +10 -0
- package/editions/tw5.com/tiddlers/filters/examples/butlast.tid +4 -3
- package/editions/tw5.com/tiddlers/filters/examples/charcode.tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/cos Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/cycle Operator (Examples).tid +1 -1
- package/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid +16 -1
- package/editions/tw5.com/tiddlers/filters/examples/insertbefore Operator (Examples).tid +28 -0
- package/editions/tw5.com/tiddlers/filters/examples/log Operator (Examples).tid +1 -1
- package/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +7 -1
- package/editions/tw5.com/tiddlers/filters/examples/match Operator (Examples).tid +1 -1
- package/editions/tw5.com/tiddlers/filters/examples/median Operator (Examples).tid +10 -0
- package/editions/tw5.com/tiddlers/filters/examples/moduleproperty Operator (Examples).tid +11 -0
- package/editions/tw5.com/tiddlers/filters/examples/modules.tid +4 -1
- package/editions/tw5.com/tiddlers/filters/examples/prefix.tid +4 -3
- package/editions/tw5.com/tiddlers/filters/examples/removeprefix.tid +2 -1
- package/editions/tw5.com/tiddlers/filters/examples/removesuffix.tid +2 -3
- package/editions/tw5.com/tiddlers/filters/examples/rest.tid +4 -3
- package/editions/tw5.com/tiddlers/filters/examples/search-replace Operator (Examples).tid +13 -1
- package/editions/tw5.com/tiddlers/filters/examples/search.tid +6 -1
- package/editions/tw5.com/tiddlers/filters/examples/sin Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/sortan.tid +5 -1
- package/editions/tw5.com/tiddlers/filters/examples/standard-deviation Operator (Examples).tid +10 -0
- package/editions/tw5.com/tiddlers/filters/examples/subfilter Operator (Examples).tid +25 -3
- package/editions/tw5.com/tiddlers/filters/examples/suffix.tid +3 -2
- package/editions/tw5.com/tiddlers/filters/examples/tan Operator (Examples).tid +7 -0
- package/editions/tw5.com/tiddlers/filters/examples/unique Operator (Examples).tid +8 -0
- package/editions/tw5.com/tiddlers/filters/examples/variance Operator (Examples).tid +10 -0
- package/editions/tw5.com/tiddlers/filters/examples/zth Operator (Examples).tid +10 -0
- package/editions/tw5.com/tiddlers/filters/filter.tid +3 -1
- package/editions/tw5.com/tiddlers/filters/format.tid +2 -1
- package/editions/tw5.com/tiddlers/filters/insertbefore Operator.tid +21 -5
- package/editions/tw5.com/tiddlers/filters/list.tid +2 -2
- package/editions/tw5.com/tiddlers/filters/lookup Operator.tid +28 -10
- package/editions/tw5.com/tiddlers/filters/median.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/moduleproperty Operator.tid +12 -0
- package/editions/tw5.com/tiddlers/filters/modules.tid +8 -6
- package/editions/tw5.com/tiddlers/filters/nth.tid +9 -7
- package/editions/tw5.com/tiddlers/filters/prefix.tid +17 -2
- package/editions/tw5.com/tiddlers/filters/range.tid +22 -20
- package/editions/tw5.com/tiddlers/filters/reduce.tid +2 -1
- package/editions/tw5.com/tiddlers/filters/removeprefix.tid +18 -3
- package/editions/tw5.com/tiddlers/filters/removesuffix.tid +18 -3
- package/editions/tw5.com/tiddlers/filters/search-replace Operator.tid +2 -2
- package/editions/tw5.com/tiddlers/filters/search.tid +10 -9
- package/editions/tw5.com/tiddlers/filters/sha256 Operator.tid +18 -0
- package/editions/tw5.com/tiddlers/filters/sin Operator.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/sortsub Operator.tid +12 -9
- package/editions/tw5.com/tiddlers/filters/standard-deviation Operator.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/storyviews.tid +1 -1
- package/editions/tw5.com/tiddlers/filters/subfilter Operator.tid +5 -3
- package/editions/tw5.com/tiddlers/filters/suffix.tid +17 -2
- package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix (Examples).tid +46 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid +20 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +12 -3
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix (Examples).tid +30 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix.tid +27 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid +3 -2
- package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix (Examples).tid +9 -34
- package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix (Examples).tid +36 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix (Examples).tid +41 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix.tid +27 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +3 -3
- package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix (Examples).tid +27 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix.tid +38 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid +33 -0
- package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +32 -0
- package/editions/tw5.com/tiddlers/filters/tan Operator.tid +13 -0
- package/editions/tw5.com/tiddlers/filters/unique.tid +10 -0
- package/editions/tw5.com/tiddlers/filters/variance Operator.tid +15 -0
- package/editions/tw5.com/tiddlers/filters/zth Operator.tid +18 -0
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Online.tid +2 -2
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid +2 -1
- package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid +2 -1
- package/editions/tw5.com/tiddlers/hellothere/A Gentle Guide to TiddlyWiki.tid +5 -2
- package/editions/tw5.com/tiddlers/{AllTiddlers.tid → hellothere/AllTiddlers.tid} +0 -0
- package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +3 -3
- package/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +1 -1
- package/editions/tw5.com/tiddlers/hellothere/Some of the things you can do with TiddlyWiki.tid +2 -2
- package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Badge.svg.tid +1 -0
- package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Link.tid +1 -0
- package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid +6 -0
- package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid +6 -0
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting HtmlParserDisableSandbox.tid +13 -0
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting NewImageType.tid +3 -1
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting ShowEditPreviewPerTiddler.tid +10 -0
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Disable Drag and Drop.tid +2 -2
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Enable File Import in Editor_1.tid +12 -0
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Typin Refresh Delay.tid +2 -2
- package/editions/tw5.com/tiddlers/hiddensettings/Hidden Settings_ Import Content Types for Editor.tid +11 -0
- package/editions/tw5.com/tiddlers/howtos/Concatenating text and variables using macro substitution.tid +4 -14
- package/editions/tw5.com/tiddlers/howtos/Creating SubStories.tid +21 -33
- package/editions/tw5.com/tiddlers/howtos/Debugging Stylesheets.tid +11 -0
- package/editions/tw5.com/tiddlers/howtos/Formatting List Results as Tables with CSS - Specified Columns Methods.tid +4 -0
- package/editions/tw5.com/tiddlers/howtos/How to create a custom story tiddler template.tid +40 -0
- package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler colour rule.tid +36 -0
- package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler icon rule.tid +36 -0
- package/editions/tw5.com/tiddlers/howtos/How to create dynamic editor toolbar buttons.tid +126 -0
- package/editions/tw5.com/tiddlers/howtos/Simple ways to write protect tiddlers.tid +4 -5
- package/editions/tw5.com/tiddlers/howtos/Text preview.tid +6 -2
- package/editions/tw5.com/tiddlers/howtos/Using Stylesheets.tid +10 -4
- package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png +0 -0
- package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png.meta +3 -0
- package/editions/tw5.com/tiddlers/images/Icon Gallery.tid +14 -0
- package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
- package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png +0 -0
- package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png.meta +3 -0
- package/editions/tw5.com/tiddlers/languages/Japanese (Japan) Edition.tid +11 -0
- package/editions/tw5.com/tiddlers/languages/LanguageGallery.tid +2 -2
- package/editions/tw5.com/tiddlers/macros/NowMacro.tid +3 -1
- package/editions/tw5.com/tiddlers/macros/TabsMacro.tid +3 -3
- package/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid +28 -4
- package/editions/tw5.com/tiddlers/macros/examples/colour-picker Macro (Example 1).tid +2 -2
- package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 1).tid +2 -2
- package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 2).tid +2 -2
- package/editions/tw5.com/tiddlers/macros/examples/qualify.tid +0 -2
- package/editions/tw5.com/tiddlers/macros/examples/unusedtitle Macro (Examples 1).tid +51 -0
- package/editions/tw5.com/tiddlers/macros/examples/unusedtitle.tid +11 -2
- package/editions/tw5.com/tiddlers/macros/keyboard-driven-input_Macro.tid +3 -0
- package/editions/tw5.com/tiddlers/macros/list-links-draggable Macro.tid +1 -1
- package/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +3 -2
- package/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid +2 -2
- package/editions/tw5.com/tiddlers/messages/SampleModal.tid +2 -1
- package/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid +10 -0
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid +20 -0
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid +39 -0
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid +6 -1
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +27 -1
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-navigate.tid +7 -1
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +28 -6
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-relink-tiddler.tid +26 -0
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-rename-tiddler.tid +4 -2
- package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-scroll.tid +3 -0
- package/editions/tw5.com/tiddlers/nodejs/Customising Tiddler File Naming.tid +19 -15
- package/editions/tw5.com/tiddlers/nodejs/Environment Variables on Node.js.tid +4 -2
- package/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +10 -3
- package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +6 -5
- package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.info_Files.tid +2 -2
- package/editions/tw5.com/tiddlers/platforms/TiddlyFox Apocalypse.tid +2 -2
- package/editions/tw5.com/tiddlers/platforms/TiddlyWiki in the Sky for TiddlyWeb.tid +3 -8
- package/editions/tw5.com/tiddlers/plugins/Highlight Plugin.tid +3 -1
- package/editions/tw5.com/tiddlers/plugins/Plugin Types.tid +2 -2
- package/editions/tw5.com/tiddlers/plugins/Share Plugin.tid +12 -0
- package/editions/tw5.com/tiddlers/reference/Reference.tid +1 -0
- package/editions/tw5.com/tiddlers/releasenotes/BetaReleases.tid +2 -2
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.21.tid +6 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +6 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +5 -3
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +303 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +124 -0
- package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.2.tid +162 -0
- package/editions/tw5.com/tiddlers/releasenotes/ReleaseTemplate.tid +3 -0
- package/editions/tw5.com/tiddlers/releasenotes/Releases.tid +4 -2
- package/editions/tw5.com/tiddlers/releasenotes/alpha/AlphaReleases.tid +2 -2
- package/editions/tw5.com/tiddlers/saving/Example config-tiddlyweb-host for IIS.txt.meta +1 -1
- package/editions/tw5.com/tiddlers/saving/Example package.json for IIS.txt.meta +1 -1
- package/editions/tw5.com/tiddlers/saving/Example tiddlywiki.info for IIS.txt.meta +1 -1
- package/editions/tw5.com/tiddlers/saving/Example web.config for IIS.txt.meta +1 -1
- package/editions/tw5.com/tiddlers/saving/Saving on Browser with the File System Access API.tid +21 -0
- package/editions/tw5.com/tiddlers/saving/Saving on TidGi.tid +26 -0
- package/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid +17 -0
- package/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid +19 -29
- package/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid +2 -2
- package/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +65 -10
- package/editions/tw5.com/tiddlers/saving/Saving with Polly.tid +29 -0
- package/editions/tw5.com/tiddlers/saving/TiddlyWiki in the Sky for Dropbox.tid +1 -1
- package/editions/tw5.com/tiddlers/styleguide/Documentation Macros.tid +6 -2
- package/editions/tw5.com/tiddlers/styleguide/Tiddler Structure.tid +3 -1
- package/editions/tw5.com/tiddlers/{TableOfContents.tid → system/TableOfContents.tid} +0 -0
- package/editions/tw5.com/tiddlers/system/doc-macros.tid +42 -1
- package/editions/tw5.com/tiddlers/system/doc-styles.tid +34 -5
- package/editions/tw5.com/tiddlers/system/download-empty.tid +1 -0
- package/editions/tw5.com/tiddlers/system/operator-macros.tid +16 -7
- package/editions/tw5.com/tiddlers/system/operator-template.tid +14 -11
- package/editions/tw5.com/tiddlers/system/style-guide-macros.tid +5 -1
- package/editions/tw5.com/tiddlers/system/variable-macros.tid +4 -2
- package/editions/tw5.com/tiddlers/system/wikitext-macros.tid +21 -3
- package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ControlPanel_Plugins.tid +9 -0
- package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid +9 -0
- package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Image.tid +2 -2
- package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 1-2-3.tid +2 -1
- package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 3-4-5.tid +2 -1
- package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 4-5-6.tid +2 -1
- package/editions/tw5.com/tiddlers/webserver/Using HTTPS.tid +17 -2
- package/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +86 -9
- package/editions/tw5.com/tiddlers/webserver/WebServer API_ Delete Tiddler.tid +5 -1
- package/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid +1 -1
- package/editions/tw5.com/tiddlers/webserver/WebServer API_ Put Tiddler.tid +5 -1
- package/editions/tw5.com/tiddlers/webserver/WebServer Authorization.tid +15 -3
- package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ admin.tid +8 -0
- package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ required-plugins.tid +8 -0
- package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tls-passphrase.tid +10 -0
- package/editions/tw5.com/tiddlers/widgets/$__docs_anyField.tid +8 -0
- package/editions/tw5.com/tiddlers/widgets/$__editions_tw5.com_widget-examples_qualify-transcluded.tid +14 -0
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +3 -3
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +4 -4
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Template.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid +10 -6
- package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +7 -5
- package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +52 -2
- package/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +4 -1
- package/editions/tw5.com/tiddlers/widgets/ActionSendMessageWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/ActionSetMultipleFieldsWidget.tid +31 -0
- package/editions/tw5.com/tiddlers/widgets/ActionWidget Execution Modes.tid +49 -0
- package/editions/tw5.com/tiddlers/widgets/ActionWidgets.tid +10 -7
- package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +9 -4
- package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid +11 -6
- package/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +10 -20
- package/editions/tw5.com/tiddlers/widgets/EditWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +36 -27
- package/editions/tw5.com/tiddlers/widgets/FieldManglerWidget.tid +3 -3
- package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +9 -1
- package/editions/tw5.com/tiddlers/widgets/JSONTiddlerWidget.tid +22 -0
- package/editions/tw5.com/tiddlers/widgets/Keyboard Codes.tid +27 -0
- package/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid +17 -3
- package/editions/tw5.com/tiddlers/widgets/LetWidget.tid +57 -0
- package/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid +3 -2
- package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +34 -1
- package/editions/tw5.com/tiddlers/widgets/ListopsData.tid +1 -0
- package/editions/tw5.com/tiddlers/widgets/MacroCallWidget.tid +3 -1
- package/editions/tw5.com/tiddlers/widgets/MessageCatcherWidget.tid +46 -0
- package/editions/tw5.com/tiddlers/widgets/MessageHandlerWidgets.tid +13 -0
- package/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid +5 -2
- package/editions/tw5.com/tiddlers/widgets/QualifyWidget.tid +39 -0
- package/editions/tw5.com/tiddlers/widgets/RadioWidget Example.tid +14 -11
- package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +9 -9
- package/editions/tw5.com/tiddlers/widgets/RangeWidget Example.tid +4 -5
- package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +5 -5
- package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +27 -3
- package/editions/tw5.com/tiddlers/widgets/SetMultipleVariablesWidget.tid +33 -0
- package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +62 -35
- package/editions/tw5.com/tiddlers/widgets/The Extended Listops Filters.tid +2 -1
- package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +7 -6
- package/editions/tw5.com/tiddlers/widgets/TriggeringWidgets.tid +13 -0
- package/editions/tw5.com/tiddlers/widgets/VarsWidget.tid +7 -5
- package/editions/tw5.com/tiddlers/widgets/ViewWidget.tid +27 -8
- package/editions/tw5.com/tiddlers/widgets/WikifyWidget.tid +2 -2
- package/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +48 -5
- package/editions/tw5.com/tiddlers/wikitext/Images in WikiText.tid +5 -3
- package/editions/tw5.com/tiddlers/wikitext/Linking in WikiText.tid +44 -1
- package/editions/tw5.com/tiddlers/wikitext/Macro Calls in WikiText.tid +3 -3
- package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -2
- package/editions/tw5.com/tiddlers/wikitext/Transclusion in WikiText.tid +2 -1
- package/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid +3 -3
- package/editions/tw5.com/tiddlers/wikitext/parser/Block Mode WikiText (Examples).tid +51 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/Block Mode WikiText.tid +35 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/Inline Mode WikiText.tid +26 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/Places where the parser ignores WikiText.tid +14 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid +16 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode transitions.tid +59 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ HTML examples.tid +72 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ macro examples.tid +55 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ transclusion examples.tid +56 -0
- package/editions/tw5.com/tiddlers/wikitext/parser/table-example.tid +8 -0
- package/editions/tw5.com/tiddlers/workingwithtw/Sharing your tiddlers with others.tid +2 -1
- package/editions/tw5.com/tiddlywiki.info +2 -2
- package/editions/xlsx-utils/tiddlers/samples/Presidents and Justices.xlsx and b/package/editions/xlsx-utils/tiddlers/samples/Presidents → Justices.xlsx +0 -0
- package/languages/ar-PS/Misc.multids +1 -2
- package/languages/ca-ES/ControlPanel.multids +4 -1
- package/languages/ca-ES/EditTemplate.multids +4 -0
- package/languages/ca-ES/Help/notfound.tid +1 -1
- package/languages/ca-ES/Import.multids +11 -0
- package/languages/ca-ES/Misc.multids +20 -2
- package/languages/cs-CZ/Misc.multids +0 -1
- package/languages/da-DK/Misc.multids +0 -1
- package/languages/de-DE/ControlPanel.multids +22 -1
- package/languages/de-DE/Docs/ModuleTypes.multids +1 -0
- package/languages/de-DE/EditTemplate.multids +2 -0
- package/languages/de-DE/Fields.multids +6 -5
- package/languages/de-DE/Help/listen.tid +3 -2
- package/languages/de-DE/Help/render.tid +2 -1
- package/languages/de-DE/Import.multids +6 -0
- package/languages/de-DE/Misc.multids +10 -2
- package/languages/de-DE/SideBar.multids +1 -0
- package/languages/de-DE/ThemeTweaks.multids +2 -2
- package/languages/de-DE/TiddlerInfo.multids +1 -1
- package/languages/el-GR/Misc.multids +1 -2
- package/languages/es-ES/Buttons.multids +29 -6
- package/languages/es-ES/ControlPanel.multids +97 -37
- package/languages/es-ES/Dates.multids +11 -1
- package/languages/es-ES/Docs/ModuleTypes.multids +8 -0
- package/languages/es-ES/Docs/PaletteColours.multids +109 -0
- package/languages/es-ES/EditTemplate.multids +18 -11
- package/languages/es-ES/Exporters.multids +2 -2
- package/languages/es-ES/Fields.multids +7 -4
- package/languages/es-ES/Filters.multids +9 -7
- package/languages/es-ES/GettingStarted.tid +1 -0
- package/languages/es-ES/Help/deletetiddlers.tid +8 -0
- package/languages/es-ES/Help/fetch.tid +38 -0
- package/languages/es-ES/Help/import.tid +24 -0
- package/languages/es-ES/Help/init.tid +1 -7
- package/languages/es-ES/Help/listen.tid +35 -0
- package/languages/es-ES/Help/load.tid +5 -2
- package/languages/es-ES/Help/makelibrary.tid +1 -3
- package/languages/es-ES/Help/password.tid +2 -1
- package/languages/es-ES/Help/render.tid +35 -0
- package/languages/es-ES/Help/rendertiddler.tid +14 -3
- package/languages/es-ES/Help/rendertiddlers.tid +6 -6
- package/languages/es-ES/Help/save.tid +25 -0
- package/languages/es-ES/Help/savetiddler.tid +3 -2
- package/languages/es-ES/Help/savetiddlers.tid +6 -3
- package/languages/es-ES/Help/savewikifolder.tid +19 -0
- package/languages/es-ES/Help/server.tid +12 -8
- package/languages/es-ES/Import.multids +23 -4
- package/languages/es-ES/Misc.multids +68 -22
- package/languages/es-ES/NewJournalTags.tid +3 -0
- package/languages/es-ES/Notifications.multids +3 -1
- package/languages/es-ES/Search.multids +1 -0
- package/languages/es-ES/SideBar.multids +1 -0
- package/languages/es-ES/ThemeTweaks.multids +42 -0
- package/languages/es-ES/TiddlerInfo.multids +2 -2
- package/languages/es-ES/Types/{application%2Fjavascript.tid → application_javascript.tid} +1 -0
- package/languages/es-ES/Types/{application%2Fjson.tid → application_json.tid} +1 -0
- package/languages/es-ES/Types/{application%2Fx-tiddler-dictionary.tid → application_x_tiddler_dictionary.tid} +1 -0
- package/languages/es-ES/Types/{image%2Fgif.tid → image_gif.tid} +1 -0
- package/languages/es-ES/Types/{image%2Fjpeg.tid → image_jpeg.tid} +1 -0
- package/languages/es-ES/Types/{image%2Fpng.tid → image_png.tid} +1 -0
- package/languages/es-ES/Types/{image%2Fsvg%2Bxml.tid → image_svg_xml.tid} +1 -0
- package/languages/es-ES/Types/{image%2Fx-icon.tid → image_x-icon.tid} +1 -0
- package/languages/es-ES/Types/{text%2Fcss.tid → text_css.tid} +1 -0
- package/languages/es-ES/Types/{text%2Fhtml.tid → text_html.tid} +1 -0
- package/languages/es-ES/Types/{text%2Fplain.tid → text_plain.tid} +1 -0
- package/languages/es-ES/Types/{text%2Fvnd.tiddlywiki.tid → text_vnd.tiddlywiki.tid} +1 -0
- package/languages/es-ES/Types/{text%2Fx-tiddlywiki.tid → text_x-tiddlywiki.tid} +1 -0
- package/languages/es-ES/plugin.info +3 -3
- package/languages/fa-IR/Misc.multids +1 -2
- package/languages/fr-FR/ControlPanel.multids +5 -1
- package/languages/fr-FR/Docs/ModuleTypes.multids +2 -1
- package/languages/fr-FR/EditTemplate.multids +4 -0
- package/languages/fr-FR/Filters.multids +3 -2
- package/languages/fr-FR/Help/listen.tid +2 -0
- package/languages/fr-FR/Help/render.tid +5 -4
- package/languages/fr-FR/Import.multids +17 -11
- package/languages/fr-FR/Misc.multids +11 -2
- package/languages/fr-FR/TiddlerInfo.multids +2 -2
- package/languages/he-IL/Misc.multids +0 -1
- package/languages/hi-IN/Misc.multids +0 -1
- package/languages/ia-IA/Misc.multids +0 -1
- package/languages/it-IT/Misc.multids +0 -1
- package/languages/ja-JP/Misc.multids +0 -1
- package/languages/ko-KR/Misc.multids +0 -1
- package/languages/nl-NL/Misc.multids +1 -2
- package/languages/pa-IN/Misc.multids +0 -1
- package/languages/pl-PL/Buttons.multids +189 -0
- package/languages/pl-PL/ControlPanel.multids +229 -0
- package/languages/pl-PL/Dates.multids +88 -0
- package/languages/pl-PL/Docs/ModuleTypes.multids +30 -0
- package/languages/pl-PL/Docs/PaletteColours.multids +109 -0
- package/languages/pl-PL/EditTemplate.multids +38 -0
- package/languages/pl-PL/Exporters.multids +7 -0
- package/languages/pl-PL/Fields.multids +39 -0
- package/languages/pl-PL/Filters.multids +16 -0
- package/languages/pl-PL/GettingStarted.tid +17 -0
- package/languages/pl-PL/Help/build.tid +12 -0
- package/languages/pl-PL/Help/clearpassword.tid +8 -0
- package/languages/pl-PL/Help/default.tid +22 -0
- package/languages/pl-PL/Help/deletetiddlers.tid +8 -0
- package/languages/pl-PL/Help/editions.tid +8 -0
- package/languages/pl-PL/Help/fetch.tid +40 -0
- package/languages/pl-PL/Help/help.tid +10 -0
- package/languages/pl-PL/Help/import.tid +24 -0
- package/languages/pl-PL/Help/init.tid +23 -0
- package/languages/pl-PL/Help/listen.tid +35 -0
- package/languages/pl-PL/Help/load.tid +19 -0
- package/languages/pl-PL/Help/makelibrary.tid +14 -0
- package/languages/pl-PL/Help/notfound.tid +3 -0
- package/languages/pl-PL/Help/output.tid +11 -0
- package/languages/pl-PL/Help/password.tid +10 -0
- package/languages/pl-PL/Help/render.tid +35 -0
- package/languages/pl-PL/Help/rendertiddler.tid +24 -0
- package/languages/pl-PL/Help/rendertiddlers.tid +20 -0
- package/languages/pl-PL/Help/save.tid +25 -0
- package/languages/pl-PL/Help/savetiddler.tid +14 -0
- package/languages/pl-PL/Help/savetiddlers.tid +16 -0
- package/languages/pl-PL/Help/savewikifolder.tid +19 -0
- package/languages/pl-PL/Help/server.tid +42 -0
- package/languages/pl-PL/Help/setfield.tid +17 -0
- package/languages/pl-PL/Help/unpackplugin.tid +8 -0
- package/languages/pl-PL/Help/verbose.tid +8 -0
- package/languages/pl-PL/Help/version.tid +8 -0
- package/languages/pl-PL/Import.multids +35 -0
- package/languages/pl-PL/Misc.multids +95 -0
- package/languages/pl-PL/Modals/Download.tid +12 -0
- package/languages/pl-PL/Modals/SaveInstructions.tid +21 -0
- package/languages/pl-PL/NewJournal.multids +4 -0
- package/languages/pl-PL/NewJournalTags.tid +3 -0
- package/languages/pl-PL/Notifications.multids +6 -0
- package/languages/pl-PL/Search.multids +21 -0
- package/languages/pl-PL/SideBar.multids +18 -0
- package/languages/pl-PL/SiteSubtitle.tid +3 -0
- package/languages/pl-PL/SiteTitle.tid +3 -0
- package/languages/pl-PL/Snippets/ListByTag.tid +5 -0
- package/languages/pl-PL/Snippets/MacroDefinition.tid +7 -0
- package/languages/pl-PL/Snippets/Table 4x3.tid +8 -0
- package/languages/pl-PL/Snippets/TableOfContents.tid +9 -0
- package/languages/pl-PL/ThemeTweaks.multids +42 -0
- package/languages/pl-PL/TiddlerInfo.multids +22 -0
- package/languages/pl-PL/Types/application_javascript.tid +5 -0
- package/languages/pl-PL/Types/application_json.tid +5 -0
- package/languages/pl-PL/Types/application_x_tiddler_dictionary.tid +5 -0
- package/languages/pl-PL/Types/image_gif.tid +5 -0
- package/languages/pl-PL/Types/image_jpeg.tid +5 -0
- package/languages/pl-PL/Types/image_png.tid +5 -0
- package/languages/pl-PL/Types/image_svg_xml.tid +5 -0
- package/languages/pl-PL/Types/image_x-icon.tid +5 -0
- package/languages/pl-PL/Types/text_css.tid +5 -0
- package/languages/pl-PL/Types/text_html.tid +5 -0
- package/languages/pl-PL/Types/text_plain.tid +5 -0
- package/languages/pl-PL/Types/text_vnd.tiddlywiki.tid +5 -0
- package/languages/pl-PL/Types/text_x-tiddlywiki.tid +5 -0
- package/languages/pl-PL/icon.tid +7 -0
- package/languages/pl-PL/plugin.info +8 -0
- package/languages/pl-PL/readme.md +1 -0
- package/languages/pt-BR/Misc.multids +0 -1
- package/languages/pt-PT/Misc.multids +1 -2
- package/languages/ru-RU/Misc.multids +0 -1
- package/languages/sk-SK/Misc.multids +0 -1
- package/languages/sl-SI/Misc.multids +1 -2
- package/languages/sv-SE/Misc.multids +0 -1
- package/languages/zh-Hans/Buttons.multids +1 -1
- package/languages/zh-Hans/ControlPanel.multids +19 -4
- package/languages/zh-Hans/Docs/ModuleTypes.multids +2 -1
- package/languages/zh-Hans/EditTemplate.multids +2 -0
- package/languages/zh-Hans/Fields.multids +4 -2
- package/languages/zh-Hans/Help/listen.tid +4 -2
- package/languages/zh-Hans/Help/render.tid +2 -2
- package/languages/zh-Hans/Help/save.tid +1 -1
- package/languages/zh-Hans/Import.multids +6 -0
- package/languages/zh-Hans/Misc.multids +4 -3
- package/languages/zh-Hant/Buttons.multids +1 -1
- package/languages/zh-Hant/ControlPanel.multids +19 -2
- package/languages/zh-Hant/Docs/ModuleTypes.multids +2 -1
- package/languages/zh-Hant/EditTemplate.multids +2 -0
- package/languages/zh-Hant/Fields.multids +4 -2
- package/languages/zh-Hant/Help/listen.tid +5 -3
- package/languages/zh-Hant/Help/render.tid +2 -2
- package/languages/zh-Hant/Help/save.tid +1 -1
- package/languages/zh-Hant/Import.multids +6 -0
- package/languages/zh-Hant/Misc.multids +4 -3
- package/license +1 -1
- package/licenses/cla-individual.md +67 -1
- package/package.json +5 -3
- package/plugins/tiddlywiki/bibtex/deserializer.js +3 -2
- package/plugins/tiddlywiki/codemirror/engine.js +86 -3
- package/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid +3 -4
- package/plugins/tiddlywiki/filesystem/filesystemadaptor.js +25 -21
- package/plugins/tiddlywiki/freelinks/settings.tid +2 -0
- package/plugins/tiddlywiki/freelinks/text.js +8 -3
- package/plugins/tiddlywiki/highlight/files/default.min.css +9 -0
- package/plugins/tiddlywiki/highlight/files/highlight.min.js +1401 -0
- package/plugins/tiddlywiki/highlight/files/tiddlywiki.files +2 -2
- package/plugins/tiddlywiki/highlight/highlightblock.js +27 -21
- package/plugins/tiddlywiki/highlight/plugin.info +1 -1
- package/plugins/tiddlywiki/highlight/readme.tid +18 -47
- package/plugins/tiddlywiki/highlight/styles.tid +10 -5
- package/plugins/tiddlywiki/highlight/usage.tid +48 -1
- package/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids +8 -0
- package/plugins/tiddlywiki/{highlight → highlight-legacy}/files/default.css +0 -0
- package/plugins/tiddlywiki/{highlight → highlight-legacy}/files/highlight.pack.js +0 -0
- package/plugins/tiddlywiki/highlight-legacy/files/tiddlywiki.files +22 -0
- package/plugins/tiddlywiki/highlight-legacy/highlightblock.js +44 -0
- package/plugins/tiddlywiki/highlight-legacy/license.tid +27 -0
- package/plugins/tiddlywiki/highlight-legacy/plugin.info +7 -0
- package/plugins/tiddlywiki/highlight-legacy/readme.tid +65 -0
- package/plugins/tiddlywiki/highlight-legacy/styles.tid +82 -0
- package/plugins/tiddlywiki/highlight-legacy/usage.tid +28 -0
- package/plugins/tiddlywiki/innerwiki/template.tid +0 -4
- package/plugins/tiddlywiki/internals/editpreviews/raw.tid +1 -0
- package/plugins/tiddlywiki/katex/config.tid +17 -0
- package/plugins/tiddlywiki/katex/files/README.md +79 -100
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/plugins/tiddlywiki/katex/files/katex.css +1079 -0
- package/plugins/tiddlywiki/katex/files/katex.js +4917 -3543
- package/plugins/tiddlywiki/katex/files/katex.min.css +1 -1
- package/plugins/tiddlywiki/katex/files/katex.min.js +1 -1
- package/plugins/tiddlywiki/katex/files/katex.without-font-face.min.css +1 -1
- package/plugins/tiddlywiki/katex/files/mhchem.min.js +1 -1683
- package/plugins/tiddlywiki/katex/files/tiddlywiki.files +3 -1
- package/plugins/tiddlywiki/katex/plugin.info +2 -2
- package/plugins/tiddlywiki/katex/readme.tid +1 -1
- package/plugins/tiddlywiki/katex/styles.tid +7 -1
- package/plugins/tiddlywiki/katex/ui/config/macro.tid +137 -0
- package/plugins/tiddlywiki/katex/wrapper.js +19 -13
- package/plugins/tiddlywiki/markdown/config_renderWikiTextPragma.tid +1 -1
- package/plugins/tiddlywiki/markdown/files/remarkable-katex-license.txt +21 -0
- package/plugins/tiddlywiki/markdown/files/remarkable-katex.js +137 -0
- package/plugins/tiddlywiki/markdown/files/remarkable-katex.min.js +20 -0
- package/plugins/tiddlywiki/markdown/files/remarkable-license.txt +22 -0
- package/plugins/tiddlywiki/markdown/files/tiddlywiki.files +24 -0
- package/plugins/tiddlywiki/markdown/plugin.info +2 -2
- package/plugins/tiddlywiki/markdown/readme.tid +1 -1
- package/plugins/tiddlywiki/markdown/wrapper.js +50 -16
- package/plugins/tiddlywiki/menubar/menu.tid +1 -1
- package/plugins/tiddlywiki/menubar/readme.tid +1 -0
- package/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid +1 -2
- package/plugins/tiddlywiki/savetrail/savetrail.js +4 -4
- package/plugins/tiddlywiki/share/rawmarkup.js +1 -1
- package/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid +1 -1
- package/plugins/tiddlywiki/tiddlyweb/html-div-tiddler.tid +1 -1
- package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +4 -0
- package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +4 -0
- package/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid +1 -1
- package/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +26 -13
- package/plugins/tiddlywiki/xlsx-utils/deserializer.js +2 -1
- package/readme.md +3 -3
- package/themes/tiddlywiki/snowwhite/base.tid +2 -1
- package/themes/tiddlywiki/starlight/styles.tid +6 -6
- package/themes/tiddlywiki/tight/base.tid +5 -5
- package/themes/tiddlywiki/vanilla/ThemeTweaks.tid +7 -3
- package/themes/tiddlywiki/vanilla/base.tid +202 -87
- package/themes/tiddlywiki/vanilla/reset.tid +1 -1
- package/themes/tiddlywiki/vanilla/settings.multids +1 -1
- package/themes/tiddlywiki/vanilla/sticky.tid +1 -0
- package/core/ui/ViewTemplate/plugin.tid +0 -15
- package/editions/fr-FR/tiddlers/$__core_ui_ViewTemplate_title.tid +0 -46
- package/editions/fr-FR/tiddlers/Images_in_WikiText.tid +0 -48
- package/editions/fr-FR/tiddlers/ImportTiddlers.tid +0 -14
- package/editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid +0 -16
- package/editions/tw5.com/tiddlers/community/Resources.tid +0 -25
- package/editions/tw5.com/tiddlers/community/examples/Obadiah.tid +0 -10
- package/editions/tw5.com/tiddlers/community/resources/Hosting TiddlyWiki5 on GoogleDrive.tid +0 -13
- package/editions/tw5.com/tiddlers/community/resources/How Does Twederation Work by Jed Carty.tid +0 -14
- package/editions/tw5.com/tiddlers/community/resources/Plugins by Uwe Stuehler.tid +0 -13
- package/editions/tw5.com/tiddlers/community/resources/TiddlyClip by buggyjay.tid +0 -14
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Jingle by Mans Martensson.tid +0 -18
- package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Coding.tid +0 -18
- package/editions/tw5.com/tiddlers/customising/Page and tiddler layout customisation.tid +0 -63
- package/editions/tw5.com/tiddlers/demonstrations/SampleAlert.tid +0 -9
- package/plugins/tiddlywiki/highlight/howto.tid +0 -10
@@ -8,791 +8,1056 @@ Tests the filtering mechanism.
|
|
8
8
|
\*/
|
9
9
|
(function(){
|
10
10
|
|
11
|
-
/* jslint node: true, browser: true */
|
12
|
-
/* eslint-env node, browser, jasmine */
|
13
|
-
/* eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/
|
14
|
-
/* global $tw, require */
|
15
|
-
"use strict";
|
16
|
-
|
17
|
-
describe("Filter tests", function() {
|
18
|
-
|
19
|
-
// Test filter parsing
|
20
|
-
it("should parse new-style rich operator suffixes", function() {
|
21
|
-
expect($tw.wiki.parseFilter("[search:: four, , five,, six [operand]]")).toEqual(
|
22
|
-
[ { prefix : '', operators : [ { operator : 'search', suffix : ': four, , five,, six ', suffixes : [ [ ], [ 'four', 'five', 'six' ] ], operands: [ { text:'operand' } ] } ] } ]
|
23
|
-
);
|
24
|
-
expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
|
25
|
-
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
26
|
-
);
|
27
|
-
expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
|
28
|
-
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
29
|
-
);
|
30
|
-
expect($tw.wiki.parseFilter("[search: one, two ,three : four, , five,, six [operand]]")).toEqual(
|
31
|
-
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three : four, , five,, six ', suffixes : [ [ 'one', 'two', 'three' ], [ 'four', 'five', 'six' ] ], operands: [ { text:'operand' } ] } ] } ]
|
32
|
-
);
|
33
|
-
expect($tw.wiki.parseFilter("[search: , : [operand]]")).toEqual(
|
34
|
-
[ { prefix : '', operators : [ { operator : 'search', suffix : ' , : ', suffixes : [ [ ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
35
|
-
);
|
36
|
-
});
|
11
|
+
/* jslint node: true, browser: true */
|
12
|
+
/* eslint-env node, browser, jasmine */
|
13
|
+
/* eslint no-mixed-spaces-and-tabs: ["error", "smart-tabs"]*/
|
14
|
+
/* global $tw, require */
|
15
|
+
"use strict";
|
37
16
|
|
17
|
+
describe("Filter tests", function() {
|
38
18
|
|
39
|
-
|
40
|
-
|
41
|
-
[
|
42
|
-
|
43
|
-
|
44
|
-
[
|
45
|
-
|
46
|
-
|
47
|
-
[
|
48
|
-
|
49
|
-
|
50
|
-
[
|
51
|
-
|
52
|
-
|
53
|
-
[
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
expect(wiki.
|
19
|
+
// Test filter parsing
|
20
|
+
it("should parse new-style rich operator suffixes", function() {
|
21
|
+
expect($tw.wiki.parseFilter("[search:: four, , five,, six [operand]]")).toEqual(
|
22
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ': four, , five,, six ', suffixes : [ [ ], [ 'four', 'five', 'six' ] ], operands: [ { text:'operand' } ] } ] } ]
|
23
|
+
);
|
24
|
+
expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
|
25
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
26
|
+
);
|
27
|
+
expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
|
28
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
29
|
+
);
|
30
|
+
expect($tw.wiki.parseFilter("[search: one, two ,three : four, , five,, six [operand]]")).toEqual(
|
31
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three : four, , five,, six ', suffixes : [ [ 'one', 'two', 'three' ], [ 'four', 'five', 'six' ] ], operands: [ { text:'operand' } ] } ] } ]
|
32
|
+
);
|
33
|
+
expect($tw.wiki.parseFilter("[search: , : [operand]]")).toEqual(
|
34
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' , : ', suffixes : [ [ ], [ ] ], operands: [ { text:'operand' } ] } ] } ]
|
35
|
+
);
|
36
|
+
});
|
37
|
+
|
38
|
+
|
39
|
+
it("should parse multiple operands for operators", function() {
|
40
|
+
expect($tw.wiki.parseFilter("[search: , : [operand],[operand2]]")).toEqual(
|
41
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' , : ', suffixes : [ [ ], [ ] ], operands: [ { text:'operand' }, { text:'operand2' } ] } ] } ]
|
42
|
+
);
|
43
|
+
expect($tw.wiki.parseFilter("[search: , : [oper,and],[operand2]]")).toEqual(
|
44
|
+
[ { prefix : '', operators : [ { operator : 'search', suffix : ' , : ', suffixes : [ [ ], [ ] ], operands: [ { text:'oper,and' }, { text:'operand2' } ] } ] } ]
|
45
|
+
);
|
46
|
+
expect($tw.wiki.parseFilter("[[GettingStarted]replace:[operand],[operand2]]")).toEqual(
|
47
|
+
[ { prefix : '', operators : [ { operator : 'title', operands: [ { text:'GettingStarted' } ] }, { operator : 'replace', suffix : '', suffixes : [[]], operands: [ { text:'operand' }, { text:'operand2' } ] } ] } ]
|
48
|
+
);
|
49
|
+
expect($tw.wiki.parseFilter("[[GettingStarted]replace[operand],[operand2]split[-]]")).toEqual(
|
50
|
+
[ { prefix : '', operators : [ { operator : 'title', operands: [{ text:'GettingStarted' }] }, { operator : 'replace', operands: [{ text:'operand' }, { text:'operand2' }] }, { operator : 'split', operands: [ { text:'-' } ] } ] } ]
|
51
|
+
);
|
52
|
+
expect($tw.wiki.parseFilter("[[GettingStarted]replace[operand],[operand2]split[-]split2[a],[b]]")).toEqual(
|
53
|
+
[ { prefix : '', operators : [ { operator : 'title', operands: [{ text:'GettingStarted' }] }, { operator : 'replace', operands: [ { text:'operand' }, { text:'operand2' } ] }, { operator : 'split', operands: [ {text:'-'} ] }, { operator : 'split2', operands: [ { text:'a' }, { text: 'b' }] } ] } ]
|
54
|
+
);
|
55
|
+
expect($tw.wiki.parseFilter("[[GettingStarted]replace[operand],[operand2]split[-]split2[a],<b>,{c}]")).toEqual(
|
56
|
+
[ { prefix : '', operators : [ { operator : 'title', operands: [{ text:'GettingStarted' }] }, { operator : 'replace', operands: [ { text:'operand' }, { text:'operand2' } ] }, { operator : 'split', operands: [ {text:'-'} ] }, { operator : 'split2', operands: [ { text:'a' }, { variable: true, text: 'b' }, { indirect: true, text: 'c' }] } ] } ]
|
57
|
+
);
|
58
|
+
});
|
59
|
+
|
60
|
+
describe("With tiddlers in the store unsorted",function() {
|
61
|
+
testWithAndWithoutIndexers();
|
62
|
+
});
|
63
|
+
describe("With tiddlers in the store sorted ascending",function() {
|
64
|
+
testWithAndWithoutIndexers({sort: "ascending"});
|
65
|
+
});
|
66
|
+
describe("With tiddlers in the store sorted descending",function() {
|
67
|
+
testWithAndWithoutIndexers({sort: "descending"});
|
64
68
|
});
|
65
|
-
runTests(wiki);
|
66
|
-
});
|
67
|
-
|
68
|
-
describe("With all indexers", function() {
|
69
|
-
var wiki = setupWiki();
|
70
|
-
if(wiki.getIndexer("FieldIndexer")) {
|
71
|
-
wiki.getIndexer("FieldIndexer").setMaxIndexedValueLength(8); // Note that JoeBloggs is 9, and John is 5
|
72
|
-
}
|
73
|
-
runTests(wiki);
|
74
|
-
});
|
75
69
|
|
76
|
-
function
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
"
|
88
|
-
|
89
|
-
text: "Missing inaction from TiddlerOne",
|
90
|
-
filter: "[[one]] [[a a]] [subfilter{hasList!!list}]",
|
91
|
-
tags: []
|
92
|
-
},
|
93
|
-
"TiddlerSeventh": {
|
94
|
-
title: "TiddlerSeventh",
|
95
|
-
text: "",
|
96
|
-
list: "TiddlerOne [[Tiddler Three]] [[a fourth tiddler]] MissingTiddler",
|
97
|
-
tags: ["one"]
|
98
|
-
},
|
99
|
-
"Tiddler8": {
|
100
|
-
title: "Tiddler8",
|
101
|
-
text: "Tidd",
|
102
|
-
tags: ["one"],
|
103
|
-
"test-field": "JoeBloggs"
|
70
|
+
function testWithAndWithoutIndexers(options) {
|
71
|
+
describe("With no indexers", function() {
|
72
|
+
var wiki = setupWiki(Object.assign({},options,{enableIndexers: []}));
|
73
|
+
it("should not create indexes when requested not to",function() {
|
74
|
+
expect(wiki.getIndexer("FieldIndexer")).toBe(null);
|
75
|
+
});
|
76
|
+
runTests(wiki);
|
77
|
+
});
|
78
|
+
|
79
|
+
describe("With all indexers", function() {
|
80
|
+
var wiki = setupWiki(options);
|
81
|
+
if(wiki.getIndexer("FieldIndexer")) {
|
82
|
+
wiki.getIndexer("FieldIndexer").setMaxIndexedValueLength(8); // Note that JoeBloggs is 9, and John is 5
|
104
83
|
}
|
84
|
+
runTests(wiki);
|
85
|
+
});
|
86
|
+
}
|
87
|
+
|
88
|
+
function setupWiki(wikiOptions) {
|
89
|
+
wikiOptions = wikiOptions || {};
|
90
|
+
// Create a wiki
|
91
|
+
var wiki = new $tw.Wiki(wikiOptions);
|
92
|
+
// Add a plugin containing some shadow tiddlers
|
93
|
+
var shadowTiddlers = {
|
94
|
+
tiddlers: {
|
95
|
+
"$:/TiddlerFive": {
|
96
|
+
title: "$:/TiddlerFive",
|
97
|
+
text: "Everything in federation",
|
98
|
+
tags: ["two"]
|
99
|
+
},
|
100
|
+
"TiddlerSix": {
|
101
|
+
title: "TiddlerSix",
|
102
|
+
text: "Missing inaction from TiddlerOne",
|
103
|
+
filter: "[[one]] [[a a]] [subfilter{hasList!!list}]",
|
104
|
+
tags: []
|
105
|
+
},
|
106
|
+
"TiddlerSeventh": {
|
107
|
+
title: "TiddlerSeventh",
|
108
|
+
text: "",
|
109
|
+
list: "TiddlerOne [[Tiddler Three]] [[a fourth tiddler]] MissingTiddler",
|
110
|
+
tags: ["one"]
|
111
|
+
},
|
112
|
+
"Tiddler8": {
|
113
|
+
title: "Tiddler8",
|
114
|
+
text: "Tidd",
|
115
|
+
tags: ["one"],
|
116
|
+
"test-field": "JoeBloggs"
|
117
|
+
}
|
118
|
+
}
|
119
|
+
};
|
120
|
+
var tiddlers = [{
|
121
|
+
title: "$:/ShadowPlugin",
|
122
|
+
text: JSON.stringify(shadowTiddlers),
|
123
|
+
"plugin-type": "plugin",
|
124
|
+
type: "application/json"
|
125
|
+
},{
|
126
|
+
title: "TiddlerOne",
|
127
|
+
text: "The quick brown fox in $:/TiddlerTwo",
|
128
|
+
tags: ["one"],
|
129
|
+
cost: "123",
|
130
|
+
value: "120",
|
131
|
+
slug: "tiddler-one",
|
132
|
+
authors: "Joe Bloggs",
|
133
|
+
modifier: "JoeBloggs",
|
134
|
+
modified: "201304152222"
|
135
|
+
},{
|
136
|
+
title: "$:/TiddlerTwo",
|
137
|
+
text: "The rain in Spain\nfalls mainly on the plain and [[a fourth tiddler]]",
|
138
|
+
tags: ["two"],
|
139
|
+
cost: "42",
|
140
|
+
value: "190",
|
141
|
+
slug: "tiddler-two",
|
142
|
+
authors: "[[John Doe]]",
|
143
|
+
modifier: "John",
|
144
|
+
modified: "201304152211"
|
145
|
+
},{
|
146
|
+
title: "Tiddler Three",
|
147
|
+
text: "The speed of sound in light\n\nThere is no TiddlerZero but TiddlerSix",
|
148
|
+
tags: ["one","two"],
|
149
|
+
cost: "56",
|
150
|
+
value: "80",
|
151
|
+
modifier: "John",
|
152
|
+
modified: "201304162202"
|
153
|
+
},{
|
154
|
+
title: "a fourth tiddler",
|
155
|
+
text: "The quality of mercy is not drained by [[Tiddler Three]]",
|
156
|
+
tags: [],
|
157
|
+
cost: "82",
|
158
|
+
value: "72",
|
159
|
+
empty: "not",
|
160
|
+
modifier: "John"
|
161
|
+
},{
|
162
|
+
title: "one",
|
163
|
+
text: "This is the text of tiddler [[one]]",
|
164
|
+
list: "[[Tiddler Three]] [[TiddlerOne]]",
|
165
|
+
empty: "",
|
166
|
+
modifier: "John"
|
167
|
+
},{
|
168
|
+
title: "hasList",
|
169
|
+
text: "This is the text of tiddler [[hasList]]",
|
170
|
+
list: "[[Tiddler Three]] [[TiddlerOne]]",
|
171
|
+
modifier: "PMario"
|
172
|
+
},{
|
173
|
+
title: "has filter",
|
174
|
+
text: "This is the text of tiddler [[has filter]]",
|
175
|
+
filter: "[[Tiddler Three]] [[TiddlerOne]] [subfilter{hasList!!list}]",
|
176
|
+
modifier: "PMario"
|
177
|
+
},{
|
178
|
+
title: "filter regexp test",
|
179
|
+
text: "Those strings have been used to create the `regexp = /[+|\-|~]?([[](?:[^\]])*\]+)|([+|-|~|\S]\S*)/;`",
|
180
|
+
filter: "+aaa -bbb ~ccc aaaaaabbbbbbbbaa \"bb'b\" 'cc\"c' [[abc]] [[tiddler with spaces]] [is[test]] [is[te st]] a s df [enlist<hugo>] +[enlist:raw{test with spaces}] [enlist:raw{test with spaces}] [[a a]] [[ ] [ ]] [[ [hugo]] [subfilter{Story/Tower of Hanoi/A-C Sequence}]",
|
181
|
+
modifier: "PMario"
|
182
|
+
}];
|
183
|
+
// Load the tiddlers in the required order
|
184
|
+
var fnCompare;
|
185
|
+
switch(wikiOptions.sort) {
|
186
|
+
case "ascending":
|
187
|
+
fnCompare = function(a,b) {
|
188
|
+
if(a.title < b.title) {
|
189
|
+
return -1;
|
190
|
+
} else if(a.title > b.title) {
|
191
|
+
return +1;
|
192
|
+
} else {
|
193
|
+
return 0;
|
194
|
+
}
|
195
|
+
};
|
196
|
+
break;
|
197
|
+
case "descending":
|
198
|
+
fnCompare = function(a,b) {
|
199
|
+
if(a.title < b.title) {
|
200
|
+
return +1;
|
201
|
+
} else if(a.title > b.title) {
|
202
|
+
return -1;
|
203
|
+
} else {
|
204
|
+
return 0;
|
205
|
+
}
|
206
|
+
};
|
207
|
+
break;
|
105
208
|
}
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
cost: "123",
|
118
|
-
value: "120",
|
119
|
-
slug: "tiddler-one",
|
120
|
-
authors: "Joe Bloggs",
|
121
|
-
modifier: "JoeBloggs",
|
122
|
-
modified: "201304152222"});
|
123
|
-
wiki.addTiddler({
|
124
|
-
title: "$:/TiddlerTwo",
|
125
|
-
text: "The rain in Spain\nfalls mainly on the plain and [[a fourth tiddler]]",
|
126
|
-
tags: ["two"],
|
127
|
-
cost: "42",
|
128
|
-
value: "190",
|
129
|
-
slug: "tiddler-two",
|
130
|
-
authors: "[[John Doe]]",
|
131
|
-
modifier: "John",
|
132
|
-
modified: "201304152211"});
|
133
|
-
wiki.addTiddler({
|
134
|
-
title: "Tiddler Three",
|
135
|
-
text: "The speed of sound in light\n\nThere is no TiddlerZero but TiddlerSix",
|
136
|
-
tags: ["one","two"],
|
137
|
-
cost: "56",
|
138
|
-
value: "80",
|
139
|
-
modifier: "John",
|
140
|
-
modified: "201304162202"});
|
141
|
-
wiki.addTiddler({
|
142
|
-
title: "a fourth tiddler",
|
143
|
-
text: "The quality of mercy is not drained by [[Tiddler Three]]",
|
144
|
-
tags: [],
|
145
|
-
cost: "82",
|
146
|
-
value: "72",
|
147
|
-
empty: "not",
|
148
|
-
modifier: "John"});
|
149
|
-
wiki.addTiddler({
|
150
|
-
title: "one",
|
151
|
-
text: "This is the text of tiddler [[one]]",
|
152
|
-
list: "[[Tiddler Three]] [[TiddlerOne]]",
|
153
|
-
empty: "",
|
154
|
-
modifier: "John"});
|
155
|
-
wiki.addTiddler({
|
156
|
-
title: "hasList",
|
157
|
-
text: "This is the text of tiddler [[hasList]]",
|
158
|
-
list: "[[Tiddler Three]] [[TiddlerOne]]",
|
159
|
-
modifier: "PMario"});
|
160
|
-
wiki.addTiddler({
|
161
|
-
title: "has filter",
|
162
|
-
text: "This is the text of tiddler [[has filter]]",
|
163
|
-
filter: "[[Tiddler Three]] [[TiddlerOne]] [subfilter{hasList!!list}]",
|
164
|
-
modifier: "PMario"});
|
165
|
-
wiki.addTiddler({
|
166
|
-
title: "filter regexp test",
|
167
|
-
text: "Those strings have been used to create the `regexp = /[+|\-|~]?([[](?:[^\]])*\]+)|([+|-|~|\S]\S*)/;`",
|
168
|
-
filter: "+aaa -bbb ~ccc aaaaaabbbbbbbbaa \"bb'b\" 'cc\"c' [[abc]] [[tiddler with spaces]] [is[test]] [is[te st]] a s df [enlist<hugo>] +[enlist:raw{test with spaces}] [enlist:raw{test with spaces}] [[a a]] [[ ] [ ]] [[ [hugo]] [subfilter{Story/Tower of Hanoi/A-C Sequence}]",
|
169
|
-
modifier: "PMario"});
|
170
|
-
// Unpack plugin tiddlers
|
171
|
-
wiki.readPluginInfo();
|
172
|
-
wiki.registerPluginTiddlers("plugin");
|
173
|
-
wiki.unpackPluginTiddlers();
|
174
|
-
wiki.addIndexersToWiki();
|
175
|
-
return wiki;
|
176
|
-
}
|
177
|
-
|
178
|
-
// Our tests
|
179
|
-
function runTests(wiki) {
|
180
|
-
|
181
|
-
it("should handle the enlist operator", function() {
|
182
|
-
expect(wiki.filterTiddlers("[enlist[one two three]addsuffix[!]]").join(",")).toBe("one!,two!,three!");
|
183
|
-
});
|
209
|
+
if(fnCompare) {
|
210
|
+
tiddlers.sort(fnCompare);
|
211
|
+
}
|
212
|
+
wiki.addTiddlers(tiddlers);
|
213
|
+
// Unpack plugin tiddlers
|
214
|
+
wiki.readPluginInfo();
|
215
|
+
wiki.registerPluginTiddlers("plugin");
|
216
|
+
wiki.unpackPluginTiddlers();
|
217
|
+
wiki.addIndexersToWiki();
|
218
|
+
return wiki;
|
219
|
+
}
|
184
220
|
|
185
|
-
|
186
|
-
|
187
|
-
expect(wiki.filterTiddlers("[[one two two three]enlist-input[]]").join(",")).toBe("one,two,three");
|
188
|
-
expect(wiki.filterTiddlers("[[one two two three]enlist-input:dedupe[]]").join(",")).toBe("one,two,three");
|
189
|
-
expect(wiki.filterTiddlers("[[one two two three]enlist-input:raw[]]").join(",")).toBe("one,two,two,three");
|
190
|
-
expect(wiki.filterTiddlers("[[one two three]] [[four five six]] +[enlist-input[]]").join(",")).toBe("one,two,three,four,five,six");
|
191
|
-
expect(wiki.filterTiddlers("[[one two three]] [[four five six]] [[seven eight]] +[enlist-input[]]").join(",")).toBe("one,two,three,four,five,six,seven,eight");
|
192
|
-
expect(wiki.filterTiddlers("[[]] +[enlist-input[]]").join(",")).toBe("");
|
193
|
-
});
|
221
|
+
// Our tests
|
222
|
+
function runTests(wiki) {
|
194
223
|
|
195
|
-
|
196
|
-
|
197
|
-
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]then[Susi]]").join(",")).toBe("Susi,Susi,Susi,Susi,Susi,Susi,Susi,Susi");
|
198
|
-
expect(wiki.filterTiddlers("[modifier[DaveBloggs]then[Susi]]").join(",")).toBe("");
|
199
|
-
expect(wiki.filterTiddlers("[modifier[JoeBloggs]else[Susi]]").join(",")).toBe("TiddlerOne");
|
200
|
-
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]else[Susi]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
201
|
-
expect(wiki.filterTiddlers("[modifier[DaveBloggs]else[Susi]]").join(",")).toBe("Susi");
|
202
|
-
});
|
203
|
-
|
204
|
-
it("should handle the ~ prefix", function() {
|
205
|
-
expect(wiki.filterTiddlers("[modifier[JoeBloggs]] ~[[No such tiddler]]").join(",")).toBe("TiddlerOne");
|
206
|
-
expect(wiki.filterTiddlers("[modifier[Susi]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
207
|
-
expect(wiki.filterTiddlers("~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
208
|
-
expect(wiki.filterTiddlers("[my-field[present]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
209
|
-
});
|
210
|
-
|
211
|
-
it("should handle the lookup operator", function() {
|
212
|
-
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,,Tidd");
|
213
|
-
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup:8[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,8,Tidd");
|
214
|
-
});
|
215
|
-
|
216
|
-
it("should retrieve shadow tiddlers", function() {
|
217
|
-
expect(wiki.getTiddlerText("Tiddler8")).toBe("Tidd");
|
218
|
-
});
|
219
|
-
|
220
|
-
it("should handle the title operator", function() {
|
221
|
-
expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three");
|
222
|
-
expect(wiki.filterTiddlers("[!title[Tiddler Three]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
223
|
-
expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]] [[A Missing Tiddler]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,A Missing Tiddler");
|
224
|
-
});
|
225
|
-
|
226
|
-
it("should handle the field operator", function() {
|
227
|
-
expect(wiki.filterTiddlers("[modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
|
228
|
-
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
229
|
-
expect(wiki.filterTiddlers("[!is[system]!modifier[JoeBloggs]]").join(",")).toBe("Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
230
|
-
expect(wiki.filterTiddlers("[field:modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
|
231
|
-
expect(wiki.filterTiddlers("[!field:modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
232
|
-
expect(wiki.filterTiddlers("[!is[system]!field:modifier[JoeBloggs]]").join(",")).toBe("Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
233
|
-
expect(wiki.filterTiddlers("[modifier[John]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
|
234
|
-
expect(wiki.filterTiddlers("[!modifier[John]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,hasList,has filter,filter regexp test");
|
235
|
-
expect(wiki.filterTiddlers("[!is[system]!modifier[John]]").join(",")).toBe("TiddlerOne,hasList,has filter,filter regexp test");
|
236
|
-
expect(wiki.filterTiddlers("[field:modifier[John]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
|
237
|
-
expect(wiki.filterTiddlers("[!field:modifier[John]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,hasList,has filter,filter regexp test");
|
238
|
-
expect(wiki.filterTiddlers("[!is[system]!field:modifier[John]]").join(",")).toBe("TiddlerOne,hasList,has filter,filter regexp test");
|
239
|
-
});
|
240
|
-
|
241
|
-
it("should handle the regexp operator", function() {
|
242
|
-
expect(wiki.filterTiddlers("[regexp[id]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
|
243
|
-
expect(wiki.filterTiddlers("[!regexp[id]]").join(",")).toBe("$:/ShadowPlugin,one,hasList,has filter,filter regexp test");
|
244
|
-
expect(wiki.filterTiddlers("[regexp[Tid]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three");
|
245
|
-
expect(wiki.filterTiddlers("[regexp[(?i)Tid]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
|
246
|
-
expect(wiki.filterTiddlers("[!regexp[Tid(?i)]]").join(",")).toBe("$:/ShadowPlugin,one,hasList,has filter,filter regexp test");
|
247
|
-
});
|
248
|
-
|
249
|
-
// The following 2 tests should write a log -> WARNING: Filter modifier has a deprecated regexp operand XXXX
|
250
|
-
// The test should pass anyway.
|
251
|
-
it("should handle the field operator with a regular expression operand", function() {
|
252
|
-
expect(wiki.filterTiddlers("[modifier/JoeBloggs/]").join(",")).toBe("TiddlerOne");
|
253
|
-
expect(wiki.filterTiddlers("[modifier/Jo/]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
|
254
|
-
});
|
255
|
-
|
256
|
-
it("should handle the prefix operator", function() {
|
257
|
-
expect(wiki.filterTiddlers("[prefix[Tiddler]]").join(",")).toBe("TiddlerOne,Tiddler Three");
|
258
|
-
expect(wiki.filterTiddlers("[prefix[nothing]]").join(",")).toBe("");
|
259
|
-
});
|
260
|
-
|
261
|
-
it("should handle the sort and sortcs operators", function() {
|
262
|
-
expect(wiki.filterTiddlers("[sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
263
|
-
expect(wiki.filterTiddlers("[!sort[title]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
264
|
-
// Temporarily commenting out the following two lines because of platform differences for localeCompare between the browser and Node.js
|
265
|
-
// expect(wiki.filterTiddlers("[sortcs[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler,one");
|
266
|
-
// expect(wiki.filterTiddlers("[!sortcs[title]]").join(",")).toBe("one,a fourth tiddler,TiddlerOne,Tiddler Three,$:/TiddlerTwo");
|
267
|
-
});
|
268
|
-
|
269
|
-
it("should handle the reverse, first, last, butfirst, butlast, rest and nth operators", function() {
|
270
|
-
expect(wiki.filterTiddlers("[sort[title]first[]]").join(",")).toBe("$:/ShadowPlugin");
|
271
|
-
expect(wiki.filterTiddlers("[sort[title]first[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
|
272
|
-
expect(wiki.filterTiddlers("[sort[title]first[8]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
273
|
-
expect(wiki.filterTiddlers("[sort[title]first[x]]").join(",")).toBe("$:/ShadowPlugin");
|
274
|
-
expect(wiki.filterTiddlers("[sort[title]last[]]").join(",")).toBe("TiddlerOne");
|
275
|
-
expect(wiki.filterTiddlers("[sort[title]last[2]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
276
|
-
expect(wiki.filterTiddlers("[sort[title]last[8]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
277
|
-
expect(wiki.filterTiddlers("[sort[title]last[x]]").join(",")).toBe("TiddlerOne");
|
278
|
-
expect(wiki.filterTiddlers("[sort[title]reverse[]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
279
|
-
expect(wiki.filterTiddlers("[sort[title]reverse[x]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
280
|
-
expect(wiki.filterTiddlers("[sort[title]butlast[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
281
|
-
expect(wiki.filterTiddlers("[sort[title]butlast[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
282
|
-
expect(wiki.filterTiddlers("[sort[title]butlast[11]]").join(",")).toBe("");
|
283
|
-
expect(wiki.filterTiddlers("[sort[title]butlast[x]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
284
|
-
expect(wiki.filterTiddlers("[sort[title]rest[]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
285
|
-
expect(wiki.filterTiddlers("[sort[title]rest[2]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
286
|
-
expect(wiki.filterTiddlers("[sort[title]rest[11]]").join(",")).toBe("");
|
287
|
-
expect(wiki.filterTiddlers("[sort[title]rest[x]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
288
|
-
expect(wiki.filterTiddlers("[sort[title]nth[]]").join(",")).toBe("$:/ShadowPlugin");
|
289
|
-
expect(wiki.filterTiddlers("[sort[title]nth[2]]").join(",")).toBe("$:/TiddlerTwo");
|
290
|
-
expect(wiki.filterTiddlers("[sort[title]nth[11]]").join(",")).toBe("");
|
291
|
-
expect(wiki.filterTiddlers("[sort[title]nth[x]]").join(",")).toBe("$:/ShadowPlugin");
|
292
|
-
});
|
293
|
-
|
294
|
-
it("should handle the tag operator", function() {
|
295
|
-
expect(wiki.filterTiddlers("[tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
296
|
-
expect(wiki.filterTiddlers("[!tag[one]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
297
|
-
expect(wiki.filterTiddlers("[prefix[Tidd]tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
298
|
-
expect(wiki.filterTiddlers("[!is[shadow]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
299
|
-
expect(wiki.filterTiddlers("[all[shadows]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerFive");
|
300
|
-
});
|
301
|
-
|
302
|
-
it("should handle the all operator with field, has and tag operators", function() {
|
303
|
-
expect(wiki.filterTiddlers("[all[shadows]tag[two]]").join(",")).toBe("$:/TiddlerFive");
|
304
|
-
expect(wiki.filterTiddlers("[all[shadows+tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
|
305
|
-
expect(wiki.filterTiddlers("[all[tiddlers+shadows]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,$:/TiddlerFive");
|
306
|
-
expect(wiki.filterTiddlers("[all[shadows+tiddlers]]").join(",")).toBe("$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8,$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
307
|
-
expect(wiki.filterTiddlers("[all[tiddlers+shadows]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test,$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8");
|
308
|
-
expect(wiki.filterTiddlers("[all[tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
309
|
-
});
|
310
|
-
|
311
|
-
it("should handle the tags operator", function() {
|
312
|
-
expect(wiki.filterTiddlers("[tags[]sort[title]]").join(",")).toBe("one,two");
|
313
|
-
expect(wiki.filterTiddlers("[[TiddlerOne]tags[]sort[title]]").join(",")).toBe("one");
|
314
|
-
});
|
315
|
-
|
316
|
-
it("should handle the match operator", function() {
|
317
|
-
expect(wiki.filterTiddlers("[match[TiddlerOne]]").join(",")).toBe("TiddlerOne");
|
318
|
-
expect(wiki.filterTiddlers("TiddlerOne TiddlerOne =[match[TiddlerOne]]").join(",")).toBe("TiddlerOne,TiddlerOne");
|
319
|
-
expect(wiki.filterTiddlers("[!match[TiddlerOne]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
320
|
-
expect(wiki.filterTiddlers("[match:casesensitive[tiddlerone]]").join(",")).toBe("");
|
321
|
-
expect(wiki.filterTiddlers("[!match:casesensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
322
|
-
expect(wiki.filterTiddlers("[match:caseinsensitive[tiddlerone]]").join(",")).toBe("TiddlerOne");
|
323
|
-
expect(wiki.filterTiddlers("[!match:caseinsensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
|
324
|
-
});
|
325
|
-
|
326
|
-
it("should handle the tagging operator", function() {
|
327
|
-
expect(wiki.filterTiddlers("[[one]tagging[]sort[title]]").join(",")).toBe("Tiddler Three,Tiddler8,TiddlerOne,TiddlerSeventh");
|
328
|
-
expect(wiki.filterTiddlers("[[one]tagging[]]").join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
|
329
|
-
expect(wiki.filterTiddlers("[[two]tagging[]sort[title]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
|
330
|
-
var fakeWidget = {getVariable: function() {return "one";}};
|
331
|
-
expect(wiki.filterTiddlers("[all[current]tagging[]]",fakeWidget).join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
|
332
|
-
});
|
333
|
-
|
334
|
-
it("should handle the untagged operator", function() {
|
335
|
-
expect(wiki.filterTiddlers("[untagged[]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
336
|
-
expect(wiki.filterTiddlers("[!untagged[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
337
|
-
});
|
338
|
-
|
339
|
-
it("should handle the links operator", function() {
|
340
|
-
expect(wiki.filterTiddlers("[!is[shadow]links[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerSix,TiddlerZero");
|
341
|
-
expect(wiki.filterTiddlers("[all[shadows]links[]sort[title]]").join(",")).toBe("TiddlerOne");
|
342
|
-
});
|
343
|
-
|
344
|
-
it("should handle the backlinks operator", function() {
|
345
|
-
expect(wiki.filterTiddlers("[!is[shadow]backlinks[]sort[title]]").join(",")).toBe("a fourth tiddler,has filter,hasList,one,TiddlerOne");
|
346
|
-
expect(wiki.filterTiddlers("[all[shadows]backlinks[]sort[title]]").join(",")).toBe("Tiddler Three");
|
347
|
-
});
|
348
|
-
|
349
|
-
it("should handle the has operator", function() {
|
350
|
-
expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
351
|
-
expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
352
|
-
expect(wiki.filterTiddlers("[has[tags]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
353
|
-
expect(wiki.filterTiddlers("[!has[tags]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
354
|
-
});
|
355
|
-
|
356
|
-
it("should handle the has:field operator", function() {
|
357
|
-
expect(wiki.filterTiddlers("[has:field[empty]sort[title]]").join(",")).toBe("a fourth tiddler,one");
|
358
|
-
expect(wiki.filterTiddlers("[!has:field[empty]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,filter regexp test,has filter,hasList,Tiddler Three,TiddlerOne");
|
359
|
-
});
|
360
|
-
|
361
|
-
|
362
|
-
it("should handle the limit operator", function() {
|
363
|
-
expect(wiki.filterTiddlers("[!is[system]sort[title]limit[2]]").join(",")).toBe("a fourth tiddler,filter regexp test");
|
364
|
-
expect(wiki.filterTiddlers("[prefix[Tid]sort[title]limit[1]]").join(",")).toBe("Tiddler Three");
|
365
|
-
expect(wiki.filterTiddlers("[prefix[Tid]sort[title]!limit[1]]").join(",")).toBe("TiddlerOne");
|
366
|
-
});
|
367
|
-
|
368
|
-
it("should handle the list operator", function() {
|
369
|
-
expect(wiki.filterTiddlers("[list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
|
370
|
-
expect(wiki.filterTiddlers("[tag[one]list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
|
371
|
-
});
|
372
|
-
|
373
|
-
it("should handle the next operator", function() {
|
374
|
-
expect(wiki.filterTiddlers("[[Tiddler Three]next[TiddlerSeventh]]").join(",")).toBe("a fourth tiddler");
|
375
|
-
expect(wiki.filterTiddlers("[[MissingTiddler]next[TiddlerSeventh]]").join(",")).toBe("");
|
376
|
-
});
|
377
|
-
|
378
|
-
it("should handle the previous operator", function() {
|
379
|
-
expect(wiki.filterTiddlers("[[Tiddler Three]previous[TiddlerSeventh]]").join(",")).toBe("TiddlerOne");
|
380
|
-
expect(wiki.filterTiddlers("[[TiddlerOne]previous[TiddlerSeventh]]").join(",")).toBe("");
|
381
|
-
});
|
382
|
-
|
383
|
-
it("should handle the search operator", function() {
|
384
|
-
expect(wiki.filterTiddlers("[search[the]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
385
|
-
expect(wiki.filterTiddlers("[search{Tiddler8}sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
386
|
-
expect(wiki.filterTiddlers("[search:modifier[og]sort[title]]").join(",")).toBe("TiddlerOne");
|
387
|
-
expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[Do]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
|
388
|
-
expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[do]sort[title]]").join(",")).toBe("");
|
389
|
-
expect(wiki.filterTiddlers("[search:authors:casesensitive,whitespace[John Doe]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
|
390
|
-
expect(wiki.filterTiddlers("[search:modifier:regexp[(d|bl)o(ggs|e)]sort[title]]").join(",")).toBe("TiddlerOne");
|
391
|
-
expect(wiki.filterTiddlers("[search:-modifier,authors:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three");
|
392
|
-
expect(wiki.filterTiddlers("[search:*:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three,TiddlerOne");
|
393
|
-
expect(wiki.filterTiddlers("[search:text:anchored[the]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
|
394
|
-
});
|
395
|
-
|
396
|
-
it("should yield search results that have search tokens spread across different fields", function() {
|
397
|
-
expect(wiki.filterTiddlers("[search[fox one]sort[title]]").join(",")).toBe("TiddlerOne");
|
398
|
-
});
|
399
|
-
|
400
|
-
it("should handle the each operator", function() {
|
401
|
-
expect(wiki.filterTiddlers("[each[modifier]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,hasList,TiddlerOne");
|
402
|
-
expect(wiki.filterTiddlers("[each:list-item[tags]sort[title]]").join(",")).toBe("one,two");
|
403
|
-
expect(wiki.filterTiddlers("[each:list-item[authors]sort[title]]").join(",")).toBe("Bloggs,Joe,John Doe");
|
404
|
-
});
|
405
|
-
|
406
|
-
it("should handle the eachday operator", function() {
|
407
|
-
expect(wiki.filterTiddlers("[eachday[modified]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
408
|
-
});
|
409
|
-
|
410
|
-
it("should handle the sameday operator", function() {
|
411
|
-
expect(wiki.filterTiddlers("[sameday[201304152200]sort[title]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne");
|
412
|
-
});
|
413
|
-
|
414
|
-
describe("testing the is operator",function() {
|
415
|
-
|
416
|
-
it("should handle the '[is[current]]' operator", function() {
|
417
|
-
var fakeWidget = {getVariable: function() {return "Tiddler Three";}};
|
418
|
-
expect(wiki.filterTiddlers("[is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
|
419
|
-
expect(wiki.filterTiddlers("[[Tiddler Three]is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
|
420
|
-
expect(wiki.filterTiddlers("[[$:/TiddlerTwo]is[current]]",fakeWidget).join(",")).toBe("");
|
421
|
-
expect(wiki.filterTiddlers("[!is[current]sort[title]]",fakeWidget).join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
|
224
|
+
it("should handle the enlist operator", function() {
|
225
|
+
expect(wiki.filterTiddlers("[enlist[one two three]addsuffix[!]]").join(",")).toBe("one!,two!,three!");
|
422
226
|
});
|
423
|
-
|
424
|
-
it("should handle the
|
425
|
-
expect(wiki.filterTiddlers("[
|
426
|
-
expect(wiki.filterTiddlers("[
|
227
|
+
|
228
|
+
it("should handle the enlist-input operator", function() {
|
229
|
+
expect(wiki.filterTiddlers("[[one two three]enlist-input[]]").join(",")).toBe("one,two,three");
|
230
|
+
expect(wiki.filterTiddlers("[[one two two three]enlist-input[]]").join(",")).toBe("one,two,three");
|
231
|
+
expect(wiki.filterTiddlers("[[one two two three]enlist-input:dedupe[]]").join(",")).toBe("one,two,three");
|
232
|
+
expect(wiki.filterTiddlers("[[one two two three]enlist-input:raw[]]").join(",")).toBe("one,two,two,three");
|
233
|
+
expect(wiki.filterTiddlers("[[one two three]] [[four five six]] +[enlist-input[]]").join(",")).toBe("one,two,three,four,five,six");
|
234
|
+
expect(wiki.filterTiddlers("[[one two three]] [[four five six]] [[seven eight]] +[enlist-input[]]").join(",")).toBe("one,two,three,four,five,six,seven,eight");
|
235
|
+
expect(wiki.filterTiddlers("[[]] +[enlist-input[]]").join(",")).toBe("");
|
427
236
|
});
|
428
|
-
|
429
|
-
it("should handle the
|
430
|
-
expect(wiki.filterTiddlers("[
|
431
|
-
expect(wiki.filterTiddlers("[!
|
237
|
+
|
238
|
+
it("should handle the then and else operators", function() {
|
239
|
+
expect(wiki.filterTiddlers("[modifier[JoeBloggs]then[Susi]]").join(",")).toBe("Susi");
|
240
|
+
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]then[Susi]]").join(",")).toBe("Susi,Susi,Susi,Susi,Susi,Susi,Susi,Susi");
|
241
|
+
expect(wiki.filterTiddlers("[modifier[DaveBloggs]then[Susi]]").join(",")).toBe("");
|
242
|
+
expect(wiki.filterTiddlers("[modifier[JoeBloggs]else[Susi]]").join(",")).toBe("TiddlerOne");
|
243
|
+
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]else[Susi]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
244
|
+
expect(wiki.filterTiddlers("[modifier[DaveBloggs]else[Susi]]").join(",")).toBe("Susi");
|
432
245
|
});
|
433
|
-
|
434
|
-
it("should handle the
|
435
|
-
expect(wiki.filterTiddlers("[
|
436
|
-
expect(wiki.filterTiddlers("[
|
437
|
-
expect(wiki.filterTiddlers("[
|
438
|
-
expect(wiki.filterTiddlers("[[
|
439
|
-
expect(wiki.filterTiddlers("[[TiddlerZero]is[missing]]").join(",")).toBe("TiddlerZero");
|
440
|
-
expect(wiki.filterTiddlers("[!title[Tiddler Three]is[missing]]").join(",")).toBe("");
|
441
|
-
expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
|
246
|
+
|
247
|
+
it("should handle the ~ prefix", function() {
|
248
|
+
expect(wiki.filterTiddlers("[modifier[JoeBloggs]] ~[[No such tiddler]]").join(",")).toBe("TiddlerOne");
|
249
|
+
expect(wiki.filterTiddlers("[modifier[Susi]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
250
|
+
expect(wiki.filterTiddlers("~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
251
|
+
expect(wiki.filterTiddlers("[my-field[present]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
|
442
252
|
});
|
443
|
-
|
444
|
-
it("should handle the
|
445
|
-
expect(wiki.filterTiddlers("[
|
446
|
-
expect(wiki.filterTiddlers("[
|
447
|
-
expect(wiki.filterTiddlers("[[
|
448
|
-
expect(wiki.filterTiddlers("[[
|
449
|
-
|
450
|
-
|
253
|
+
|
254
|
+
it("should handle the lookup operator", function() {
|
255
|
+
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,,Tidd");
|
256
|
+
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup:8[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,8,Tidd");
|
257
|
+
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup:8[Tiddler],[text]]").join(",")).toBe("Missing inaction from TiddlerOne,8,Tidd");
|
258
|
+
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup[Tiddler],[tags]]").join(",")).toBe(",one,one");
|
259
|
+
});
|
260
|
+
|
261
|
+
it("should retrieve shadow tiddlers", function() {
|
262
|
+
expect(wiki.getTiddlerText("Tiddler8")).toBe("Tidd");
|
263
|
+
});
|
264
|
+
|
265
|
+
it("should handle the title operator", function() {
|
266
|
+
expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three");
|
267
|
+
expect(wiki.filterTiddlers("[!title[Tiddler Three]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
|
268
|
+
expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]] [[A Missing Tiddler]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,A Missing Tiddler");
|
269
|
+
});
|
270
|
+
|
271
|
+
it("should handle the field operator", function() {
|
272
|
+
expect(wiki.filterTiddlers("[modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
|
273
|
+
expect(wiki.filterTiddlers("[!modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
274
|
+
expect(wiki.filterTiddlers("[!is[system]!modifier[JoeBloggs]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
275
|
+
expect(wiki.filterTiddlers("[field:modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
|
276
|
+
expect(wiki.filterTiddlers("[!field:modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
277
|
+
expect(wiki.filterTiddlers("[!is[system]!field:modifier[JoeBloggs]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
278
|
+
expect(wiki.filterTiddlers("[modifier[John]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
|
279
|
+
expect(wiki.filterTiddlers("[!modifier[John]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,has filter,hasList,TiddlerOne");
|
280
|
+
expect(wiki.filterTiddlers("[!is[system]!modifier[John]]").join(",")).toBe("filter regexp test,has filter,hasList,TiddlerOne");
|
281
|
+
expect(wiki.filterTiddlers("[field:modifier[John]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
|
282
|
+
expect(wiki.filterTiddlers("[!field:modifier[John]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,has filter,hasList,TiddlerOne");
|
283
|
+
expect(wiki.filterTiddlers("[!is[system]!field:modifier[John]]").join(",")).toBe("filter regexp test,has filter,hasList,TiddlerOne");
|
284
|
+
});
|
285
|
+
|
286
|
+
it("should handle the regexp operator", function() {
|
287
|
+
expect(wiki.filterTiddlers("[regexp[id]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,Tiddler Three,TiddlerOne");
|
288
|
+
expect(wiki.filterTiddlers("[!regexp[id]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,has filter,hasList,one");
|
289
|
+
expect(wiki.filterTiddlers("[regexp[Tid]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
290
|
+
expect(wiki.filterTiddlers("[regexp[(?i)Tid]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,Tiddler Three,TiddlerOne");
|
291
|
+
expect(wiki.filterTiddlers("[!regexp[Tid(?i)]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,has filter,hasList,one");
|
292
|
+
});
|
293
|
+
|
294
|
+
// The following 2 tests should write a log -> WARNING: Filter modifier has a deprecated regexp operand XXXX
|
295
|
+
// The test should pass anyway.
|
296
|
+
it("should handle the field operator with a regular expression operand", function() {
|
297
|
+
spyOn(console, 'log');
|
298
|
+
expect(wiki.filterTiddlers("[modifier/JoeBloggs/]").join(",")).toBe("TiddlerOne");
|
299
|
+
expect(console.log).toHaveBeenCalledWith("WARNING: Filter", "modifier", "has a deprecated regexp operand", /JoeBloggs/);
|
300
|
+
console.log.calls.reset();
|
301
|
+
expect(wiki.filterTiddlers("[modifier/Jo/]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
|
302
|
+
expect(console.log).toHaveBeenCalledWith("WARNING: Filter", "modifier", "has a deprecated regexp operand", /Jo/);
|
451
303
|
});
|
452
304
|
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
305
|
+
it("should handle regular expression operands without crashing", function() {
|
306
|
+
spyOn(console, 'log');
|
307
|
+
// We don't really care about the results. Just don't get RSoD.
|
308
|
+
expect(() => wiki.filterTiddlers("[all/current/]")).not.toThrow();
|
309
|
+
expect(() => wiki.filterTiddlers("[prefix/anything/]")).not.toThrow();
|
310
|
+
expect(() => wiki.filterTiddlers("[title/anything/]")).not.toThrow();
|
311
|
+
expect(() => wiki.filterTiddlers("[/anything/]")).not.toThrow();
|
312
|
+
expect(() => wiki.filterTiddlers("[//]")).not.toThrow();
|
313
|
+
});
|
314
|
+
|
315
|
+
it("should handle the prefix operator", function() {
|
316
|
+
expect(wiki.filterTiddlers("[prefix[Tiddler]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
317
|
+
expect(wiki.filterTiddlers("[prefix:casesensitive[tiddler]]").join(",")).toBe("");
|
318
|
+
expect(wiki.filterTiddlers("[prefix:caseinsensitive[tiddler]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
319
|
+
expect(wiki.filterTiddlers("[prefix[nothing]]").join(",")).toBe("");
|
320
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]prefix[]]").join(",")).toBe("ABCDE,abcde");
|
321
|
+
});
|
465
322
|
|
466
|
-
|
323
|
+
it("should handle the suffix operator", function() {
|
324
|
+
expect(wiki.filterTiddlers("[suffix[One]]").join(",")).toBe("TiddlerOne");
|
325
|
+
expect(wiki.filterTiddlers("[suffix:casesensitive[one]]").join(",")).toBe("one");
|
326
|
+
expect(wiki.filterTiddlers("[suffix:caseinsensitive[one]]").join(",")).toBe("one,TiddlerOne");
|
327
|
+
expect(wiki.filterTiddlers("[suffix[nothing]]").join(",")).toBe("");
|
328
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]suffix[]]").join(",")).toBe("ABCDE,abcde");
|
329
|
+
});
|
467
330
|
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
rootWidget.setVariable("myVar","Tidd");
|
475
|
-
rootWidget.setVariable("myVar2","JoeBloggs");
|
476
|
-
expect(wiki.filterTiddlers("[prefix<myVar>] +[sort[title]]",anchorWidget).join(",")).toBe("Tiddler Three,TiddlerOne");
|
477
|
-
expect(wiki.filterTiddlers("[modifier<myVar2>] +[sort[title]]",anchorWidget).join(",")).toBe("TiddlerOne");
|
478
|
-
});
|
331
|
+
it("should handle the removeprefix operator", function() {
|
332
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removeprefix[ABC]]").join(",")).toBe("DE");
|
333
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removeprefix:casesensitive[ABC]]").join(",")).toBe("DE");
|
334
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removeprefix:caseinsensitive[abc]]").join(",")).toBe("DE,de");
|
335
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removeprefix[]]").join(",")).toBe("ABCDE,abcde");
|
336
|
+
});
|
479
337
|
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
338
|
+
it("should handle the removesuffix operator", function() {
|
339
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removesuffix[DE]]").join(",")).toBe("ABC");
|
340
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removesuffix:casesensitive[DE]]").join(",")).toBe("ABC");
|
341
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removesuffix:caseinsensitive[de]]").join(",")).toBe("ABC,abc")
|
342
|
+
expect(wiki.filterTiddlers("[enlist[ABCDE abcde]removesuffix[]]").join(",")).toBe("ABCDE,abcde");
|
343
|
+
});
|
344
|
+
|
345
|
+
it("should handle the sort and sortcs operators", function() {
|
346
|
+
expect(wiki.filterTiddlers("[sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
347
|
+
expect(wiki.filterTiddlers("[!sort[title]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
348
|
+
expect(wiki.filterTiddlers("[sort[modified]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one,$:/TiddlerTwo,TiddlerOne,Tiddler Three");
|
349
|
+
expect(wiki.filterTiddlers("[!sort[modified]]").join(",")).toBe("Tiddler Three,TiddlerOne,$:/TiddlerTwo,$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
350
|
+
// Temporarily commenting out the following two lines because of platform differences for localeCompare between the browser and Node.js
|
351
|
+
// expect(wiki.filterTiddlers("[sortcs[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler,one");
|
352
|
+
// expect(wiki.filterTiddlers("[!sortcs[title]]").join(",")).toBe("one,a fourth tiddler,TiddlerOne,Tiddler Three,$:/TiddlerTwo");
|
353
|
+
});
|
354
|
+
|
355
|
+
it("should handle the nsort and nsortcs operators", function() {
|
356
|
+
expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[nsort[]]").join(",")).toBe("0,1,2,3,5,add,Apple,beatle,Beta");
|
357
|
+
expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[!nsort[]]").join(",")).toBe("Beta,beatle,Apple,add,5,3,2,1,0");
|
358
|
+
expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[nsortcs[]]").join(",")).toBe("0,1,2,3,5,add,Apple,beatle,Beta");
|
359
|
+
expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[!nsortcs[]]").join(",")).toBe("Beta,beatle,Apple,add,5,3,2,1,0");
|
360
|
+
});
|
361
|
+
|
362
|
+
it("should handle the reverse, first, last, butfirst, butlast, rest and nth operators", function() {
|
363
|
+
expect(wiki.filterTiddlers("[sort[title]first[]]").join(",")).toBe("$:/ShadowPlugin");
|
364
|
+
expect(wiki.filterTiddlers("[sort[title]first[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
|
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
|
+
expect(wiki.filterTiddlers("[sort[title]first[x]]").join(",")).toBe("$:/ShadowPlugin");
|
367
|
+
expect(wiki.filterTiddlers("[sort[title]last[]]").join(",")).toBe("TiddlerOne");
|
368
|
+
expect(wiki.filterTiddlers("[sort[title]last[2]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
369
|
+
expect(wiki.filterTiddlers("[sort[title]last[8]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
370
|
+
expect(wiki.filterTiddlers("[sort[title]last[x]]").join(",")).toBe("TiddlerOne");
|
371
|
+
expect(wiki.filterTiddlers("[sort[title]reverse[]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
372
|
+
expect(wiki.filterTiddlers("[sort[title]reverse[x]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
|
373
|
+
expect(wiki.filterTiddlers("[sort[title]butlast[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
374
|
+
expect(wiki.filterTiddlers("[sort[title]butlast[0]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
375
|
+
expect(wiki.filterTiddlers("[sort[title]butlast[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
376
|
+
expect(wiki.filterTiddlers("[sort[title]butlast[11]]").join(",")).toBe("");
|
377
|
+
expect(wiki.filterTiddlers("[sort[title]butlast[x]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
378
|
+
expect(wiki.filterTiddlers("[sort[title]rest[]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
379
|
+
expect(wiki.filterTiddlers("[sort[title]rest[2]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
380
|
+
expect(wiki.filterTiddlers("[sort[title]rest[11]]").join(",")).toBe("");
|
381
|
+
expect(wiki.filterTiddlers("[sort[title]rest[x]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
382
|
+
expect(wiki.filterTiddlers("[sort[title]nth[]]").join(",")).toBe("$:/ShadowPlugin");
|
383
|
+
expect(wiki.filterTiddlers("[sort[title]nth[2]]").join(",")).toBe("$:/TiddlerTwo");
|
384
|
+
expect(wiki.filterTiddlers("[sort[title]nth[11]]").join(",")).toBe("");
|
385
|
+
expect(wiki.filterTiddlers("[sort[title]nth[x]]").join(",")).toBe("$:/ShadowPlugin");
|
386
|
+
});
|
387
|
+
|
388
|
+
it("should handle the tag operator", function() {
|
389
|
+
expect(wiki.filterTiddlers("[tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
390
|
+
expect(wiki.filterTiddlers("[!tag[one]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
391
|
+
expect(wiki.filterTiddlers("[prefix[Tidd]tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
392
|
+
expect(wiki.filterTiddlers("[!is[shadow]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
393
|
+
expect(wiki.filterTiddlers("[all[shadows]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerFive");
|
394
|
+
});
|
395
|
+
|
396
|
+
it("should handle the all operator with field, has and tag operators", function() {
|
397
|
+
expect(wiki.filterTiddlers("[all[shadows]tag[two]]").join(",")).toBe("$:/TiddlerFive");
|
398
|
+
expect(wiki.filterTiddlers("[all[shadows+tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
|
399
|
+
expect(wiki.filterTiddlers("[all[tiddlers+shadows]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,$:/TiddlerFive");
|
400
|
+
expect(wiki.filterTiddlers("[all[shadows+tiddlers]]").join(",")).toBe("$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8,$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
401
|
+
expect(wiki.filterTiddlers("[all[tiddlers+shadows]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne,$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8");
|
402
|
+
expect(wiki.filterTiddlers("[all[tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
403
|
+
expect(wiki.filterTiddlers("[all[orphans+tiddlers+tags]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,Tiddler Three,TiddlerOne,two,one");
|
404
|
+
});
|
405
|
+
|
406
|
+
it("should handle the tags operator", function() {
|
407
|
+
expect(wiki.filterTiddlers("[tags[]sort[title]]").join(",")).toBe("one,two");
|
408
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]tags[]sort[title]]").join(",")).toBe("one");
|
409
|
+
});
|
410
|
+
|
411
|
+
it("should handle the match operator", function() {
|
412
|
+
expect(wiki.filterTiddlers("[match[TiddlerOne]]").join(",")).toBe("TiddlerOne");
|
413
|
+
expect(wiki.filterTiddlers("TiddlerOne TiddlerOne =[match[TiddlerOne]]").join(",")).toBe("TiddlerOne,TiddlerOne");
|
414
|
+
expect(wiki.filterTiddlers("[!match[TiddlerOne]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
415
|
+
expect(wiki.filterTiddlers("[match:casesensitive[tiddlerone]]").join(",")).toBe("");
|
416
|
+
expect(wiki.filterTiddlers("[!match:casesensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
417
|
+
expect(wiki.filterTiddlers("[match:caseinsensitive[tiddlerone]]").join(",")).toBe("TiddlerOne");
|
418
|
+
expect(wiki.filterTiddlers("[!match:caseinsensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
|
419
|
+
});
|
420
|
+
|
421
|
+
it("should handle the tagging operator", function() {
|
422
|
+
expect(wiki.filterTiddlers("[[one]tagging[]sort[title]]").join(",")).toBe("Tiddler Three,Tiddler8,TiddlerOne,TiddlerSeventh");
|
423
|
+
expect(wiki.filterTiddlers("[[one]tagging[]]").join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
|
424
|
+
expect(wiki.filterTiddlers("[[two]tagging[]sort[title]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
|
425
|
+
var fakeWidget = {getVariable: function() {return "one";}};
|
426
|
+
expect(wiki.filterTiddlers("[all[current]tagging[]]",fakeWidget).join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
|
427
|
+
});
|
428
|
+
|
429
|
+
it("should handle the untagged operator", function() {
|
430
|
+
expect(wiki.filterTiddlers("[untagged[]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
431
|
+
expect(wiki.filterTiddlers("[!untagged[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
432
|
+
// Should consider non-existent tiddlers untagged.
|
433
|
+
expect(wiki.filterTiddlers("[enlist[a b c]untagged[]]").join(",")).toBe("a,b,c");
|
434
|
+
expect(wiki.filterTiddlers("[enlist[a b c]!untagged[]]").join(",")).toBe("");
|
435
|
+
});
|
436
|
+
|
437
|
+
it("should handle the links operator", function() {
|
438
|
+
expect(wiki.filterTiddlers("[!is[shadow]links[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerSix,TiddlerZero");
|
439
|
+
expect(wiki.filterTiddlers("[all[shadows]links[]sort[title]]").join(",")).toBe("TiddlerOne");
|
440
|
+
});
|
441
|
+
|
442
|
+
it("should handle the backlinks operator", function() {
|
443
|
+
expect(wiki.filterTiddlers("[!is[shadow]backlinks[]sort[title]]").join(",")).toBe("a fourth tiddler,has filter,hasList,one,TiddlerOne");
|
444
|
+
expect(wiki.filterTiddlers("[all[shadows]backlinks[]sort[title]]").join(",")).toBe("Tiddler Three");
|
445
|
+
});
|
446
|
+
|
447
|
+
it("should handle the has operator", function() {
|
448
|
+
expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
449
|
+
expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
450
|
+
expect(wiki.filterTiddlers("[has[tags]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
451
|
+
expect(wiki.filterTiddlers("[!has[tags]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
452
|
+
});
|
453
|
+
|
454
|
+
it("should handle the has:field operator", function() {
|
455
|
+
expect(wiki.filterTiddlers("[has:field[empty]sort[title]]").join(",")).toBe("a fourth tiddler,one");
|
456
|
+
expect(wiki.filterTiddlers("[!has:field[empty]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,filter regexp test,has filter,hasList,Tiddler Three,TiddlerOne");
|
457
|
+
});
|
458
|
+
|
459
|
+
|
460
|
+
it("should handle the limit operator", function() {
|
461
|
+
expect(wiki.filterTiddlers("[!is[system]sort[title]limit[2]]").join(",")).toBe("a fourth tiddler,filter regexp test");
|
462
|
+
expect(wiki.filterTiddlers("[prefix[Tid]sort[title]limit[1]]").join(",")).toBe("Tiddler Three");
|
463
|
+
expect(wiki.filterTiddlers("[prefix[Tid]sort[title]!limit[1]]").join(",")).toBe("TiddlerOne");
|
464
|
+
});
|
465
|
+
|
466
|
+
it("should handle the list operator", function() {
|
467
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
|
468
|
+
expect(wiki.filterTiddlers("[tag[one]list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
|
469
|
+
});
|
488
470
|
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
471
|
+
it("should handle the listed operator", function() {
|
472
|
+
expect(wiki.filterTiddlers("TiddlerOne MissingTiddler +[listed[]]").join(",")).toBe('hasList,one');
|
473
|
+
expect(wiki.filterTiddlers("one two +[listed[tags]]").join(",")).toBe('TiddlerOne,$:/TiddlerTwo,Tiddler Three');
|
474
|
+
});
|
475
|
+
|
476
|
+
it("should handle the next operator", function() {
|
477
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]next[TiddlerSeventh]]").join(",")).toBe("a fourth tiddler");
|
478
|
+
expect(wiki.filterTiddlers("[[MissingTiddler]next[TiddlerSeventh]]").join(",")).toBe("");
|
479
|
+
});
|
480
|
+
|
481
|
+
it("should handle the previous operator", function() {
|
482
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]previous[TiddlerSeventh]]").join(",")).toBe("TiddlerOne");
|
483
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]previous[TiddlerSeventh]]").join(",")).toBe("");
|
484
|
+
});
|
485
|
+
|
486
|
+
it("should handle the search operator", function() {
|
487
|
+
expect(wiki.filterTiddlers("[search[the]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
488
|
+
expect(wiki.filterTiddlers("[search{Tiddler8}sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
489
|
+
expect(wiki.filterTiddlers("[search:modifier[og]sort[title]]").join(",")).toBe("TiddlerOne");
|
490
|
+
expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[Do]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
|
491
|
+
expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[do]sort[title]]").join(",")).toBe("");
|
492
|
+
expect(wiki.filterTiddlers("[search:authors:casesensitive,whitespace[John Doe]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
|
493
|
+
expect(wiki.filterTiddlers("[search:modifier:regexp[(d|bl)o(ggs|e)]sort[title]]").join(",")).toBe("TiddlerOne");
|
494
|
+
expect(wiki.filterTiddlers("[search:-modifier,authors:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three");
|
495
|
+
expect(wiki.filterTiddlers("[search:*:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three,TiddlerOne");
|
496
|
+
expect(wiki.filterTiddlers("[search:text:anchored[the]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,Tiddler Three,TiddlerOne");
|
497
|
+
});
|
515
498
|
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
expect(wiki.filterTiddlers("[[24]divide[8]]").join(",")).toBe("3");
|
520
|
-
expect(wiki.filterTiddlers("[[355]divide[113]sign[]multiply[4]]").join(",")).toBe("4");
|
521
|
-
expect(wiki.filterTiddlers("[[355]divide[113]add[0.5]round[]multiply[4]]").join(",")).toBe("16");
|
522
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[sum[]]").join(",")).toBe("10");
|
523
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[product[]]").join(",")).toBe("24");
|
524
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[maxall[]]").join(",")).toBe("4");
|
525
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[minall[]]").join(",")).toBe("1");
|
526
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[max[2]]").join(",")).toBe("2,2,3,4");
|
527
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[min[2]]").join(",")).toBe("1,2,2,2");
|
528
|
-
});
|
499
|
+
it("should yield search results where 'default' search finds at least 1 token", function() {
|
500
|
+
expect(wiki.filterTiddlers("[search::some[one two]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,one,Tiddler Three,TiddlerOne");
|
501
|
+
});
|
529
502
|
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[]]").join(",")).toBe("");
|
535
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[1]]").join(",")).toBe("2,3,4");
|
536
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[1]]").join(",")).toBe("1,2,3,4");
|
537
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[2]]").join(",")).toBe("3,4");
|
538
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[2]]").join(",")).toBe("2,3,4");
|
539
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[3]]").join(",")).toBe("4");
|
540
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[3]]").join(",")).toBe("3,4");
|
541
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[4]]").join(",")).toBe("");
|
542
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[4]]").join(",")).toBe("4");
|
543
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[5]]").join(",")).toBe("");
|
544
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[5]]").join(",")).toBe("");
|
545
|
-
});
|
503
|
+
it("should yield search results where 'title' finds at least one token", function() {
|
504
|
+
expect(wiki.filterTiddlers("[search:title:some[tiddler]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,Tiddler Three,TiddlerOne");
|
505
|
+
expect(wiki.filterTiddlers("[search:title:some[tiddler one]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
|
506
|
+
});
|
546
507
|
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[2]]").join(",")).toBe("1");
|
553
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[2]]").join(",")).toBe("1,2");
|
554
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[3]]").join(",")).toBe("1,2");
|
555
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[3]]").join(",")).toBe("1,2,3");
|
556
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[4]]").join(",")).toBe("1,2,3");
|
557
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[4]]").join(",")).toBe("1,2,3,4");
|
558
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[5]]").join(",")).toBe("");
|
559
|
-
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[5]]").join(",")).toBe("");
|
560
|
-
});
|
508
|
+
it("should yield search results where 'tags' finds at least one token", function() {
|
509
|
+
expect(wiki.filterTiddlers("[search:tags:some[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
510
|
+
expect(wiki.filterTiddlers("[search:tags:some[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
511
|
+
expect(wiki.filterTiddlers("[search:tags:some[two one]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
512
|
+
});
|
561
513
|
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
expect(wiki.filterTiddlers("a b c +[append:2{TiddlerSeventh!!list}]").join(",")).toBe("a,b,c,TiddlerOne,Tiddler Three");
|
567
|
-
|
568
|
-
expect(wiki.filterTiddlers("a [[b c]] +[append{TiddlerSix!!filter}]").join(",")).toBe("a,b c,one,a a,[subfilter{hasList!!list}]");
|
569
|
-
});
|
514
|
+
it("should yield search results where 'tags' finds at least one token / casesensitive", function() {
|
515
|
+
expect(wiki.filterTiddlers("[search:tags:some[ONE]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
516
|
+
expect(wiki.filterTiddlers("[search:tags:some,casesensitive[two ONE]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
517
|
+
});
|
570
518
|
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
rootWidget.setVariable("tidTitle","e");
|
579
|
-
rootWidget.setVariable("tidList","one tid with spaces");
|
580
|
-
|
581
|
-
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[f]]",anchorWidget).join(",")).toBe("a,b,f,c,d,e");
|
582
|
-
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar<tidTitle>]",anchorWidget).join(",")).toBe("a,b,e,c,d,f");
|
583
|
-
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[gg gg]]",anchorWidget).join(",")).toBe("a,b,gg gg,c,d,e,f");
|
584
|
-
|
585
|
-
expect(wiki.filterTiddlers("a b c d e +[insertbefore:myVar<tidList>]",anchorWidget).join(",")).toBe("a,b,one tid with spaces,c,d,e");
|
586
|
-
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:tidTitle{TiddlerOne!!tags}]",anchorWidget).join(",")).toBe("a,b,c,d,one,e,f");
|
519
|
+
it("should yield search results where 'tags' finds at least one token / anchored", function() {
|
520
|
+
expect(wiki.filterTiddlers("[search:tags:some,anchored[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
521
|
+
expect(wiki.filterTiddlers("[search:tags:some,anchored[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
522
|
+
// search:title
|
523
|
+
expect(wiki.filterTiddlers("[search:title:some,anchored[tiddler]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
524
|
+
expect(wiki.filterTiddlers("[search:title:some,anchored[tiddler one]sort[title]]").join(",")).toBe("one,Tiddler Three,TiddlerOne");
|
525
|
+
});
|
587
526
|
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
527
|
+
it("should yield search results where 'tags' finds at least one token / anchored & casesensitive", function() {
|
528
|
+
expect(wiki.filterTiddlers("[search:title:some,anchored,casesensitive[Tiddler one]sort[title]]").join(",")).toBe("one,Tiddler Three,TiddlerOne");
|
529
|
+
expect(wiki.filterTiddlers("[search:title:some,anchored,casesensitive[Tiddler ONE]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
530
|
+
});
|
592
531
|
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
expect(wiki.filterTiddlers("a b c d e +[move:10[c]]").join(",")).toBe("a,b,d,e,c");
|
597
|
-
expect(wiki.filterTiddlers("a b c d e +[move:-1[c]]").join(",")).toBe("a,c,b,d,e");
|
598
|
-
expect(wiki.filterTiddlers("a b c d e +[move:-5[c]]").join(",")).toBe("c,a,b,d,e");
|
599
|
-
});
|
532
|
+
it("should yield search results that have search tokens spread across different fields", function() {
|
533
|
+
expect(wiki.filterTiddlers("[search[fox one]sort[title]]").join(",")).toBe("TiddlerOne");
|
534
|
+
});
|
600
535
|
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
536
|
+
it("should handle the each operator", function() {
|
537
|
+
expect(wiki.filterTiddlers("[each[modifier]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,filter regexp test,TiddlerOne");
|
538
|
+
expect(wiki.filterTiddlers("[each:list-item[tags]sort[title]]").join(",")).toBe("one,two");
|
539
|
+
expect(wiki.filterTiddlers("[each:list-item[authors]sort[title]]").join(",")).toBe("Bloggs,Joe,John Doe");
|
540
|
+
});
|
541
|
+
|
542
|
+
it("should handle the eachday operator", function() {
|
543
|
+
expect(wiki.filterTiddlers("[eachday[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
|
544
|
+
});
|
545
|
+
|
546
|
+
it("should handle the sameday operator", function() {
|
547
|
+
expect(wiki.filterTiddlers("[sameday[201304152200]sort[title]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne");
|
548
|
+
});
|
549
|
+
|
550
|
+
describe("testing the is operator",function() {
|
551
|
+
|
552
|
+
it("should handle the '[is[current]]' operator", function() {
|
553
|
+
var fakeWidget = {getVariable: function() {return "Tiddler Three";}};
|
554
|
+
expect(wiki.filterTiddlers("[is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
|
555
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
|
556
|
+
expect(wiki.filterTiddlers("[[$:/TiddlerTwo]is[current]]",fakeWidget).join(",")).toBe("");
|
557
|
+
expect(wiki.filterTiddlers("[!is[current]sort[title]]",fakeWidget).join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
|
558
|
+
});
|
559
|
+
|
560
|
+
it("should handle the '[is[system]]' operator", function() {
|
561
|
+
expect(wiki.filterTiddlers("[is[system]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
|
562
|
+
expect(wiki.filterTiddlers("[!is[system]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
563
|
+
});
|
564
|
+
|
565
|
+
it("should handle the '[is[shadow]]' operator", function() {
|
566
|
+
expect(wiki.filterTiddlers("[all[shadows]sort[title]]").join(",")).toBe("$:/TiddlerFive,Tiddler8,TiddlerSeventh,TiddlerSix");
|
567
|
+
expect(wiki.filterTiddlers("[!is[shadow]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
568
|
+
});
|
569
|
+
|
570
|
+
it("should handle the '[is[missing]]' operator", function() {
|
571
|
+
expect(wiki.filterTiddlers("[all[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
572
|
+
expect(wiki.filterTiddlers("[all[missing]]").join(",")).toBe("TiddlerZero");
|
573
|
+
expect(wiki.filterTiddlers("[!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
|
574
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]is[missing]]").join(",")).toBe("");
|
575
|
+
expect(wiki.filterTiddlers("[[TiddlerZero]is[missing]]").join(",")).toBe("TiddlerZero");
|
576
|
+
expect(wiki.filterTiddlers("[!title[Tiddler Three]is[missing]]").join(",")).toBe("");
|
577
|
+
expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
|
578
|
+
});
|
579
|
+
|
580
|
+
it("should handle the '[is[orphan]]' operator", function() {
|
581
|
+
expect(wiki.filterTiddlers("[is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,TiddlerOne");
|
582
|
+
expect(wiki.filterTiddlers("[!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,has filter,hasList,one,Tiddler Three");
|
583
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]is[orphan]]").join(",")).toBe("TiddlerOne");
|
584
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]!is[orphan]]").join(",")).toBe("");
|
585
|
+
expect(wiki.filterTiddlers("[!title[Tiddler Three]is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,TiddlerOne");
|
586
|
+
expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,has filter,hasList,one");
|
587
|
+
});
|
588
|
+
|
589
|
+
it("should handle the '[is[draft]]' operator", function() {
|
590
|
+
var wiki = new $tw.Wiki();
|
591
|
+
wiki.addTiddlers([
|
592
|
+
{title: "A"},
|
593
|
+
{title: "Draft of 'A'", "draft.of": "A", "draft.title": "A"},
|
594
|
+
{title: "B"},
|
595
|
+
{title: "Draft of 'B'", "draft.of": "B"},
|
596
|
+
{title: "C"},
|
597
|
+
// Not a true draft. Doesn't have draft.of
|
598
|
+
{title: "Draft of 'C'", "draft.title": "C"},
|
599
|
+
{title: "E"},
|
600
|
+
// Broken. Has draft.of, but it's empty. Still a draft
|
601
|
+
{title: "Draft of 'E'", "draft.of": "", "draft.title": ""}
|
602
|
+
// Not a draft. It doesn't exist.
|
603
|
+
//{title: "F"} // This one is deliberately missing
|
604
|
+
]);
|
605
|
+
// is analagous to [has[draft.of]],
|
606
|
+
// except they handle empty draft.of differently
|
607
|
+
expect(wiki.filterTiddlers("[all[]] F +[is[draft]]").join(",")).toEqual("Draft of 'A',Draft of 'B',Draft of 'E'");
|
608
|
+
expect(wiki.filterTiddlers("[all[]] F +[!is[draft]]").join(",")).toEqual("A,B,C,Draft of 'C',E,F");
|
609
|
+
// [is[draft]] and [!is[draft]] are proper complements
|
610
|
+
var included = wiki.filterTiddlers("[all[]] F +[is[draft]]")
|
611
|
+
var excluded = wiki.filterTiddlers("[all[]] F +[!is[draft]]")
|
612
|
+
var all = [].concat(included, excluded).sort();
|
613
|
+
// combined, they should have exactly one of everything.
|
614
|
+
expect(wiki.filterTiddlers("[all[]] F +[sort[]]")).toEqual(all);
|
615
|
+
});
|
616
|
+
|
617
|
+
});
|
618
|
+
|
619
|
+
it("should handle the operand prefixes", function() {
|
620
|
+
expect(wiki.filterTiddlers("[prefix[Tiddler]] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
621
|
+
});
|
622
|
+
|
623
|
+
it("should handle indirect operands", function() {
|
624
|
+
expect(wiki.filterTiddlers("[prefix{Tiddler8}] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
|
625
|
+
expect(wiki.filterTiddlers("[modifier{Tiddler8!!test-field}] +[sort[title]]").join(",")).toBe("TiddlerOne");
|
626
|
+
var fakeWidget = {wiki: wiki, getVariable: function() {return "Tiddler Three";}};
|
627
|
+
expect(wiki.filterTiddlers("[modifier{!!modifier}] +[sort[title]]",fakeWidget).join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
|
628
|
+
});
|
629
|
+
|
630
|
+
it("should handle variable operands", function() {
|
631
|
+
|
632
|
+
var widget = require("$:/core/modules/widgets/widget.js");
|
633
|
+
// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers
|
634
|
+
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
635
|
+
{ wiki:wiki, document:$tw.document});
|
636
|
+
rootWidget.makeChildWidgets();
|
637
|
+
var anchorWidget = rootWidget.children[0];
|
638
|
+
rootWidget.setVariable("myVar","Tidd");
|
639
|
+
rootWidget.setVariable("myVar2","JoeBloggs");
|
640
|
+
expect(wiki.filterTiddlers("[prefix<myVar>] +[sort[title]]",anchorWidget).join(",")).toBe("Tiddler Three,TiddlerOne");
|
641
|
+
expect(wiki.filterTiddlers("[modifier<myVar2>] +[sort[title]]",anchorWidget).join(",")).toBe("TiddlerOne");
|
642
|
+
});
|
643
|
+
|
644
|
+
it("should handle the before and after operators", function() {
|
645
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[TiddlerOne]]").join(",")).toBe("Tiddler Three");
|
646
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[a fourth tiddler]]").join(",")).toBe("MissingTiddler");
|
647
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[MissingTiddler]]").join(",")).toBe("");
|
648
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[TiddlerOne]]").join(",")).toBe("");
|
649
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[a fourth tiddler]]").join(",")).toBe("Tiddler Three");
|
650
|
+
expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[MissingTiddler]]").join(",")).toBe("a fourth tiddler");
|
651
|
+
});
|
652
|
+
|
653
|
+
it("should handle the range operator", function() {
|
654
|
+
expect(wiki.filterTiddlers("[range[10:0:2]]").join(",")).toBe("10,8,6,4,2,0");
|
655
|
+
expect(wiki.filterTiddlers("[range[10;0;2]]").join(",")).toBe("10,8,6,4,2,0");
|
656
|
+
expect(wiki.filterTiddlers("[range[1.001,5,1]]").join(",")).toBe("1.001,2.001,3.001,4.001");
|
657
|
+
expect(wiki.filterTiddlers("[range[0,10]]").join(",")).toBe("0,1,2,3,4,5,6,7,8,9,10");
|
658
|
+
expect(wiki.filterTiddlers("[range[0],[10]]").join(",")).toBe("0,1,2,3,4,5,6,7,8,9,10");
|
659
|
+
expect(wiki.filterTiddlers("[range[10,0]]").join(",")).toBe("10,9,8,7,6,5,4,3,2,1,0");
|
660
|
+
expect(wiki.filterTiddlers("[range[10],[0]]").join(",")).toBe("10,9,8,7,6,5,4,3,2,1,0");
|
661
|
+
expect(wiki.filterTiddlers("[range[0,10,2]]").join(",")).toBe("0,2,4,6,8,10");
|
662
|
+
expect(wiki.filterTiddlers("[range[0],[10],[2]]").join(",")).toBe("0,2,4,6,8,10");
|
663
|
+
expect(wiki.filterTiddlers("[range[10,0,2]]").join(",")).toBe("10,8,6,4,2,0");
|
664
|
+
expect(wiki.filterTiddlers("[range[10],[0],[2]]").join(",")).toBe("10,8,6,4,2,0");
|
665
|
+
});
|
666
|
+
|
667
|
+
it("should handle the string operators", function() {
|
668
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[length[]]").join(",")).toBe("4,4,6,5");
|
669
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[uppercase[]]").join(",")).toBe("JOHN,PAUL,GEORGE,RINGO");
|
670
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[lowercase[]]").join(",")).toBe("john,paul,george,ringo");
|
671
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[split[]]").join(",")).toBe("J,o,h,n,P,a,u,l,G,e,o,r,g,e,R,i,n,g,o");
|
672
|
+
expect(wiki.filterTiddlers("[[John. Paul. George. Ringo.]] +[split[.]trim[]]").join(",")).toBe("John,Paul,George,Ringo,");
|
673
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[split[e]]").join(",")).toBe("John,Paul,G,org,,Ringo");
|
674
|
+
expect(wiki.filterTiddlers("John Paul George Ringo +[join[ ]split[e]join[ee]split[ ]]").join(",")).toBe("John,Paul,Geeorgee,Ringo");
|
675
|
+
// Ensure that join doesn't return null if passed empty list
|
676
|
+
expect(wiki.filterTiddlers("Test +[butlast[]join[ ]]")).toEqual([]);
|
677
|
+
// Ensure that join correctly handles empty strings in source
|
678
|
+
expect(wiki.filterTiddlers("[[]] Paul +[join[-]]").join(",")).toBe("-Paul");
|
679
|
+
expect(wiki.filterTiddlers("[[ John ]] [[Paul ]] [[ George]] Ringo +[trim[]join[-]]").join(",")).toBe("John-Paul-George-Ringo");
|
680
|
+
expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim[]]").join(",")).toBe("abc,def,ghi");
|
681
|
+
expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim:prefix[]]").join(",")).toBe("abc ,def ,ghi");
|
682
|
+
expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim:suffix[]]").join(",")).toBe(" abc,def, ghi");
|
683
|
+
expect(wiki.filterTiddlers("[[ abacus ]] [[ baobab ]] +[trim[ab]]").join(",")).toBe(" abacus , baobab ");
|
684
|
+
expect(wiki.filterTiddlers("[[ abacus ]] [[ baobab ]] +[trim[a]]").join(",")).toBe(" abacus , baobab ");
|
685
|
+
expect(wiki.filterTiddlers("abacus baobab +[trim[a]]").join(",")).toBe("bacus,baobab");
|
686
|
+
expect(wiki.filterTiddlers("abacus baobab +[trim[ab]]").join(",")).toBe("acus,baob");
|
687
|
+
expect(wiki.filterTiddlers("abacus baobab +[trim:prefix[ab]]").join(",")).toBe("acus,baobab");
|
688
|
+
expect(wiki.filterTiddlers("abacus baobab +[trim:suffix[ab]]").join(",")).toBe("abacus,baob");
|
689
|
+
// Trim doesn't hiccup on regexp special characters
|
690
|
+
expect(wiki.filterTiddlers("[[.*abacus.*]] [[.+baobab.+]] +[trim[.*]]").join(",")).toBe("abacus,.+baobab.+");
|
691
|
+
expect(wiki.filterTiddlers("[[.*abacus.*]] [[.+baobab.+]] +[trim[.+]]").join(",")).toBe(".*abacus.*,baobab");
|
692
|
+
});
|
693
|
+
|
694
|
+
it("should handle the mathematics operators", function() {
|
695
|
+
expect(wiki.filterTiddlers("[[2]add[2]]").join(",")).toBe("4");
|
696
|
+
expect(wiki.filterTiddlers("[[4]subtract[2]]").join(",")).toBe("2");
|
697
|
+
expect(wiki.filterTiddlers("[[24]divide[8]]").join(",")).toBe("3");
|
698
|
+
expect(wiki.filterTiddlers("[[355]divide[113]sign[]multiply[4]]").join(",")).toBe("4");
|
699
|
+
expect(wiki.filterTiddlers("[[355]divide[113]add[0.5]round[]multiply[4]]").join(",")).toBe("16");
|
700
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[sum[]]").join(",")).toBe("10");
|
701
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[product[]]").join(",")).toBe("24");
|
702
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[maxall[]]").join(",")).toBe("4");
|
703
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[minall[]]").join(",")).toBe("1");
|
704
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[max[2]]").join(",")).toBe("2,2,3,4");
|
705
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[min[2]]").join(",")).toBe("1,2,2,2");
|
706
|
+
});
|
707
|
+
|
708
|
+
/* listops filters */
|
606
709
|
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
710
|
+
it("should handle the allafter operator", function() {
|
711
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[]]").join(",")).toBe("");
|
712
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[]]").join(",")).toBe("");
|
713
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[1]]").join(",")).toBe("2,3,4");
|
714
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[1]]").join(",")).toBe("1,2,3,4");
|
715
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[2]]").join(",")).toBe("3,4");
|
716
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[2]]").join(",")).toBe("2,3,4");
|
717
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[3]]").join(",")).toBe("4");
|
718
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[3]]").join(",")).toBe("3,4");
|
719
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[4]]").join(",")).toBe("");
|
720
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[4]]").join(",")).toBe("4");
|
721
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter[5]]").join(",")).toBe("");
|
722
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[5]]").join(",")).toBe("");
|
723
|
+
});
|
724
|
+
|
725
|
+
it("should handle the allbefore operator", function() {
|
726
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[]]").join(",")).toBe("");
|
727
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[]]").join(",")).toBe("");
|
728
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[1]]").join(",")).toBe("");
|
729
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[1]]").join(",")).toBe("1");
|
730
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[2]]").join(",")).toBe("1");
|
731
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[2]]").join(",")).toBe("1,2");
|
732
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[3]]").join(",")).toBe("1,2");
|
733
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[3]]").join(",")).toBe("1,2,3");
|
734
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[4]]").join(",")).toBe("1,2,3");
|
735
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[4]]").join(",")).toBe("1,2,3,4");
|
736
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[5]]").join(",")).toBe("");
|
737
|
+
expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[5]]").join(",")).toBe("");
|
738
|
+
});
|
739
|
+
|
740
|
+
it("should handle the append operator", function() {
|
741
|
+
expect(wiki.filterTiddlers("a b c +[append[d e]]").join(",")).toBe("a,b,c,d,e");
|
742
|
+
expect(wiki.filterTiddlers("a b c +[append:1[d e]]").join(",")).toBe("a,b,c,d");
|
743
|
+
expect(wiki.filterTiddlers("a b c +[append{TiddlerSeventh!!list}]").join(",")).toBe("a,b,c,TiddlerOne,Tiddler Three,a fourth tiddler,MissingTiddler");
|
744
|
+
expect(wiki.filterTiddlers("a b c +[append:2{TiddlerSeventh!!list}]").join(",")).toBe("a,b,c,TiddlerOne,Tiddler Three");
|
745
|
+
|
746
|
+
expect(wiki.filterTiddlers("a [[b c]] +[append{TiddlerSix!!filter}]").join(",")).toBe("a,b c,one,a a,[subfilter{hasList!!list}]");
|
747
|
+
});
|
748
|
+
|
749
|
+
it("should handle the insertbefore operator", function() {
|
750
|
+
var widget = require("$:/core/modules/widgets/widget.js");
|
751
|
+
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
752
|
+
{ wiki:wiki, document:$tw.document});
|
753
|
+
rootWidget.makeChildWidgets();
|
754
|
+
var anchorWidget = rootWidget.children[0];
|
755
|
+
rootWidget.setVariable("myVar","c");
|
756
|
+
rootWidget.setVariable("tidTitle","e");
|
757
|
+
rootWidget.setVariable("tidList","one tid with spaces");
|
758
|
+
|
759
|
+
// Position title specified as suffix.
|
760
|
+
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[f]]",anchorWidget).join(",")).toBe("a,b,f,c,d,e");
|
761
|
+
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar<tidTitle>]",anchorWidget).join(",")).toBe("a,b,e,c,d,f");
|
762
|
+
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[gg gg]]",anchorWidget).join(",")).toBe("a,b,gg gg,c,d,e,f");
|
763
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore:myVar<tidList>]",anchorWidget).join(",")).toBe("a,b,one tid with spaces,c,d,e");
|
764
|
+
expect(wiki.filterTiddlers("a b c d e f +[insertbefore:tidTitle{TiddlerOne!!tags}]",anchorWidget).join(",")).toBe("a,b,c,d,one,e,f");
|
765
|
+
|
766
|
+
// Position title specified as parameter.
|
767
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore[f],[a]]",anchorWidget).join(",")).toBe("f,a,b,c,d,e");
|
768
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore[f],<myVar>]",anchorWidget).join(",")).toBe("a,b,f,c,d,e");
|
769
|
+
|
770
|
+
// Parameter takes precedence over suffix.
|
771
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore:myVar[f],[a]]",anchorWidget).join(",")).toBe("f,a,b,c,d,e");
|
772
|
+
|
773
|
+
// No position title.
|
774
|
+
expect(wiki.filterTiddlers("a b c [[with space]] +[insertbefore[b]]").join(",")).toBe("a,c,with space,b");
|
646
775
|
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
776
|
+
// Position title does not exist.
|
777
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore:foo[b]]").join(",")).toBe("a,c,d,e,b");
|
778
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore[b],[foo]]").join(",")).toBe("a,c,d,e,b");
|
779
|
+
expect(wiki.filterTiddlers("a b c d e +[insertbefore[b],<foo>]").join(",")).toBe("a,c,d,e,b");
|
780
|
+
});
|
781
|
+
|
782
|
+
it("should handle the move operator", function() {
|
783
|
+
expect(wiki.filterTiddlers("a b c d e +[move[c]]").join(",")).toBe("a,b,d,c,e");
|
784
|
+
expect(wiki.filterTiddlers("a b c d e +[move:2[c]]").join(",")).toBe("a,b,d,e,c");
|
785
|
+
expect(wiki.filterTiddlers("a b c d e +[move:10[c]]").join(",")).toBe("a,b,d,e,c");
|
786
|
+
expect(wiki.filterTiddlers("a b c d e +[move:-1[c]]").join(",")).toBe("a,c,b,d,e");
|
787
|
+
expect(wiki.filterTiddlers("a b c d e +[move:-5[c]]").join(",")).toBe("c,a,b,d,e");
|
788
|
+
});
|
789
|
+
|
790
|
+
it("should handle the prepend operator", function() {
|
791
|
+
expect(wiki.filterTiddlers("a b c +[prepend[dd ee]]").join(",")).toBe("dd,ee,a,b,c");
|
792
|
+
expect(wiki.filterTiddlers("a b c +[prepend:3[ff gg]]").join(",")).toBe("ff,gg,a,b,c");
|
793
|
+
expect(wiki.filterTiddlers("a b c +[prepend:1[hh ii]]").join(",")).toBe("hh,a,b,c");
|
794
|
+
expect(wiki.filterTiddlers("a b c +[prepend:0[jj kk]]").join(",")).toBe("a,b,c");
|
795
|
+
|
796
|
+
expect(wiki.filterTiddlers("a b c +[prepend:-0[ll mm]]").join(",")).toBe("a,b,c");
|
797
|
+
expect(wiki.filterTiddlers("a b c +[prepend:-1[nn oo pp qq]]").join(",")).toBe("nn,oo,pp,a,b,c");
|
798
|
+
expect(wiki.filterTiddlers("a b c +[prepend:-2[rr ss tt uu]]").join(",")).toBe("rr,ss,a,b,c");
|
799
|
+
expect(wiki.filterTiddlers("a b c +[prepend:-4[rr ss tt uu]]").join(",")).toBe("a,b,c");
|
800
|
+
expect(wiki.filterTiddlers("a b c +[prepend:-5[vv ww xx yy]]").join(",")).toBe("a,b,c");
|
801
|
+
});
|
802
|
+
|
803
|
+
it("should handle the putafter operator", function() {
|
804
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter[b]]").join(",")).toBe("a,b,ee,c,dd");
|
805
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter:1[b]]").join(",")).toBe("a,b,ee,c,dd");
|
806
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter:2[b]]").join(",")).toBe("a,b,dd,ee,c");
|
807
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter:3[b]]").join(",")).toBe("a,b,c,dd,ee");
|
808
|
+
// It starts to duplicate elements
|
809
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter:4[b]]").join(",")).toBe("a,b,b,c,dd,ee");
|
810
|
+
expect(wiki.filterTiddlers("a b c dd ee +[putafter:5[b]]").join(",")).toBe("a,b,a,b,c,dd,ee");
|
811
|
+
// There are only 5 elements in the input
|
812
|
+
expect(wiki.filterTiddlers("a b c ff gg +[putafter:6[b]]").join(",")).toBe("a,b,a,b,c,ff,gg");
|
813
|
+
|
814
|
+
// -1 starts to "eat" elements for the left and duplicates b
|
815
|
+
expect(wiki.filterTiddlers("a b c hh ii +[putafter:-1[b]]").join(",")).toBe("a,b,b,c,hh,ii");
|
816
|
+
// -2 moves c, hh, ii behind b, which is not visible
|
817
|
+
expect(wiki.filterTiddlers("a b c hh ii +[putafter:-2[b]]").join(",")).toBe("a,b,c,hh,ii");
|
818
|
+
// only ii is used from input and it's moved behind b
|
819
|
+
expect(wiki.filterTiddlers("a b c hh ii +[putafter:-4[b]]").join(",")).toBe("a,b,ii,c,hh");
|
820
|
+
// wasting time, because there are only 5 elements
|
821
|
+
expect(wiki.filterTiddlers("a b c hh ii +[putafter:-5[b]]").join(",")).toBe("a,b,c,hh,ii");
|
822
|
+
// there are only 5 elements
|
823
|
+
expect(wiki.filterTiddlers("a b c hh ii +[putafter:-10[b]]").join(",")).toBe("a,b,c,hh,ii");
|
824
|
+
|
825
|
+
// use NAN uses default = 1
|
826
|
+
expect(wiki.filterTiddlers("a b c jj kk +[putafter:NAN[b]]").join(",")).toBe("a,b,kk,c,jj");
|
827
|
+
});
|
828
|
+
|
829
|
+
it("should handle the putbefore operator", function() {
|
830
|
+
expect(wiki.filterTiddlers("a b c dd +[putbefore[b]]").join(",")).toBe("a,dd,b,c");
|
831
|
+
expect(wiki.filterTiddlers("a b c ff +[putbefore:1[b]]").join(",")).toBe("a,ff,b,c");
|
832
|
+
expect(wiki.filterTiddlers("a b c gg +[putbefore:2[b]]").join(",")).toBe("a,c,gg,b");
|
833
|
+
|
834
|
+
expect(wiki.filterTiddlers("a b c [[g g]] +[putbefore:2[b]]").join(",")).toBe("a,c,g g,b");
|
835
|
+
|
836
|
+
// this one is strange
|
837
|
+
expect(wiki.filterTiddlers("a b c ee +[putbefore:0[b]]").join(",")).toBe("a,a,b,c,ee");
|
838
|
+
|
839
|
+
// b is not part of the list anymore, so it will be appended at the end ???
|
840
|
+
expect(wiki.filterTiddlers("a b c hh +[putbefore:3[b]]").join(",")).toBe("a,b,c,hh");
|
841
|
+
expect(wiki.filterTiddlers("a b c ii +[putbefore:4[b]]").join(",")).toBe("a,a,b,c,ii");
|
842
|
+
|
843
|
+
// ????
|
844
|
+
expect(wiki.filterTiddlers("a b c ii +[putbefore:10[b]]").join(",")).toBe("a,a,b,c,ii");
|
845
|
+
|
846
|
+
expect(wiki.filterTiddlers("a b c kk +[putbefore:-1[b]]").join(",")).toBe("a,b,c,kk");
|
847
|
+
expect(wiki.filterTiddlers("a b c ll +[putbefore:-2[b]]").join(",")).toBe("a,c,ll,b");
|
848
|
+
|
849
|
+
expect(wiki.filterTiddlers("a b c mm +[putbefore:-3[b]]").join(",")).toBe("a,mm,b,c");
|
850
|
+
|
851
|
+
expect(wiki.filterTiddlers("a b c nn +[putbefore:-10[b]]").join(",")).toBe("a,b,c,nn");
|
852
|
+
});
|
853
|
+
|
854
|
+
it("should handle the putfirst operator", function() {
|
855
|
+
expect(wiki.filterTiddlers("a b c +[putfirst[a b]]").join(",")).toBe("c,a,b");
|
856
|
+
expect(wiki.filterTiddlers("a b c +[putfirst[]]").join(",")).toBe("c,a,b");
|
857
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:2[]]").join(",")).toBe("b,c,a");
|
858
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:3[]]").join(",")).toBe("a,b,c");
|
859
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:4[]]").join(",")).toBe("a,b,c");
|
860
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:-0[]]").join(",")).toBe("a,b,c");
|
861
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:-1[]]").join(",")).toBe("b,c,a");
|
862
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:-2[]]").join(",")).toBe("c,a,b");
|
863
|
+
expect(wiki.filterTiddlers("a b c +[putfirst:-4[]]").join(",")).toBe("a,b,c");
|
864
|
+
});
|
865
|
+
|
866
|
+
it("should handle the putlast operator", function() {
|
867
|
+
expect(wiki.filterTiddlers("a b c +[putlast[d e]]").join(",")).toBe("b,c,a");
|
868
|
+
expect(wiki.filterTiddlers("a b c +[putlast[]]").join(",")).toBe("b,c,a");
|
869
|
+
expect(wiki.filterTiddlers("a b c +[putlast:1[]]").join(",")).toBe("b,c,a");
|
870
|
+
expect(wiki.filterTiddlers("a b c +[putlast:2[]]").join(",")).toBe("c,a,b");
|
871
|
+
expect(wiki.filterTiddlers("a b c +[putlast:3[]]").join(",")).toBe("a,b,c");
|
872
|
+
expect(wiki.filterTiddlers("a b c +[putlast:4[]]").join(",")).toBe("a,b,c");
|
873
|
+
expect(wiki.filterTiddlers("a b c +[putlast:-0[]]").join(",")).toBe("a,b,c");
|
874
|
+
expect(wiki.filterTiddlers("a b c +[putlast:0[]]").join(",")).toBe("a,b,c");
|
875
|
+
expect(wiki.filterTiddlers("a b c +[putlast:-1[]]").join(",")).toBe("c,a,b");
|
876
|
+
expect(wiki.filterTiddlers("a b c +[putlast:-2[]]").join(",")).toBe("b,c,a");
|
877
|
+
expect(wiki.filterTiddlers("a b c +[putlast:-4[]]").join(",")).toBe("a,b,c");
|
878
|
+
});
|
879
|
+
|
880
|
+
it("should handle the remove operator", function() {
|
881
|
+
expect(wiki.filterTiddlers("a b c +[remove[d e]]").join(",")).toBe("a,b,c");
|
882
|
+
expect(wiki.filterTiddlers("a b c +[remove[a]]").join(",")).toBe("b,c");
|
883
|
+
expect(wiki.filterTiddlers("a b c +[remove[c b a]]").join(",")).toBe("");
|
884
|
+
});
|
885
|
+
|
886
|
+
it("should handle the replace operator", function() {
|
887
|
+
expect(wiki.filterTiddlers("a b c dd +[replace[a]]").join(",")).toBe("dd,b,c");
|
888
|
+
expect(wiki.filterTiddlers("a b c dd ee +[replace:2[a]]").join(",")).toBe("dd,ee,b,c");
|
889
|
+
expect(wiki.filterTiddlers("a b c dd ee +[replace:5[c]]").join(",")).toBe("a,b,a,b,c,dd,ee");
|
890
|
+
|
891
|
+
// strange things happen.
|
892
|
+
expect(wiki.filterTiddlers("a b c dd ee +[replace:-1[c]]").join(",")).toBe("a,b,b,c,dd,ee");
|
893
|
+
expect(wiki.filterTiddlers("a b c dd ee +[replace:-2[c]]").join(",")).toBe("a,b,c,dd,ee");
|
894
|
+
expect(wiki.filterTiddlers("a b c dd ee +[replace:-2[ee]]").join(",")).toBe("a,b,c,dd,c,dd,ee");
|
895
|
+
});
|
896
|
+
|
897
|
+
it("should handle the sortby operator", function() {
|
898
|
+
expect(wiki.filterTiddlers("a b c +[sortby[d e]]").join(",")).toBe("a,b,c");
|
899
|
+
expect(wiki.filterTiddlers("a b c +[sortby[b c a]]").join(",")).toBe("b,c,a");
|
900
|
+
expect(wiki.filterTiddlers("aa a b c +[sortby[b c a cc]]").join(",")).toBe("aa,b,c,a");
|
901
|
+
expect(wiki.filterTiddlers("a bb b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a");
|
902
|
+
expect(wiki.filterTiddlers("a bb cc b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a,cc");
|
903
|
+
|
904
|
+
expect(wiki.filterTiddlers("b a b c +[sortby[]]").join(",")).toBe("a,b,c");
|
905
|
+
expect(wiki.filterTiddlers("b a b c +[sortby[a b b c]]").join(",")).toBe("a,b,c");
|
906
|
+
expect(wiki.filterTiddlers("b a b c +[sortby[b a c b]]").join(",")).toBe("b,a,c");
|
907
|
+
});
|
908
|
+
|
909
|
+
it("should handle the sortan operator", function() {
|
910
|
+
expect(wiki.filterTiddlers("b a c +[sortan[]]").join(",")).toBe("a,b,c");
|
911
|
+
expect(wiki.filterTiddlers("b2 a3 a1 b1 c2 a2 c3 b3 c1 +[sortan[]]").join(",")).toBe("a1,a2,a3,b1,b2,b3,c1,c2,c3");
|
912
|
+
expect(wiki.filterTiddlers("b2 a10 c10 a1 b1 c2 a2 b10 c1 +[sortan[]]").join(",")).toBe("a1,a2,a10,b1,b2,b10,c1,c2,c10");
|
913
|
+
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
914
|
+
});
|
915
|
+
|
916
|
+
it("should handle the sortan operator sorting on date fields", function() {
|
917
|
+
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[modified]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne,Tiddler Three");
|
918
|
+
expect(wiki.filterTiddlers("hasList TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[modified]]").join(",")).toBe("hasList,$:/TiddlerTwo,TiddlerOne,Tiddler Three");
|
919
|
+
});
|
920
|
+
|
921
|
+
it("should handle the slugify operator", function() {
|
922
|
+
expect(wiki.filterTiddlers("[[Joe Bloggs]slugify[]]").join(",")).toBe("joe-bloggs");
|
923
|
+
expect(wiki.filterTiddlers("[[Joe Bloggs2]slugify[]]").join(",")).toBe("joe-bloggs2");
|
924
|
+
expect(wiki.filterTiddlers("[[@£$%^&*((]slugify[]]").join(",")).toBe("64-163-36-37-94-38-42-40-40");
|
925
|
+
expect(wiki.filterTiddlers("One one ONE O!N!E +[slugify[]]").join(",")).toBe("one,one,one,one");
|
926
|
+
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo +[slugify[]]").join(",")).toBe("tiddler-one,tiddler-two");
|
927
|
+
});
|
928
|
+
|
929
|
+
it("should handle the sortsub operator", function() {
|
930
|
+
var widget = require("$:/core/modules/widgets/widget.js");
|
931
|
+
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
932
|
+
{ wiki:wiki, document:$tw.document});
|
933
|
+
rootWidget.makeChildWidgets();
|
934
|
+
var anchorWidget = rootWidget.children[0];
|
935
|
+
rootWidget.setVariable("sort1","[length[]]");
|
936
|
+
rootWidget.setVariable("sort2","[get[text]else[]length[]]");
|
937
|
+
rootWidget.setVariable("sort3","[{!!value}divide{!!cost}]");
|
938
|
+
rootWidget.setVariable("sort4","[{!!title}]");
|
939
|
+
expect(wiki.filterTiddlers("[sortsub:number<sort1>]",anchorWidget).join(",")).toBe("one,hasList,has filter,TiddlerOne,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test");
|
940
|
+
expect(wiki.filterTiddlers("[!sortsub:number<sort1>]",anchorWidget).join(",")).toBe("filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,has filter,TiddlerOne,hasList,one");
|
941
|
+
expect(wiki.filterTiddlers("[sortsub:string<sort1>]",anchorWidget).join(",")).toBe("has filter,TiddlerOne,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test,one,hasList");
|
942
|
+
expect(wiki.filterTiddlers("[!sortsub:string<sort1>]",anchorWidget).join(",")).toBe("hasList,one,filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,has filter,TiddlerOne");
|
943
|
+
expect(wiki.filterTiddlers("[sortsub:number<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test,$:/ShadowPlugin");
|
944
|
+
expect(wiki.filterTiddlers("[!sortsub:number<sort2>]",anchorWidget).join(",")).toBe("$:/ShadowPlugin,filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,has filter,hasList,TiddlerOne,one");
|
945
|
+
expect(wiki.filterTiddlers("[sortsub:string<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,$:/ShadowPlugin,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test");
|
946
|
+
expect(wiki.filterTiddlers("[!sortsub:string<sort2>]",anchorWidget).join(",")).toBe("filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,$:/ShadowPlugin,has filter,hasList,TiddlerOne,one");
|
947
|
+
expect(wiki.filterTiddlers("[[TiddlerOne]] [[$:/TiddlerTwo]] [[Tiddler Three]] [[a fourth tiddler]] +[!sortsub:number<sort3>]",anchorWidget).join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler");
|
948
|
+
expect(wiki.filterTiddlers("a1 a10 a2 a3 b10 b3 b1 c9 c11 c1 +[sortsub:alphanumeric<sort4>]",anchorWidget).join(",")).toBe("a1,a2,a3,a10,b1,b3,b10,c1,c9,c11");
|
949
|
+
});
|
656
950
|
|
657
|
-
|
658
|
-
|
951
|
+
it("should handle the toggle operator", function() {
|
952
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] +[toggle[one]]").join(",")).toBe("two");
|
953
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] -[[one]] +[toggle[one]]").join(",")).toBe("two,one");
|
954
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] +[toggle[three],[four]]").join(",")).toBe("one,two,three");
|
955
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] [[three]] +[toggle[three],[four]]").join(",")).toBe("one,two,four");
|
956
|
+
expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] [[three]] [[four]] +[toggle[three],[five]]").join(",")).toBe("one,two,five,four");
|
957
|
+
});
|
958
|
+
|
959
|
+
it("should handle multiple operands for search-replace", function() {
|
960
|
+
var widget = require("$:/core/modules/widgets/widget.js");
|
961
|
+
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
962
|
+
{ wiki:wiki, document:$tw.document});
|
963
|
+
rootWidget.makeChildWidgets();
|
964
|
+
var anchorWidget = rootWidget.children[0];
|
965
|
+
rootWidget.setVariable("var1","different");
|
966
|
+
rootWidget.setVariable("myregexp1","e|o");
|
967
|
+
rootWidget.setVariable("myregexp2","^Unlike ");
|
968
|
+
rootWidget.setVariable("myregexp3","^(?!Unlike).*$");
|
969
|
+
rootWidget.setVariable("name","(\w+)\s(\w+)");
|
970
|
+
expect(wiki.filterTiddlers("[[Welcome to TiddlyWiki, a unique non-linear webpage.]search-replace[webpage],[notebook]]").join(",")).toBe("Welcome to TiddlyWiki, a unique non-linear notebook.");
|
971
|
+
expect(wiki.filterTiddlers("[[Welcome to TiddlyWiki, a unique non-linear notebook.]search-replace[unique],<var1>]",anchorWidget).join(",")).toBe("Welcome to TiddlyWiki, a different non-linear notebook.");
|
972
|
+
expect(wiki.filterTiddlers("[[Welcome to TiddlyWiki, a unique non-linear notebook.]search-replace[TiddlyWiki],{one}]",anchorWidget).join(",")).toBe("Welcome to This is the text of tiddler [[one]], a unique non-linear notebook.");
|
973
|
+
expect(wiki.filterTiddlers("[[Hello There]search-replace:g:regexp<myregexp1>,[]]",anchorWidget).join(",")).toBe("Hll Thr");
|
974
|
+
expect(wiki.filterTiddlers("[[Hello There]search-replace::regexp<myregexp1>,[]]",anchorWidget).join(",")).toBe("Hllo There");
|
975
|
+
expect(wiki.filterTiddlers("[[Hello There]search-replace:gi[H],[]]",anchorWidget).join(",")).toBe("ello Tere");
|
976
|
+
expect(wiki.filterTiddlers("[[Unlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data]search-replace:g:regexp<myregexp2>,[]]",anchorWidget).join(",")).toBe("conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data");
|
977
|
+
expect(wiki.filterTiddlers("[[Unlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data]search-replace:gm:regexp<myregexp2>,[]]",anchorWidget).join(",")).toBe("conventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data");
|
978
|
+
expect(wiki.filterTiddlers("[[Hello There\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nguaranteeing that in the decades to come you will still be able to use the notes you take today.]search-replace:gm:regexp<myregexp3>,[]]",anchorWidget).join(",")).toBe("\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\n");
|
979
|
+
expect(wiki.filterTiddlers("[[This is equation $$x$$ end.]search-replace[equation $$x$$ end.],[relation $$x$$ finish.]]").join(",")).toBe("This is relation $$x$$ finish.");
|
980
|
+
expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace:g:regexp[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TW is great,My TW is so fast.");
|
981
|
+
expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace::regexp[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TiddlyWiki is great,My TW is so fast.");
|
982
|
+
expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace:g[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TW is great,My TW is so fast.");
|
983
|
+
});
|
659
984
|
|
660
|
-
|
985
|
+
it("should handle the pad operator", function() {
|
986
|
+
expect(wiki.filterTiddlers("[[2]pad[]]").join(",")).toBe("2");
|
987
|
+
expect(wiki.filterTiddlers("[[2]pad[0]]").join(",")).toBe("2");
|
988
|
+
expect(wiki.filterTiddlers("[[2]pad[1]]").join(",")).toBe("2");
|
989
|
+
expect(wiki.filterTiddlers("2 20 +[pad[3]]").join(",")).toBe("002,020");
|
990
|
+
expect(wiki.filterTiddlers("[[2]pad[9]]").join(",")).toBe("000000002");
|
991
|
+
expect(wiki.filterTiddlers("[[2]pad[9],[a]]").join(",")).toBe("aaaaaaaa2");
|
992
|
+
expect(wiki.filterTiddlers("[[12]pad[9],[abc]]").join(",")).toBe("abcabca12");
|
993
|
+
expect(wiki.filterTiddlers("[[12]pad:suffix[9],[abc]]").join(",")).toBe("12abcabca");
|
994
|
+
});
|
995
|
+
|
996
|
+
it("should handle the escapecss operator", function() {
|
997
|
+
expect(wiki.filterTiddlers("[[Hello There]escapecss[]]").join(",")).toBe("Hello\\ There");
|
998
|
+
expect(wiki.filterTiddlers('\'"Reveal.js" by Devin Weaver[1]\' +[escapecss[]]').join(",")).toBe('\\"Reveal\\.js\\"\\ by\\ Devin\\ Weaver\\[1\\]');
|
999
|
+
expect(wiki.filterTiddlers(".foo#bar (){} '--a' 0 \0 +[escapecss[]]").join(",")).toBe("\\.foo\\#bar,\\(\\)\\{\\},--a,\\30 ,\ufffd");
|
1000
|
+
expect(wiki.filterTiddlers("'' +[escapecss[]]").join(",")).toBe("");
|
1001
|
+
expect(wiki.filterTiddlers("1234 +[escapecss[]]").join(",")).toBe("\\31 234");
|
1002
|
+
expect(wiki.filterTiddlers("'-25' +[escapecss[]]").join(",")).toBe("-\\32 5");
|
1003
|
+
expect(wiki.filterTiddlers("'-' +[escapecss[]]").join(",")).toBe("\\-");
|
1004
|
+
});
|
661
1005
|
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
expect(wiki.filterTiddlers("
|
670
|
-
|
671
|
-
expect(wiki.filterTiddlers("a b c +[putfirst:-0[]]").join(",")).toBe("a,b,c");
|
672
|
-
expect(wiki.filterTiddlers("a b c +[putfirst:-1[]]").join(",")).toBe("b,c,a");
|
673
|
-
expect(wiki.filterTiddlers("a b c +[putfirst:-2[]]").join(",")).toBe("c,a,b");
|
674
|
-
expect(wiki.filterTiddlers("a b c +[putfirst:-4[]]").join(",")).toBe("a,b,c");
|
675
|
-
});
|
676
|
-
|
677
|
-
it("should handle the putlast operator", function() {
|
678
|
-
expect(wiki.filterTiddlers("a b c +[putlast[d e]]").join(",")).toBe("b,c,a");
|
679
|
-
expect(wiki.filterTiddlers("a b c +[putlast[]]").join(",")).toBe("b,c,a");
|
680
|
-
expect(wiki.filterTiddlers("a b c +[putlast:1[]]").join(",")).toBe("b,c,a");
|
681
|
-
expect(wiki.filterTiddlers("a b c +[putlast:2[]]").join(",")).toBe("c,a,b");
|
682
|
-
expect(wiki.filterTiddlers("a b c +[putlast:3[]]").join(",")).toBe("a,b,c");
|
683
|
-
expect(wiki.filterTiddlers("a b c +[putlast:4[]]").join(",")).toBe("a,b,c");
|
684
|
-
expect(wiki.filterTiddlers("a b c +[putlast:-0[]]").join(",")).toBe("a,b,c");
|
685
|
-
expect(wiki.filterTiddlers("a b c +[putlast:0[]]").join(",")).toBe("a,b,c");
|
686
|
-
expect(wiki.filterTiddlers("a b c +[putlast:-1[]]").join(",")).toBe("c,a,b");
|
687
|
-
expect(wiki.filterTiddlers("a b c +[putlast:-2[]]").join(",")).toBe("b,c,a");
|
688
|
-
expect(wiki.filterTiddlers("a b c +[putlast:-4[]]").join(",")).toBe("a,b,c");
|
689
|
-
});
|
690
|
-
|
691
|
-
it("should handle the remove operator", function() {
|
692
|
-
expect(wiki.filterTiddlers("a b c +[remove[d e]]").join(",")).toBe("a,b,c");
|
693
|
-
expect(wiki.filterTiddlers("a b c +[remove[a]]").join(",")).toBe("b,c");
|
694
|
-
expect(wiki.filterTiddlers("a b c +[remove[c b a]]").join(",")).toBe("");
|
695
|
-
});
|
696
|
-
|
697
|
-
it("should handle the replace operator", function() {
|
698
|
-
expect(wiki.filterTiddlers("a b c dd +[replace[a]]").join(",")).toBe("dd,b,c");
|
699
|
-
expect(wiki.filterTiddlers("a b c dd ee +[replace:2[a]]").join(",")).toBe("dd,ee,b,c");
|
700
|
-
expect(wiki.filterTiddlers("a b c dd ee +[replace:5[c]]").join(",")).toBe("a,b,a,b,c,dd,ee");
|
1006
|
+
it("should handle the format operator", function() {
|
1007
|
+
expect(wiki.filterTiddlers("[[Hello There]] [[GettingStarted]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]] GettingStarted");
|
1008
|
+
expect(wiki.filterTiddlers("[title[Hello There]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]]");
|
1009
|
+
expect(wiki.filterTiddlers("[title[HelloThere]] +[format:titlelist[]]").join(" ")).toBe("HelloThere");
|
1010
|
+
});
|
1011
|
+
|
1012
|
+
it("should handle the deserializers operator", function() {
|
1013
|
+
expect(wiki.filterTiddlers("[deserializers[]]").join(",")).toBe("application/javascript,application/json,application/x-tiddler,application/x-tiddler-html-div,application/x-tiddlers,text/css,text/html,text/plain");
|
1014
|
+
});
|
701
1015
|
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
it("should handle the sortby operator", function() {
|
709
|
-
expect(wiki.filterTiddlers("a b c +[sortby[d e]]").join(",")).toBe("a,b,c");
|
710
|
-
expect(wiki.filterTiddlers("a b c +[sortby[b c a]]").join(",")).toBe("b,c,a");
|
711
|
-
expect(wiki.filterTiddlers("aa a b c +[sortby[b c a cc]]").join(",")).toBe("aa,b,c,a");
|
712
|
-
expect(wiki.filterTiddlers("a bb b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a");
|
713
|
-
expect(wiki.filterTiddlers("a bb cc b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a,cc");
|
714
|
-
|
715
|
-
expect(wiki.filterTiddlers("b a b c +[sortby[]]").join(",")).toBe("a,b,c");
|
716
|
-
expect(wiki.filterTiddlers("b a b c +[sortby[a b b c]]").join(",")).toBe("a,b,c");
|
717
|
-
expect(wiki.filterTiddlers("b a b c +[sortby[b a c b]]").join(",")).toBe("b,a,c");
|
718
|
-
});
|
719
|
-
|
720
|
-
it("should handle the sortan operator", function() {
|
721
|
-
expect(wiki.filterTiddlers("b a c +[sortan[]]").join(",")).toBe("a,b,c");
|
722
|
-
expect(wiki.filterTiddlers("b2 a3 a1 b1 c2 a2 c3 b3 c1 +[sortan[]]").join(",")).toBe("a1,a2,a3,b1,b2,b3,c1,c2,c3");
|
723
|
-
expect(wiki.filterTiddlers("b2 a10 c10 a1 b1 c2 a2 b10 c1 +[sortan[]]").join(",")).toBe("a1,a2,a10,b1,b2,b10,c1,c2,c10");
|
724
|
-
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
725
|
-
});
|
726
|
-
|
727
|
-
it("should handle the sortan operator sorting on date fields", function() {
|
728
|
-
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[modified]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne,Tiddler Three");
|
729
|
-
});
|
730
|
-
|
731
|
-
it("should handle the slugify operator", function() {
|
732
|
-
expect(wiki.filterTiddlers("[[Joe Bloggs]slugify[]]").join(",")).toBe("joe-bloggs");
|
733
|
-
expect(wiki.filterTiddlers("[[Joe Bloggs2]slugify[]]").join(",")).toBe("joe-bloggs2");
|
734
|
-
expect(wiki.filterTiddlers("[[@£$%^&*((]slugify[]]").join(",")).toBe("64-163-36-37-94-38-42-40-40");
|
735
|
-
expect(wiki.filterTiddlers("One one ONE O!N!E +[slugify[]]").join(",")).toBe("one,one,one,one");
|
736
|
-
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo +[slugify[]]").join(",")).toBe("tiddler-one,tiddler-two");
|
737
|
-
});
|
738
|
-
|
739
|
-
it("should handle the sortsub operator", function() {
|
740
|
-
var widget = require("$:/core/modules/widgets/widget.js");
|
741
|
-
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
742
|
-
{ wiki:wiki, document:$tw.document});
|
743
|
-
rootWidget.makeChildWidgets();
|
744
|
-
var anchorWidget = rootWidget.children[0];
|
745
|
-
rootWidget.setVariable("sort1","[length[]]");
|
746
|
-
rootWidget.setVariable("sort2","[get[text]else[]length[]]");
|
747
|
-
rootWidget.setVariable("sort3","[{!!value}divide{!!cost}]");
|
748
|
-
expect(wiki.filterTiddlers("[sortsub:number<sort1>]",anchorWidget).join(",")).toBe("one,hasList,TiddlerOne,has filter,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test");
|
749
|
-
expect(wiki.filterTiddlers("[!sortsub:number<sort1>]",anchorWidget).join(",")).toBe("filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,TiddlerOne,has filter,hasList,one");
|
750
|
-
expect(wiki.filterTiddlers("[sortsub:string<sort1>]",anchorWidget).join(",")).toBe("TiddlerOne,has filter,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test,one,hasList");
|
751
|
-
expect(wiki.filterTiddlers("[!sortsub:string<sort1>]",anchorWidget).join(",")).toBe("hasList,one,filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,TiddlerOne,has filter");
|
752
|
-
expect(wiki.filterTiddlers("[sortsub:number<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test,$:/ShadowPlugin");
|
753
|
-
expect(wiki.filterTiddlers("[!sortsub:number<sort2>]",anchorWidget).join(",")).toBe("$:/ShadowPlugin,filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,has filter,hasList,TiddlerOne,one");
|
754
|
-
expect(wiki.filterTiddlers("[sortsub:string<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,$:/ShadowPlugin,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test");
|
755
|
-
expect(wiki.filterTiddlers("[!sortsub:string<sort2>]",anchorWidget).join(",")).toBe("filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,$:/ShadowPlugin,has filter,hasList,TiddlerOne,one");
|
756
|
-
expect(wiki.filterTiddlers("[[TiddlerOne]] [[$:/TiddlerTwo]] [[Tiddler Three]] [[a fourth tiddler]] +[!sortsub:number<sort3>]",anchorWidget).join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler");
|
757
|
-
});
|
1016
|
+
it("should handle the charcode operator", function() {
|
1017
|
+
expect(wiki.filterTiddlers("[charcode[9]]").join(" ")).toBe(String.fromCharCode(9));
|
1018
|
+
expect(wiki.filterTiddlers("[charcode[9],[10]]").join(" ")).toBe(String.fromCharCode(9) + String.fromCharCode(10));
|
1019
|
+
expect(wiki.filterTiddlers("[charcode[]]").join(" ")).toBe("");
|
1020
|
+
});
|
758
1021
|
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
1022
|
+
it("should parse filter variable parameters", function(){
|
1023
|
+
expect($tw.utils.parseFilterVariable("currentTiddler")).toEqual(
|
1024
|
+
{ name: 'currentTiddler', params: [ ] }
|
1025
|
+
);
|
1026
|
+
expect($tw.utils.parseFilterVariable("now DDMM")).toEqual(
|
1027
|
+
{ name: 'now', params: [{ type: 'macro-parameter', start: 3, value: 'DDMM', end: 8 }] }
|
1028
|
+
);
|
1029
|
+
expect($tw.utils.parseFilterVariable("now DDMM UTC")).toEqual(
|
1030
|
+
{ name: 'now', params: [{ type: 'macro-parameter', start: 3, value: 'DDMM', end: 8 }, { type: 'macro-parameter', start: 8, value: 'UTC', end: 12 }] }
|
1031
|
+
);
|
1032
|
+
expect($tw.utils.parseFilterVariable("now format:DDMM")).toEqual(
|
1033
|
+
{ name: 'now', params: [{ type: 'macro-parameter', name:'format', start: 3, value: 'DDMM', end: 15 }] }
|
1034
|
+
);
|
1035
|
+
expect($tw.utils.parseFilterVariable("now format:'DDMM'")).toEqual(
|
1036
|
+
{ name: 'now', params: [{ type: 'macro-parameter', name:'format', start: 3, value: 'DDMM', end: 17 }] }
|
1037
|
+
);
|
1038
|
+
expect($tw.utils.parseFilterVariable("nowformat:'DDMM'")).toEqual(
|
1039
|
+
{ name: 'nowformat:\'DDMM\'', params: [] }
|
1040
|
+
);
|
1041
|
+
expect($tw.utils.parseFilterVariable("nowformat:'DD MM'")).toEqual(
|
1042
|
+
{ name: 'nowformat:', params: [{ type: 'macro-parameter', start: 10, value: 'DD MM', end: 17 }] }
|
1043
|
+
);
|
1044
|
+
expect($tw.utils.parseFilterVariable("now [UTC]YYYY0MM0DD0hh0mm0ssXXX")).toEqual(
|
1045
|
+
{ name: 'now', params: [{ type: 'macro-parameter', start: 3, value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 31 }] }
|
1046
|
+
);
|
1047
|
+
expect($tw.utils.parseFilterVariable("now '[UTC]YYYY0MM0DD0hh0mm0ssXXX'")).toEqual(
|
1048
|
+
{ name: 'now', params: [{ type: 'macro-parameter', start: 3, value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 33 }] }
|
1049
|
+
);
|
1050
|
+
expect($tw.utils.parseFilterVariable("now format:'[UTC]YYYY0MM0DD0hh0mm0ssXXX'")).toEqual(
|
1051
|
+
{ name: 'now', params: [{ type: 'macro-parameter', start: 3, name:'format', value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 40 }] }
|
1052
|
+
);
|
1053
|
+
expect($tw.utils.parseFilterVariable("")).toEqual(
|
1054
|
+
{ name: '', params: [] }
|
1055
|
+
);
|
1056
|
+
});
|
1057
|
+
|
1058
|
+
}
|
783
1059
|
|
784
|
-
it("should handle the pad operator", function() {
|
785
|
-
expect(wiki.filterTiddlers("[[2]pad[]]").join(",")).toBe("2");
|
786
|
-
expect(wiki.filterTiddlers("[[2]pad[0]]").join(",")).toBe("2");
|
787
|
-
expect(wiki.filterTiddlers("[[2]pad[1]]").join(",")).toBe("2");
|
788
|
-
expect(wiki.filterTiddlers("2 20 +[pad[3]]").join(",")).toBe("002,020");
|
789
|
-
expect(wiki.filterTiddlers("[[2]pad[9]]").join(",")).toBe("000000002");
|
790
|
-
expect(wiki.filterTiddlers("[[2]pad[9],[a]]").join(",")).toBe("aaaaaaaa2");
|
791
|
-
expect(wiki.filterTiddlers("[[12]pad[9],[abc]]").join(",")).toBe("abcabca12");
|
792
|
-
expect(wiki.filterTiddlers("[[12]pad:suffix[9],[abc]]").join(",")).toBe("12abcabca");
|
793
1060
|
});
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
})();
|
1061
|
+
|
1062
|
+
})();
|
1063
|
+
|