tiddlywiki 5.1.21 → 5.2.1

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.
Files changed (1970) hide show
  1. package/.eslintignore +15 -0
  2. package/.eslintrc.yml +267 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +43 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. package/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +22 -0
  6. package/.github/workflows/ci.yml +74 -0
  7. package/bin/build-site.sh +11 -2
  8. package/bin/{travis-pre-build.sh → ci-pre-build.sh} +0 -0
  9. package/bin/ci-push.sh +15 -0
  10. package/bin/optimise-svgs.js +79 -0
  11. package/bin/quick-bld.sh +1 -1
  12. package/bin/update-translation-from-html-file.sh +25 -0
  13. package/boot/boot.js +266 -93
  14. package/contributing.md +1 -1
  15. package/core/copyright.tid +1 -1
  16. package/core/images/add-comment.tid +1 -1
  17. package/core/images/advanced-search-button.tid +1 -8
  18. package/core/images/auto-height.tid +1 -3
  19. package/core/images/blank.tid +1 -1
  20. package/core/images/bold.tid +1 -5
  21. package/core/images/cancel-button.tid +1 -5
  22. package/core/images/chevron-down.tid +1 -6
  23. package/core/images/chevron-left.tid +1 -6
  24. package/core/images/chevron-right.tid +1 -6
  25. package/core/images/chevron-up.tid +1 -6
  26. package/core/images/clone-button.tid +1 -6
  27. package/core/images/close-all-button.tid +1 -8
  28. package/core/images/close-button.tid +1 -5
  29. package/core/images/close-others-button.tid +1 -5
  30. package/core/images/copy-clipboard.tid +1 -12
  31. package/core/images/delete-button.tid +1 -11
  32. package/core/images/done-button.tid +1 -5
  33. package/core/images/down-arrow.tid +1 -3
  34. package/core/images/download-button.tid +1 -1
  35. package/core/images/edit-button.tid +1 -6
  36. package/core/images/erase.tid +1 -5
  37. package/core/images/excise.tid +1 -5
  38. package/core/images/export-button.tid +1 -5
  39. package/core/images/file.tid +1 -11
  40. package/core/images/fixed-height.tid +1 -5
  41. package/core/images/fold-all-button.tid +1 -8
  42. package/core/images/fold-button.tid +1 -7
  43. package/core/images/fold-others-button.tid +1 -7
  44. package/core/images/folder.tid +1 -6
  45. package/core/images/full-screen-button.tid +1 -16
  46. package/core/images/github.tid +1 -5
  47. package/core/images/gitter.tid +1 -6
  48. package/core/images/globe.tid +1 -7
  49. package/core/images/heading-1.tid +1 -5
  50. package/core/images/heading-2.tid +1 -5
  51. package/core/images/heading-3.tid +1 -5
  52. package/core/images/heading-4.tid +1 -5
  53. package/core/images/heading-5.tid +1 -5
  54. package/core/images/heading-6.tid +1 -5
  55. package/core/images/help.tid +1 -5
  56. package/core/images/home-button.tid +1 -5
  57. package/core/images/import-button.tid +1 -5
  58. package/core/images/info-button.tid +1 -9
  59. package/core/images/italic.tid +1 -5
  60. package/core/images/left-arrow.tid +1 -3
  61. package/core/images/line-width.tid +1 -6
  62. package/core/images/link.tid +1 -6
  63. package/core/images/linkify.tid +1 -1
  64. package/core/images/list-bullet.tid +1 -5
  65. package/core/images/list-number.tid +1 -5
  66. package/core/images/list.tid +1 -6
  67. package/core/images/locked-padlock.tid +1 -5
  68. package/core/images/mail.tid +1 -5
  69. package/core/images/menu-button.tid +1 -5
  70. package/core/images/minus-button.tid +4 -0
  71. package/core/images/mono-block.tid +1 -5
  72. package/core/images/mono-line.tid +1 -5
  73. package/core/images/new-button.tid +1 -5
  74. package/core/images/new-here-button.tid +1 -11
  75. package/core/images/new-image-button.tid +1 -5
  76. package/core/images/new-journal-button.tid +1 -13
  77. package/core/images/opacity.tid +1 -7
  78. package/core/images/open-window.tid +1 -6
  79. package/core/images/options-button.tid +1 -5
  80. package/core/images/paint.tid +1 -5
  81. package/core/images/palette.tid +1 -5
  82. package/core/images/permalink-button.tid +1 -5
  83. package/core/images/permaview-button.tid +1 -5
  84. package/core/images/picture.tid +1 -5
  85. package/core/images/plugin-generic-language.tid +1 -5
  86. package/core/images/plugin-generic-plugin.tid +1 -5
  87. package/core/images/plugin-generic-theme.tid +1 -5
  88. package/core/images/plus-button.tid +4 -0
  89. package/core/images/preview-closed.tid +1 -12
  90. package/core/images/preview-open.tid +1 -6
  91. package/core/images/print-button.tid +1 -9
  92. package/core/images/quote.tid +1 -5
  93. package/core/images/refresh-button.tid +1 -5
  94. package/core/images/right-arrow.tid +1 -3
  95. package/core/images/rotate-left.tid +1 -1
  96. package/core/images/save-button.tid +1 -5
  97. package/core/images/size.tid +1 -3
  98. package/core/images/spiral.tid +1 -5
  99. package/core/images/stamp.tid +1 -5
  100. package/core/images/star-filled.tid +1 -5
  101. package/core/images/storyview-classic.tid +1 -5
  102. package/core/images/storyview-pop.tid +1 -5
  103. package/core/images/storyview-zoomin.tid +1 -5
  104. package/core/images/strikethrough.tid +1 -6
  105. package/core/images/subscript.tid +1 -5
  106. package/core/images/superscript.tid +1 -5
  107. package/core/images/tag-button.tid +1 -6
  108. package/core/images/theme-button.tid +1 -6
  109. package/core/images/timestamp-off.tid +1 -5
  110. package/core/images/timestamp-on.tid +1 -5
  111. package/core/images/tip.tid +1 -5
  112. package/core/images/transcludify.tid +1 -1
  113. package/core/images/twitter.tid +1 -5
  114. package/core/images/underline.tid +1 -5
  115. package/core/images/unfold-all-button.tid +1 -8
  116. package/core/images/unfold-button.tid +1 -7
  117. package/core/images/unlocked-padlock.tid +1 -5
  118. package/core/images/up-arrow.tid +1 -4
  119. package/core/images/video.tid +1 -5
  120. package/core/images/warning.tid +1 -5
  121. package/core/language/en-GB/ControlPanel.multids +45 -13
  122. package/core/language/en-GB/Docs/ModuleTypes.multids +1 -0
  123. package/core/language/en-GB/Docs/PaletteColours.multids +2 -0
  124. package/core/language/en-GB/EditTemplate.multids +6 -0
  125. package/core/language/en-GB/Fields.multids +2 -1
  126. package/core/language/en-GB/Help/listen.tid +3 -2
  127. package/core/language/en-GB/Help/render.tid +5 -4
  128. package/core/language/en-GB/Help/rendertiddlers.tid +2 -2
  129. package/core/language/en-GB/Help/save.tid +1 -1
  130. package/core/language/en-GB/Import.multids +19 -8
  131. package/core/language/en-GB/Misc.multids +25 -3
  132. package/core/language/en-GB/NewJournal.multids +0 -1
  133. package/core/language/en-GB/NewJournalTags.tid +3 -0
  134. package/core/language/en-GB/TiddlerInfo.multids +1 -1
  135. package/core/modules/commander.js +1 -1
  136. package/core/modules/commands/fetch.js +2 -2
  137. package/core/modules/commands/makelibrary.js +6 -6
  138. package/core/modules/commands/render.js +55 -54
  139. package/core/modules/commands/rendertiddlers.js +1 -1
  140. package/core/modules/commands/savelibrarytiddlers.js +11 -3
  141. package/core/modules/commands/savewikifolder.js +17 -3
  142. package/core/modules/config.js +1 -1
  143. package/core/modules/deserializers.js +95 -79
  144. package/core/modules/editor/engines/framed.js +40 -9
  145. package/core/modules/editor/engines/simple.js +24 -2
  146. package/core/modules/editor/factory.js +92 -19
  147. package/core/modules/editor/operations/text/focus-editor.js +17 -0
  148. package/core/modules/editor/operations/text/insert-text.js +23 -0
  149. package/core/modules/editor/operations/text/prefix-lines.js +3 -2
  150. package/core/modules/filterrunprefixes/all.js +25 -0
  151. package/core/modules/filterrunprefixes/and.js +28 -0
  152. package/core/modules/filterrunprefixes/cascade.js +53 -0
  153. package/core/modules/filterrunprefixes/else.js +27 -0
  154. package/core/modules/filterrunprefixes/except.js +25 -0
  155. package/core/modules/filterrunprefixes/filter.js +49 -0
  156. package/core/modules/filterrunprefixes/intersection.js +31 -0
  157. package/core/modules/filterrunprefixes/map.js +46 -0
  158. package/core/modules/filterrunprefixes/or.js +24 -0
  159. package/core/modules/filterrunprefixes/reduce.js +50 -0
  160. package/core/modules/filterrunprefixes/sort.js +62 -0
  161. package/core/modules/filters/all.js +3 -3
  162. package/core/modules/filters/backlinks.js +3 -3
  163. package/core/modules/filters/compare.js +40 -0
  164. package/core/modules/filters/contains.js +1 -1
  165. package/core/modules/filters/deserializers.js +27 -0
  166. package/core/modules/filters/duplicateslugs.js +36 -0
  167. package/core/modules/filters/editiondescription.js +10 -8
  168. package/core/modules/filters/editions.js +9 -7
  169. package/core/modules/filters/encodings.js +5 -15
  170. package/core/modules/filters/field.js +1 -1
  171. package/core/modules/filters/fields.js +20 -5
  172. package/core/modules/filters/filter.js +42 -0
  173. package/core/modules/filters/format/date.js +26 -0
  174. package/core/modules/filters/format/relativedate.js +26 -0
  175. package/core/modules/filters/format/titlelist.js +25 -0
  176. package/core/modules/filters/format.js +46 -0
  177. package/core/modules/filters/has.js +21 -5
  178. package/core/modules/filters/is/binary.js +36 -0
  179. package/core/modules/filters/is/draft.js +36 -0
  180. package/core/modules/filters/links.js +3 -3
  181. package/core/modules/filters/listops.js +12 -0
  182. package/core/modules/filters/lookup.js +1 -1
  183. package/core/modules/filters/math.js +117 -16
  184. package/core/modules/filters/moduleproperty.js +30 -0
  185. package/core/modules/filters/modules.js +16 -4
  186. package/core/modules/filters/range.js +7 -3
  187. package/core/modules/filters/reduce.js +60 -0
  188. package/core/modules/filters/regexp.js +1 -1
  189. package/core/modules/filters/slugify.js +23 -0
  190. package/core/modules/filters/sortsub.js +60 -0
  191. package/core/modules/filters/strings.js +101 -7
  192. package/core/modules/filters/tag.js +1 -1
  193. package/core/modules/filters/untagged.js +7 -14
  194. package/core/modules/filters/x-listops.js +224 -179
  195. package/core/modules/filters.js +115 -68
  196. package/core/modules/indexers/backlinks-index.js +86 -0
  197. package/core/modules/indexers/field-indexer.js +1 -1
  198. package/core/modules/indexers/tag-indexer.js +2 -2
  199. package/core/modules/info/platform.js +10 -2
  200. package/core/modules/keyboard.js +27 -5
  201. package/core/modules/macros/jsontiddlers.js +4 -3
  202. package/core/modules/macros/makedatauri.js +4 -3
  203. package/core/modules/macros/{uniquetitle.js → unusedtitle.js} +8 -7
  204. package/core/modules/parsers/audioparser.js +2 -1
  205. package/core/modules/parsers/binaryparser.js +49 -6
  206. package/core/modules/parsers/htmlparser.js +4 -2
  207. package/core/modules/parsers/imageparser.js +1 -0
  208. package/core/modules/parsers/parseutils.js +39 -9
  209. package/core/modules/parsers/videoparser.js +4 -2
  210. package/core/modules/parsers/wikiparser/rules/commentblock.js +8 -2
  211. package/core/modules/parsers/wikiparser/rules/commentinline.js +1 -1
  212. package/core/modules/parsers/wikiparser/rules/html.js +7 -10
  213. package/core/modules/parsers/wikiparser/rules/import.js +1 -1
  214. package/core/modules/parsers/wikiparser/rules/list.js +1 -1
  215. package/core/modules/parsers/wikiparser/rules/macrocallblock.js +24 -28
  216. package/core/modules/parsers/wikiparser/rules/macrocallinline.js +17 -27
  217. package/core/modules/parsers/wikiparser/rules/table.js +1 -1
  218. package/core/modules/parsers/wikiparser/wikiparser.js +52 -33
  219. package/core/modules/pluginswitcher.js +2 -0
  220. package/core/modules/saver-handler.js +7 -2
  221. package/core/modules/savers/andtidwiki.js +44 -18
  222. package/core/modules/savers/custom.js +60 -0
  223. package/core/modules/savers/download.js +1 -1
  224. package/core/modules/savers/gitea.js +136 -0
  225. package/core/modules/savers/github.js +6 -5
  226. package/core/modules/savers/gitlab.js +4 -7
  227. package/core/modules/savers/hyperdrive.js +64 -0
  228. package/core/modules/savers/put.js +6 -3
  229. package/core/modules/savers/tiddlyfox.js +1 -1
  230. package/core/modules/savers/twedit.js +1 -1
  231. package/core/modules/savers/upload.js +15 -3
  232. package/core/modules/server/authenticators/basic.js +1 -1
  233. package/core/modules/server/authenticators/header.js +1 -1
  234. package/core/modules/server/routes/delete-tiddler.js +1 -1
  235. package/core/modules/server/routes/get-favicon.js +1 -2
  236. package/core/modules/server/routes/get-file.js +19 -21
  237. package/core/modules/server/routes/get-index.js +1 -23
  238. package/core/modules/server/routes/get-login-basic.js +3 -2
  239. package/core/modules/server/routes/get-status.js +1 -2
  240. package/core/modules/server/routes/get-tiddler-html.js +3 -3
  241. package/core/modules/server/routes/get-tiddler.js +3 -3
  242. package/core/modules/server/routes/get-tiddlers-json.js +26 -13
  243. package/core/modules/server/routes/put-tiddler.js +2 -2
  244. package/core/modules/server/server.js +99 -17
  245. package/core/modules/startup/favicon.js +2 -2
  246. package/core/modules/startup/info.js +28 -18
  247. package/core/modules/startup/load-modules.js +3 -0
  248. package/core/modules/startup/plugins.js +84 -0
  249. package/core/modules/startup/render.js +11 -9
  250. package/core/modules/startup/rootwidget.js +7 -3
  251. package/core/modules/startup/startup.js +4 -10
  252. package/core/modules/startup/story.js +12 -7
  253. package/core/modules/startup/windows.js +5 -8
  254. package/core/modules/storyviews/classic.js +5 -5
  255. package/core/modules/storyviews/pop.js +3 -3
  256. package/core/modules/storyviews/zoomin.js +3 -3
  257. package/core/modules/syncer.js +384 -261
  258. package/core/modules/upgraders/plugins.js +20 -17
  259. package/core/modules/upgraders/system.js +5 -6
  260. package/core/modules/utils/base64-utf8/base64-utf8.module.js +29 -11
  261. package/core/modules/utils/base64-utf8/base64-utf8.module.min.js +1 -1
  262. package/core/modules/utils/csv.js +1 -1
  263. package/core/modules/utils/dom/dom.js +11 -7
  264. package/core/modules/utils/dom/dragndrop.js +26 -5
  265. package/core/modules/utils/dom/http.js +37 -5
  266. package/core/modules/utils/dom/modal.js +42 -6
  267. package/core/modules/utils/dom/popup.js +9 -34
  268. package/core/modules/utils/dom/scroller.js +15 -2
  269. package/core/modules/{startup/css-escape-polyfill.js → utils/escapecss.js} +17 -27
  270. package/core/modules/utils/fakedom.js +23 -3
  271. package/core/modules/utils/filesystem.js +225 -30
  272. package/core/modules/utils/linked-list.js +204 -0
  273. package/core/modules/utils/logger.js +48 -4
  274. package/core/modules/utils/performance.js +1 -1
  275. package/core/modules/utils/transliterate.js +8 -1
  276. package/core/modules/utils/utils.js +218 -19
  277. package/core/modules/widgets/action-confirm.js +78 -0
  278. package/core/modules/widgets/action-createtiddler.js +32 -4
  279. package/core/modules/widgets/action-deletefield.js +1 -1
  280. package/core/modules/widgets/action-listops.js +6 -11
  281. package/core/modules/widgets/action-log.js +93 -0
  282. package/core/modules/widgets/action-navigate.js +12 -1
  283. package/core/modules/widgets/action-popup.js +83 -0
  284. package/core/modules/widgets/action-sendmessage.js +17 -7
  285. package/core/modules/widgets/action-setmultiplefields.js +86 -0
  286. package/core/modules/widgets/browse.js +4 -0
  287. package/core/modules/widgets/button.js +41 -6
  288. package/core/modules/widgets/checkbox.js +5 -1
  289. package/core/modules/widgets/codeblock.js +7 -1
  290. package/core/modules/widgets/count.js +1 -1
  291. package/core/modules/widgets/draggable.js +3 -1
  292. package/core/modules/widgets/droppable.js +32 -18
  293. package/core/modules/widgets/dropzone.js +139 -31
  294. package/core/modules/widgets/edit-binary.js +48 -5
  295. package/core/modules/widgets/edit-bitmap.js +6 -6
  296. package/core/modules/widgets/edit-shortcut.js +3 -3
  297. package/core/modules/widgets/edit.js +7 -9
  298. package/core/modules/widgets/element.js +28 -21
  299. package/core/modules/widgets/entity.js +2 -1
  300. package/core/modules/widgets/eventcatcher.js +181 -0
  301. package/core/modules/widgets/fieldmangler.js +16 -30
  302. package/core/modules/widgets/fields.js +40 -29
  303. package/core/modules/widgets/image.js +5 -5
  304. package/core/modules/widgets/importvariables.js +38 -26
  305. package/core/modules/widgets/jsontiddler.js +91 -0
  306. package/core/modules/widgets/keyboard.js +39 -18
  307. package/core/modules/widgets/let.js +96 -0
  308. package/core/modules/widgets/link.js +15 -5
  309. package/core/modules/widgets/linkcatcher.js +6 -5
  310. package/core/modules/widgets/list.js +70 -28
  311. package/core/modules/widgets/log.js +30 -0
  312. package/core/modules/widgets/macrocall.js +16 -4
  313. package/core/modules/widgets/messagecatcher.js +110 -0
  314. package/core/modules/widgets/navigator.js +71 -40
  315. package/core/modules/widgets/radio.js +26 -14
  316. package/core/modules/widgets/range.js +94 -12
  317. package/core/modules/widgets/raw.js +1 -1
  318. package/core/modules/widgets/reveal.js +26 -4
  319. package/core/modules/widgets/scrollable.js +37 -24
  320. package/core/modules/widgets/select.js +2 -5
  321. package/core/modules/widgets/setmultiplevariables.js +81 -0
  322. package/core/modules/widgets/setvariable.js +2 -2
  323. package/core/modules/widgets/text.js +1 -1
  324. package/core/modules/widgets/tiddler.js +1 -1
  325. package/core/modules/widgets/transclude.js +13 -3
  326. package/core/modules/widgets/vars.js +3 -5
  327. package/core/modules/widgets/view.js +10 -3
  328. package/core/modules/widgets/widget.js +75 -23
  329. package/core/modules/widgets/wikify.js +1 -1
  330. package/core/modules/wiki.js +313 -123
  331. package/core/palettes/Blanca.tid +1 -0
  332. package/core/palettes/Blue.tid +1 -0
  333. package/core/palettes/BrightMute.tid +1 -0
  334. package/core/palettes/ContrastDark.tid +1 -0
  335. package/core/palettes/ContrastLight.tid +1 -0
  336. package/core/palettes/CupertinoDark.tid +130 -0
  337. package/core/palettes/DarkPhotos.tid +1 -0
  338. package/core/palettes/DesertSand.tid +139 -0
  339. package/core/palettes/GruvBoxDark.tid +139 -0
  340. package/core/palettes/Nord.tid +21 -7
  341. package/core/palettes/Rocker.tid +1 -0
  342. package/core/palettes/SolarFlare.tid +1 -0
  343. package/core/palettes/SolarizedDark.tid +113 -0
  344. package/core/palettes/SolarizedLight.tid +88 -95
  345. package/core/palettes/SpartanDay.tid +1 -0
  346. package/core/palettes/SpartanNight.tid +1 -0
  347. package/core/palettes/Twilight.tid +1 -0
  348. package/core/palettes/Vanilla.tid +20 -0
  349. package/core/plugin.info +1 -0
  350. package/core/templates/exporters/CsvFile.tid +1 -4
  351. package/core/templates/exporters/JsonFile.tid +1 -4
  352. package/core/templates/exporters/StaticRiver.tid +1 -1
  353. package/core/templates/exporters/TidFile.tid +1 -0
  354. package/core/templates/external-js/save-all-external-js.tid +3 -1
  355. package/core/templates/external-js/save-offline-external-js.tid +8 -0
  356. package/core/templates/external-js/tiddlywiki.js.tiddlers.tid +1 -1
  357. package/core/templates/external-js/tiddlywiki5-external-js.html.tid +3 -2
  358. package/core/templates/html-div-skinny-tiddler.tid +9 -0
  359. package/core/templates/html-div-tiddler.tid +1 -1
  360. package/core/templates/html-json-skinny-tiddler.tid +4 -0
  361. package/core/templates/html-json-tiddler.tid +3 -0
  362. package/core/templates/save-all.tid +2 -1
  363. package/core/templates/save-lazy-all.tid +3 -0
  364. package/core/templates/save-lazy-images.tid +3 -0
  365. package/core/templates/single.tiddler.window.tid +17 -22
  366. package/core/templates/static.area.tid +4 -0
  367. package/core/templates/static.tiddler.html.tid +2 -2
  368. package/core/templates/store.area.template.html.tid +35 -11
  369. package/core/templates/tiddlywiki5.html.tid +1 -1
  370. package/core/ui/Actions/new-image.tid +3 -2
  371. package/core/ui/Actions/new-journal.tid +4 -3
  372. package/core/ui/Actions/new-tiddler.tid +4 -1
  373. package/core/ui/AdvancedSearch/Filter.tid +22 -2
  374. package/core/ui/AdvancedSearch/FilterButtons/clear.tid +2 -1
  375. package/core/ui/AdvancedSearch/FilterButtons/dropdown.tid +1 -1
  376. package/core/ui/AdvancedSearch/Shadows.tid +25 -7
  377. package/core/ui/AdvancedSearch/Standard.tid +27 -8
  378. package/core/ui/AdvancedSearch/System.tid +24 -7
  379. package/core/ui/AdvancedSearch.tid +1 -1
  380. package/core/ui/AlertTemplate.tid +4 -2
  381. package/core/ui/BinaryWarning.tid +0 -4
  382. package/core/ui/Components/plugin-info.tid +60 -58
  383. package/core/ui/Components/tag-link.tid +1 -1
  384. package/core/ui/ControlPanel/Advanced.tid +1 -1
  385. package/core/ui/ControlPanel/Appearance.tid +1 -1
  386. package/core/ui/ControlPanel/Basics.tid +6 -1
  387. package/core/ui/ControlPanel/Cascades/EditTemplateBody.tid +9 -0
  388. package/core/ui/ControlPanel/Cascades/StoryTiddler.tid +9 -0
  389. package/core/ui/ControlPanel/Cascades/TiddlerColour.tid +9 -0
  390. package/core/ui/ControlPanel/Cascades/TiddlerIcon.tid +9 -0
  391. package/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid +9 -0
  392. package/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid +9 -0
  393. package/core/ui/ControlPanel/Cascades.tid +9 -0
  394. package/core/ui/ControlPanel/Info.tid +1 -1
  395. package/core/ui/ControlPanel/KeyboardShortcuts.tid +2 -2
  396. package/core/ui/ControlPanel/Modals/AddPlugins.tid +102 -26
  397. package/core/ui/ControlPanel/Plugins/Add/Updates.tid +36 -0
  398. package/core/ui/ControlPanel/Plugins/Installed/Languages.tid +1 -0
  399. package/core/ui/ControlPanel/Plugins/Installed/Plugins.tid +1 -0
  400. package/core/ui/ControlPanel/Plugins/Installed/Themes.tid +1 -0
  401. package/core/ui/ControlPanel/Plugins.tid +2 -2
  402. package/core/ui/ControlPanel/Saving/GitHub.tid +1 -1
  403. package/core/ui/ControlPanel/Saving/TiddlySpot.tid +11 -6
  404. package/core/ui/ControlPanel/Saving/gitea.tid +16 -0
  405. package/core/ui/ControlPanel/Saving.tid +1 -1
  406. package/core/ui/ControlPanel/Toolbars.tid +1 -1
  407. package/core/ui/ControlPanel.tid +1 -1
  408. package/core/ui/DefaultSearchResultList.tid +16 -2
  409. package/core/ui/EditTemplate/Preview/diffs-current.tid +1 -1
  410. package/core/ui/EditTemplate/Preview/diffs-shadow.tid +1 -1
  411. package/core/ui/EditTemplate/Preview/output.tid +1 -0
  412. package/core/ui/EditTemplate/body/canonical-uri.tid +13 -0
  413. package/core/ui/EditTemplate/body/default.tid +38 -0
  414. package/core/ui/EditTemplate/body-editor.tid +13 -2
  415. package/core/ui/EditTemplate/body-toolbar-button.tid +8 -6
  416. package/core/ui/EditTemplate/body.tid +1 -47
  417. package/core/ui/EditTemplate/fields.tid +63 -20
  418. package/core/ui/EditTemplate/tags.tid +17 -21
  419. package/core/ui/EditTemplate/title.tid +2 -2
  420. package/core/ui/EditTemplate/type.tid +14 -2
  421. package/core/ui/EditTemplate.tid +13 -13
  422. package/core/ui/EditToolbar/cancel.tid +3 -2
  423. package/core/ui/EditToolbar/delete.tid +3 -2
  424. package/core/ui/EditToolbar/save.tid +5 -6
  425. package/core/ui/EditorToolbar/clear.tid +1 -1
  426. package/core/ui/EditorToolbar/editor-height.tid +1 -1
  427. package/core/ui/EditorToolbar/file-import.tid +41 -0
  428. package/core/ui/EditorToolbar/line-width.tid +2 -2
  429. package/core/ui/EditorToolbar/link-dropdown.tid +29 -11
  430. package/core/ui/EditorToolbar/opacity.tid +1 -1
  431. package/core/ui/EditorToolbar/paint.tid +1 -1
  432. package/core/ui/EditorToolbar/preview.tid +4 -4
  433. package/core/ui/EditorToolbar/rotate-left.tid +1 -1
  434. package/core/ui/EditorToolbar/size.tid +1 -1
  435. package/core/ui/EditorToolbar/stamp-dropdown-item-template.tid +53 -0
  436. package/core/ui/EditorToolbar/stamp-dropdown.tid +1 -43
  437. package/core/ui/EditorToolbar/stamp.tid +2 -1
  438. package/core/ui/ExportTiddlyWikiCore.tid +22 -0
  439. package/core/ui/ImportListing.tid +61 -18
  440. package/core/ui/KeyboardShortcuts/advanced-search.tid +1 -1
  441. package/core/ui/KeyboardShortcuts/change-sidebar-layout.tid +8 -0
  442. package/core/ui/KeyboardShortcuts/save-wiki.tid +7 -0
  443. package/core/ui/KeyboardShortcuts/switcher.tid +5 -0
  444. package/core/ui/KeyboardShortcuts/toggle-sidebar.tid +1 -1
  445. package/core/ui/LayoutSwitcher.tid +17 -0
  446. package/core/ui/ListItemTemplate.tid +1 -3
  447. package/core/ui/ListTaggedCascade.tid +14 -0
  448. package/core/ui/Manager/ItemSidebarTags.tid +4 -6
  449. package/core/ui/MoreSideBar/Plugins.tid +1 -1
  450. package/core/ui/PageControls/advanced-search.tid +5 -3
  451. package/core/ui/PageControls/closeall.tid +4 -1
  452. package/core/ui/PageControls/controlpanel.tid +2 -0
  453. package/core/ui/PageControls/encryption.tid +8 -3
  454. package/core/ui/PageControls/export-tiddlywikicore.tid +22 -0
  455. package/core/ui/PageControls/fold-all.tid +4 -1
  456. package/core/ui/PageControls/full-screen.tid +4 -1
  457. package/core/ui/PageControls/home.tid +4 -1
  458. package/core/ui/PageControls/import.tid +4 -1
  459. package/core/ui/PageControls/language.tid +2 -1
  460. package/core/ui/PageControls/manager.tid +5 -1
  461. package/core/ui/PageControls/more-page-actions.tid +4 -1
  462. package/core/ui/PageControls/new-image.tid +4 -1
  463. package/core/ui/PageControls/new-journal.tid +5 -1
  464. package/core/ui/PageControls/newtiddler.tid +4 -1
  465. package/core/ui/PageControls/palette.tid +2 -1
  466. package/core/ui/PageControls/print.tid +4 -1
  467. package/core/ui/PageControls/refresh.tid +4 -1
  468. package/core/ui/PageControls/savewiki.tid +4 -1
  469. package/core/ui/PageControls/storyview.tid +2 -1
  470. package/core/ui/PageControls/tag-button.tid +5 -1
  471. package/core/ui/PageControls/theme.tid +2 -1
  472. package/core/ui/PageControls/timestamp.tid +8 -3
  473. package/core/ui/PageControls/unfold-all.tid +4 -1
  474. package/core/ui/PageControls.tid +1 -1
  475. package/core/ui/PageTemplate/pluginreloadwarning.tid +1 -1
  476. package/core/ui/PageTemplate/story.tid +1 -1
  477. package/core/ui/PageTemplate.tid +12 -23
  478. package/core/ui/PaletteManager.tid +4 -4
  479. package/core/ui/PluginInfoDefaultContents.tid +1 -3
  480. package/core/ui/PluginListItemTemplate.tid +12 -6
  481. package/core/ui/RootTemplate.tid +4 -0
  482. package/core/ui/SearchResults.tid +1 -1
  483. package/core/ui/SideBar/More.tid +2 -2
  484. package/core/ui/SideBar/Open.tid +2 -2
  485. package/core/ui/SideBarSegments/search.tid +64 -25
  486. package/core/ui/SideBarSegments/tabs.tid +1 -1
  487. package/core/ui/StoryTiddlerTemplate.tid +3 -0
  488. package/core/ui/SwitcherModal.tid +11 -0
  489. package/core/ui/TagManager.tid +5 -0
  490. package/core/ui/TagPickerTagTemplate.tid +23 -0
  491. package/core/ui/TagTemplate.tid +2 -2
  492. package/core/ui/TiddlerIcon.tid +8 -0
  493. package/core/ui/TiddlerInfo/Advanced.tid +1 -1
  494. package/core/ui/TiddlerInfo.tid +1 -1
  495. package/core/ui/TopRightBar/menu.tid +6 -6
  496. package/core/ui/ViewTemplate/body/blank.tid +3 -0
  497. package/core/ui/ViewTemplate/body/code.tid +3 -0
  498. package/core/ui/ViewTemplate/body/default.tid +7 -0
  499. package/core/ui/ViewTemplate/{import.tid → body/import.tid} +9 -3
  500. package/core/ui/ViewTemplate/body/plugin.tid +10 -0
  501. package/core/ui/ViewTemplate/body.tid +1 -9
  502. package/core/ui/ViewTemplate/subtitle.tid +3 -3
  503. package/core/ui/ViewTemplate/title/default.tid +6 -0
  504. package/core/ui/ViewTemplate/title/system.tid +6 -0
  505. package/core/ui/ViewTemplate/title.tid +7 -18
  506. package/core/ui/ViewTemplate.tid +8 -1
  507. package/core/ui/ViewToolbar/clone.tid +0 -1
  508. package/core/ui/ViewToolbar/close-others.tid +0 -1
  509. package/core/ui/ViewToolbar/edit.tid +0 -1
  510. package/core/ui/ViewToolbar/fold-others.tid +0 -1
  511. package/core/ui/ViewToolbar/fold.tid +0 -2
  512. package/core/ui/ViewToolbar/info.tid +1 -0
  513. package/core/ui/ViewToolbar/more-tiddler-actions.tid +0 -1
  514. package/core/ui/ViewToolbar/new-here.tid +3 -2
  515. package/core/ui/ViewToolbar/new-journal-here.tid +2 -1
  516. package/core/ui/ViewToolbar/open-window.tid +0 -1
  517. package/core/ui/ViewToolbar/permalink.tid +0 -1
  518. package/core/ui/ViewToolbar/permaview.tid +0 -1
  519. package/core/wiki/config/AutoFocus.tid +2 -0
  520. package/core/wiki/config/EditModeFieldnameFilter.tid +3 -0
  521. package/core/wiki/config/EditTabIndex.tid +2 -0
  522. package/core/wiki/config/EditTemplateBodyFilters.multids +5 -0
  523. package/core/wiki/config/EditorEnableImportFilter.tid +4 -0
  524. package/core/wiki/config/EditorImportContentTypesFilter.tid +4 -0
  525. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  526. package/core/wiki/config/RegisterPluginTypes.multids +7 -0
  527. package/core/wiki/config/SaverFilter.tid +1 -1
  528. package/core/wiki/config/ServerExternalFiltersDefault.tid +2 -0
  529. package/core/wiki/config/ShortcutInfo.multids +15 -0
  530. package/core/wiki/config/StoryTiddlerTemplateFilters.multids +5 -0
  531. package/core/wiki/config/SwitcherTargets.multids +6 -0
  532. package/core/wiki/config/SyncFilter.tid +1 -1
  533. package/core/wiki/config/SyncSystemTiddlersFromServer.tid +3 -0
  534. package/core/wiki/config/TiddlerColourFilters.multids +5 -0
  535. package/core/wiki/config/TiddlerIconFilters.multids +5 -0
  536. package/core/wiki/config/ViewTemplateBodyFilters.multids +8 -0
  537. package/core/wiki/config/ViewTemplateTitleFilters.multids +5 -0
  538. package/core/wiki/config/shortcuts/shortcuts-mac.multids +1 -0
  539. package/core/wiki/config/shortcuts/shortcuts.multids +13 -0
  540. package/core/wiki/currpalettepreview.tid +32 -3
  541. package/core/wiki/debugstylesheets.tid +9 -0
  542. package/core/wiki/macros/CSS.tid +2 -2
  543. package/core/wiki/macros/colour-picker.tid +2 -2
  544. package/core/wiki/macros/export.tid +10 -6
  545. package/core/wiki/macros/keyboard-driven-input.tid +88 -0
  546. package/core/wiki/macros/list.tid +8 -8
  547. package/core/wiki/macros/tabs.tid +8 -4
  548. package/core/wiki/macros/tag-picker.tid +75 -26
  549. package/core/wiki/macros/tag.tid +5 -3
  550. package/core/wiki/macros/timeline.tid +2 -3
  551. package/core/wiki/macros/toc.tid +5 -5
  552. package/core/wiki/minifocusswitcher.tid +7 -0
  553. package/core/wiki/peek-stylesheets.tid +3 -0
  554. package/core/wiki/tags/ControlPanelPlugins.tid +1 -1
  555. package/core/wiki/tags/EditTemplateBodyFilter.tid +2 -0
  556. package/core/wiki/tags/PluginLibrary.tid +2 -0
  557. package/core/wiki/tags/StoryTiddlerTemplateFilter.tid +2 -0
  558. package/core/wiki/tags/TiddlerColourFilter.tid +3 -0
  559. package/core/wiki/tags/TiddlerIconFilter.tid +3 -0
  560. package/core/wiki/tags/ViewTemplateBodyFilter.tid +3 -0
  561. package/core/wiki/tags/ViewTemplateTitleFilter.tid +3 -0
  562. package/core/wiki/title.tid +4 -1
  563. package/core/wiki/viewswitcher.tid +3 -6
  564. package/editions/de-AT/tiddlers/external/tiddlywiki.files +12 -0
  565. package/editions/de-AT/tiddlers/intro/HelloThumbnail_-_Latest_Version.tid +1 -1
  566. package/editions/de-AT/tiddlers/system/static.content.tid +2 -2
  567. package/editions/de-AT/tiddlywiki.info +3 -2
  568. package/editions/de-AT-server/tiddlywiki.info +2 -1
  569. package/editions/de-DE/tiddlywiki.info +3 -2
  570. package/editions/dev/tiddlers/Continuous Deployment.tid +3 -3
  571. package/editions/dev/tiddlers/HelloThere.tid +3 -1
  572. package/editions/dev/tiddlers/build/Releasing a new version of TiddlyWiki.tid +2 -2
  573. package/editions/dev/tiddlers/from Heigele and Jurke/Data-Storage.tid +1 -9
  574. package/editions/dev/tiddlers/from Heigele and Jurke/wikimethod module type.tid +3 -2
  575. package/editions/dev/tiddlers/from tw5.com/How to create plugins in the browser.tid +1 -1
  576. package/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid +59 -5
  577. package/editions/dev/tiddlers/from tw5.com/moduletypes/WikiRuleModules.tid +6 -5
  578. package/editions/dev/tiddlers/indexer modules.tid +55 -0
  579. package/editions/dev/tiddlers/new/Data Storage in Single File TiddlyWiki.tid +100 -0
  580. package/editions/dev/tiddlers/new/Data Storage.tid +10 -0
  581. package/editions/dev/tiddlers/new/HookMechanism.tid +15 -2
  582. package/editions/dev/tiddlers/new/Hook_ th-before-importing.tid +68 -0
  583. package/editions/dev/tiddlers/new/Hook_ th-closing-tiddler.tid +20 -0
  584. package/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid +3 -1
  585. package/editions/dev/tiddlers/new/Hook__th-rendering-element.tid +35 -0
  586. package/editions/dev/tiddlers/new/Hook_th-make-tiddler-path.tid +14 -0
  587. package/editions/dev/tiddlers/new/ParserSubclassingMechanism.tid +42 -0
  588. package/editions/dev/tiddlers/new/TiddlyWiki Drag and Drop Interop.tid +15 -0
  589. package/editions/dev/tiddlers/new/dragndropinterop.html +35 -0
  590. package/editions/dev/tiddlers/new/dragndropinterop.html.meta +3 -0
  591. package/editions/dev/tiddlers/new/save-dragndropinterop.tid +3 -0
  592. package/editions/dev/tiddlers/new/th-saving-tiddler.tid +3 -2
  593. package/editions/dev/tiddlers/system/static.content.tid +2 -2
  594. package/editions/dev/tiddlywiki.info +2 -1
  595. package/editions/dynaviewdemo/tiddlers/ViewTemplate.tid +4 -7
  596. package/editions/es-ES/tiddlers/Page_and_tiddler_layout_customisation.tid +3 -3
  597. package/editions/es-ES/tiddlywiki.info +3 -2
  598. package/editions/es-ES-server/tiddlywiki.info +2 -1
  599. package/editions/fr-FR/tiddlers/HelloThumbnail - Latest Version.tid +1 -1
  600. package/editions/fr-FR/tiddlers/Page and tiddler layout customisation.tid +3 -3
  601. package/editions/fr-FR/tiddlywiki.info +3 -2
  602. package/editions/fr-FR-server/tiddlywiki.info +2 -1
  603. package/editions/full/tiddlywiki.info +1 -0
  604. package/editions/innerwikidemo/tiddlywiki.info +2 -1
  605. package/editions/introduction/tiddlers/slides/TiddlyWiki.tid +1 -1
  606. package/editions/introduction/tiddlers/slides/Translations.tid +4 -6
  607. package/editions/introduction/tiddlers/system/styles.tid +2 -1
  608. package/editions/introduction/tiddlywiki.info +8 -1
  609. package/editions/ja-JP/tiddlywiki.info +3 -2
  610. package/editions/ko-KR/tiddlers/system/static.content.tid +2 -2
  611. package/editions/ko-KR/tiddlywiki.info +3 -2
  612. package/editions/ko-KR-server/tiddlywiki.info +2 -1
  613. package/editions/markdowndemo/tiddlers/HelloThere.tid +2 -29
  614. package/editions/markdowndemo/tiddlers/MarkdownExample.tid +20 -21
  615. package/editions/prerelease/tiddlers/$__StoryList.tid +5 -0
  616. package/editions/prerelease/tiddlers/Release 5.2.2.tid +54 -0
  617. package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
  618. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  619. package/editions/prerelease/tiddlers/system/download-empty.tid +9 -0
  620. package/editions/prerelease/tiddlers/system/favicon.ico +0 -0
  621. package/editions/prerelease/tiddlers/system/favicon.ico.meta +2 -0
  622. package/editions/prerelease/tiddlers/system/stickytitles.tid +1 -1
  623. package/editions/prerelease/tiddlywiki.info +3 -2
  624. package/editions/server/tiddlywiki.info +1 -6
  625. package/editions/server-external-js/tiddlywiki.info +26 -0
  626. package/editions/share/tiddlywiki.info +14 -0
  627. package/editions/test/tiddlers/tests/data/deserializers/case 1.tid +4 -0
  628. package/editions/test/tiddlers/tests/data/deserializers/case 2.tid +12 -0
  629. package/editions/test/tiddlers/tests/data/deserializers/case 3.tid +18 -0
  630. package/editions/test/tiddlers/tests/data/deserializers/case 4.tid +19 -0
  631. package/editions/test/tiddlers/tests/data/deserializers/case 5.tid +20 -0
  632. package/editions/test/tiddlers/tests/test-backlinks.js +132 -0
  633. package/editions/test/tiddlers/tests/test-compare-filter.js +84 -0
  634. package/editions/test/tiddlers/tests/test-deserializers.js +39 -0
  635. package/editions/test/tiddlers/tests/test-filters.js +885 -468
  636. package/editions/test/tiddlers/tests/test-html-parser.js +18 -12
  637. package/editions/test/tiddlers/tests/test-linked-list.js +270 -0
  638. package/editions/test/tiddlers/tests/test-parsetextreference.js +132 -0
  639. package/editions/test/tiddlers/tests/test-prefixes-filter.js +440 -0
  640. package/editions/test/tiddlers/tests/test-tags.js +1 -1
  641. package/editions/test/tiddlers/tests/test-utils.js +62 -0
  642. package/editions/test/tiddlers/tests/test-widget.js +460 -149
  643. package/editions/test/tiddlers/tests/test-wikitext-parser.js +127 -20
  644. package/editions/tw5.com/tiddlers/$__StoryList.tid +5 -0
  645. package/editions/tw5.com/tiddlers/about/Developers.tid +8 -3
  646. package/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid +1 -1
  647. package/editions/tw5.com/tiddlers/{License.tid → about/License.tid} +3 -3
  648. package/editions/tw5.com/tiddlers/commands/BuildCommand.tid +1 -1
  649. package/editions/tw5.com/tiddlers/commands/NamedCommandParameters.tid +2 -2
  650. package/editions/tw5.com/tiddlers/community/Community Editions.tid +24 -0
  651. package/editions/tw5.com/tiddlers/community/Community Links Aggregator.tid +10 -0
  652. package/editions/tw5.com/tiddlers/community/Community Palettes.tid +24 -0
  653. package/editions/tw5.com/tiddlers/community/Community Plugins.tid +24 -0
  654. package/editions/tw5.com/tiddlers/community/Community Themes.tid +24 -0
  655. package/editions/tw5.com/tiddlers/community/Community.tid +5 -3
  656. package/editions/tw5.com/tiddlers/community/Contributing.tid +49 -13
  657. package/editions/tw5.com/tiddlers/community/Forums.tid +7 -11
  658. package/editions/tw5.com/tiddlers/community/Other Resources.tid +24 -0
  659. package/editions/tw5.com/tiddlers/community/TW Icons by morosanuae.tid +9 -0
  660. package/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid +2 -2
  661. package/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid +17 -0
  662. package/editions/tw5.com/tiddlers/community/editions/Stroll by David Gifford.tid +18 -0
  663. package/editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid +25 -0
  664. package/editions/tw5.com/tiddlers/community/{resources → editions}/_Cardo-A Task and Project Management Wiki_ by David_Szego.tid +2 -2
  665. package/editions/tw5.com/tiddlers/community/{resources → editions}/_Noteself_ by Danielo Rodriguez.tid +4 -2
  666. package/editions/tw5.com/tiddlers/community/examples/PETTIL.tid +2 -2
  667. package/editions/tw5.com/tiddlers/community/examples/Reveal.js by Devin Weaver.tid +20 -0
  668. package/editions/tw5.com/tiddlers/community/{resources → examples}/_Lucky Sushi_ online shop by sini-Kit.tid +4 -4
  669. package/editions/tw5.com/tiddlers/community/palettes/Dracula for tiddlywiki.tid +22 -0
  670. package/editions/tw5.com/tiddlers/community/palettes/palletes by JD.tid +20 -0
  671. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Ace Editor Plugin by Joerg Plewe.tid +2 -2
  672. package/editions/tw5.com/tiddlers/community/{resources → plugins}/BJHacks.tid +2 -2
  673. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Disqus comments plugin by bimlas.tid +2 -2
  674. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Encrypt single tiddler plugin.tid +2 -2
  675. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Eucalys Tiddly World.tid +4 -3
  676. package/editions/tw5.com/tiddlers/community/plugins/Favorites by Mohammad.tid +18 -0
  677. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Full Text Search Plugin by Rob Hoelz.tid +2 -2
  678. package/editions/tw5.com/tiddlers/community/{resources → plugins}/GSD5.tid +3 -3
  679. package/editions/tw5.com/tiddlers/community/{resources → plugins}/IndexedDB Plugin by Andreas Abeck.tid +2 -2
  680. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Json Mangler plugin by Joshua Fontany.tid +5 -4
  681. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Kin filter operator by bimlas.tid +2 -2
  682. package/editions/tw5.com/tiddlers/community/plugins/Kookma Plugin Library by Mohammad.tid +15 -0
  683. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Leaflet_maps_plugin_by_Sylvain_Comte.tid +2 -2
  684. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Locator plugin by bimlas.tid +2 -2
  685. package/editions/tw5.com/tiddlers/community/{resources → plugins}/MathJax Plugin by Martin Kantor.tid +2 -2
  686. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Plugins by TheDiveO.tid +2 -2
  687. package/editions/tw5.com/tiddlers/community/plugins/Refnotes by Mohammad.tid +22 -0
  688. package/editions/tw5.com/tiddlers/community/plugins/Searchwikis by Mohammad.tid +21 -0
  689. package/editions/tw5.com/tiddlers/community/plugins/Shiraz by Mohammad.tid +32 -0
  690. package/editions/tw5.com/tiddlers/community/plugins/Slider by Mohammad.tid +18 -0
  691. package/editions/tw5.com/tiddlers/community/plugins/Tiddler Commander by Mohammad.tid +25 -0
  692. package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyClip by buggyjay.tid +2 -2
  693. package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyMap by Felix Kuppers.tid +2 -2
  694. package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyWiki for Scholars.tid +2 -2
  695. package/editions/tw5.com/tiddlers/community/plugins/Tiddlyshow by Mohammad.tid +16 -0
  696. package/editions/tw5.com/tiddlers/community/plugins/Timelines by Mohammad.tid +14 -0
  697. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tinka by Andreas Hahn.tid +2 -2
  698. package/editions/tw5.com/tiddlers/community/plugins/Todolist by Mohammad.tid +14 -0
  699. package/editions/tw5.com/tiddlers/community/plugins/Trashbin by Mohammad.tid +14 -0
  700. package/editions/tw5.com/tiddlers/community/plugins/Utility by Mohammad.tid +13 -0
  701. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_JD Mobile Layout plugin_ by JD.tid +2 -2
  702. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Mal's Sandbox_ by Mal.tid +2 -2
  703. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_SK_Plugins_ by Stephen Kimmel.tid +2 -2
  704. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Slides and Stories_ by Jan.tid +2 -2
  705. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_TW5-TeXZilla_ plugin by Joe Renes.tid +2 -2
  706. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Tekan_ Kanban that stays with you_ by Riz.tid +2 -2
  707. package/editions/tw5.com/tiddlers/community/{resources → plugins}/datepicker based on Pikaday.tid +2 -2
  708. package/editions/tw5.com/tiddlers/community/{resources → plugins}/rboue's plugins for TiddlyWiki.tid +2 -2
  709. package/editions/tw5.com/tiddlers/community/{resources → plugins}/vis.js Timeline.tid +2 -2
  710. package/editions/tw5.com/tiddlers/community/resources/BrainTest.tid +2 -2
  711. package/editions/tw5.com/tiddlers/community/resources/Code styles and auto format settings for IDEs.tid +2 -2
  712. package/editions/tw5.com/tiddlers/community/resources/CouchDB Adaptor.tid +2 -2
  713. package/editions/tw5.com/tiddlers/community/resources/Filter Examples by Tobias Beer.tid +2 -2
  714. package/editions/tw5.com/tiddlers/community/resources/Font Awesome 5 Free SVGs for TiddlyWiki by morosanuae.tid +2 -2
  715. package/editions/tw5.com/tiddlers/community/resources/Gospel_Bubbles_by_Rev_David_Gifford.tid +2 -2
  716. package/editions/tw5.com/tiddlers/community/resources/Grok TiddlyWiki by Soren Bjornstad.tid +16 -0
  717. package/editions/tw5.com/tiddlers/community/resources/Heeg.ru.tid +2 -2
  718. package/editions/tw5.com/tiddlers/community/resources/Projectify by Nicolas Petton.tid +20 -0
  719. package/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid +19 -0
  720. package/editions/tw5.com/tiddlers/community/resources/SeeAlso by Matias Goldman.tid +2 -2
  721. package/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid +22 -0
  722. package/editions/tw5.com/tiddlers/community/resources/TB5 a pocket full of tips by Tobias Beer.tid +2 -2
  723. package/editions/tw5.com/tiddlers/community/resources/TW-Scripts by Mohammad.tid +22 -0
  724. package/editions/tw5.com/tiddlers/community/resources/TW5 Magick.tid +2 -2
  725. package/editions/tw5.com/tiddlers/community/resources/TW5-SingleExecutable_by_Jed_Carty.tid +2 -2
  726. package/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid +27 -0
  727. package/editions/tw5.com/tiddlers/community/resources/TWCommunitySearch.tid +2 -2
  728. package/editions/tw5.com/tiddlers/community/resources/TWaddle by Matias Goldman.tid +1 -1
  729. package/editions/tw5.com/tiddlers/community/resources/TiddlyChrome by Arlen Beiler.tid +2 -2
  730. package/editions/tw5.com/tiddlers/community/resources/TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid +6 -4
  731. package/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid +5 -3
  732. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Notes.tid +2 -2
  733. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid +2 -2
  734. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Video Tutorials by Francis Meetze.tid +2 -2
  735. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for Sublime Text 3 by roma0104.tid +2 -2
  736. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for ViM.tid +2 -2
  737. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki guide FR.tid +2 -2
  738. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki wu.tid +2 -2
  739. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Playground.tid +2 -2
  740. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid +2 -2
  741. package/editions/tw5.com/tiddlers/community/resources/Twexe_ Single File Tiddlywiki5 executable.tid +29 -0
  742. package/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid +3 -3
  743. package/editions/tw5.com/tiddlers/community/resources/Wikilabs by PMario.tid +3 -3
  744. package/editions/tw5.com/tiddlers/community/resources/Wills QnD gTD.tid +2 -2
  745. package/editions/tw5.com/tiddlers/community/resources/_ATWiki_ by Lamusia Project.tid +2 -2
  746. package/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid +2 -2
  747. package/editions/tw5.com/tiddlers/community/resources/_Dynamic Tables_ by Jed Carty.tid +2 -2
  748. package/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid +3 -2
  749. package/editions/tw5.com/tiddlers/community/resources/_In My Socks_ by Jed Carty.tid +2 -2
  750. package/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid +3 -2
  751. package/editions/tw5.com/tiddlers/community/resources/_TWeb.at_ by Mario Pietsch.tid +2 -2
  752. package/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid +6 -3
  753. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Knowledge Network_ by Dmitry Sokolov.tid +2 -2
  754. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Toolmap_ by David Gifford.tid +2 -2
  755. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Bourbon_ from mkt_memory.tid +2 -2
  756. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Forum on Reddit_ by Riz.tid +2 -2
  757. package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +24 -8
  758. package/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid +2 -2
  759. package/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid +5 -3
  760. package/editions/tw5.com/tiddlers/community/resources/_muritest_ by Simon Huber.tid +2 -2
  761. package/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid +4 -2
  762. package/editions/tw5.com/tiddlers/community/resources/twproxy by Steve Gattuso.tid +2 -2
  763. package/editions/tw5.com/tiddlers/community/themes/Mono theme by JD.tid +11 -0
  764. package/editions/tw5.com/tiddlers/community/themes/Notebook theme by Nicolas Petton.tid +19 -0
  765. package/editions/tw5.com/tiddlers/community/themes/Whitespace a negative-spacious webapp-nostalgic theme by JD.tid +11 -0
  766. package/editions/tw5.com/tiddlers/community/{resources → themes}/_Ghostwriter theme by Rory Gibson_ by Riz.tid +2 -2
  767. package/editions/tw5.com/tiddlers/community/{resources → themes}/_Moments-A little color won't hurt_ by Riz.tid +2 -2
  768. package/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid +23 -0
  769. package/editions/tw5.com/tiddlers/concepts/Cascades.tid +47 -0
  770. package/editions/tw5.com/tiddlers/concepts/ColourPalettes.tid +1 -1
  771. package/editions/tw5.com/tiddlers/concepts/Concepts.tid +5 -3
  772. package/editions/tw5.com/tiddlers/concepts/Date Fields.tid +5 -4
  773. package/editions/tw5.com/tiddlers/concepts/Edit Template Body Cascade.tid +16 -0
  774. package/editions/tw5.com/tiddlers/concepts/InfoPanel.tid +3 -3
  775. package/editions/tw5.com/tiddlers/concepts/Macros.tid +2 -2
  776. package/editions/tw5.com/tiddlers/concepts/Messages.tid +2 -2
  777. package/editions/tw5.com/tiddlers/concepts/ModuleType.tid +2 -2
  778. package/editions/tw5.com/tiddlers/concepts/Modules.tid +1 -1
  779. package/editions/tw5.com/tiddlers/concepts/Order of Tagged Tiddlers.tid +1 -1
  780. package/editions/tw5.com/tiddlers/concepts/PermaLinks.tid +4 -4
  781. package/editions/tw5.com/tiddlers/concepts/Railroad Diagrams.tid +2 -1
  782. package/editions/tw5.com/tiddlers/concepts/ShadowTiddlers.tid +14 -3
  783. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template Cascade.tid +16 -0
  784. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template.tid +13 -0
  785. package/editions/tw5.com/tiddlers/concepts/SystemTags.tid +9 -8
  786. package/editions/tw5.com/tiddlers/concepts/TagTiddlers.tid +1 -1
  787. package/editions/tw5.com/tiddlers/concepts/Tiddler Colour Cascade.tid +16 -0
  788. package/editions/tw5.com/tiddlers/concepts/Tiddler Icon Cascade.tid +16 -0
  789. package/editions/tw5.com/tiddlers/concepts/TiddlerFields.tid +36 -33
  790. package/editions/tw5.com/tiddlers/concepts/Transclusion.tid +1 -1
  791. package/editions/tw5.com/tiddlers/concepts/View Template Body Cascade.tid +19 -0
  792. package/editions/tw5.com/tiddlers/concepts/View Template Title Cascade.tid +16 -0
  793. package/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +15 -0
  794. package/editions/tw5.com/tiddlers/customising/Configuring startup tiddlers.tid +3 -1
  795. package/editions/tw5.com/tiddlers/customising/Creating new toolbar buttons.tid +35 -0
  796. package/editions/tw5.com/tiddlers/customising/Customise TiddlyWiki.tid +6 -5
  797. package/editions/tw5.com/tiddlers/customising/Customising TiddlyWiki's user interface.tid +75 -0
  798. package/editions/tw5.com/tiddlers/customising/Customising search results.tid +19 -1
  799. package/editions/tw5.com/tiddlers/definitions/BT.tid +3 -2
  800. package/editions/tw5.com/tiddlers/definitions/Base64.tid +1 -1
  801. package/editions/tw5.com/tiddlers/definitions/Cascading Style Sheets.tid +1 -1
  802. package/editions/tw5.com/tiddlers/definitions/Comma Separated Values.tid +1 -1
  803. package/editions/tw5.com/tiddlers/definitions/Data URI.tid +1 -1
  804. package/editions/tw5.com/tiddlers/definitions/Document Object Model.tid +1 -1
  805. package/editions/tw5.com/tiddlers/definitions/GitHub.tid +1 -1
  806. package/editions/tw5.com/tiddlers/definitions/HyperText Markup Language.tid +1 -1
  807. package/editions/tw5.com/tiddlers/definitions/JavaScript Object Notation.tid +1 -1
  808. package/editions/tw5.com/tiddlers/definitions/MathML.tid +2 -2
  809. package/editions/tw5.com/tiddlers/definitions/OpenSource.tid +1 -1
  810. package/editions/tw5.com/tiddlers/definitions/Osmosoft.tid +3 -2
  811. package/editions/tw5.com/tiddlers/definitions/Percent Encoding.tid +1 -1
  812. package/editions/tw5.com/tiddlers/definitions/Quine.tid +1 -1
  813. package/editions/tw5.com/tiddlers/definitions/TiddlyFox.tid +2 -2
  814. package/editions/tw5.com/tiddlers/definitions/URI.tid +1 -1
  815. package/editions/tw5.com/tiddlers/definitions/Web Developer Tools.tid +7 -0
  816. package/editions/tw5.com/tiddlers/definitions/node-webkit.tid +2 -1
  817. package/editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid +4 -3707
  818. package/editions/tw5.com/tiddlers/demonstrations/Apple.tid +2 -2
  819. package/editions/tw5.com/tiddlers/demonstrations/Caruso - Ave Maria.tid +1 -0
  820. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Demo Tiddler List with Custom Story Tiddler Template.tid +10 -0
  821. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Styles.tid +31 -0
  822. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Template.tid +25 -0
  823. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/TiddlerTemplateFilter.tid +5 -0
  824. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerColourCascadeDemo/CustomTiddlerColourCascadeDemo.tid +9 -0
  825. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid +9 -0
  826. package/editions/tw5.com/tiddlers/demonstrations/ImageGallery Example.tid +5 -16
  827. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/Demonstration_ keyboard-driven-input Macro.tid +121 -0
  828. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/kdi-demo-configtid.tid +7 -0
  829. package/editions/tw5.com/tiddlers/demonstrations/SampleNotification.tid +2 -1
  830. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerFirst.tid +3 -1
  831. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerSecond.tid +3 -1
  832. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerThird.tid +3 -1
  833. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard.tid +2 -1
  834. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard2.tid +2 -1
  835. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Contents.tid +3 -2
  836. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/First.tid +3 -3
  837. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstOne.tid +2 -2
  838. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstThree.tid +2 -2
  839. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstTwo.tid +2 -2
  840. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Fourth.tid +2 -2
  841. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Second.tid +2 -2
  842. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondOne.tid +2 -2
  843. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThree.tid +3 -3
  844. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeOne.tid +2 -2
  845. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeThree.tid +2 -2
  846. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeTwo.tid +2 -2
  847. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondTwo.tid +2 -2
  848. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Third.tid +3 -3
  849. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdOne.tid +2 -2
  850. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdThree.tid +2 -2
  851. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdTwo.tid +2 -2
  852. package/editions/tw5.com/tiddlers/demonstrations/Tagged with TagMacro.tid +2 -1
  853. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Compose ballad.tid +3 -3
  854. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Get the Ring.tid +3 -3
  855. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Go to Mordor.tid +3 -3
  856. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Kill the Dragon.tid +4 -4
  857. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Make the beds.tid +3 -3
  858. package/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExample.tid +2 -2
  859. package/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggable.tid +2 -2
  860. package/editions/tw5.com/tiddlers/demonstrations/Tasks/TaskManagementExampleDraggableTemplate.tid +1 -1
  861. package/editions/tw5.com/tiddlers/demonstrations/Tasks/done.tid +3 -1
  862. package/editions/tw5.com/tiddlers/demonstrations/Tasks/task.tid +3 -2
  863. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Days of the Week.tid +5 -4
  864. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Friday.tid +2 -1
  865. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Monday.tid +2 -1
  866. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Saturday.tid +3 -2
  867. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Sunday.tid +2 -1
  868. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Thursday.tid +2 -1
  869. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Tuesday.tid +2 -1
  870. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Wednesday.tid +2 -1
  871. package/editions/tw5.com/tiddlers/demonstrations/sampletag1.tid +3 -0
  872. package/editions/tw5.com/tiddlers/demonstrations/sampletag2.tid +3 -0
  873. package/editions/tw5.com/tiddlers/features/AutoSave.tid +2 -2
  874. package/editions/tw5.com/tiddlers/features/DateFormat.tid +15 -2
  875. package/editions/tw5.com/tiddlers/features/Importing Tiddlers.tid +3 -3
  876. package/editions/tw5.com/tiddlers/features/LazyLoading.tid +2 -3
  877. package/editions/tw5.com/tiddlers/features/Modals.tid +11 -2
  878. package/editions/tw5.com/tiddlers/features/Performance Instrumentation.tid +2 -2
  879. package/editions/tw5.com/tiddlers/features/SafeMode.tid +4 -2
  880. package/editions/tw5.com/tiddlers/features/Scalability.tid +4 -2
  881. package/editions/tw5.com/tiddlers/features/Searching in TiddlyWiki.tid +1 -1
  882. package/editions/tw5.com/tiddlers/features/StartupActions.tid +15 -6
  883. package/editions/tw5.com/tiddlers/fileformats/TiddlerFiles.tid +15 -4
  884. package/editions/tw5.com/tiddlers/filters/Filter Operators.tid +4 -4
  885. package/editions/tw5.com/tiddlers/filters/Introduction to filter notation.tid +11 -4
  886. package/editions/tw5.com/tiddlers/filters/Mathematics Operators.tid +2 -1
  887. package/editions/tw5.com/tiddlers/filters/acos Operator.tid +15 -0
  888. package/editions/tw5.com/tiddlers/filters/asin Operator.tid +15 -0
  889. package/editions/tw5.com/tiddlers/filters/atan Operator.tid +13 -0
  890. package/editions/tw5.com/tiddlers/filters/atan2 Operator.tid +15 -0
  891. package/editions/tw5.com/tiddlers/filters/average.tid +13 -0
  892. package/editions/tw5.com/tiddlers/filters/charcode.tid +17 -0
  893. package/editions/tw5.com/tiddlers/filters/compare Operator.tid +51 -0
  894. package/editions/tw5.com/tiddlers/filters/contains Operator.tid +1 -1
  895. package/editions/tw5.com/tiddlers/filters/cos Operator.tid +13 -0
  896. package/editions/tw5.com/tiddlers/filters/cycle Operator.tid +24 -0
  897. package/editions/tw5.com/tiddlers/filters/deserializers Operator.tid +14 -0
  898. package/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid +22 -0
  899. package/editions/tw5.com/tiddlers/filters/each.tid +2 -2
  900. package/editions/tw5.com/tiddlers/filters/enlist Operator.tid +2 -3
  901. package/editions/tw5.com/tiddlers/filters/enlist-input Operator.tid +31 -0
  902. package/editions/tw5.com/tiddlers/filters/examples/Brownies.tid +9 -0
  903. package/editions/tw5.com/tiddlers/filters/examples/Chick Peas.tid +9 -0
  904. package/editions/tw5.com/tiddlers/filters/examples/How to remove stop words.tid +28 -0
  905. package/editions/tw5.com/tiddlers/filters/examples/Milk.tid +9 -0
  906. package/editions/tw5.com/tiddlers/filters/examples/Rice Pudding.tid +9 -0
  907. package/editions/tw5.com/tiddlers/filters/examples/acos Operator (Examples).tid +7 -0
  908. package/editions/tw5.com/tiddlers/filters/examples/allbefore.tid +1 -0
  909. package/editions/tw5.com/tiddlers/filters/examples/asin Operator (Examples).tid +7 -0
  910. package/editions/tw5.com/tiddlers/filters/examples/atan Operator (Examples).tid +7 -0
  911. package/editions/tw5.com/tiddlers/filters/examples/atan2 Operator (Examples).tid +7 -0
  912. package/editions/tw5.com/tiddlers/filters/examples/average Operator (Examples).tid +10 -0
  913. package/editions/tw5.com/tiddlers/filters/examples/charcode.tid +7 -0
  914. package/editions/tw5.com/tiddlers/filters/examples/compare Operator (Examples).tid +11 -0
  915. package/editions/tw5.com/tiddlers/filters/examples/cos Operator (Examples).tid +7 -0
  916. package/editions/tw5.com/tiddlers/filters/examples/cycle Operator (Examples).tid +21 -0
  917. package/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid +7 -0
  918. package/editions/tw5.com/tiddlers/filters/examples/enlist-input Operator (Examples).tid +12 -0
  919. package/editions/tw5.com/tiddlers/filters/examples/fields.tid +6 -2
  920. package/editions/tw5.com/tiddlers/filters/examples/filter Operator (Examples).tid +23 -0
  921. package/editions/tw5.com/tiddlers/filters/examples/fixed Operator (Examples).tid +1 -0
  922. package/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid +31 -0
  923. package/editions/tw5.com/tiddlers/filters/examples/has.tid +3 -1
  924. package/editions/tw5.com/tiddlers/filters/examples/jsonstringify Operator (Examples).tid +2 -0
  925. package/editions/tw5.com/tiddlers/filters/examples/log Operator (Examples).tid +14 -0
  926. package/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +2 -1
  927. package/editions/tw5.com/tiddlers/filters/examples/match Operator (Examples).tid +1 -1
  928. package/editions/tw5.com/tiddlers/filters/examples/median Operator (Examples).tid +10 -0
  929. package/editions/tw5.com/tiddlers/filters/examples/moduleproperty Operator (Examples).tid +11 -0
  930. package/editions/tw5.com/tiddlers/filters/examples/modules.tid +4 -1
  931. package/editions/tw5.com/tiddlers/filters/examples/pad Operator (Examples).tid +13 -0
  932. package/editions/tw5.com/tiddlers/filters/examples/power Operator (Examples).tid +8 -0
  933. package/editions/tw5.com/tiddlers/filters/examples/reduce Operator (Examples).tid +38 -0
  934. package/editions/tw5.com/tiddlers/filters/examples/search-replace Operator (Examples).tid +38 -0
  935. package/editions/tw5.com/tiddlers/filters/examples/sin Operator (Examples).tid +7 -0
  936. package/editions/tw5.com/tiddlers/filters/examples/sortsub Operator (Examples).tid +34 -0
  937. package/editions/tw5.com/tiddlers/filters/examples/standard-deviation Operator (Examples).tid +10 -0
  938. package/editions/tw5.com/tiddlers/filters/examples/stringify_Operator_(Examples).tid +2 -0
  939. package/editions/tw5.com/tiddlers/filters/examples/subfilter Operator (Examples).tid +25 -3
  940. package/editions/tw5.com/tiddlers/filters/examples/tan Operator (Examples).tid +7 -0
  941. package/editions/tw5.com/tiddlers/filters/examples/toggle Operator (Examples).tid +27 -0
  942. package/editions/tw5.com/tiddlers/filters/examples/trim Operator (Examples).tid +8 -0
  943. package/editions/tw5.com/tiddlers/filters/examples/unique Operator (Examples).tid +8 -0
  944. package/editions/tw5.com/tiddlers/filters/examples/variance Operator (Examples).tid +10 -0
  945. package/editions/tw5.com/tiddlers/filters/examples/zth Operator (Examples).tid +10 -0
  946. package/editions/tw5.com/tiddlers/filters/fields.tid +10 -7
  947. package/editions/tw5.com/tiddlers/filters/filter.tid +49 -0
  948. package/editions/tw5.com/tiddlers/filters/format.tid +24 -0
  949. package/editions/tw5.com/tiddlers/filters/has.tid +4 -3
  950. package/editions/tw5.com/tiddlers/filters/is.tid +10 -8
  951. package/editions/tw5.com/tiddlers/filters/jsonstringify Operator.tid +17 -8
  952. package/editions/tw5.com/tiddlers/filters/length Operator.tid +1 -1
  953. package/editions/tw5.com/tiddlers/filters/list.tid +2 -2
  954. package/editions/tw5.com/tiddlers/filters/log Operator.tid +15 -0
  955. package/editions/tw5.com/tiddlers/filters/median.tid +13 -0
  956. package/editions/tw5.com/tiddlers/filters/moduleproperty Operator.tid +12 -0
  957. package/editions/tw5.com/tiddlers/filters/modules.tid +8 -6
  958. package/editions/tw5.com/tiddlers/filters/nth.tid +9 -7
  959. package/editions/tw5.com/tiddlers/filters/pad Operator.tid +23 -0
  960. package/editions/tw5.com/tiddlers/filters/power Operator.tid +15 -0
  961. package/editions/tw5.com/tiddlers/filters/range.tid +22 -20
  962. package/editions/tw5.com/tiddlers/filters/reduce.tid +52 -0
  963. package/editions/tw5.com/tiddlers/filters/removeprefix.tid +2 -0
  964. package/editions/tw5.com/tiddlers/filters/removesuffix.tid +2 -0
  965. package/editions/tw5.com/tiddlers/filters/search-replace Operator.tid +28 -0
  966. package/editions/tw5.com/tiddlers/filters/sign Operator.tid +2 -2
  967. package/editions/tw5.com/tiddlers/filters/sin Operator.tid +13 -0
  968. package/editions/tw5.com/tiddlers/filters/slugify Operator.tid +24 -0
  969. package/editions/tw5.com/tiddlers/filters/sortsub Operator.tid +33 -0
  970. package/editions/tw5.com/tiddlers/filters/standard-deviation Operator.tid +15 -0
  971. package/editions/tw5.com/tiddlers/filters/storyviews.tid +1 -1
  972. package/editions/tw5.com/tiddlers/filters/stringify_Operator.tid +17 -9
  973. package/editions/tw5.com/tiddlers/filters/subfilter Operator.tid +6 -2
  974. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix (Examples).tid +46 -0
  975. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid +20 -0
  976. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +34 -13
  977. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix (Examples).tid +30 -0
  978. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix.tid +27 -0
  979. package/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid +7 -2
  980. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix (Examples).tid +21 -0
  981. package/editions/tw5.com/tiddlers/filters/syntax/Filter Step.tid +4 -2
  982. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix (Examples).tid +36 -0
  983. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +15 -0
  984. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix (Examples).tid +41 -0
  985. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix.tid +27 -0
  986. package/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +10 -0
  987. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix (Examples).tid +27 -0
  988. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix.tid +38 -0
  989. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid +33 -0
  990. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +32 -0
  991. package/editions/tw5.com/tiddlers/filters/tan Operator.tid +13 -0
  992. package/editions/tw5.com/tiddlers/filters/title.tid +1 -1
  993. package/editions/tw5.com/tiddlers/filters/toggle Operator.tid +26 -0
  994. package/editions/tw5.com/tiddlers/filters/trim Operator.tid +9 -4
  995. package/editions/tw5.com/tiddlers/filters/unique.tid +10 -0
  996. package/editions/tw5.com/tiddlers/filters/variance Operator.tid +15 -0
  997. package/editions/tw5.com/tiddlers/filters/zth Operator.tid +18 -0
  998. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid +2 -1
  999. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +2 -1
  1000. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +2 -1
  1001. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +2 -1
  1002. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid +2 -1
  1003. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Online.tid +2 -2
  1004. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid +2 -1
  1005. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid +2 -1
  1006. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted.tid +2 -2
  1007. package/editions/tw5.com/tiddlers/hellothere/A Gentle Guide to TiddlyWiki.tid +5 -2
  1008. package/editions/tw5.com/tiddlers/{AllTiddlers.tid → hellothere/AllTiddlers.tid} +0 -0
  1009. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +4 -2
  1010. package/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +1 -1
  1011. package/editions/tw5.com/tiddlers/hellothere/Some of the things you can do with TiddlyWiki.tid +2 -2
  1012. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Badge.svg.tid +22 -0
  1013. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Link.tid +4 -0
  1014. package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid +6 -0
  1015. package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid +6 -0
  1016. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Default Tiddler Icon.tid +7 -0
  1017. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting HtmlParserDisableSandbox.tid +13 -0
  1018. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting NewImageType.tid +3 -1
  1019. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting Search-NavigateOnEnter.tid +6 -0
  1020. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting ShowEditPreviewPerTiddler.tid +10 -0
  1021. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Disable Drag and Drop.tid +19 -0
  1022. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Disable Lazy Loading.tid +9 -0
  1023. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Enable File Import in Editor_1.tid +12 -0
  1024. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Typin Refresh Delay.tid +5 -3
  1025. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Settings_ Import Content Types for Editor.tid +11 -0
  1026. package/editions/tw5.com/tiddlers/howtos/Adding_a_table_of_contents_to_the_sidebar.tid +2 -2
  1027. package/editions/tw5.com/tiddlers/howtos/Creating SubStories.tid +21 -33
  1028. package/editions/tw5.com/tiddlers/howtos/Debugging Stylesheets.tid +11 -0
  1029. package/editions/tw5.com/tiddlers/howtos/Formatting List Results as Tables with CSS - Specified Columns Methods.tid +4 -0
  1030. package/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid +8 -6
  1031. package/editions/tw5.com/tiddlers/howtos/How to add a banner for GitHub contributions.tid +1 -1
  1032. package/editions/tw5.com/tiddlers/howtos/How to apply custom styles.tid +1 -1
  1033. package/editions/tw5.com/tiddlers/howtos/How to create a custom story tiddler template.tid +40 -0
  1034. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler colour rule.tid +36 -0
  1035. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler icon rule.tid +36 -0
  1036. package/editions/tw5.com/tiddlers/howtos/How to create dynamic editor toolbar buttons.tid +126 -0
  1037. package/editions/tw5.com/tiddlers/howtos/How to create keyboard shortcuts.tid +3 -3
  1038. package/editions/tw5.com/tiddlers/howtos/How to export tiddlers.tid +4 -4
  1039. package/editions/tw5.com/tiddlers/howtos/How to put the last modification date in a banner.tid +1 -1
  1040. package/editions/tw5.com/tiddlers/howtos/Insert link.tid +1 -1
  1041. package/editions/tw5.com/tiddlers/howtos/Insert picture.tid +1 -1
  1042. package/editions/tw5.com/tiddlers/howtos/KeyboardShortcuts.tid +9 -5
  1043. package/editions/tw5.com/tiddlers/howtos/More actions.tid +1 -1
  1044. package/editions/tw5.com/tiddlers/howtos/Setting a favicon.tid +4 -2
  1045. package/editions/tw5.com/tiddlers/howtos/Setting a page background image.tid +1 -1
  1046. package/editions/tw5.com/tiddlers/howtos/Simple ways to write protect tiddlers.tid +6 -7
  1047. package/editions/tw5.com/tiddlers/howtos/Tagging.tid +2 -2
  1048. package/editions/tw5.com/tiddlers/howtos/Text preview.tid +14 -2
  1049. package/editions/tw5.com/tiddlers/howtos/Upgrading.tid +1 -1
  1050. package/editions/tw5.com/tiddlers/howtos/Using Excise.tid +2 -2
  1051. package/editions/tw5.com/tiddlers/howtos/Using Stamp.tid +6 -7
  1052. package/editions/tw5.com/tiddlers/howtos/Using Stylesheets.tid +10 -4
  1053. package/editions/tw5.com/tiddlers/howtos/Windows HTA Hack.tid +3 -2
  1054. package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png +0 -0
  1055. package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png.meta +3 -0
  1056. package/editions/tw5.com/tiddlers/images/Icon Gallery.tid +14 -0
  1057. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  1058. package/editions/tw5.com/tiddlers/images/{New Release Banner.jpg.meta → New Release Banner.png.meta} +0 -0
  1059. package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png +0 -0
  1060. package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png.meta +3 -0
  1061. package/editions/tw5.com/tiddlers/languages/Japanese (Japan) Edition.tid +11 -0
  1062. package/editions/tw5.com/tiddlers/languages/LanguageGallery.tid +2 -2
  1063. package/editions/tw5.com/tiddlers/macros/ColourMacro.tid +2 -2
  1064. package/editions/tw5.com/tiddlers/macros/JsonTiddlersMacro.tid +3 -1
  1065. package/editions/tw5.com/tiddlers/macros/MakeDataUriMacro.tid +3 -1
  1066. package/editions/tw5.com/tiddlers/macros/NowMacro.tid +3 -1
  1067. package/editions/tw5.com/tiddlers/macros/TableOfContentsMacro.tid +3 -1
  1068. package/editions/tw5.com/tiddlers/macros/TabsMacro.tid +6 -2
  1069. package/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid +28 -4
  1070. package/editions/tw5.com/tiddlers/macros/examples/colour-picker Macro (Example 1).tid +2 -2
  1071. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 1).tid +2 -2
  1072. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 2).tid +2 -2
  1073. package/editions/tw5.com/tiddlers/macros/examples/list-thumbnails Macro (Examples).tid +11 -0
  1074. package/editions/tw5.com/tiddlers/macros/examples/qualify.tid +0 -2
  1075. package/editions/tw5.com/tiddlers/macros/examples/unusedtitle Macro (Examples 1).tid +51 -0
  1076. package/editions/tw5.com/tiddlers/macros/examples/unusedtitle.tid +11 -2
  1077. package/editions/tw5.com/tiddlers/macros/keyboard-driven-input_Macro.tid +25 -0
  1078. package/editions/tw5.com/tiddlers/macros/list-thumbnails Macro.tid +19 -0
  1079. package/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid +2 -0
  1080. package/editions/tw5.com/tiddlers/mechanisms/AlertMechanism.tid +1 -1
  1081. package/editions/tw5.com/tiddlers/mechanisms/HistoryMechanism.tid +3 -3
  1082. package/editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid +3 -1
  1083. package/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid +20 -10
  1084. package/editions/tw5.com/tiddlers/mechanisms/RefreshMechanism.tid +13 -0
  1085. package/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +17 -0
  1086. package/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid +3 -3
  1087. package/editions/tw5.com/tiddlers/mechanisms/WikificationMechanism.tid +28 -0
  1088. package/editions/tw5.com/tiddlers/menubar/gettingstarted.tid +6 -0
  1089. package/editions/tw5.com/tiddlers/menubar/tagsMenuBar.tid +2 -0
  1090. package/editions/tw5.com/tiddlers/messages/SampleModal.tid +2 -1
  1091. package/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid +10 -0
  1092. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +27 -1
  1093. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-fold-all-tiddlers.tid +1 -1
  1094. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-fold-other-tiddlers.tid +3 -3
  1095. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-fold-tiddler.tid +13 -5
  1096. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-import-tiddlers.tid +2 -0
  1097. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-login.tid +2 -1
  1098. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid +10 -3
  1099. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-navigate.tid +7 -1
  1100. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid +4 -4
  1101. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +22 -4
  1102. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-rename-tiddler.tid +22 -0
  1103. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-scroll.tid +3 -4
  1104. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-unfold-all-tiddlers.tid +4 -4
  1105. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-unload-plugin-library.tid +18 -0
  1106. package/editions/tw5.com/tiddlers/nodejs/Customising Tiddler File Naming.tid +40 -9
  1107. package/editions/tw5.com/tiddlers/nodejs/Environment Variables on Node.js.tid +4 -2
  1108. package/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki Prerelease on Node.js.tid +2 -2
  1109. package/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +12 -4
  1110. package/editions/tw5.com/tiddlers/nodejs/Installing custom plugins on Node.js.tid +27 -0
  1111. package/editions/tw5.com/tiddlers/nodejs/Serving TW5 from Android.tid +41 -7
  1112. package/editions/tw5.com/tiddlers/nodejs/TiddlyWiki on Node.js.tid +3 -9
  1113. package/editions/tw5.com/tiddlers/nodejs/Using TiddlyWiki on Node.js.tid +1 -1
  1114. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +43 -5
  1115. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.info_Files.tid +2 -2
  1116. package/editions/tw5.com/tiddlers/platforms/TiddlyFox Apocalypse.tid +2 -2
  1117. package/editions/tw5.com/tiddlers/platforms/TiddlyWiki in the Sky for TiddlyWeb.tid +3 -15
  1118. package/editions/tw5.com/tiddlers/plugins/Consent Banner Plugin.tid +14 -0
  1119. package/editions/tw5.com/tiddlers/plugins/Installing a plugin from the plugin library.tid +9 -6
  1120. package/editions/tw5.com/tiddlers/plugins/JSZip Plugin.tid +7 -0
  1121. package/editions/tw5.com/tiddlers/plugins/Manually installing a plugin.tid +4 -3
  1122. package/editions/tw5.com/tiddlers/plugins/Plugin Dependencies.tid +13 -0
  1123. package/editions/tw5.com/tiddlers/plugins/Plugin Types.tid +20 -0
  1124. package/editions/tw5.com/tiddlers/plugins/PluginFolders.tid +2 -1
  1125. package/editions/tw5.com/tiddlers/plugins/Plugin_Fields.tid +12 -12
  1126. package/editions/tw5.com/tiddlers/plugins/Share Plugin.tid +12 -0
  1127. package/editions/tw5.com/tiddlers/plugins/Uninstalling a plugin.tid +9 -7
  1128. package/editions/tw5.com/tiddlers/reference/Reference.tid +1 -0
  1129. package/editions/tw5.com/tiddlers/releasenotes/BetaReleases.tid +2 -2
  1130. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +179 -0
  1131. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +293 -0
  1132. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid +1 -1
  1133. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +297 -0
  1134. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +118 -0
  1135. package/editions/tw5.com/tiddlers/releasenotes/ReleaseTemplate.tid +3 -0
  1136. package/editions/tw5.com/tiddlers/releasenotes/alpha/AlphaReleases.tid +2 -2
  1137. package/editions/tw5.com/tiddlers/roadmap/RoadMap.tid +3 -10
  1138. package/editions/tw5.com/tiddlers/saving/Emergency Tiddler Export.tid +4 -4
  1139. package/editions/tw5.com/tiddlers/saving/Encryption.tid +3 -3
  1140. package/editions/tw5.com/tiddlers/saving/Example config-tiddlyweb-host for IIS.txt.meta +1 -1
  1141. package/editions/tw5.com/tiddlers/saving/Example package.json for IIS.txt.meta +1 -1
  1142. package/editions/tw5.com/tiddlers/saving/Example tiddlywiki.info for IIS.txt.meta +1 -1
  1143. package/editions/tw5.com/tiddlers/saving/Example web.config for IIS.txt.meta +1 -1
  1144. package/editions/tw5.com/tiddlers/saving/Installing TiddlyWiki on Microsoft Internet Information Server.tid +2 -1
  1145. package/editions/tw5.com/tiddlers/saving/Saving on Android.tid +22 -14
  1146. package/editions/tw5.com/tiddlers/saving/Saving on Beaker Browser.tid +2 -1
  1147. package/editions/tw5.com/tiddlers/saving/Saving on TiddlyDesktop.tid +4 -1
  1148. package/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid +17 -0
  1149. package/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid +24 -32
  1150. package/editions/tw5.com/tiddlers/saving/Saving on a PHP Server.tid +5 -3
  1151. package/editions/tw5.com/tiddlers/saving/Saving on iPad_iPhone.tid +15 -16
  1152. package/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid +10 -9
  1153. package/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +66 -12
  1154. package/editions/tw5.com/tiddlers/saving/Saving via minimal Ruby server.tid +4 -2
  1155. package/editions/tw5.com/tiddlers/saving/Saving with TW Receiver.tid +15 -0
  1156. package/editions/tw5.com/tiddlers/saving/Saving with TiddlyFox on Android.tid +2 -2
  1157. package/editions/tw5.com/tiddlers/saving/Saving with TiddlyFox.tid +5 -3
  1158. package/editions/tw5.com/tiddlers/saving/Saving with TiddlyIE.tid +6 -4
  1159. package/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid +5 -4
  1160. package/editions/tw5.com/tiddlers/saving/Saving.tid +55 -24
  1161. package/editions/tw5.com/tiddlers/saving/TiddlyWiki in the Sky for Dropbox.tid +4 -3
  1162. package/editions/tw5.com/tiddlers/styleguide/Documentation Macros.tid +6 -2
  1163. package/editions/tw5.com/tiddlers/styleguide/Spelling.tid +1 -1
  1164. package/editions/tw5.com/tiddlers/styleguide/Tiddler Structure.tid +3 -1
  1165. package/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid +2 -2
  1166. package/editions/tw5.com/tiddlers/{TableOfContents.tid → system/TableOfContents.tid} +0 -0
  1167. package/editions/tw5.com/tiddlers/system/doc-macros.tid +36 -0
  1168. package/editions/tw5.com/tiddlers/system/doc-styles.tid +53 -2
  1169. package/editions/tw5.com/tiddlers/system/download-empty-button.tid +4 -1
  1170. package/editions/tw5.com/tiddlers/system/operator-macros.tid +12 -5
  1171. package/editions/tw5.com/tiddlers/system/operator-template.tid +8 -8
  1172. package/editions/tw5.com/tiddlers/system/static.content.tid +2 -2
  1173. package/editions/tw5.com/tiddlers/system/tw5.com-card-template.tid +17 -0
  1174. package/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +128 -2
  1175. package/editions/tw5.com/tiddlers/system/version-macros.tid +2 -2
  1176. package/editions/tw5.com/tiddlers/system/wikitext-macros.tid +4 -0
  1177. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ControlPanel_Plugins.tid +9 -0
  1178. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid +9 -0
  1179. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Image.tid +2 -2
  1180. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Layout.tid +9 -0
  1181. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro_View.tid +9 -0
  1182. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Texteditor_Snippet.tid +4 -4
  1183. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 1-2-3.tid +2 -1
  1184. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 3-4-5.tid +2 -1
  1185. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 4-5-6.tid +2 -1
  1186. package/editions/tw5.com/tiddlers/variables/modifier Variable.tid +25 -3
  1187. package/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +88 -7
  1188. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Delete Tiddler.tid +5 -1
  1189. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid +15 -3
  1190. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Put Tiddler.tid +5 -1
  1191. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ path-prefix.tid +7 -2
  1192. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ port.tid +2 -1
  1193. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tiddler-render-type.tid +2 -2
  1194. package/editions/tw5.com/tiddlers/widgets/$__docs_anyField.tid +8 -0
  1195. package/editions/tw5.com/tiddlers/widgets/ActionConfirmWidget.tid +40 -0
  1196. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid +26 -0
  1197. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid +28 -0
  1198. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +28 -0
  1199. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +28 -0
  1200. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Template.tid +8 -0
  1201. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid +39 -6
  1202. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +7 -5
  1203. package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +53 -3
  1204. package/editions/tw5.com/tiddlers/widgets/ActionLogWidget.tid +50 -0
  1205. package/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +34 -0
  1206. package/editions/tw5.com/tiddlers/widgets/ActionSendMessageWidget.tid +3 -1
  1207. package/editions/tw5.com/tiddlers/widgets/ActionSetMultipleFieldsWidget.tid +31 -0
  1208. package/editions/tw5.com/tiddlers/widgets/ActionWidget Execution Modes.tid +49 -0
  1209. package/editions/tw5.com/tiddlers/widgets/ActionWidgets.tid +10 -7
  1210. package/editions/tw5.com/tiddlers/widgets/BrowseWidget.tid +4 -2
  1211. package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +13 -11
  1212. package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +3 -2
  1213. package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +3 -2
  1214. package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +3 -2
  1215. package/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid +13 -4
  1216. package/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +13 -18
  1217. package/editions/tw5.com/tiddlers/widgets/EditWidget.tid +10 -4
  1218. package/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +93 -0
  1219. package/editions/tw5.com/tiddlers/widgets/FieldMangler Widget (Examples).tid +10 -0
  1220. package/editions/tw5.com/tiddlers/widgets/FieldManglerWidget.tid +3 -3
  1221. package/editions/tw5.com/tiddlers/widgets/FieldsWidget.tid +3 -0
  1222. package/editions/tw5.com/tiddlers/widgets/ImportVariablesWidget.tid +1 -1
  1223. package/editions/tw5.com/tiddlers/widgets/JSONTiddlerWidget.tid +22 -0
  1224. package/editions/tw5.com/tiddlers/widgets/Keyboard Codes.tid +27 -0
  1225. package/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid +26 -3
  1226. package/editions/tw5.com/tiddlers/widgets/LetWidget.tid +57 -0
  1227. package/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid +3 -3
  1228. package/editions/tw5.com/tiddlers/widgets/LinkWidget.tid +7 -2
  1229. package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +34 -1
  1230. package/editions/tw5.com/tiddlers/widgets/ListopsData.tid +1 -0
  1231. package/editions/tw5.com/tiddlers/widgets/LogWidget.tid +45 -0
  1232. package/editions/tw5.com/tiddlers/widgets/MacroCallWidget.tid +21 -7
  1233. package/editions/tw5.com/tiddlers/widgets/MessageCatcherWidget.tid +46 -0
  1234. package/editions/tw5.com/tiddlers/widgets/MessageHandlerWidgets.tid +13 -0
  1235. package/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid +7 -5
  1236. package/editions/tw5.com/tiddlers/widgets/RadioWidget Example.tid +35 -0
  1237. package/editions/tw5.com/tiddlers/widgets/RadioWidget ExampleTemplate.tid +7 -0
  1238. package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +11 -6
  1239. package/editions/tw5.com/tiddlers/widgets/RangeWidget Example.tid +53 -0
  1240. package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +16 -9
  1241. package/editions/tw5.com/tiddlers/widgets/RevealWidget.tid +9 -8
  1242. package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +27 -3
  1243. package/editions/tw5.com/tiddlers/widgets/SetMultipleVariablesWidget.tid +33 -0
  1244. package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +64 -35
  1245. package/editions/tw5.com/tiddlers/widgets/The Extended Listops Filters.tid +2 -1
  1246. package/editions/tw5.com/tiddlers/widgets/TriggeringWidgets.tid +13 -0
  1247. package/editions/tw5.com/tiddlers/widgets/VarsWidget.tid +7 -5
  1248. package/editions/tw5.com/tiddlers/widgets/ViewWidget.tid +7 -2
  1249. package/editions/tw5.com/tiddlers/wikitext/Anchor Links using HTML.tid +200 -0
  1250. package/editions/tw5.com/tiddlers/wikitext/Block Quotes in WikiText.tid +1 -1
  1251. package/editions/tw5.com/tiddlers/wikitext/Code Blocks in WikiText.tid +2 -2
  1252. package/editions/tw5.com/tiddlers/wikitext/Formatting in WikiText.tid +7 -7
  1253. package/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +27 -2
  1254. package/editions/tw5.com/tiddlers/wikitext/Images in WikiText.tid +17 -2
  1255. package/editions/tw5.com/tiddlers/wikitext/Linking in WikiText.tid +1 -1
  1256. package/editions/tw5.com/tiddlers/wikitext/Lists in WikiText.tid +2 -2
  1257. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -2
  1258. package/editions/tw5.com/tiddlers/workingwithtw/Creating and editing tiddlers.tid +6 -6
  1259. package/editions/tw5.com/tiddlers/workingwithtw/Creating journal tiddlers.tid +3 -3
  1260. package/editions/tw5.com/tiddlers/workingwithtw/Navigating between open tiddlers.tid +1 -1
  1261. package/editions/tw5.com/tiddlers/workingwithtw/Performance.tid +11 -3
  1262. package/editions/tw5.com/tiddlers/workingwithtw/Sharing your tiddlers with others.tid +5 -4
  1263. package/editions/tw5.com/tiddlers/workingwithtw/Using links to navigate between tiddlers.tid +2 -2
  1264. package/editions/tw5.com/tiddlywiki.info +5 -3
  1265. package/editions/tw5.com-docs/tiddlywiki.info +2 -1
  1266. package/editions/tw5.com-server/tiddlywiki.info +2 -1
  1267. package/editions/tw5tank/tiddlywiki.info +3 -2
  1268. package/editions/xlsx-utils/tiddlers/samples/Presidents and Justices.xlsx and b/package/editions/xlsx-utils/tiddlers/samples/Presidents → Justices.xlsx +0 -0
  1269. package/editions/zh-Hans/tiddlywiki.info +2 -1
  1270. package/editions/zh-Hant/tiddlywiki.info +2 -1
  1271. package/languages/ar-PS/Buttons.multids +161 -0
  1272. package/languages/ar-PS/ControlPanel.multids +258 -0
  1273. package/languages/ar-PS/CoreReadMe.tid +8 -0
  1274. package/languages/ar-PS/Dates.multids +90 -0
  1275. package/languages/ar-PS/Docs/ModuleTypes.multids +2 -0
  1276. package/languages/ar-PS/Docs/PaletteColours.multids +2 -0
  1277. package/languages/ar-PS/EditTemplate.multids +27 -0
  1278. package/languages/ar-PS/Exporters.multids +5 -0
  1279. package/languages/ar-PS/Fields.multids +2 -0
  1280. package/languages/ar-PS/Filters.multids +2 -0
  1281. package/languages/ar-PS/GettingStarted.tid +17 -0
  1282. package/languages/ar-PS/Import.multids +17 -0
  1283. package/languages/ar-PS/Misc.multids +77 -0
  1284. package/languages/ar-PS/Modals/Download.tid +13 -0
  1285. package/languages/ar-PS/Modals/SaveInstructions.tid +22 -0
  1286. package/languages/ar-PS/NewJournal.multids +4 -0
  1287. package/languages/ar-PS/Notifications.multids +8 -0
  1288. package/languages/ar-PS/Search.multids +23 -0
  1289. package/languages/ar-PS/SideBar.multids +17 -0
  1290. package/languages/ar-PS/SiteSubtitle.tid +3 -0
  1291. package/languages/ar-PS/SiteTitle.tid +3 -0
  1292. package/languages/ar-PS/ThemeTweaks.multids +2 -0
  1293. package/languages/ar-PS/TiddlerInfo.multids +26 -0
  1294. package/languages/ar-PS/icon.tid +7 -0
  1295. package/languages/ar-PS/plugin.info +9 -0
  1296. package/languages/ca-ES/Buttons.multids +24 -24
  1297. package/languages/ca-ES/ControlPanel.multids +39 -24
  1298. package/languages/ca-ES/Dates.multids +43 -43
  1299. package/languages/ca-ES/Docs/ModuleTypes.multids +2 -2
  1300. package/languages/ca-ES/Docs/PaletteColours.multids +2 -0
  1301. package/languages/ca-ES/EditTemplate.multids +7 -1
  1302. package/languages/ca-ES/Fields.multids +13 -12
  1303. package/languages/ca-ES/Filters.multids +1 -1
  1304. package/languages/ca-ES/Help/notfound.tid +1 -1
  1305. package/languages/ca-ES/Import.multids +11 -0
  1306. package/languages/ca-ES/Misc.multids +23 -3
  1307. package/languages/ca-ES/Search.multids +1 -1
  1308. package/languages/ca-ES/SideBar.multids +1 -1
  1309. package/languages/ca-ES/Snippets/TableOfContents.tid +2 -2
  1310. package/languages/ca-ES/ThemeTweaks.multids +17 -17
  1311. package/languages/cs-CZ/Fields.multids +0 -1
  1312. package/languages/cs-CZ/Misc.multids +0 -1
  1313. package/languages/da-DK/Fields.multids +0 -1
  1314. package/languages/da-DK/Misc.multids +0 -1
  1315. package/languages/de-DE/ControlPanel.multids +49 -27
  1316. package/languages/de-DE/CoreReadMe.tid +1 -1
  1317. package/languages/de-DE/Docs/ModuleTypes.multids +2 -1
  1318. package/languages/de-DE/Docs/PaletteColours.multids +2 -0
  1319. package/languages/de-DE/EditTemplate.multids +9 -1
  1320. package/languages/de-DE/Fields.multids +2 -1
  1321. package/languages/de-DE/Help/help.tid +1 -1
  1322. package/languages/de-DE/Help/import.tid +1 -1
  1323. package/languages/de-DE/Help/listen.tid +3 -2
  1324. package/languages/de-DE/Help/render.tid +2 -1
  1325. package/languages/de-DE/Help/rendertiddlers.tid +2 -2
  1326. package/languages/de-DE/Help/{savewikifolder.tig → savewikifolder.tid} +0 -0
  1327. package/languages/de-DE/Import.multids +18 -7
  1328. package/languages/de-DE/Misc.multids +26 -4
  1329. package/languages/de-DE/NewJournal.multids +0 -1
  1330. package/languages/de-DE/NewJournalTags.tid +3 -0
  1331. package/languages/de-DE/Search.multids +1 -1
  1332. package/languages/de-DE/ThemeTweaks.multids +2 -2
  1333. package/languages/de-DE/TiddlerInfo.multids +1 -1
  1334. package/languages/el-GR/Fields.multids +0 -1
  1335. package/languages/el-GR/Misc.multids +1 -2
  1336. package/languages/es-ES/Buttons.multids +29 -6
  1337. package/languages/es-ES/ControlPanel.multids +97 -37
  1338. package/languages/es-ES/Dates.multids +11 -1
  1339. package/languages/es-ES/Docs/ModuleTypes.multids +8 -0
  1340. package/languages/es-ES/Docs/PaletteColours.multids +109 -0
  1341. package/languages/es-ES/EditTemplate.multids +18 -11
  1342. package/languages/es-ES/Exporters.multids +2 -2
  1343. package/languages/es-ES/Fields.multids +7 -5
  1344. package/languages/es-ES/Filters.multids +9 -7
  1345. package/languages/es-ES/GettingStarted.tid +1 -0
  1346. package/languages/es-ES/Help/deletetiddlers.tid +8 -0
  1347. package/languages/es-ES/Help/fetch.tid +38 -0
  1348. package/languages/es-ES/Help/import.tid +24 -0
  1349. package/languages/es-ES/Help/init.tid +1 -7
  1350. package/languages/es-ES/Help/listen.tid +35 -0
  1351. package/languages/es-ES/Help/load.tid +5 -2
  1352. package/languages/es-ES/Help/makelibrary.tid +1 -3
  1353. package/languages/es-ES/Help/password.tid +2 -1
  1354. package/languages/es-ES/Help/render.tid +35 -0
  1355. package/languages/es-ES/Help/rendertiddler.tid +14 -3
  1356. package/languages/es-ES/Help/rendertiddlers.tid +6 -6
  1357. package/languages/es-ES/Help/save.tid +25 -0
  1358. package/languages/es-ES/Help/savetiddler.tid +3 -2
  1359. package/languages/es-ES/Help/savetiddlers.tid +6 -3
  1360. package/languages/es-ES/Help/savewikifolder.tid +19 -0
  1361. package/languages/es-ES/Help/server.tid +12 -8
  1362. package/languages/es-ES/Import.multids +23 -4
  1363. package/languages/es-ES/Misc.multids +68 -22
  1364. package/languages/es-ES/NewJournalTags.tid +3 -0
  1365. package/languages/es-ES/Notifications.multids +3 -1
  1366. package/languages/es-ES/Search.multids +1 -0
  1367. package/languages/es-ES/SideBar.multids +1 -0
  1368. package/languages/es-ES/ThemeTweaks.multids +42 -0
  1369. package/languages/es-ES/TiddlerInfo.multids +2 -2
  1370. package/languages/es-ES/Types/{application%2Fjavascript.tid → application_javascript.tid} +1 -0
  1371. package/languages/es-ES/Types/{application%2Fjson.tid → application_json.tid} +1 -0
  1372. package/languages/es-ES/Types/{application%2Fx-tiddler-dictionary.tid → application_x_tiddler_dictionary.tid} +1 -0
  1373. package/languages/es-ES/Types/{image%2Fgif.tid → image_gif.tid} +1 -0
  1374. package/languages/es-ES/Types/{image%2Fjpeg.tid → image_jpeg.tid} +1 -0
  1375. package/languages/es-ES/Types/{image%2Fpng.tid → image_png.tid} +1 -0
  1376. package/languages/es-ES/Types/{image%2Fsvg%2Bxml.tid → image_svg_xml.tid} +1 -0
  1377. package/languages/es-ES/Types/{image%2Fx-icon.tid → image_x-icon.tid} +1 -0
  1378. package/languages/es-ES/Types/{text%2Fcss.tid → text_css.tid} +1 -0
  1379. package/languages/es-ES/Types/{text%2Fhtml.tid → text_html.tid} +1 -0
  1380. package/languages/es-ES/Types/{text%2Fplain.tid → text_plain.tid} +1 -0
  1381. package/languages/es-ES/Types/{text%2Fvnd.tiddlywiki.tid → text_vnd.tiddlywiki.tid} +1 -0
  1382. package/languages/es-ES/Types/{text%2Fx-tiddlywiki.tid → text_x-tiddlywiki.tid} +1 -0
  1383. package/languages/es-ES/plugin.info +3 -3
  1384. package/languages/fa-IR/Misc.multids +1 -2
  1385. package/languages/fr-FR/Buttons.multids +4 -0
  1386. package/languages/fr-FR/ControlPanel.multids +21 -2
  1387. package/languages/fr-FR/Docs/ModuleTypes.multids +2 -1
  1388. package/languages/fr-FR/Docs/PaletteColours.multids +2 -0
  1389. package/languages/fr-FR/EditTemplate.multids +8 -0
  1390. package/languages/fr-FR/Fields.multids +2 -1
  1391. package/languages/fr-FR/Filters.multids +3 -2
  1392. package/languages/fr-FR/Help/listen.tid +2 -0
  1393. package/languages/fr-FR/Help/render.tid +5 -4
  1394. package/languages/fr-FR/Help/rendertiddler.tid +2 -0
  1395. package/languages/fr-FR/Help/rendertiddlers.tid +4 -2
  1396. package/languages/fr-FR/Help/savetiddler.tid +2 -0
  1397. package/languages/fr-FR/Help/savetiddlers.tid +2 -0
  1398. package/languages/fr-FR/Import.multids +21 -10
  1399. package/languages/fr-FR/Misc.multids +25 -3
  1400. package/languages/fr-FR/NewJournalTags.tid +3 -0
  1401. package/languages/fr-FR/TiddlerInfo.multids +2 -2
  1402. package/languages/he-IL/Fields.multids +0 -1
  1403. package/languages/he-IL/Misc.multids +0 -1
  1404. package/languages/hi-IN/Fields.multids +0 -1
  1405. package/languages/hi-IN/Misc.multids +0 -1
  1406. package/languages/ia-IA/Fields.multids +0 -1
  1407. package/languages/ia-IA/Misc.multids +0 -1
  1408. package/languages/it-IT/Fields.multids +0 -1
  1409. package/languages/it-IT/Misc.multids +0 -1
  1410. package/languages/ja-JP/Fields.multids +0 -1
  1411. package/languages/ja-JP/Misc.multids +0 -1
  1412. package/languages/ko-KR/Fields.multids +0 -1
  1413. package/languages/ko-KR/Misc.multids +0 -1
  1414. package/languages/nl-NL/Buttons.multids +2 -0
  1415. package/languages/nl-NL/ControlPanel.multids +32 -0
  1416. package/languages/nl-NL/Docs/PaletteColours.multids +2 -0
  1417. package/languages/nl-NL/EditTemplate.multids +4 -0
  1418. package/languages/nl-NL/Fields.multids +4 -1
  1419. package/languages/nl-NL/Filters.multids +1 -0
  1420. package/languages/nl-NL/Help/deletetiddlers.tid +8 -0
  1421. package/languages/nl-NL/Help/savewikifolder.tid +19 -0
  1422. package/languages/nl-NL/Import.multids +8 -0
  1423. package/languages/nl-NL/Misc.multids +16 -3
  1424. package/languages/pa-IN/Fields.multids +0 -1
  1425. package/languages/pa-IN/Misc.multids +0 -1
  1426. package/languages/pl-PL/Buttons.multids +189 -0
  1427. package/languages/pl-PL/ControlPanel.multids +216 -0
  1428. package/languages/pl-PL/Dates.multids +88 -0
  1429. package/languages/pl-PL/Docs/ModuleTypes.multids +30 -0
  1430. package/languages/pl-PL/Docs/PaletteColours.multids +109 -0
  1431. package/languages/pl-PL/EditTemplate.multids +38 -0
  1432. package/languages/pl-PL/Exporters.multids +7 -0
  1433. package/languages/pl-PL/Fields.multids +39 -0
  1434. package/languages/pl-PL/Filters.multids +16 -0
  1435. package/languages/pl-PL/GettingStarted.tid +17 -0
  1436. package/languages/pl-PL/Help/build.tid +12 -0
  1437. package/languages/pl-PL/Help/clearpassword.tid +8 -0
  1438. package/languages/pl-PL/Help/default.tid +22 -0
  1439. package/languages/pl-PL/Help/deletetiddlers.tid +8 -0
  1440. package/languages/pl-PL/Help/editions.tid +8 -0
  1441. package/languages/pl-PL/Help/fetch.tid +40 -0
  1442. package/languages/pl-PL/Help/help.tid +10 -0
  1443. package/languages/pl-PL/Help/import.tid +24 -0
  1444. package/languages/pl-PL/Help/init.tid +23 -0
  1445. package/languages/pl-PL/Help/listen.tid +35 -0
  1446. package/languages/pl-PL/Help/load.tid +19 -0
  1447. package/languages/pl-PL/Help/makelibrary.tid +14 -0
  1448. package/languages/pl-PL/Help/notfound.tid +3 -0
  1449. package/languages/pl-PL/Help/output.tid +11 -0
  1450. package/languages/pl-PL/Help/password.tid +10 -0
  1451. package/languages/pl-PL/Help/render.tid +35 -0
  1452. package/languages/pl-PL/Help/rendertiddler.tid +24 -0
  1453. package/languages/pl-PL/Help/rendertiddlers.tid +20 -0
  1454. package/languages/pl-PL/Help/save.tid +25 -0
  1455. package/languages/pl-PL/Help/savetiddler.tid +14 -0
  1456. package/languages/pl-PL/Help/savetiddlers.tid +16 -0
  1457. package/languages/pl-PL/Help/savewikifolder.tid +19 -0
  1458. package/languages/pl-PL/Help/server.tid +42 -0
  1459. package/languages/pl-PL/Help/setfield.tid +17 -0
  1460. package/languages/pl-PL/Help/unpackplugin.tid +8 -0
  1461. package/languages/pl-PL/Help/verbose.tid +8 -0
  1462. package/languages/pl-PL/Help/version.tid +8 -0
  1463. package/languages/pl-PL/Import.multids +35 -0
  1464. package/languages/pl-PL/Misc.multids +95 -0
  1465. package/languages/pl-PL/Modals/Download.tid +12 -0
  1466. package/languages/pl-PL/Modals/SaveInstructions.tid +21 -0
  1467. package/languages/pl-PL/NewJournal.multids +4 -0
  1468. package/languages/pl-PL/NewJournalTags.tid +3 -0
  1469. package/languages/pl-PL/Notifications.multids +6 -0
  1470. package/languages/pl-PL/Search.multids +21 -0
  1471. package/languages/pl-PL/SideBar.multids +18 -0
  1472. package/languages/pl-PL/SiteSubtitle.tid +3 -0
  1473. package/languages/pl-PL/SiteTitle.tid +3 -0
  1474. package/languages/pl-PL/Snippets/ListByTag.tid +5 -0
  1475. package/languages/pl-PL/Snippets/MacroDefinition.tid +7 -0
  1476. package/languages/pl-PL/Snippets/Table 4x3.tid +8 -0
  1477. package/languages/pl-PL/Snippets/TableOfContents.tid +9 -0
  1478. package/languages/pl-PL/ThemeTweaks.multids +42 -0
  1479. package/languages/pl-PL/TiddlerInfo.multids +22 -0
  1480. package/languages/pl-PL/Types/application_javascript.tid +5 -0
  1481. package/languages/pl-PL/Types/application_json.tid +5 -0
  1482. package/languages/pl-PL/Types/application_x_tiddler_dictionary.tid +5 -0
  1483. package/languages/pl-PL/Types/image_gif.tid +5 -0
  1484. package/languages/pl-PL/Types/image_jpeg.tid +5 -0
  1485. package/languages/pl-PL/Types/image_png.tid +5 -0
  1486. package/languages/pl-PL/Types/image_svg_xml.tid +5 -0
  1487. package/languages/pl-PL/Types/image_x-icon.tid +5 -0
  1488. package/languages/pl-PL/Types/text_css.tid +5 -0
  1489. package/languages/pl-PL/Types/text_html.tid +5 -0
  1490. package/languages/pl-PL/Types/text_plain.tid +5 -0
  1491. package/languages/pl-PL/Types/text_vnd.tiddlywiki.tid +5 -0
  1492. package/languages/pl-PL/Types/text_x-tiddlywiki.tid +5 -0
  1493. package/languages/pl-PL/icon.tid +7 -0
  1494. package/languages/pl-PL/plugin.info +8 -0
  1495. package/languages/pl-PL/readme.md +1 -0
  1496. package/languages/pt-BR/Fields.multids +0 -1
  1497. package/languages/pt-BR/Misc.multids +0 -1
  1498. package/languages/pt-PT/Buttons.multids +17 -6
  1499. package/languages/pt-PT/ControlPanel.multids +43 -4
  1500. package/languages/pt-PT/Dates.multids +33 -31
  1501. package/languages/pt-PT/Docs/ModuleTypes.multids +4 -1
  1502. package/languages/pt-PT/Docs/PaletteColours.multids +8 -6
  1503. package/languages/pt-PT/EditTemplate.multids +6 -1
  1504. package/languages/pt-PT/Fields.multids +3 -1
  1505. package/languages/pt-PT/Filters.multids +2 -0
  1506. package/languages/pt-PT/GettingStarted.tid +1 -1
  1507. package/languages/pt-PT/Help/build.tid +2 -3
  1508. package/languages/pt-PT/Help/clearpassword.tid +1 -1
  1509. package/languages/pt-PT/Help/default.tid +1 -1
  1510. package/languages/pt-PT/Help/deletetiddlers.tid +8 -0
  1511. package/languages/pt-PT/Help/editions.tid +1 -1
  1512. package/languages/pt-PT/Help/fetch.tid +38 -0
  1513. package/languages/pt-PT/Help/help.tid +1 -1
  1514. package/languages/pt-PT/Help/import.tid +24 -0
  1515. package/languages/pt-PT/Help/init.tid +1 -1
  1516. package/languages/pt-PT/Help/listen.tid +34 -0
  1517. package/languages/pt-PT/Help/load.tid +1 -1
  1518. package/languages/pt-PT/Help/makelibrary.tid +1 -1
  1519. package/languages/pt-PT/Help/output.tid +1 -2
  1520. package/languages/pt-PT/Help/password.tid +1 -2
  1521. package/languages/pt-PT/Help/render.tid +34 -0
  1522. package/languages/pt-PT/Help/rendertiddlers.tid +1 -1
  1523. package/languages/pt-PT/Help/save.tid +25 -0
  1524. package/languages/pt-PT/Help/savetiddler.tid +1 -1
  1525. package/languages/pt-PT/Help/savetiddlers.tid +1 -1
  1526. package/languages/pt-PT/Help/savewikifolder.tid +19 -0
  1527. package/languages/pt-PT/Help/server.tid +1 -1
  1528. package/languages/pt-PT/Help/setfield.tid +1 -1
  1529. package/languages/pt-PT/Help/unpackplugin.tid +2 -2
  1530. package/languages/pt-PT/Help/verbose.tid +1 -1
  1531. package/languages/pt-PT/Help/version.tid +1 -1
  1532. package/languages/pt-PT/Import.multids +8 -0
  1533. package/languages/pt-PT/Misc.multids +8 -4
  1534. package/languages/pt-PT/NewJournal.multids +1 -0
  1535. package/languages/pt-PT/Notifications.multids +2 -0
  1536. package/languages/pt-PT/Search.multids +7 -7
  1537. package/languages/pt-PT/SideBar.multids +1 -0
  1538. package/languages/pt-PT/SiteSubtitle.tid +1 -1
  1539. package/languages/pt-PT/SiteTitle.tid +1 -1
  1540. package/languages/pt-PT/ThemeTweaks.multids +2 -1
  1541. package/languages/ru-RU/Docs/Fields.multids +0 -1
  1542. package/languages/ru-RU/Misc.multids +0 -1
  1543. package/languages/sk-SK/Fields.multids +0 -1
  1544. package/languages/sk-SK/Misc.multids +0 -1
  1545. package/languages/sl-SI/Fields.multids +0 -1
  1546. package/languages/sl-SI/Misc.multids +1 -2
  1547. package/languages/sv-SE/Fields.multids +0 -1
  1548. package/languages/sv-SE/Misc.multids +0 -1
  1549. package/languages/zh-Hans/Buttons.multids +1 -1
  1550. package/languages/zh-Hans/ControlPanel.multids +45 -13
  1551. package/languages/zh-Hans/Docs/ModuleTypes.multids +2 -1
  1552. package/languages/zh-Hans/Docs/PaletteColours.multids +2 -0
  1553. package/languages/zh-Hans/EditTemplate.multids +6 -0
  1554. package/languages/zh-Hans/Fields.multids +2 -1
  1555. package/languages/zh-Hans/Help/listen.tid +4 -2
  1556. package/languages/zh-Hans/Help/render.tid +2 -2
  1557. package/languages/zh-Hans/Help/rendertiddlers.tid +2 -2
  1558. package/languages/zh-Hans/Help/save.tid +1 -1
  1559. package/languages/zh-Hans/Import.multids +18 -7
  1560. package/languages/zh-Hans/Misc.multids +28 -6
  1561. package/languages/zh-Hans/NewJournal.multids +0 -1
  1562. package/languages/zh-Hans/NewJournalTags.tid +3 -0
  1563. package/languages/zh-Hans/TiddlerInfo.multids +1 -1
  1564. package/languages/zh-Hant/Buttons.multids +1 -1
  1565. package/languages/zh-Hant/ControlPanel.multids +47 -15
  1566. package/languages/zh-Hant/Docs/ModuleTypes.multids +2 -1
  1567. package/languages/zh-Hant/Docs/PaletteColours.multids +2 -0
  1568. package/languages/zh-Hant/EditTemplate.multids +6 -0
  1569. package/languages/zh-Hant/Fields.multids +2 -1
  1570. package/languages/zh-Hant/Help/listen.tid +5 -3
  1571. package/languages/zh-Hant/Help/render.tid +2 -2
  1572. package/languages/zh-Hant/Help/rendertiddlers.tid +2 -2
  1573. package/languages/zh-Hant/Help/save.tid +1 -1
  1574. package/languages/zh-Hant/Import.multids +18 -7
  1575. package/languages/zh-Hant/Misc.multids +25 -3
  1576. package/languages/zh-Hant/NewJournal.multids +0 -1
  1577. package/languages/zh-Hant/NewJournalTags.tid +3 -0
  1578. package/languages/zh-Hant/TiddlerInfo.multids +1 -1
  1579. package/license +1 -1
  1580. package/licenses/cla-individual.md +102 -0
  1581. package/package.json +4 -2
  1582. package/plugins/tiddlywiki/async/plugin.info +3 -3
  1583. package/plugins/tiddlywiki/aws/docs/help.tid +2 -2
  1584. package/plugins/tiddlywiki/aws/docs/readme.tid +1 -0
  1585. package/plugins/tiddlywiki/aws/modules/encodings.js +27 -0
  1586. package/plugins/tiddlywiki/aws/plugin.info +4 -4
  1587. package/plugins/tiddlywiki/bibtex/deserializer.js +3 -2
  1588. package/plugins/tiddlywiki/bibtex/files/LICENSE +0 -0
  1589. package/plugins/tiddlywiki/bibtex/files/README.md +0 -0
  1590. package/plugins/tiddlywiki/bibtex/files/bibtexParse.js +42 -26
  1591. package/plugins/tiddlywiki/bibtex/plugin.info +2 -2
  1592. package/plugins/tiddlywiki/blog/plugin.info +2 -3
  1593. package/plugins/tiddlywiki/browser-sniff/plugin.info +2 -3
  1594. package/plugins/tiddlywiki/browser-storage/config/SaveFilter.tid +1 -1
  1595. package/plugins/tiddlywiki/browser-storage/plugin.info +2 -3
  1596. package/plugins/tiddlywiki/browser-storage/settings.tid +1 -1
  1597. package/plugins/tiddlywiki/browser-storage/startup.js +1 -1
  1598. package/plugins/tiddlywiki/cecily/plugin.info +1 -2
  1599. package/plugins/tiddlywiki/classictools/plugin.info +2 -3
  1600. package/plugins/tiddlywiki/codemirror/config/theme.tid +1 -1
  1601. package/plugins/tiddlywiki/codemirror/config-language.multids +8 -1
  1602. package/plugins/tiddlywiki/codemirror/engine.js +101 -6
  1603. package/plugins/tiddlywiki/codemirror/files/addon/dialog/dialog.js +1 -1
  1604. package/plugins/tiddlywiki/codemirror/files/addon/selection/activeline.js +1 -1
  1605. package/plugins/tiddlywiki/codemirror/files/codemirror.css +1 -1
  1606. package/plugins/tiddlywiki/codemirror/files/codemirror.js +1 -1
  1607. package/plugins/tiddlywiki/codemirror/plugin.info +2 -2
  1608. package/plugins/tiddlywiki/codemirror/readme.tid +2 -13
  1609. package/plugins/tiddlywiki/codemirror/settings/cursorBlinkRate.tid +7 -0
  1610. package/plugins/tiddlywiki/codemirror/settings/indentUnit.tid +7 -0
  1611. package/plugins/tiddlywiki/codemirror/settings/indentWithTabs.tid +8 -0
  1612. package/plugins/tiddlywiki/codemirror/settings/smartIndent.tid +8 -0
  1613. package/plugins/tiddlywiki/codemirror/settings/tabSize.tid +7 -0
  1614. package/plugins/tiddlywiki/codemirror/styles.tid +84 -1
  1615. package/plugins/tiddlywiki/codemirror/ui/controlpanel/settings.tid +1 -1
  1616. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/anyword-hint.js +2 -2
  1617. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/css-hint.js +2 -2
  1618. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/html-hint.js +2 -2
  1619. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/javascript-hint.js +2 -2
  1620. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/show-hint.js +2 -2
  1621. package/plugins/tiddlywiki/codemirror-autocomplete/files/addon/hint/xml-hint.js +2 -2
  1622. package/plugins/tiddlywiki/codemirror-autocomplete/plugin.info +4 -2
  1623. package/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/closebrackets.js +2 -2
  1624. package/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/matchbrackets.js +2 -2
  1625. package/plugins/tiddlywiki/codemirror-closebrackets/plugin.info +3 -2
  1626. package/plugins/tiddlywiki/codemirror-closetag/files/addon/edit/closetag.js +2 -2
  1627. package/plugins/tiddlywiki/codemirror-closetag/files/addon/fold/xml-fold.js +2 -2
  1628. package/plugins/tiddlywiki/codemirror-closetag/plugin.info +3 -2
  1629. package/plugins/tiddlywiki/codemirror-fullscreen-editing/files/addon/fullscreen/fullscreen.js +2 -2
  1630. package/plugins/tiddlywiki/codemirror-fullscreen-editing/plugin.info +3 -2
  1631. package/plugins/tiddlywiki/codemirror-keymap-emacs/files/keymap/emacs.js +2 -2
  1632. package/plugins/tiddlywiki/codemirror-keymap-emacs/plugin.info +3 -2
  1633. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/addons/comment/comment.js +3 -0
  1634. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/keymap/sublime.js +2 -2
  1635. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/tiddlywiki.files +7 -0
  1636. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/plugin.info +4 -2
  1637. package/plugins/tiddlywiki/codemirror-keymap-vim/files/keymap/vim.js +2 -2
  1638. package/plugins/tiddlywiki/codemirror-keymap-vim/plugin.info +4 -2
  1639. package/plugins/tiddlywiki/codemirror-mode-css/files/mode/css/css.js +2 -2
  1640. package/plugins/tiddlywiki/codemirror-mode-css/plugin.info +3 -2
  1641. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/files/addon/mode/multiplex.js +2 -2
  1642. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/files/mode/htmlembedded/htmlembedded.js +2 -2
  1643. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/plugin.info +4 -2
  1644. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/files/mode/htmlmixed/htmlmixed.js +2 -2
  1645. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/plugin.info +4 -2
  1646. package/plugins/tiddlywiki/codemirror-mode-javascript/files/mode/javascript/javascript.js +2 -2
  1647. package/plugins/tiddlywiki/codemirror-mode-javascript/plugin.info +3 -2
  1648. package/plugins/tiddlywiki/codemirror-mode-markdown/files/mode/markdown/markdown.js +2 -2
  1649. package/plugins/tiddlywiki/codemirror-mode-markdown/plugin.info +4 -2
  1650. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/plugin.info +3 -2
  1651. package/plugins/tiddlywiki/codemirror-mode-xml/files/mode/xml/xml.js +2 -2
  1652. package/plugins/tiddlywiki/codemirror-mode-xml/plugin.info +3 -2
  1653. package/plugins/tiddlywiki/codemirror-search-replace/files/addon/search/jump-to-line.js +2 -2
  1654. package/plugins/tiddlywiki/codemirror-search-replace/files/addon/search/search.js +2 -2
  1655. package/plugins/tiddlywiki/codemirror-search-replace/files/addon/search/searchcursor.js +2 -2
  1656. package/plugins/tiddlywiki/codemirror-search-replace/plugin.info +3 -2
  1657. package/plugins/tiddlywiki/comments/header-view-template-segment.tid +26 -2
  1658. package/plugins/tiddlywiki/comments/plugin.info +2 -3
  1659. package/plugins/tiddlywiki/consent-banner/banner.tid +28 -0
  1660. package/plugins/tiddlywiki/consent-banner/blocked-embed-message-wrapper.tid +13 -0
  1661. package/plugins/tiddlywiki/consent-banner/buttons/accept.tid +6 -0
  1662. package/plugins/tiddlywiki/consent-banner/buttons/decline.tid +6 -0
  1663. package/plugins/tiddlywiki/consent-banner/config/DefaultColourMappings.multids +15 -0
  1664. package/plugins/tiddlywiki/consent-banner/config/block-embedded-content.tid +2 -0
  1665. package/plugins/tiddlywiki/consent-banner/config/blocked-embed-message.tid +7 -0
  1666. package/plugins/tiddlywiki/consent-banner/config/blocked-raw-message.tid +19 -0
  1667. package/plugins/tiddlywiki/consent-banner/config/buttons.multids +8 -0
  1668. package/plugins/tiddlywiki/consent-banner/config/cookie-consent-required.tid +2 -0
  1669. package/plugins/tiddlywiki/consent-banner/config/greeting-message.tid +19 -0
  1670. package/plugins/tiddlywiki/consent-banner/config/tv-block-embedded-content.tid +4 -0
  1671. package/plugins/tiddlywiki/consent-banner/config.tid +48 -0
  1672. package/plugins/tiddlywiki/consent-banner/docs.tid +64 -0
  1673. package/plugins/tiddlywiki/consent-banner/plugin.info +6 -0
  1674. package/plugins/tiddlywiki/consent-banner/raw-widget.js +69 -0
  1675. package/plugins/tiddlywiki/consent-banner/readme.tid +10 -0
  1676. package/plugins/tiddlywiki/consent-banner/startup.js +107 -0
  1677. package/plugins/tiddlywiki/consent-banner/styles.tid +111 -0
  1678. package/plugins/tiddlywiki/consent-banner/youtube-macros.tid +21 -0
  1679. package/plugins/tiddlywiki/d3/plugin.info +2 -3
  1680. package/plugins/tiddlywiki/dynannotate/docs/readme.tid +108 -0
  1681. package/plugins/tiddlywiki/dynannotate/examples/combined.tid +111 -0
  1682. package/plugins/tiddlywiki/dynannotate/examples/example-annotation-1.tid +5 -0
  1683. package/plugins/tiddlywiki/dynannotate/examples/example-annotation-2.tid +5 -0
  1684. package/plugins/tiddlywiki/dynannotate/examples/example-annotation-3.tid +5 -0
  1685. package/plugins/tiddlywiki/dynannotate/examples/example-annotation-4.json +10 -0
  1686. package/plugins/tiddlywiki/dynannotate/examples/example-text.multids +19 -0
  1687. package/plugins/tiddlywiki/dynannotate/examples/examples.tid +4 -0
  1688. package/plugins/tiddlywiki/dynannotate/examples/simple.tid +100 -0
  1689. package/plugins/tiddlywiki/dynannotate/examples/snippets.tid +56 -0
  1690. package/plugins/tiddlywiki/dynannotate/examples/viewtemplate-text.tid +98 -0
  1691. package/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid +29 -0
  1692. package/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +418 -0
  1693. package/plugins/tiddlywiki/dynannotate/modules/selection-tracker.js +116 -0
  1694. package/plugins/tiddlywiki/dynannotate/modules/textmap.js +177 -0
  1695. package/plugins/tiddlywiki/dynannotate/plugin.info +9 -0
  1696. package/plugins/tiddlywiki/dynannotate/styles.tid +44 -0
  1697. package/plugins/tiddlywiki/dynaview/examples/reveal-on-scroll.tid +4 -4
  1698. package/plugins/tiddlywiki/dynaview/examples/zoomable-tooltips.tid +1 -1
  1699. package/plugins/tiddlywiki/dynaview/macros.tid +4 -4
  1700. package/plugins/tiddlywiki/dynaview/plugin.info +1 -2
  1701. package/plugins/tiddlywiki/evernote/plugin.info +1 -2
  1702. package/plugins/tiddlywiki/external-attachments/plugin.info +2 -3
  1703. package/plugins/tiddlywiki/external-attachments/startup.js +15 -12
  1704. package/plugins/tiddlywiki/filesystem/filesystemadaptor.js +68 -34
  1705. package/plugins/tiddlywiki/filesystem/plugin.info +2 -3
  1706. package/plugins/tiddlywiki/freelinks/config-Freelinks-Enable.tid +2 -0
  1707. package/plugins/tiddlywiki/freelinks/macros-view.tid +8 -0
  1708. package/plugins/tiddlywiki/freelinks/plain-text.js +62 -0
  1709. package/plugins/tiddlywiki/freelinks/plugin.info +6 -0
  1710. package/plugins/tiddlywiki/freelinks/readme.tid +42 -0
  1711. package/plugins/tiddlywiki/freelinks/settings.tid +7 -0
  1712. package/plugins/tiddlywiki/freelinks/styles.tid +8 -0
  1713. package/plugins/tiddlywiki/freelinks/text.js +168 -0
  1714. package/plugins/tiddlywiki/github-fork-ribbon/plugin.info +3 -2
  1715. package/plugins/tiddlywiki/github-fork-ribbon/usage.tid +2 -0
  1716. package/plugins/tiddlywiki/googleanalytics/googleanalytics.js +37 -13
  1717. package/plugins/tiddlywiki/googleanalytics/plugin.info +2 -3
  1718. package/plugins/tiddlywiki/googleanalytics/readme.tid +2 -0
  1719. package/plugins/tiddlywiki/hammerjs/plugin.info +3 -3
  1720. package/plugins/tiddlywiki/help/help.tid +10 -8
  1721. package/plugins/tiddlywiki/help/plugin.info +2 -3
  1722. package/plugins/tiddlywiki/highlight/files/highlight.pack.js +2 -2
  1723. package/plugins/tiddlywiki/highlight/plugin.info +3 -3
  1724. package/plugins/tiddlywiki/highlight/readme.tid +11 -1
  1725. package/plugins/tiddlywiki/highlight/styles.tid +79 -1
  1726. package/plugins/tiddlywiki/innerwiki/innerwiki.js +2 -1
  1727. package/plugins/tiddlywiki/innerwiki/plugin.info +2 -3
  1728. package/plugins/tiddlywiki/innerwiki/template.tid +0 -4
  1729. package/plugins/tiddlywiki/internals/plugin.info +1 -2
  1730. package/plugins/tiddlywiki/jasmine/files/jasmine/MIT.LICENSE +20 -0
  1731. package/plugins/tiddlywiki/jasmine/files/jasmine/lib/command.js +283 -0
  1732. package/plugins/tiddlywiki/jasmine/files/jasmine/lib/filters/console_spec_filter.js +10 -0
  1733. package/plugins/tiddlywiki/jasmine/files/jasmine/lib/jasmine.js +263 -0
  1734. package/plugins/tiddlywiki/jasmine/files/jasmine/lib/reporters/completion_reporter.js +29 -0
  1735. package/plugins/tiddlywiki/jasmine/files/jasmine/lib/reporters/console_reporter.js +232 -0
  1736. package/plugins/tiddlywiki/jasmine/files/{MIT.LICENSE → jasmine-core/MIT.LICENSE} +1 -1
  1737. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/boot.js +158 -0
  1738. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/jasmine-html.js +620 -0
  1739. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/jasmine.css +128 -0
  1740. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/jasmine.js +7033 -0
  1741. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/json2.js +489 -0
  1742. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core/node_boot.js +38 -0
  1743. package/plugins/tiddlywiki/jasmine/files/jasmine-core/lib/jasmine-core.js +37 -0
  1744. package/plugins/tiddlywiki/jasmine/files/tiddlywiki.files +41 -18
  1745. package/plugins/tiddlywiki/jasmine/jasmine-plugin.js +119 -57
  1746. package/plugins/tiddlywiki/jasmine/plugin.info +2 -3
  1747. package/plugins/tiddlywiki/jasmine/readme.tid +1 -1
  1748. package/plugins/tiddlywiki/jasmine/update-packages.sh +30 -0
  1749. package/plugins/tiddlywiki/jszip/docs.tid +43 -0
  1750. package/plugins/tiddlywiki/jszip/examples.tid +36 -0
  1751. package/plugins/tiddlywiki/jszip/plugin.info +4 -4
  1752. package/plugins/tiddlywiki/jszip/readme.tid +1 -1
  1753. package/plugins/tiddlywiki/jszip/startup.js +104 -0
  1754. package/plugins/tiddlywiki/katex/config.tid +17 -0
  1755. package/plugins/tiddlywiki/katex/files/README.md +79 -100
  1756. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.ttf +0 -0
  1757. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff +0 -0
  1758. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  1759. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  1760. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  1761. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  1762. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  1763. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  1764. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  1765. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  1766. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  1767. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  1768. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  1769. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  1770. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  1771. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.ttf +0 -0
  1772. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff +0 -0
  1773. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff2 +0 -0
  1774. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  1775. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  1776. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  1777. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.ttf +0 -0
  1778. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff +0 -0
  1779. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff2 +0 -0
  1780. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.ttf +0 -0
  1781. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff +0 -0
  1782. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff2 +0 -0
  1783. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  1784. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  1785. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  1786. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.ttf +0 -0
  1787. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff +0 -0
  1788. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff2 +0 -0
  1789. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  1790. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  1791. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  1792. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  1793. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  1794. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  1795. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  1796. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  1797. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  1798. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.ttf +0 -0
  1799. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff +0 -0
  1800. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff2 +0 -0
  1801. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.ttf +0 -0
  1802. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff +0 -0
  1803. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  1804. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.ttf +0 -0
  1805. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff +0 -0
  1806. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  1807. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.ttf +0 -0
  1808. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff +0 -0
  1809. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  1810. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.ttf +0 -0
  1811. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff +0 -0
  1812. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  1813. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  1814. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  1815. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  1816. package/plugins/tiddlywiki/katex/files/katex.css +1079 -0
  1817. package/plugins/tiddlywiki/katex/files/katex.js +4917 -3543
  1818. package/plugins/tiddlywiki/katex/files/katex.min.css +1 -1
  1819. package/plugins/tiddlywiki/katex/files/katex.min.js +1 -1
  1820. package/plugins/tiddlywiki/katex/files/katex.without-font-face.min.css +1 -1
  1821. package/plugins/tiddlywiki/katex/files/mhchem.min.js +1 -1683
  1822. package/plugins/tiddlywiki/katex/files/tiddlywiki.files +3 -1
  1823. package/plugins/tiddlywiki/katex/plugin.info +4 -5
  1824. package/plugins/tiddlywiki/katex/readme.tid +1 -1
  1825. package/plugins/tiddlywiki/katex/styles.tid +7 -1
  1826. package/plugins/tiddlywiki/katex/ui/config/macro.tid +137 -0
  1827. package/plugins/tiddlywiki/katex/wrapper.js +19 -13
  1828. package/plugins/tiddlywiki/markdown/config_breaks.tid +3 -0
  1829. package/plugins/tiddlywiki/markdown/config_linkNewWindow.tid +3 -0
  1830. package/plugins/tiddlywiki/markdown/config_linkify.tid +3 -0
  1831. package/plugins/tiddlywiki/markdown/config_quotes.tid +3 -0
  1832. package/plugins/tiddlywiki/markdown/config_renderWikiText.tid +3 -0
  1833. package/plugins/tiddlywiki/markdown/config_renderWikiTextPragma.tid +3 -0
  1834. package/plugins/tiddlywiki/markdown/config_typographer.tid +3 -0
  1835. package/plugins/tiddlywiki/markdown/files/remarkable-katex-license.txt +21 -0
  1836. package/plugins/tiddlywiki/markdown/files/remarkable-katex.js +137 -0
  1837. package/plugins/tiddlywiki/markdown/files/remarkable-katex.min.js +20 -0
  1838. package/plugins/tiddlywiki/markdown/files/remarkable-license.txt +22 -0
  1839. package/plugins/tiddlywiki/markdown/files/remarkable.js +1 -0
  1840. package/plugins/tiddlywiki/markdown/files/tiddlywiki.files +26 -2
  1841. package/plugins/tiddlywiki/markdown/new-markdown.tid +3 -2
  1842. package/plugins/tiddlywiki/markdown/plugin.info +3 -4
  1843. package/plugins/tiddlywiki/markdown/readme.tid +1 -1
  1844. package/plugins/tiddlywiki/markdown/usage.tid +15 -9
  1845. package/plugins/tiddlywiki/markdown/wrapper.js +297 -57
  1846. package/plugins/tiddlywiki/menubar/config-DefaultColourMappings.multids +4 -0
  1847. package/plugins/tiddlywiki/menubar/config-MenuItemsVisibility.multids +5 -0
  1848. package/plugins/tiddlywiki/menubar/config-TableOfContentsTag.tid +2 -0
  1849. package/plugins/tiddlywiki/menubar/config-breakpoint.tid +2 -0
  1850. package/plugins/tiddlywiki/menubar/config.tid +37 -0
  1851. package/plugins/tiddlywiki/menubar/items/contents.tid +11 -0
  1852. package/plugins/tiddlywiki/menubar/items/hamburger.tid +17 -0
  1853. package/plugins/tiddlywiki/menubar/items/pagecontrols.tid +19 -0
  1854. package/plugins/tiddlywiki/menubar/items/search.tid +56 -0
  1855. package/plugins/tiddlywiki/menubar/items/server.tid +14 -0
  1856. package/plugins/tiddlywiki/menubar/items/sidebar.tid +11 -0
  1857. package/plugins/tiddlywiki/menubar/items/topleftbar.tid +11 -0
  1858. package/plugins/tiddlywiki/menubar/items/toprightbar.tid +12 -0
  1859. package/plugins/tiddlywiki/menubar/menu.tid +68 -0
  1860. package/plugins/tiddlywiki/menubar/overrides/core-ui-PageTemplate-topleftbar.tid +3 -0
  1861. package/plugins/tiddlywiki/menubar/overrides/core-ui-PageTemplate-toprightbar.tid +3 -0
  1862. package/plugins/tiddlywiki/menubar/plugin.info +6 -0
  1863. package/plugins/tiddlywiki/menubar/readme.tid +30 -0
  1864. package/plugins/tiddlywiki/menubar/styles.tid +222 -0
  1865. package/plugins/tiddlywiki/menubar/tags-MenuBar.tid +2 -0
  1866. package/plugins/tiddlywiki/mobiledragdrop/plugin.info +2 -2
  1867. package/plugins/tiddlywiki/nodewebkitsaver/plugin.info +2 -3
  1868. package/plugins/tiddlywiki/pluginlibrary/plugin.info +1 -2
  1869. package/plugins/tiddlywiki/powered-by-tiddlywiki/plugin.info +2 -3
  1870. package/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid +3 -4
  1871. package/plugins/tiddlywiki/qrcode/plugin.info +2 -2
  1872. package/plugins/tiddlywiki/railroad/files/railroad-diagrams.css +10 -4
  1873. package/plugins/tiddlywiki/railroad/files/tiddlywiki.files +1 -1
  1874. package/plugins/tiddlywiki/railroad/plugin.info +2 -2
  1875. package/plugins/tiddlywiki/railroad/wrapper.js +1 -1
  1876. package/plugins/tiddlywiki/savetrail/plugin.info +2 -3
  1877. package/plugins/tiddlywiki/savetrail/savetrail.js +4 -4
  1878. package/plugins/tiddlywiki/sax/plugin.info +2 -2
  1879. package/plugins/tiddlywiki/share/DefaultTiddlers.tid +3 -0
  1880. package/plugins/tiddlywiki/share/SiteSubtitle.tid +3 -0
  1881. package/plugins/tiddlywiki/share/SiteTitle.tid +3 -0
  1882. package/plugins/tiddlywiki/share/above-story.tid +4 -0
  1883. package/plugins/tiddlywiki/share/base-url.tid +2 -0
  1884. package/plugins/tiddlywiki/share/exclusions.tid +2 -0
  1885. package/plugins/tiddlywiki/share/filter.tid +2 -0
  1886. package/plugins/tiddlywiki/share/plugin.info +6 -0
  1887. package/plugins/tiddlywiki/share/pluginreloadwarning.tid +3 -0
  1888. package/plugins/tiddlywiki/share/rawmarkup.js +114 -0
  1889. package/plugins/tiddlywiki/share/rawmarkup.tid +8 -0
  1890. package/plugins/tiddlywiki/share/readme.tid +9 -0
  1891. package/plugins/tiddlywiki/share/settings.tid +7 -0
  1892. package/plugins/tiddlywiki/share/startup-warning.css +87 -0
  1893. package/plugins/tiddlywiki/share/startup-warning.css.meta +2 -0
  1894. package/plugins/tiddlywiki/share/startup-warning.html +47 -0
  1895. package/plugins/tiddlywiki/share/startup-warning.html.meta +2 -0
  1896. package/plugins/tiddlywiki/share/styles.tid +17 -0
  1897. package/plugins/tiddlywiki/share/wizard.tid +71 -0
  1898. package/plugins/tiddlywiki/stacked-view/plugin.info +1 -2
  1899. package/plugins/tiddlywiki/tahoelafs/plugin.info +1 -2
  1900. package/plugins/tiddlywiki/text-slicer/plugin.info +3 -3
  1901. package/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler.tid +2 -2
  1902. package/plugins/tiddlywiki/text-slicer/templates/plain/tiddler.tid +10 -10
  1903. package/plugins/tiddlywiki/text-slicer/templates/static/tiddler.tid +10 -10
  1904. package/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid +6 -4
  1905. package/plugins/tiddlywiki/tiddlyweb/config-tiddlers-filter.tid +2 -0
  1906. package/plugins/tiddlywiki/tiddlyweb/configOfficialPluginLibrary.tid +7 -0
  1907. package/plugins/tiddlywiki/tiddlyweb/css-tiddler.tid +7 -0
  1908. package/plugins/tiddlywiki/tiddlyweb/html-div-skinny-tiddler.tid +9 -0
  1909. package/plugins/tiddlywiki/tiddlyweb/html-div-tiddler.tid +1 -1
  1910. package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +4 -0
  1911. package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +4 -0
  1912. package/plugins/tiddlywiki/tiddlyweb/icon-cloud.tid +4 -0
  1913. package/plugins/tiddlywiki/tiddlyweb/javascript-tiddler.tid +7 -0
  1914. package/plugins/tiddlywiki/tiddlyweb/plugin.info +4 -4
  1915. package/plugins/tiddlywiki/tiddlyweb/save-offline.tid +2 -1
  1916. package/plugins/tiddlywiki/tiddlyweb/save-wiki-button.tid +26 -0
  1917. package/plugins/tiddlywiki/tiddlyweb/styles.tid +44 -0
  1918. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-copy-logs.tid +6 -0
  1919. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-login-status.tid +9 -0
  1920. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-login.tid +8 -0
  1921. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-logout.tid +8 -0
  1922. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid +9 -0
  1923. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-save-snapshot.tid +9 -0
  1924. package/plugins/tiddlywiki/tiddlyweb/tags-syncerdropdown.tid +2 -0
  1925. package/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +41 -14
  1926. package/plugins/tiddlywiki/translators/plugin.info +1 -2
  1927. package/plugins/tiddlywiki/tw2parser/plugin.info +2 -2
  1928. package/plugins/tiddlywiki/tw2parser/wikitextparser.js +1 -1
  1929. package/plugins/tiddlywiki/tw5.com-docs/plugin.info +1 -2
  1930. package/plugins/tiddlywiki/twitter/plugin.info +2 -3
  1931. package/plugins/tiddlywiki/twitter/startup.js +27 -0
  1932. package/plugins/tiddlywiki/upgrade/config.js +1 -0
  1933. package/plugins/tiddlywiki/upgrade/plugin.info +1 -2
  1934. package/plugins/tiddlywiki/xlsx-utils/deserializer.js +2 -1
  1935. package/plugins/tiddlywiki/xlsx-utils/importer.js +6 -5
  1936. package/plugins/tiddlywiki/xlsx-utils/plugin.info +3 -3
  1937. package/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js +3 -2
  1938. package/plugins/tiddlywiki/xmldom/plugin.info +2 -3
  1939. package/readme.md +4 -16
  1940. package/themes/tiddlywiki/snowwhite/base.tid +5 -1
  1941. package/themes/tiddlywiki/starlight/styles.tid +6 -6
  1942. package/themes/tiddlywiki/tight/base.tid +9 -5
  1943. package/themes/tiddlywiki/vanilla/ThemeTweaks.tid +7 -3
  1944. package/themes/tiddlywiki/vanilla/base.tid +580 -121
  1945. package/themes/tiddlywiki/vanilla/reset.tid +169 -294
  1946. package/themes/tiddlywiki/vanilla/settings.multids +1 -1
  1947. package/.travis.yml +0 -34
  1948. package/bin/travis-push.sh +0 -20
  1949. package/core/ui/ViewTemplate/plugin.tid +0 -12
  1950. package/editions/codemirrordemo/tiddlers/cm-theme-tiddlywiki.tid +0 -56
  1951. package/editions/de-AT/tiddlers/bilder/New_Release_Banner.png.tid +0 -6
  1952. package/editions/prerelease/tiddlers/Release 5.1.22.tid +0 -14
  1953. package/editions/tw5.com/tiddlers/community/Resources.tid +0 -25
  1954. package/editions/tw5.com/tiddlers/community/examples/Obadiah.tid +0 -10
  1955. package/editions/tw5.com/tiddlers/community/resources/Hosting TiddlyWiki5 on GoogleDrive.tid +0 -13
  1956. package/editions/tw5.com/tiddlers/community/resources/How Does Twederation Work by Jed Carty.tid +0 -14
  1957. package/editions/tw5.com/tiddlers/community/resources/Plugins by Uwe Stuehler.tid +0 -13
  1958. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Jingle by Mans Martensson.tid +0 -18
  1959. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Coding.tid +0 -18
  1960. package/editions/tw5.com/tiddlers/customising/Page and tiddler layout customisation.tid +0 -60
  1961. package/editions/tw5.com/tiddlers/demonstrations/SampleAlert.tid +0 -9
  1962. package/editions/tw5.com/tiddlers/images/New Release Banner.jpg +0 -0
  1963. package/plugins/tiddlywiki/dynaview/examples/unreveal-on-scroll.tid +0 -28
  1964. package/plugins/tiddlywiki/jasmine/files/jasmine-html.js +0 -681
  1965. package/plugins/tiddlywiki/jasmine/files/jasmine.css +0 -82
  1966. package/plugins/tiddlywiki/jasmine/files/jasmine.js +0 -2600
  1967. package/plugins/tiddlywiki/jasmine/files/reporter.js +0 -276
  1968. package/plugins/tiddlywiki/markdown/dialect.tid +0 -3
  1969. package/plugins/tiddlywiki/markdown/files/markdown.js +0 -1725
  1970. package/plugins/tiddlywiki/tiddlyweb/ServerControlPanel.tid +0 -20
@@ -8,478 +8,895 @@ Tests the filtering mechanism.
8
8
  \*/
9
9
  (function(){
10
10
 
11
- /*jslint node: true, browser: true */
12
- /*global $tw: false */
13
- "use strict";
14
-
15
- describe("Filter tests", function() {
16
-
17
- // Test filter parsing
18
- it("should parse new-style rich operator suffixes", function() {
19
- expect($tw.wiki.parseFilter("[search:: four, , five,, six [operand]]")).toEqual(
20
- [ { prefix : '', operators : [ { operator : 'search', suffix : ': four, , five,, six ', suffixes : [ [ ], [ 'four', 'five', 'six' ] ], operand : 'operand' } ] } ]
21
- );
22
- expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
23
- [ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operand : 'operand' } ] } ]
24
- );
25
- expect($tw.wiki.parseFilter("[search: one, two ,three :[operand]]")).toEqual(
26
- [ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three :', suffixes : [ [ 'one', 'two', 'three' ], [ ] ], operand : 'operand' } ] } ]
27
- );
28
- expect($tw.wiki.parseFilter("[search: one, two ,three : four, , five,, six [operand]]")).toEqual(
29
- [ { prefix : '', operators : [ { operator : 'search', suffix : ' one, two ,three : four, , five,, six ', suffixes : [ [ 'one', 'two', 'three' ], [ 'four', 'five', 'six' ] ], operand : 'operand' } ] } ]
30
- );
31
- expect($tw.wiki.parseFilter("[search: , : [operand]]")).toEqual(
32
- [ { prefix : '', operators : [ { operator : 'search', suffix : ' , : ', suffixes : [ [ ], [ ] ], operand : 'operand' } ] } ]
33
- );
34
- });
35
-
36
- describe("With no indexers", function() {
37
- var wiki = setupWiki({enableIndexers: []});
38
- it("should not create indexes when requested not to",function() {
39
- expect(wiki.getIndexer("FieldIndexer")).toBe(null);
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
+ );
40
36
  });
41
- runTests(wiki);
42
- });
43
-
44
- describe("With all indexers", function() {
45
- var wiki = setupWiki();
46
- if(wiki.getIndexer("FieldIndexer")) {
47
- wiki.getIndexer("FieldIndexer").setMaxIndexedValueLength(8); // Note that JoeBloggs is 9, and JohnDoe is 7
48
- }
49
- runTests(wiki);
50
- });
51
-
52
- function setupWiki(wikiOptions) {
53
- // Create a wiki
54
- var wiki = new $tw.Wiki(wikiOptions);
55
- // Add a plugin containing some shadow tiddlers
56
- var shadowTiddlers = {
57
- tiddlers: {
58
- "$:/TiddlerFive": {
59
- title: "$:/TiddlerFive",
60
- text: "Everything in federation",
61
- tags: ["two"]
62
- },
63
- "TiddlerSix": {
64
- title: "TiddlerSix",
65
- text: "Missing inaction from TiddlerOne",
66
- tags: []
67
- },
68
- "TiddlerSeventh": {
69
- title: "TiddlerSeventh",
70
- text: "",
71
- list: "TiddlerOne [[Tiddler Three]] [[a fourth tiddler]] MissingTiddler",
72
- tags: ["one"]
73
- },
74
- "Tiddler8": {
75
- title: "Tiddler8",
76
- text: "Tidd",
77
- tags: ["one"],
78
- "test-field": "JoeBloggs"
79
- }
80
- }
81
- };
82
- wiki.addTiddler({
83
- title: "$:/ShadowPlugin",
84
- text: JSON.stringify(shadowTiddlers),
85
- "plugin-type": "plugin",
86
- type: "application/json"});
87
- // Add a few tiddlers
88
- wiki.addTiddler({
89
- title: "TiddlerOne",
90
- text: "The quick brown fox in $:/TiddlerTwo",
91
- tags: ["one"],
92
- authors: "Joe Bloggs",
93
- modifier: "JoeBloggs",
94
- modified: "201304152222"});
95
- wiki.addTiddler({
96
- title: "$:/TiddlerTwo",
97
- text: "The rain in Spain\nfalls mainly on the plain and [[a fourth tiddler]]",
98
- tags: ["two"],
99
- authors: "[[John Doe]]",
100
- modifier: "JohnDoe",
101
- modified: "201304152211"});
102
- wiki.addTiddler({
103
- title: "Tiddler Three",
104
- text: "The speed of sound in light\n\nThere is no TiddlerZero but TiddlerSix",
105
- tags: ["one","two"],
106
- modifier: "JohnDoe",
107
- modified: "201304162202"});
108
- wiki.addTiddler({
109
- title: "a fourth tiddler",
110
- text: "The quality of mercy is not drained by [[Tiddler Three]]",
111
- tags: [],
112
- empty: "not",
113
- modifier: "JohnDoe"});
114
- wiki.addTiddler({
115
- title: "one",
116
- text: "This is the text of tiddler [[one]]",
117
- list: "[[Tiddler Three]] [[TiddlerOne]]",
118
- empty: "",
119
- modifier: "JohnDoe"});
120
- // Unpack plugin tiddlers
121
- wiki.readPluginInfo();
122
- wiki.registerPluginTiddlers("plugin");
123
- wiki.unpackPluginTiddlers();
124
- wiki.addIndexersToWiki();
125
- return wiki;
126
- }
127
-
128
- // Our tests
129
- function runTests(wiki) {
130
-
131
- it("should handle the then and else operators", function() {
132
- expect(wiki.filterTiddlers("[modifier[JoeBloggs]then[JaneBloggs]]").join(",")).toBe("JaneBloggs");
133
- expect(wiki.filterTiddlers("[!modifier[JoeBloggs]then[JaneBloggs]]").join(",")).toBe("JaneBloggs,JaneBloggs,JaneBloggs,JaneBloggs,JaneBloggs");
134
- expect(wiki.filterTiddlers("[modifier[DaveBloggs]then[JaneBloggs]]").join(",")).toBe("");
135
- expect(wiki.filterTiddlers("[modifier[JoeBloggs]else[JaneBloggs]]").join(",")).toBe("TiddlerOne");
136
- expect(wiki.filterTiddlers("[!modifier[JoeBloggs]else[JaneBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
137
- expect(wiki.filterTiddlers("[modifier[DaveBloggs]else[JaneBloggs]]").join(",")).toBe("JaneBloggs");
138
- });
139
-
140
- it("should handle the ~ prefix", function() {
141
- expect(wiki.filterTiddlers("[modifier[JoeBloggs]] ~[[No such tiddler]]").join(",")).toBe("TiddlerOne");
142
- expect(wiki.filterTiddlers("[modifier[JaneBloggs]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
143
- expect(wiki.filterTiddlers("~[[No such tiddler]]").join(",")).toBe("No such tiddler");
144
- expect(wiki.filterTiddlers("[my-field[present]] ~[[No such tiddler]]").join(",")).toBe("No such tiddler");
145
- });
146
-
147
- it("should handle the lookup operator", function() {
148
- expect(wiki.filterTiddlers("Six Seventh 8 +[lookup[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,,Tidd");
149
- expect(wiki.filterTiddlers("Six Seventh 8 +[lookup:8[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,Tidd,Tidd");
150
- });
151
-
152
- it("should retrieve shadow tiddlers", function() {
153
- expect(wiki.getTiddlerText("Tiddler8")).toBe("Tidd");
154
- });
155
-
156
- it("should handle the title operator", function() {
157
- expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three");
158
- expect(wiki.filterTiddlers("[!title[Tiddler Three]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,a fourth tiddler,one");
159
- expect(wiki.filterTiddlers("TiddlerOne [title[$:/TiddlerTwo]] [[Tiddler Three]] [[A Missing Tiddler]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,A Missing Tiddler");
160
- });
161
-
162
- it("should handle the field operator", function() {
163
- expect(wiki.filterTiddlers("[modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
164
- expect(wiki.filterTiddlers("[!modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
165
- expect(wiki.filterTiddlers("[!is[system]!modifier[JoeBloggs]]").join(",")).toBe("Tiddler Three,a fourth tiddler,one");
166
- expect(wiki.filterTiddlers("[field:modifier[JoeBloggs]]").join(",")).toBe("TiddlerOne");
167
- expect(wiki.filterTiddlers("[!field:modifier[JoeBloggs]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
168
- expect(wiki.filterTiddlers("[!is[system]!field:modifier[JoeBloggs]]").join(",")).toBe("Tiddler Three,a fourth tiddler,one");
169
- expect(wiki.filterTiddlers("[modifier[JohnDoe]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
170
- expect(wiki.filterTiddlers("[!modifier[JohnDoe]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne");
171
- expect(wiki.filterTiddlers("[!is[system]!modifier[JohnDoe]]").join(",")).toBe("TiddlerOne");
172
- expect(wiki.filterTiddlers("[field:modifier[JohnDoe]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
173
- expect(wiki.filterTiddlers("[!field:modifier[JohnDoe]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne");
174
- expect(wiki.filterTiddlers("[!is[system]!field:modifier[JohnDoe]]").join(",")).toBe("TiddlerOne");
175
- });
176
-
177
- it("should handle the regexp operator", function() {
178
- expect(wiki.filterTiddlers("[regexp[id]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
179
- expect(wiki.filterTiddlers("[!regexp[id]]").join(",")).toBe("$:/ShadowPlugin,one");
180
- expect(wiki.filterTiddlers("[regexp[Tid]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three");
181
- expect(wiki.filterTiddlers("[regexp[(?i)Tid]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
182
- expect(wiki.filterTiddlers("[!regexp[Tid(?i)]]").join(",")).toBe("$:/ShadowPlugin,one");
183
- });
184
-
185
- it("should handle the field operator with a regular expression operand", function() {
186
- expect(wiki.filterTiddlers("[modifier/JoeBloggs/]").join(",")).toBe("TiddlerOne");
187
- expect(wiki.filterTiddlers("[modifier/Jo/]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
188
- });
189
-
190
- it("should handle the prefix operator", function() {
191
- expect(wiki.filterTiddlers("[prefix[Tiddler]]").join(",")).toBe("TiddlerOne,Tiddler Three");
192
- expect(wiki.filterTiddlers("[prefix[nothing]]").join(",")).toBe("");
193
- });
194
-
195
- it("should handle the sort and sortcs operators", function() {
196
- expect(wiki.filterTiddlers("[sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
197
- expect(wiki.filterTiddlers("[!sort[title]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
198
- // Temporarily commenting out the following two lines because of platform differences for localeCompare between the browser and Node.js
199
- // expect(wiki.filterTiddlers("[sortcs[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler,one");
200
- // expect(wiki.filterTiddlers("[!sortcs[title]]").join(",")).toBe("one,a fourth tiddler,TiddlerOne,Tiddler Three,$:/TiddlerTwo");
201
- });
202
-
203
- it("should handle the reverse, first, last, butfirst, butlast, rest and nth operators", function() {
204
- expect(wiki.filterTiddlers("[sort[title]first[]]").join(",")).toBe("$:/ShadowPlugin");
205
- expect(wiki.filterTiddlers("[sort[title]first[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
206
- expect(wiki.filterTiddlers("[sort[title]first[8]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
207
- expect(wiki.filterTiddlers("[sort[title]first[x]]").join(",")).toBe("$:/ShadowPlugin");
208
- expect(wiki.filterTiddlers("[sort[title]last[]]").join(",")).toBe("TiddlerOne");
209
- expect(wiki.filterTiddlers("[sort[title]last[2]]").join(",")).toBe("Tiddler Three,TiddlerOne");
210
- expect(wiki.filterTiddlers("[sort[title]last[8]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
211
- expect(wiki.filterTiddlers("[sort[title]last[x]]").join(",")).toBe("TiddlerOne");
212
- expect(wiki.filterTiddlers("[sort[title]reverse[]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
213
- expect(wiki.filterTiddlers("[sort[title]reverse[x]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
214
- expect(wiki.filterTiddlers("[sort[title]butlast[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
215
- expect(wiki.filterTiddlers("[sort[title]butlast[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one");
216
- expect(wiki.filterTiddlers("[sort[title]butlast[8]]").join(",")).toBe("");
217
- expect(wiki.filterTiddlers("[sort[title]butlast[x]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
218
- expect(wiki.filterTiddlers("[sort[title]rest[]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
219
- expect(wiki.filterTiddlers("[sort[title]rest[2]]").join(",")).toBe("a fourth tiddler,one,Tiddler Three,TiddlerOne");
220
- expect(wiki.filterTiddlers("[sort[title]rest[8]]").join(",")).toBe("");
221
- expect(wiki.filterTiddlers("[sort[title]rest[x]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
222
- expect(wiki.filterTiddlers("[sort[title]nth[]]").join(",")).toBe("$:/ShadowPlugin");
223
- expect(wiki.filterTiddlers("[sort[title]nth[2]]").join(",")).toBe("$:/TiddlerTwo");
224
- expect(wiki.filterTiddlers("[sort[title]nth[8]]").join(",")).toBe("");
225
- expect(wiki.filterTiddlers("[sort[title]nth[x]]").join(",")).toBe("$:/ShadowPlugin");
226
- });
227
-
228
- it("should handle the tag operator", function() {
229
- expect(wiki.filterTiddlers("[tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
230
- expect(wiki.filterTiddlers("[!tag[one]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one");
231
- expect(wiki.filterTiddlers("[prefix[Tidd]tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
232
- expect(wiki.filterTiddlers("[!is[shadow]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
233
- expect(wiki.filterTiddlers("[all[shadows]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerFive");
234
- });
235
-
236
- it("should handle the all operator with field, has and tag operators", function() {
237
- expect(wiki.filterTiddlers("[all[shadows]tag[two]]").join(",")).toBe("$:/TiddlerFive");
238
- expect(wiki.filterTiddlers("[all[shadows+tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
239
- expect(wiki.filterTiddlers("[all[tiddlers+shadows]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,$:/TiddlerFive");
240
- expect(wiki.filterTiddlers("[all[shadows+tiddlers]]").join(",")).toBe("$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8,$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
241
- expect(wiki.filterTiddlers("[all[tiddlers+shadows]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,$:/TiddlerFive,TiddlerSix,TiddlerSeventh,Tiddler8");
242
- expect(wiki.filterTiddlers("[all[tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
243
- });
244
-
245
- it("should handle the tags operator", function() {
246
- expect(wiki.filterTiddlers("[tags[]sort[title]]").join(",")).toBe("one,two");
247
- expect(wiki.filterTiddlers("[[TiddlerOne]tags[]sort[title]]").join(",")).toBe("one");
248
- });
249
-
250
- it("should handle the match operator", function() {
251
- expect(wiki.filterTiddlers("[match[TiddlerOne]]").join(",")).toBe("TiddlerOne");
252
- expect(wiki.filterTiddlers("TiddlerOne TiddlerOne =[match[TiddlerOne]]").join(",")).toBe("TiddlerOne,TiddlerOne");
253
- expect(wiki.filterTiddlers("[!match[TiddlerOne]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
254
- expect(wiki.filterTiddlers("[match:casesensitive[tiddlerone]]").join(",")).toBe("");
255
- expect(wiki.filterTiddlers("[!match:casesensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
256
- expect(wiki.filterTiddlers("[match:caseinsensitive[tiddlerone]]").join(",")).toBe("TiddlerOne");
257
- expect(wiki.filterTiddlers("[!match:caseinsensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
258
- });
259
-
260
- it("should handle the tagging operator", function() {
261
- expect(wiki.filterTiddlers("[[one]tagging[]sort[title]]").join(",")).toBe("Tiddler Three,Tiddler8,TiddlerOne,TiddlerSeventh");
262
- expect(wiki.filterTiddlers("[[one]tagging[]]").join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
263
- expect(wiki.filterTiddlers("[[two]tagging[]sort[title]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
264
- var fakeWidget = {getVariable: function() {return "one";}};
265
- expect(wiki.filterTiddlers("[all[current]tagging[]]",fakeWidget).join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
266
- });
267
-
268
- it("should handle the untagged operator", function() {
269
- expect(wiki.filterTiddlers("[untagged[]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,one");
270
- expect(wiki.filterTiddlers("[!untagged[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
271
- });
272
-
273
- it("should handle the links operator", function() {
274
- expect(wiki.filterTiddlers("[!is[shadow]links[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerSix,TiddlerZero");
275
- expect(wiki.filterTiddlers("[all[shadows]links[]sort[title]]").join(",")).toBe("TiddlerOne");
276
- });
277
-
278
- it("should handle the backlinks operator", function() {
279
- expect(wiki.filterTiddlers("[!is[shadow]backlinks[]sort[title]]").join(",")).toBe("a fourth tiddler,one,TiddlerOne");
280
- expect(wiki.filterTiddlers("[all[shadows]backlinks[]sort[title]]").join(",")).toBe("Tiddler Three");
281
- });
282
-
283
- it("should handle the has operator", function() {
284
- expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
285
- expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,one");
286
- });
287
-
288
- it("should handle the has:field operator", function() {
289
- expect(wiki.filterTiddlers("[has:field[empty]sort[title]]").join(",")).toBe("a fourth tiddler,one");
290
- expect(wiki.filterTiddlers("[!has:field[empty]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,TiddlerOne");
291
- });
292
-
293
-
294
- it("should handle the limit operator", function() {
295
- expect(wiki.filterTiddlers("[!is[system]sort[title]limit[2]]").join(",")).toBe("a fourth tiddler,one");
296
- expect(wiki.filterTiddlers("[prefix[Tid]sort[title]limit[1]]").join(",")).toBe("Tiddler Three");
297
- expect(wiki.filterTiddlers("[prefix[Tid]sort[title]!limit[1]]").join(",")).toBe("TiddlerOne");
298
- });
299
-
300
- it("should handle the list operator", function() {
301
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
302
- expect(wiki.filterTiddlers("[tag[one]list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
303
- });
304
-
305
- it("should handle the next operator", function() {
306
- expect(wiki.filterTiddlers("[[Tiddler Three]next[TiddlerSeventh]]").join(",")).toBe("a fourth tiddler");
307
- expect(wiki.filterTiddlers("[[MissingTiddler]next[TiddlerSeventh]]").join(",")).toBe("");
308
- });
309
-
310
- it("should handle the previous operator", function() {
311
- expect(wiki.filterTiddlers("[[Tiddler Three]previous[TiddlerSeventh]]").join(",")).toBe("TiddlerOne");
312
- expect(wiki.filterTiddlers("[[TiddlerOne]previous[TiddlerSeventh]]").join(",")).toBe("");
313
- });
314
-
315
- it("should handle the search operator", function() {
316
- expect(wiki.filterTiddlers("[search[the]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
317
- expect(wiki.filterTiddlers("[search{Tiddler8}sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
318
- expect(wiki.filterTiddlers("[search:modifier[og]sort[title]]").join(",")).toBe("TiddlerOne");
319
- expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[Do]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
320
- expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[do]sort[title]]").join(",")).toBe("");
321
- expect(wiki.filterTiddlers("[search:authors:casesensitive,whitespace[John Doe]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
322
- expect(wiki.filterTiddlers("[search:modifier:regexp[(d|bl)o(ggs|e)]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
323
- expect(wiki.filterTiddlers("[search:-modifier,authors:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,Tiddler Three");
324
- expect(wiki.filterTiddlers("[search:*:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,Tiddler Three,TiddlerOne");
325
- expect(wiki.filterTiddlers("[search:text:anchored[the]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
326
- });
327
-
328
- it("should yield search results that have search tokens spread across different fields", function() {
329
- expect(wiki.filterTiddlers("[search[fox one]sort[title]]").join(",")).toBe("TiddlerOne");
330
- });
331
-
332
- it("should handle the each operator", function() {
333
- expect(wiki.filterTiddlers("[each[modifier]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,TiddlerOne");
334
- expect(wiki.filterTiddlers("[each:list-item[tags]sort[title]]").join(",")).toBe("one,two");
335
- expect(wiki.filterTiddlers("[each:list-item[authors]sort[title]]").join(",")).toBe("Bloggs,Joe,John Doe");
336
- });
337
-
338
- it("should handle the eachday operator", function() {
339
- expect(wiki.filterTiddlers("[eachday[modified]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
340
- });
341
-
342
- it("should handle the sameday operator", function() {
343
- expect(wiki.filterTiddlers("[sameday[201304152200]sort[title]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne");
344
- });
345
-
346
- describe("testing the is operator",function() {
347
-
348
- it("should handle the '[is[current]]' operator", function() {
349
- var fakeWidget = {getVariable: function() {return "Tiddler Three";}};
350
- expect(wiki.filterTiddlers("[is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
351
- expect(wiki.filterTiddlers("[[Tiddler Three]is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
352
- expect(wiki.filterTiddlers("[[$:/TiddlerTwo]is[current]]",fakeWidget).join(",")).toBe("");
353
- expect(wiki.filterTiddlers("[!is[current]sort[title]]",fakeWidget).join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,TiddlerOne");
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
+ );
354
58
  });
355
-
356
- it("should handle the '[is[system]]' operator", function() {
357
- expect(wiki.filterTiddlers("[is[system]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
358
- expect(wiki.filterTiddlers("[!is[system]sort[title]]").join(",")).toBe("a fourth tiddler,one,Tiddler Three,TiddlerOne");
59
+
60
+ describe("With no indexers", function() {
61
+ var wiki = setupWiki({enableIndexers: []});
62
+ it("should not create indexes when requested not to",function() {
63
+ expect(wiki.getIndexer("FieldIndexer")).toBe(null);
64
+ });
65
+ runTests(wiki);
359
66
  });
360
-
361
- it("should handle the '[is[shadow]]' operator", function() {
362
- expect(wiki.filterTiddlers("[all[shadows]sort[title]]").join(",")).toBe("$:/TiddlerFive,Tiddler8,TiddlerSeventh,TiddlerSix");
363
- expect(wiki.filterTiddlers("[!is[shadow]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
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);
364
74
  });
365
-
366
- it("should handle the '[is[missing]]' operator", function() {
367
- expect(wiki.filterTiddlers("[all[]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
368
- expect(wiki.filterTiddlers("[all[missing]]").join(",")).toBe("TiddlerZero");
369
- expect(wiki.filterTiddlers("[!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three,TiddlerOne");
370
- expect(wiki.filterTiddlers("[[TiddlerOne]is[missing]]").join(",")).toBe("");
371
- expect(wiki.filterTiddlers("[[TiddlerZero]is[missing]]").join(",")).toBe("TiddlerZero");
372
- expect(wiki.filterTiddlers("[!title[Tiddler Three]is[missing]]").join(",")).toBe("");
373
- expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,one,TiddlerOne");
75
+
76
+ function setupWiki(wikiOptions) {
77
+ // Create a wiki
78
+ var wiki = new $tw.Wiki(wikiOptions);
79
+ // Add a plugin containing some shadow tiddlers
80
+ var shadowTiddlers = {
81
+ tiddlers: {
82
+ "$:/TiddlerFive": {
83
+ title: "$:/TiddlerFive",
84
+ text: "Everything in federation",
85
+ tags: ["two"]
86
+ },
87
+ "TiddlerSix": {
88
+ title: "TiddlerSix",
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"
104
+ }
105
+ }
106
+ };
107
+ wiki.addTiddler({
108
+ title: "$:/ShadowPlugin",
109
+ text: JSON.stringify(shadowTiddlers),
110
+ "plugin-type": "plugin",
111
+ type: "application/json"});
112
+ // Add a few tiddlers
113
+ wiki.addTiddler({
114
+ title: "TiddlerOne",
115
+ text: "The quick brown fox in $:/TiddlerTwo",
116
+ tags: ["one"],
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!");
374
183
  });
375
-
376
- it("should handle the '[is[orphan]]' operator", function() {
377
- expect(wiki.filterTiddlers("[is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,TiddlerOne");
378
- expect(wiki.filterTiddlers("[!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,one");
379
- expect(wiki.filterTiddlers("[[TiddlerOne]is[orphan]]").join(",")).toBe("TiddlerOne");
380
- expect(wiki.filterTiddlers("[[TiddlerOne]!is[orphan]]").join(",")).toBe("");
381
- expect(wiki.filterTiddlers("[!title[Tiddler Three]is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,TiddlerOne");
382
- expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,one");
184
+
185
+ it("should handle the enlist-input operator", function() {
186
+ expect(wiki.filterTiddlers("[[one two three]enlist-input[]]").join(",")).toBe("one,two,three");
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("");
383
193
  });
384
-
385
- });
386
-
387
- it("should handle the operand prefixes", function() {
388
- expect(wiki.filterTiddlers("[prefix[Tiddler]] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
389
- });
390
-
391
- it("should handle indirect operands", function() {
392
- expect(wiki.filterTiddlers("[prefix{Tiddler8}] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
393
- expect(wiki.filterTiddlers("[modifier{Tiddler8!!test-field}] +[sort[title]]").join(",")).toBe("TiddlerOne");
394
- var fakeWidget = {getVariable: function() {return "Tiddler Three";}};
395
- expect(wiki.filterTiddlers("[modifier{!!modifier}] +[sort[title]]",fakeWidget).join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
396
- });
397
-
398
- it("should handle variable operands", function() {
399
-
400
- var widget = require("$:/core/modules/widgets/widget.js");
401
- // Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers
402
- var rootWidget = new widget.widget({
403
- type: "widget",
404
- children: [{type: "widget", children: []}]
405
- },{
406
- wiki: wiki,
407
- document: $tw.document
408
- });
409
- rootWidget.makeChildWidgets();
410
- var anchorWidget = rootWidget.children[0];
411
- rootWidget.setVariable("myVar","Tidd");
412
- rootWidget.setVariable("myVar2","JoeBloggs");
413
- expect(wiki.filterTiddlers("[prefix<myVar>] +[sort[title]]",anchorWidget).join(",")).toBe("Tiddler Three,TiddlerOne");
414
- expect(wiki.filterTiddlers("[modifier<myVar2>] +[sort[title]]",anchorWidget).join(",")).toBe("TiddlerOne");
415
- });
416
-
417
- it("should handle the before and after operators", function() {
418
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[TiddlerOne]]").join(",")).toBe("Tiddler Three");
419
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[a fourth tiddler]]").join(",")).toBe("MissingTiddler");
420
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[MissingTiddler]]").join(",")).toBe("");
421
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[TiddlerOne]]").join(",")).toBe("");
422
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[a fourth tiddler]]").join(",")).toBe("Tiddler Three");
423
- expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[MissingTiddler]]").join(",")).toBe("a fourth tiddler");
424
- });
425
-
426
- it("should handle the string operators", function() {
427
- expect(wiki.filterTiddlers("John Paul George Ringo +[length[]]").join(",")).toBe("4,4,6,5");
428
- expect(wiki.filterTiddlers("John Paul George Ringo +[uppercase[]]").join(",")).toBe("JOHN,PAUL,GEORGE,RINGO");
429
- expect(wiki.filterTiddlers("John Paul George Ringo +[lowercase[]]").join(",")).toBe("john,paul,george,ringo");
430
- 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");
431
- expect(wiki.filterTiddlers("[[John. Paul. George. Ringo.]] +[split[.]trim[]]").join(",")).toBe("John,Paul,George,Ringo,");
432
- expect(wiki.filterTiddlers("John Paul George Ringo +[split[e]]").join(",")).toBe("John,Paul,G,org,,Ringo");
433
- expect(wiki.filterTiddlers("John Paul George Ringo +[join[ ]split[e]join[ee]split[ ]]").join(",")).toBe("John,Paul,Geeorgee,Ringo");
434
- expect(wiki.filterTiddlers("[[ John ]] [[Paul ]] [[ George]] Ringo +[trim[]join[-]]").join(",")).toBe("John-Paul-George-Ringo");
435
- });
436
-
437
- it("should handle the mathematics operators", function() {
438
- expect(wiki.filterTiddlers("[[2]add[2]]").join(",")).toBe("4");
439
- expect(wiki.filterTiddlers("[[4]subtract[2]]").join(",")).toBe("2");
440
- expect(wiki.filterTiddlers("[[24]divide[8]]").join(",")).toBe("3");
441
- expect(wiki.filterTiddlers("[[355]divide[113]sign[]multiply[4]]").join(",")).toBe("4");
442
- expect(wiki.filterTiddlers("[[355]divide[113]add[0.5]round[]multiply[4]]").join(",")).toBe("16");
443
- expect(wiki.filterTiddlers("1 2 3 4 +[sum[]]").join(",")).toBe("10");
444
- expect(wiki.filterTiddlers("1 2 3 4 +[product[]]").join(",")).toBe("24");
445
- expect(wiki.filterTiddlers("1 2 3 4 +[maxall[]]").join(",")).toBe("4");
446
- expect(wiki.filterTiddlers("1 2 3 4 +[minall[]]").join(",")).toBe("1");
447
- expect(wiki.filterTiddlers("1 2 3 4 +[max[2]]").join(",")).toBe("2,2,3,4");
448
- expect(wiki.filterTiddlers("1 2 3 4 +[min[2]]").join(",")).toBe("1,2,2,2");
449
- });
450
-
451
- it("should handle the allafter operator", function() {
452
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[]]").join(",")).toBe("");
453
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[]]").join(",")).toBe("");
454
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[1]]").join(",")).toBe("2,3,4");
455
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[1]]").join(",")).toBe("1,2,3,4");
456
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[2]]").join(",")).toBe("3,4");
457
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[2]]").join(",")).toBe("2,3,4");
458
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[3]]").join(",")).toBe("4");
459
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[3]]").join(",")).toBe("3,4");
460
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[4]]").join(",")).toBe("");
461
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[4]]").join(",")).toBe("4");
462
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter[5]]").join(",")).toBe("");
463
- expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[5]]").join(",")).toBe("");
464
- });
465
-
466
- it("should handle the allbefore operator", function() {
467
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[]]").join(",")).toBe("");
468
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[]]").join(",")).toBe("");
469
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[1]]").join(",")).toBe("");
470
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[1]]").join(",")).toBe("1");
471
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[2]]").join(",")).toBe("1");
472
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[2]]").join(",")).toBe("1,2");
473
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[3]]").join(",")).toBe("1,2");
474
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[3]]").join(",")).toBe("1,2,3");
475
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[4]]").join(",")).toBe("1,2,3");
476
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[4]]").join(",")).toBe("1,2,3,4");
477
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[5]]").join(",")).toBe("");
478
- expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[5]]").join(",")).toBe("");
194
+
195
+ it("should handle the then and else operators", function() {
196
+ expect(wiki.filterTiddlers("[modifier[JoeBloggs]then[Susi]]").join(",")).toBe("Susi");
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
+ spyOn(console, 'log');
253
+ expect(wiki.filterTiddlers("[modifier/JoeBloggs/]").join(",")).toBe("TiddlerOne");
254
+ expect(console.log).toHaveBeenCalledWith("WARNING: Filter", "modifier", "has a deprecated regexp operand", /JoeBloggs/);
255
+ console.log.calls.reset();
256
+ expect(wiki.filterTiddlers("[modifier/Jo/]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one");
257
+ expect(console.log).toHaveBeenCalledWith("WARNING: Filter", "modifier", "has a deprecated regexp operand", /Jo/);
258
+ });
259
+
260
+ it("should handle the prefix operator", function() {
261
+ expect(wiki.filterTiddlers("[prefix[Tiddler]]").join(",")).toBe("TiddlerOne,Tiddler Three");
262
+ expect(wiki.filterTiddlers("[prefix[nothing]]").join(",")).toBe("");
263
+ });
264
+
265
+ it("should handle the sort and sortcs operators", function() {
266
+ expect(wiki.filterTiddlers("[sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
267
+ expect(wiki.filterTiddlers("[!sort[title]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
268
+ expect(wiki.filterTiddlers("[sort[modified]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,one,hasList,has filter,filter regexp test,$:/TiddlerTwo,TiddlerOne,Tiddler Three");
269
+ expect(wiki.filterTiddlers("[!sort[modified]]").join(",")).toBe("Tiddler Three,TiddlerOne,$:/TiddlerTwo,$:/ShadowPlugin,a fourth tiddler,one,hasList,has filter,filter regexp test");
270
+ // Temporarily commenting out the following two lines because of platform differences for localeCompare between the browser and Node.js
271
+ // expect(wiki.filterTiddlers("[sortcs[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler,one");
272
+ // expect(wiki.filterTiddlers("[!sortcs[title]]").join(",")).toBe("one,a fourth tiddler,TiddlerOne,Tiddler Three,$:/TiddlerTwo");
273
+ });
274
+
275
+ it("should handle the nsort and nsortcs operators", function() {
276
+ expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[nsort[]]").join(",")).toBe("0,1,2,3,5,add,Apple,beatle,Beta");
277
+ expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[!nsort[]]").join(",")).toBe("Beta,beatle,Apple,add,5,3,2,1,0");
278
+ expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[nsortcs[]]").join(",")).toBe("0,1,2,3,5,add,Apple,beatle,Beta");
279
+ expect(wiki.filterTiddlers("3 2 0 1 5 Apple add Beta beatle +[!nsortcs[]]").join(",")).toBe("Beta,beatle,Apple,add,5,3,2,1,0");
280
+ });
281
+
282
+ it("should handle the reverse, first, last, butfirst, butlast, rest and nth operators", function() {
283
+ expect(wiki.filterTiddlers("[sort[title]first[]]").join(",")).toBe("$:/ShadowPlugin");
284
+ expect(wiki.filterTiddlers("[sort[title]first[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
285
+ expect(wiki.filterTiddlers("[sort[title]first[8]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
286
+ expect(wiki.filterTiddlers("[sort[title]first[x]]").join(",")).toBe("$:/ShadowPlugin");
287
+ expect(wiki.filterTiddlers("[sort[title]last[]]").join(",")).toBe("TiddlerOne");
288
+ expect(wiki.filterTiddlers("[sort[title]last[2]]").join(",")).toBe("Tiddler Three,TiddlerOne");
289
+ expect(wiki.filterTiddlers("[sort[title]last[8]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
290
+ expect(wiki.filterTiddlers("[sort[title]last[x]]").join(",")).toBe("TiddlerOne");
291
+ expect(wiki.filterTiddlers("[sort[title]reverse[]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
292
+ expect(wiki.filterTiddlers("[sort[title]reverse[x]]").join(",")).toBe("TiddlerOne,Tiddler Three,one,hasList,has filter,filter regexp test,a fourth tiddler,$:/TiddlerTwo,$:/ShadowPlugin");
293
+ expect(wiki.filterTiddlers("[sort[title]butlast[]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
294
+ expect(wiki.filterTiddlers("[sort[title]butlast[2]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
295
+ expect(wiki.filterTiddlers("[sort[title]butlast[11]]").join(",")).toBe("");
296
+ expect(wiki.filterTiddlers("[sort[title]butlast[x]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three");
297
+ expect(wiki.filterTiddlers("[sort[title]rest[]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
298
+ expect(wiki.filterTiddlers("[sort[title]rest[2]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
299
+ expect(wiki.filterTiddlers("[sort[title]rest[11]]").join(",")).toBe("");
300
+ expect(wiki.filterTiddlers("[sort[title]rest[x]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
301
+ expect(wiki.filterTiddlers("[sort[title]nth[]]").join(",")).toBe("$:/ShadowPlugin");
302
+ expect(wiki.filterTiddlers("[sort[title]nth[2]]").join(",")).toBe("$:/TiddlerTwo");
303
+ expect(wiki.filterTiddlers("[sort[title]nth[11]]").join(",")).toBe("");
304
+ expect(wiki.filterTiddlers("[sort[title]nth[x]]").join(",")).toBe("$:/ShadowPlugin");
305
+ });
306
+
307
+ it("should handle the tag operator", function() {
308
+ expect(wiki.filterTiddlers("[tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
309
+ expect(wiki.filterTiddlers("[!tag[one]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one");
310
+ expect(wiki.filterTiddlers("[prefix[Tidd]tag[one]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
311
+ expect(wiki.filterTiddlers("[!is[shadow]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
312
+ expect(wiki.filterTiddlers("[all[shadows]tag[two]sort[title]]").join(",")).toBe("$:/TiddlerFive");
313
+ });
314
+
315
+ it("should handle the all operator with field, has and tag operators", function() {
316
+ expect(wiki.filterTiddlers("[all[shadows]tag[two]]").join(",")).toBe("$:/TiddlerFive");
317
+ expect(wiki.filterTiddlers("[all[shadows+tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
318
+ expect(wiki.filterTiddlers("[all[tiddlers+shadows]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,$:/TiddlerFive");
319
+ 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");
320
+ 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");
321
+ expect(wiki.filterTiddlers("[all[tiddlers]tag[two]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three");
322
+ expect(wiki.filterTiddlers("[all[orphans+tiddlers+tags]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,hasList,has filter,filter regexp test,two,one");
323
+ });
324
+
325
+ it("should handle the tags operator", function() {
326
+ expect(wiki.filterTiddlers("[tags[]sort[title]]").join(",")).toBe("one,two");
327
+ expect(wiki.filterTiddlers("[[TiddlerOne]tags[]sort[title]]").join(",")).toBe("one");
328
+ });
329
+
330
+ it("should handle the match operator", function() {
331
+ expect(wiki.filterTiddlers("[match[TiddlerOne]]").join(",")).toBe("TiddlerOne");
332
+ expect(wiki.filterTiddlers("TiddlerOne TiddlerOne =[match[TiddlerOne]]").join(",")).toBe("TiddlerOne,TiddlerOne");
333
+ expect(wiki.filterTiddlers("[!match[TiddlerOne]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
334
+ expect(wiki.filterTiddlers("[match:casesensitive[tiddlerone]]").join(",")).toBe("");
335
+ expect(wiki.filterTiddlers("[!match:casesensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
336
+ expect(wiki.filterTiddlers("[match:caseinsensitive[tiddlerone]]").join(",")).toBe("TiddlerOne");
337
+ expect(wiki.filterTiddlers("[!match:caseinsensitive[tiddlerone]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
338
+ });
339
+
340
+ it("should handle the tagging operator", function() {
341
+ expect(wiki.filterTiddlers("[[one]tagging[]sort[title]]").join(",")).toBe("Tiddler Three,Tiddler8,TiddlerOne,TiddlerSeventh");
342
+ expect(wiki.filterTiddlers("[[one]tagging[]]").join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
343
+ expect(wiki.filterTiddlers("[[two]tagging[]sort[title]]").join(",")).toBe("$:/TiddlerFive,$:/TiddlerTwo,Tiddler Three");
344
+ var fakeWidget = {getVariable: function() {return "one";}};
345
+ expect(wiki.filterTiddlers("[all[current]tagging[]]",fakeWidget).join(",")).toBe("Tiddler Three,TiddlerOne,TiddlerSeventh,Tiddler8");
346
+ });
347
+
348
+ it("should handle the untagged operator", function() {
349
+ expect(wiki.filterTiddlers("[untagged[]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
350
+ expect(wiki.filterTiddlers("[!untagged[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
351
+ });
352
+
353
+ it("should handle the links operator", function() {
354
+ expect(wiki.filterTiddlers("[!is[shadow]links[]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerSix,TiddlerZero");
355
+ expect(wiki.filterTiddlers("[all[shadows]links[]sort[title]]").join(",")).toBe("TiddlerOne");
356
+ });
357
+
358
+ it("should handle the backlinks operator", function() {
359
+ expect(wiki.filterTiddlers("[!is[shadow]backlinks[]sort[title]]").join(",")).toBe("a fourth tiddler,has filter,hasList,one,TiddlerOne");
360
+ expect(wiki.filterTiddlers("[all[shadows]backlinks[]sort[title]]").join(",")).toBe("Tiddler Three");
361
+ });
362
+
363
+ it("should handle the has operator", function() {
364
+ expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
365
+ expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
366
+ expect(wiki.filterTiddlers("[has[tags]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
367
+ expect(wiki.filterTiddlers("[!has[tags]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
368
+ });
369
+
370
+ it("should handle the has:field operator", function() {
371
+ expect(wiki.filterTiddlers("[has:field[empty]sort[title]]").join(",")).toBe("a fourth tiddler,one");
372
+ expect(wiki.filterTiddlers("[!has:field[empty]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,filter regexp test,has filter,hasList,Tiddler Three,TiddlerOne");
373
+ });
374
+
375
+
376
+ it("should handle the limit operator", function() {
377
+ expect(wiki.filterTiddlers("[!is[system]sort[title]limit[2]]").join(",")).toBe("a fourth tiddler,filter regexp test");
378
+ expect(wiki.filterTiddlers("[prefix[Tid]sort[title]limit[1]]").join(",")).toBe("Tiddler Three");
379
+ expect(wiki.filterTiddlers("[prefix[Tid]sort[title]!limit[1]]").join(",")).toBe("TiddlerOne");
380
+ });
381
+
382
+ it("should handle the list operator", function() {
383
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
384
+ expect(wiki.filterTiddlers("[tag[one]list[TiddlerSeventh]sort[title]]").join(",")).toBe("a fourth tiddler,MissingTiddler,Tiddler Three,TiddlerOne");
385
+ });
386
+
387
+ it("should handle the next operator", function() {
388
+ expect(wiki.filterTiddlers("[[Tiddler Three]next[TiddlerSeventh]]").join(",")).toBe("a fourth tiddler");
389
+ expect(wiki.filterTiddlers("[[MissingTiddler]next[TiddlerSeventh]]").join(",")).toBe("");
390
+ });
391
+
392
+ it("should handle the previous operator", function() {
393
+ expect(wiki.filterTiddlers("[[Tiddler Three]previous[TiddlerSeventh]]").join(",")).toBe("TiddlerOne");
394
+ expect(wiki.filterTiddlers("[[TiddlerOne]previous[TiddlerSeventh]]").join(",")).toBe("");
395
+ });
396
+
397
+ it("should handle the search operator", function() {
398
+ expect(wiki.filterTiddlers("[search[the]sort[title]]").join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
399
+ expect(wiki.filterTiddlers("[search{Tiddler8}sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,has filter,hasList,one,Tiddler Three,TiddlerOne");
400
+ expect(wiki.filterTiddlers("[search:modifier[og]sort[title]]").join(",")).toBe("TiddlerOne");
401
+ expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[Do]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
402
+ expect(wiki.filterTiddlers("[search:modifier,authors:casesensitive[do]sort[title]]").join(",")).toBe("");
403
+ expect(wiki.filterTiddlers("[search:authors:casesensitive,whitespace[John Doe]sort[title]]").join(",")).toBe("$:/TiddlerTwo");
404
+ expect(wiki.filterTiddlers("[search:modifier:regexp[(d|bl)o(ggs|e)]sort[title]]").join(",")).toBe("TiddlerOne");
405
+ expect(wiki.filterTiddlers("[search:-modifier,authors:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three");
406
+ expect(wiki.filterTiddlers("[search:*:[g]sort[title]]").join(",")).toBe("$:/ShadowPlugin,filter regexp test,Tiddler Three,TiddlerOne");
407
+ expect(wiki.filterTiddlers("[search:text:anchored[the]]").join(",")).toBe("TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler");
408
+ });
409
+
410
+ it("should yield search results that have search tokens spread across different fields", function() {
411
+ expect(wiki.filterTiddlers("[search[fox one]sort[title]]").join(",")).toBe("TiddlerOne");
412
+ });
413
+
414
+ it("should handle the each operator", function() {
415
+ expect(wiki.filterTiddlers("[each[modifier]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,hasList,TiddlerOne");
416
+ expect(wiki.filterTiddlers("[each:list-item[tags]sort[title]]").join(",")).toBe("one,two");
417
+ expect(wiki.filterTiddlers("[each:list-item[authors]sort[title]]").join(",")).toBe("Bloggs,Joe,John Doe");
418
+ });
419
+
420
+ it("should handle the eachday operator", function() {
421
+ expect(wiki.filterTiddlers("[eachday[modified]sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
422
+ });
423
+
424
+ it("should handle the sameday operator", function() {
425
+ expect(wiki.filterTiddlers("[sameday[201304152200]sort[title]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne");
426
+ });
427
+
428
+ describe("testing the is operator",function() {
429
+
430
+ it("should handle the '[is[current]]' operator", function() {
431
+ var fakeWidget = {getVariable: function() {return "Tiddler Three";}};
432
+ expect(wiki.filterTiddlers("[is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
433
+ expect(wiki.filterTiddlers("[[Tiddler Three]is[current]]",fakeWidget).join(",")).toBe("Tiddler Three");
434
+ expect(wiki.filterTiddlers("[[$:/TiddlerTwo]is[current]]",fakeWidget).join(",")).toBe("");
435
+ expect(wiki.filterTiddlers("[!is[current]sort[title]]",fakeWidget).join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,TiddlerOne");
436
+ });
437
+
438
+ it("should handle the '[is[system]]' operator", function() {
439
+ expect(wiki.filterTiddlers("[is[system]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo");
440
+ expect(wiki.filterTiddlers("[!is[system]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
441
+ });
442
+
443
+ it("should handle the '[is[shadow]]' operator", function() {
444
+ expect(wiki.filterTiddlers("[all[shadows]sort[title]]").join(",")).toBe("$:/TiddlerFive,Tiddler8,TiddlerSeventh,TiddlerSix");
445
+ expect(wiki.filterTiddlers("[!is[shadow]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
446
+ });
447
+
448
+ it("should handle the '[is[missing]]' operator", function() {
449
+ expect(wiki.filterTiddlers("[all[]]").join(",")).toBe("$:/ShadowPlugin,TiddlerOne,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,one,hasList,has filter,filter regexp test");
450
+ expect(wiki.filterTiddlers("[all[missing]]").join(",")).toBe("TiddlerZero");
451
+ expect(wiki.filterTiddlers("[!is[missing]sort[title]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,a fourth tiddler,filter regexp test,has filter,hasList,one,Tiddler Three,TiddlerOne");
452
+ expect(wiki.filterTiddlers("[[TiddlerOne]is[missing]]").join(",")).toBe("");
453
+ expect(wiki.filterTiddlers("[[TiddlerZero]is[missing]]").join(",")).toBe("TiddlerZero");
454
+ expect(wiki.filterTiddlers("[!title[Tiddler Three]is[missing]]").join(",")).toBe("");
455
+ 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");
456
+ });
457
+
458
+ it("should handle the '[is[orphan]]' operator", function() {
459
+ expect(wiki.filterTiddlers("[is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,TiddlerOne");
460
+ expect(wiki.filterTiddlers("[!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,one,hasList,has filter");
461
+ expect(wiki.filterTiddlers("[[TiddlerOne]is[orphan]]").join(",")).toBe("TiddlerOne");
462
+ expect(wiki.filterTiddlers("[[TiddlerOne]!is[orphan]]").join(",")).toBe("");
463
+ expect(wiki.filterTiddlers("[!title[Tiddler Three]is[orphan]sort[title]]").join(",")).toBe("a fourth tiddler,filter regexp test,TiddlerOne");
464
+ expect(wiki.filterTiddlers("[!title[Tiddler Three]!is[orphan]]").join(",")).toBe("$:/ShadowPlugin,$:/TiddlerTwo,one,hasList,has filter");
465
+ });
466
+
467
+ });
468
+
469
+ it("should handle the operand prefixes", function() {
470
+ expect(wiki.filterTiddlers("[prefix[Tiddler]] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
471
+ });
472
+
473
+ it("should handle indirect operands", function() {
474
+ expect(wiki.filterTiddlers("[prefix{Tiddler8}] +[sort[title]]").join(",")).toBe("Tiddler Three,TiddlerOne");
475
+ expect(wiki.filterTiddlers("[modifier{Tiddler8!!test-field}] +[sort[title]]").join(",")).toBe("TiddlerOne");
476
+ var fakeWidget = {wiki: wiki, getVariable: function() {return "Tiddler Three";}};
477
+ expect(wiki.filterTiddlers("[modifier{!!modifier}] +[sort[title]]",fakeWidget).join(",")).toBe("$:/TiddlerTwo,a fourth tiddler,one,Tiddler Three");
478
+ });
479
+
480
+ it("should handle variable operands", function() {
481
+
482
+ var widget = require("$:/core/modules/widgets/widget.js");
483
+ // Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers
484
+ var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
485
+ { wiki:wiki, document:$tw.document});
486
+ rootWidget.makeChildWidgets();
487
+ var anchorWidget = rootWidget.children[0];
488
+ rootWidget.setVariable("myVar","Tidd");
489
+ rootWidget.setVariable("myVar2","JoeBloggs");
490
+ expect(wiki.filterTiddlers("[prefix<myVar>] +[sort[title]]",anchorWidget).join(",")).toBe("Tiddler Three,TiddlerOne");
491
+ expect(wiki.filterTiddlers("[modifier<myVar2>] +[sort[title]]",anchorWidget).join(",")).toBe("TiddlerOne");
492
+ });
493
+
494
+ it("should handle the before and after operators", function() {
495
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[TiddlerOne]]").join(",")).toBe("Tiddler Three");
496
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[a fourth tiddler]]").join(",")).toBe("MissingTiddler");
497
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]after[MissingTiddler]]").join(",")).toBe("");
498
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[TiddlerOne]]").join(",")).toBe("");
499
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[a fourth tiddler]]").join(",")).toBe("Tiddler Three");
500
+ expect(wiki.filterTiddlers("[list[TiddlerSeventh]before[MissingTiddler]]").join(",")).toBe("a fourth tiddler");
501
+ });
502
+
503
+ it("should handle the range operator", function() {
504
+ expect(wiki.filterTiddlers("[range[10:0:2]]").join(",")).toBe("10,8,6,4,2,0");
505
+ expect(wiki.filterTiddlers("[range[10;0;2]]").join(",")).toBe("10,8,6,4,2,0");
506
+ expect(wiki.filterTiddlers("[range[1.001,5,1]]").join(",")).toBe("1.001,2.001,3.001,4.001");
507
+ expect(wiki.filterTiddlers("[range[0,10]]").join(",")).toBe("0,1,2,3,4,5,6,7,8,9,10");
508
+ expect(wiki.filterTiddlers("[range[0],[10]]").join(",")).toBe("0,1,2,3,4,5,6,7,8,9,10");
509
+ expect(wiki.filterTiddlers("[range[10,0]]").join(",")).toBe("10,9,8,7,6,5,4,3,2,1,0");
510
+ expect(wiki.filterTiddlers("[range[10],[0]]").join(",")).toBe("10,9,8,7,6,5,4,3,2,1,0");
511
+ expect(wiki.filterTiddlers("[range[0,10,2]]").join(",")).toBe("0,2,4,6,8,10");
512
+ expect(wiki.filterTiddlers("[range[0],[10],[2]]").join(",")).toBe("0,2,4,6,8,10");
513
+ expect(wiki.filterTiddlers("[range[10,0,2]]").join(",")).toBe("10,8,6,4,2,0");
514
+ expect(wiki.filterTiddlers("[range[10],[0],[2]]").join(",")).toBe("10,8,6,4,2,0");
515
+ });
516
+
517
+ it("should handle the string operators", function() {
518
+ expect(wiki.filterTiddlers("John Paul George Ringo +[length[]]").join(",")).toBe("4,4,6,5");
519
+ expect(wiki.filterTiddlers("John Paul George Ringo +[uppercase[]]").join(",")).toBe("JOHN,PAUL,GEORGE,RINGO");
520
+ expect(wiki.filterTiddlers("John Paul George Ringo +[lowercase[]]").join(",")).toBe("john,paul,george,ringo");
521
+ 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");
522
+ expect(wiki.filterTiddlers("[[John. Paul. George. Ringo.]] +[split[.]trim[]]").join(",")).toBe("John,Paul,George,Ringo,");
523
+ expect(wiki.filterTiddlers("John Paul George Ringo +[split[e]]").join(",")).toBe("John,Paul,G,org,,Ringo");
524
+ expect(wiki.filterTiddlers("John Paul George Ringo +[join[ ]split[e]join[ee]split[ ]]").join(",")).toBe("John,Paul,Geeorgee,Ringo");
525
+ // Ensure that join doesn't return null if passed empty list
526
+ expect(wiki.filterTiddlers("Test +[butlast[]join[ ]]")).toEqual([]);
527
+ // Ensure that join correctly handles empty strings in source
528
+ expect(wiki.filterTiddlers("[[]] Paul +[join[-]]").join(",")).toBe("-Paul");
529
+ expect(wiki.filterTiddlers("[[ John ]] [[Paul ]] [[ George]] Ringo +[trim[]join[-]]").join(",")).toBe("John-Paul-George-Ringo");
530
+ expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim[]]").join(",")).toBe("abc,def,ghi");
531
+ expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim:prefix[]]").join(",")).toBe("abc ,def ,ghi");
532
+ expect(wiki.filterTiddlers("[[ abc ]] [[def ]] [[ ghi]] +[trim:suffix[]]").join(",")).toBe(" abc,def, ghi");
533
+ expect(wiki.filterTiddlers("[[ abacus ]] [[ baobab ]] +[trim[ab]]").join(",")).toBe(" abacus , baobab ");
534
+ expect(wiki.filterTiddlers("[[ abacus ]] [[ baobab ]] +[trim[a]]").join(",")).toBe(" abacus , baobab ");
535
+ expect(wiki.filterTiddlers("abacus baobab +[trim[a]]").join(",")).toBe("bacus,baobab");
536
+ expect(wiki.filterTiddlers("abacus baobab +[trim[ab]]").join(",")).toBe("acus,baob");
537
+ expect(wiki.filterTiddlers("abacus baobab +[trim:prefix[ab]]").join(",")).toBe("acus,baobab");
538
+ expect(wiki.filterTiddlers("abacus baobab +[trim:suffix[ab]]").join(",")).toBe("abacus,baob");
539
+ // Trim doesn't hiccup on regexp special characters
540
+ expect(wiki.filterTiddlers("[[.*abacus.*]] [[.+baobab.+]] +[trim[.*]]").join(",")).toBe("abacus,.+baobab.+");
541
+ expect(wiki.filterTiddlers("[[.*abacus.*]] [[.+baobab.+]] +[trim[.+]]").join(",")).toBe(".*abacus.*,baobab");
542
+ });
543
+
544
+ it("should handle the mathematics operators", function() {
545
+ expect(wiki.filterTiddlers("[[2]add[2]]").join(",")).toBe("4");
546
+ expect(wiki.filterTiddlers("[[4]subtract[2]]").join(",")).toBe("2");
547
+ expect(wiki.filterTiddlers("[[24]divide[8]]").join(",")).toBe("3");
548
+ expect(wiki.filterTiddlers("[[355]divide[113]sign[]multiply[4]]").join(",")).toBe("4");
549
+ expect(wiki.filterTiddlers("[[355]divide[113]add[0.5]round[]multiply[4]]").join(",")).toBe("16");
550
+ expect(wiki.filterTiddlers("1 2 3 4 +[sum[]]").join(",")).toBe("10");
551
+ expect(wiki.filterTiddlers("1 2 3 4 +[product[]]").join(",")).toBe("24");
552
+ expect(wiki.filterTiddlers("1 2 3 4 +[maxall[]]").join(",")).toBe("4");
553
+ expect(wiki.filterTiddlers("1 2 3 4 +[minall[]]").join(",")).toBe("1");
554
+ expect(wiki.filterTiddlers("1 2 3 4 +[max[2]]").join(",")).toBe("2,2,3,4");
555
+ expect(wiki.filterTiddlers("1 2 3 4 +[min[2]]").join(",")).toBe("1,2,2,2");
556
+ });
557
+
558
+ /* listops filters */
559
+
560
+ it("should handle the allafter operator", function() {
561
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[]]").join(",")).toBe("");
562
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[]]").join(",")).toBe("");
563
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[1]]").join(",")).toBe("2,3,4");
564
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[1]]").join(",")).toBe("1,2,3,4");
565
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[2]]").join(",")).toBe("3,4");
566
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[2]]").join(",")).toBe("2,3,4");
567
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[3]]").join(",")).toBe("4");
568
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[3]]").join(",")).toBe("3,4");
569
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[4]]").join(",")).toBe("");
570
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[4]]").join(",")).toBe("4");
571
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter[5]]").join(",")).toBe("");
572
+ expect(wiki.filterTiddlers("1 2 3 4 +[allafter:include[5]]").join(",")).toBe("");
573
+ });
574
+
575
+ it("should handle the allbefore operator", function() {
576
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[]]").join(",")).toBe("");
577
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[]]").join(",")).toBe("");
578
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[1]]").join(",")).toBe("");
579
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[1]]").join(",")).toBe("1");
580
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[2]]").join(",")).toBe("1");
581
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[2]]").join(",")).toBe("1,2");
582
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[3]]").join(",")).toBe("1,2");
583
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[3]]").join(",")).toBe("1,2,3");
584
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[4]]").join(",")).toBe("1,2,3");
585
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[4]]").join(",")).toBe("1,2,3,4");
586
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore[5]]").join(",")).toBe("");
587
+ expect(wiki.filterTiddlers("1 2 3 4 +[allbefore:include[5]]").join(",")).toBe("");
588
+ });
589
+
590
+ it("should handle the append operator", function() {
591
+ expect(wiki.filterTiddlers("a b c +[append[d e]]").join(",")).toBe("a,b,c,d,e");
592
+ expect(wiki.filterTiddlers("a b c +[append:1[d e]]").join(",")).toBe("a,b,c,d");
593
+ expect(wiki.filterTiddlers("a b c +[append{TiddlerSeventh!!list}]").join(",")).toBe("a,b,c,TiddlerOne,Tiddler Three,a fourth tiddler,MissingTiddler");
594
+ expect(wiki.filterTiddlers("a b c +[append:2{TiddlerSeventh!!list}]").join(",")).toBe("a,b,c,TiddlerOne,Tiddler Three");
595
+
596
+ expect(wiki.filterTiddlers("a [[b c]] +[append{TiddlerSix!!filter}]").join(",")).toBe("a,b c,one,a a,[subfilter{hasList!!list}]");
597
+ });
598
+
599
+ it("should handle the insertbefore operator", function() {
600
+ var widget = require("$:/core/modules/widgets/widget.js");
601
+ var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
602
+ { wiki:wiki, document:$tw.document});
603
+ rootWidget.makeChildWidgets();
604
+ var anchorWidget = rootWidget.children[0];
605
+ rootWidget.setVariable("myVar","c");
606
+ rootWidget.setVariable("tidTitle","e");
607
+ rootWidget.setVariable("tidList","one tid with spaces");
608
+
609
+ expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[f]]",anchorWidget).join(",")).toBe("a,b,f,c,d,e");
610
+ expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar<tidTitle>]",anchorWidget).join(",")).toBe("a,b,e,c,d,f");
611
+ expect(wiki.filterTiddlers("a b c d e f +[insertbefore:myVar[gg gg]]",anchorWidget).join(",")).toBe("a,b,gg gg,c,d,e,f");
612
+
613
+ expect(wiki.filterTiddlers("a b c d e +[insertbefore:myVar<tidList>]",anchorWidget).join(",")).toBe("a,b,one tid with spaces,c,d,e");
614
+ expect(wiki.filterTiddlers("a b c d e f +[insertbefore:tidTitle{TiddlerOne!!tags}]",anchorWidget).join(",")).toBe("a,b,c,d,one,e,f");
615
+
616
+ // Next 2 tests do weired things, but will pass - there for compatibility reasons
617
+ expect(wiki.filterTiddlers("a b c [[with space]] +[insertbefore[b]]").join(",")).toBe("a,c,with space,b");
618
+ expect(wiki.filterTiddlers("a b c d e +[insertbefore:2[b]]").join(",")).toBe("a,c,d,e,b");
619
+ });
620
+
621
+ it("should handle the move operator", function() {
622
+ expect(wiki.filterTiddlers("a b c d e +[move[c]]").join(",")).toBe("a,b,d,c,e");
623
+ expect(wiki.filterTiddlers("a b c d e +[move:2[c]]").join(",")).toBe("a,b,d,e,c");
624
+ expect(wiki.filterTiddlers("a b c d e +[move:10[c]]").join(",")).toBe("a,b,d,e,c");
625
+ expect(wiki.filterTiddlers("a b c d e +[move:-1[c]]").join(",")).toBe("a,c,b,d,e");
626
+ expect(wiki.filterTiddlers("a b c d e +[move:-5[c]]").join(",")).toBe("c,a,b,d,e");
627
+ });
628
+
629
+ it("should handle the prepend operator", function() {
630
+ expect(wiki.filterTiddlers("a b c +[prepend[dd ee]]").join(",")).toBe("dd,ee,a,b,c");
631
+ expect(wiki.filterTiddlers("a b c +[prepend:3[ff gg]]").join(",")).toBe("ff,gg,a,b,c");
632
+ expect(wiki.filterTiddlers("a b c +[prepend:1[hh ii]]").join(",")).toBe("hh,a,b,c");
633
+ expect(wiki.filterTiddlers("a b c +[prepend:0[jj kk]]").join(",")).toBe("a,b,c");
634
+
635
+ expect(wiki.filterTiddlers("a b c +[prepend:-0[ll mm]]").join(",")).toBe("a,b,c");
636
+ expect(wiki.filterTiddlers("a b c +[prepend:-1[nn oo pp qq]]").join(",")).toBe("nn,oo,pp,a,b,c");
637
+ expect(wiki.filterTiddlers("a b c +[prepend:-2[rr ss tt uu]]").join(",")).toBe("rr,ss,a,b,c");
638
+ expect(wiki.filterTiddlers("a b c +[prepend:-4[rr ss tt uu]]").join(",")).toBe("a,b,c");
639
+ expect(wiki.filterTiddlers("a b c +[prepend:-5[vv ww xx yy]]").join(",")).toBe("a,b,c");
640
+ });
641
+
642
+ it("should handle the putafter operator", function() {
643
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter[b]]").join(",")).toBe("a,b,ee,c,dd");
644
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter:1[b]]").join(",")).toBe("a,b,ee,c,dd");
645
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter:2[b]]").join(",")).toBe("a,b,dd,ee,c");
646
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter:3[b]]").join(",")).toBe("a,b,c,dd,ee");
647
+ // It starts to duplicate elements
648
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter:4[b]]").join(",")).toBe("a,b,b,c,dd,ee");
649
+ expect(wiki.filterTiddlers("a b c dd ee +[putafter:5[b]]").join(",")).toBe("a,b,a,b,c,dd,ee");
650
+ // There are only 5 elements in the input
651
+ expect(wiki.filterTiddlers("a b c ff gg +[putafter:6[b]]").join(",")).toBe("a,b,a,b,c,ff,gg");
652
+
653
+ // -1 starts to "eat" elements for the left and duplicates b
654
+ expect(wiki.filterTiddlers("a b c hh ii +[putafter:-1[b]]").join(",")).toBe("a,b,b,c,hh,ii");
655
+ // -2 moves c, hh, ii behind b, which is not visible
656
+ expect(wiki.filterTiddlers("a b c hh ii +[putafter:-2[b]]").join(",")).toBe("a,b,c,hh,ii");
657
+ // only ii is used from input and it's moved behind b
658
+ expect(wiki.filterTiddlers("a b c hh ii +[putafter:-4[b]]").join(",")).toBe("a,b,ii,c,hh");
659
+ // wasting time, because there are only 5 elements
660
+ expect(wiki.filterTiddlers("a b c hh ii +[putafter:-5[b]]").join(",")).toBe("a,b,c,hh,ii");
661
+ // there are only 5 elements
662
+ expect(wiki.filterTiddlers("a b c hh ii +[putafter:-10[b]]").join(",")).toBe("a,b,c,hh,ii");
663
+
664
+ // use NAN uses default = 1
665
+ expect(wiki.filterTiddlers("a b c jj kk +[putafter:NAN[b]]").join(",")).toBe("a,b,kk,c,jj");
666
+ });
667
+
668
+ it("should handle the putbefore operator", function() {
669
+ expect(wiki.filterTiddlers("a b c dd +[putbefore[b]]").join(",")).toBe("a,dd,b,c");
670
+ expect(wiki.filterTiddlers("a b c ff +[putbefore:1[b]]").join(",")).toBe("a,ff,b,c");
671
+ expect(wiki.filterTiddlers("a b c gg +[putbefore:2[b]]").join(",")).toBe("a,c,gg,b");
672
+
673
+ expect(wiki.filterTiddlers("a b c [[g g]] +[putbefore:2[b]]").join(",")).toBe("a,c,g g,b");
674
+
675
+ // this one is strange
676
+ expect(wiki.filterTiddlers("a b c ee +[putbefore:0[b]]").join(",")).toBe("a,a,b,c,ee");
677
+
678
+ // b is not part of the list anymore, so it will be appended at the end ???
679
+ expect(wiki.filterTiddlers("a b c hh +[putbefore:3[b]]").join(",")).toBe("a,b,c,hh");
680
+ expect(wiki.filterTiddlers("a b c ii +[putbefore:4[b]]").join(",")).toBe("a,a,b,c,ii");
681
+
682
+ // ????
683
+ expect(wiki.filterTiddlers("a b c ii +[putbefore:10[b]]").join(",")).toBe("a,a,b,c,ii");
684
+
685
+ expect(wiki.filterTiddlers("a b c kk +[putbefore:-1[b]]").join(",")).toBe("a,b,c,kk");
686
+ expect(wiki.filterTiddlers("a b c ll +[putbefore:-2[b]]").join(",")).toBe("a,c,ll,b");
687
+
688
+ expect(wiki.filterTiddlers("a b c mm +[putbefore:-3[b]]").join(",")).toBe("a,mm,b,c");
689
+
690
+ expect(wiki.filterTiddlers("a b c nn +[putbefore:-10[b]]").join(",")).toBe("a,b,c,nn");
691
+ });
692
+
693
+ it("should handle the putfirst operator", function() {
694
+ expect(wiki.filterTiddlers("a b c +[putfirst[a b]]").join(",")).toBe("c,a,b");
695
+ expect(wiki.filterTiddlers("a b c +[putfirst[]]").join(",")).toBe("c,a,b");
696
+ expect(wiki.filterTiddlers("a b c +[putfirst:2[]]").join(",")).toBe("b,c,a");
697
+ expect(wiki.filterTiddlers("a b c +[putfirst:3[]]").join(",")).toBe("a,b,c");
698
+ expect(wiki.filterTiddlers("a b c +[putfirst:4[]]").join(",")).toBe("a,b,c");
699
+ expect(wiki.filterTiddlers("a b c +[putfirst:-0[]]").join(",")).toBe("a,b,c");
700
+ expect(wiki.filterTiddlers("a b c +[putfirst:-1[]]").join(",")).toBe("b,c,a");
701
+ expect(wiki.filterTiddlers("a b c +[putfirst:-2[]]").join(",")).toBe("c,a,b");
702
+ expect(wiki.filterTiddlers("a b c +[putfirst:-4[]]").join(",")).toBe("a,b,c");
703
+ });
704
+
705
+ it("should handle the putlast operator", function() {
706
+ expect(wiki.filterTiddlers("a b c +[putlast[d e]]").join(",")).toBe("b,c,a");
707
+ expect(wiki.filterTiddlers("a b c +[putlast[]]").join(",")).toBe("b,c,a");
708
+ expect(wiki.filterTiddlers("a b c +[putlast:1[]]").join(",")).toBe("b,c,a");
709
+ expect(wiki.filterTiddlers("a b c +[putlast:2[]]").join(",")).toBe("c,a,b");
710
+ expect(wiki.filterTiddlers("a b c +[putlast:3[]]").join(",")).toBe("a,b,c");
711
+ expect(wiki.filterTiddlers("a b c +[putlast:4[]]").join(",")).toBe("a,b,c");
712
+ expect(wiki.filterTiddlers("a b c +[putlast:-0[]]").join(",")).toBe("a,b,c");
713
+ expect(wiki.filterTiddlers("a b c +[putlast:0[]]").join(",")).toBe("a,b,c");
714
+ expect(wiki.filterTiddlers("a b c +[putlast:-1[]]").join(",")).toBe("c,a,b");
715
+ expect(wiki.filterTiddlers("a b c +[putlast:-2[]]").join(",")).toBe("b,c,a");
716
+ expect(wiki.filterTiddlers("a b c +[putlast:-4[]]").join(",")).toBe("a,b,c");
717
+ });
718
+
719
+ it("should handle the remove operator", function() {
720
+ expect(wiki.filterTiddlers("a b c +[remove[d e]]").join(",")).toBe("a,b,c");
721
+ expect(wiki.filterTiddlers("a b c +[remove[a]]").join(",")).toBe("b,c");
722
+ expect(wiki.filterTiddlers("a b c +[remove[c b a]]").join(",")).toBe("");
723
+ });
724
+
725
+ it("should handle the replace operator", function() {
726
+ expect(wiki.filterTiddlers("a b c dd +[replace[a]]").join(",")).toBe("dd,b,c");
727
+ expect(wiki.filterTiddlers("a b c dd ee +[replace:2[a]]").join(",")).toBe("dd,ee,b,c");
728
+ expect(wiki.filterTiddlers("a b c dd ee +[replace:5[c]]").join(",")).toBe("a,b,a,b,c,dd,ee");
729
+
730
+ // strange things happen.
731
+ expect(wiki.filterTiddlers("a b c dd ee +[replace:-1[c]]").join(",")).toBe("a,b,b,c,dd,ee");
732
+ expect(wiki.filterTiddlers("a b c dd ee +[replace:-2[c]]").join(",")).toBe("a,b,c,dd,ee");
733
+ expect(wiki.filterTiddlers("a b c dd ee +[replace:-2[ee]]").join(",")).toBe("a,b,c,dd,c,dd,ee");
734
+ });
735
+
736
+ it("should handle the sortby operator", function() {
737
+ expect(wiki.filterTiddlers("a b c +[sortby[d e]]").join(",")).toBe("a,b,c");
738
+ expect(wiki.filterTiddlers("a b c +[sortby[b c a]]").join(",")).toBe("b,c,a");
739
+ expect(wiki.filterTiddlers("aa a b c +[sortby[b c a cc]]").join(",")).toBe("aa,b,c,a");
740
+ expect(wiki.filterTiddlers("a bb b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a");
741
+ expect(wiki.filterTiddlers("a bb cc b c +[sortby[b c a cc]]").join(",")).toBe("bb,b,c,a,cc");
742
+
743
+ expect(wiki.filterTiddlers("b a b c +[sortby[]]").join(",")).toBe("a,b,c");
744
+ expect(wiki.filterTiddlers("b a b c +[sortby[a b b c]]").join(",")).toBe("a,b,c");
745
+ expect(wiki.filterTiddlers("b a b c +[sortby[b a c b]]").join(",")).toBe("b,a,c");
746
+ });
747
+
748
+ it("should handle the sortan operator", function() {
749
+ expect(wiki.filterTiddlers("b a c +[sortan[]]").join(",")).toBe("a,b,c");
750
+ expect(wiki.filterTiddlers("b2 a3 a1 b1 c2 a2 c3 b3 c1 +[sortan[]]").join(",")).toBe("a1,a2,a3,b1,b2,b3,c1,c2,c3");
751
+ expect(wiki.filterTiddlers("b2 a10 c10 a1 b1 c2 a2 b10 c1 +[sortan[]]").join(",")).toBe("a1,a2,a10,b1,b2,b10,c1,c2,c10");
752
+ expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
753
+ });
754
+
755
+ it("should handle the sortan operator sorting on date fields", function() {
756
+ expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[modified]]").join(",")).toBe("$:/TiddlerTwo,TiddlerOne,Tiddler Three");
757
+ expect(wiki.filterTiddlers("hasList TiddlerOne $:/TiddlerTwo [[Tiddler Three]] +[sortan[modified]]").join(",")).toBe("hasList,$:/TiddlerTwo,TiddlerOne,Tiddler Three");
758
+ });
759
+
760
+ it("should handle the slugify operator", function() {
761
+ expect(wiki.filterTiddlers("[[Joe Bloggs]slugify[]]").join(",")).toBe("joe-bloggs");
762
+ expect(wiki.filterTiddlers("[[Joe Bloggs2]slugify[]]").join(",")).toBe("joe-bloggs2");
763
+ expect(wiki.filterTiddlers("[[@£$%^&*((]slugify[]]").join(",")).toBe("64-163-36-37-94-38-42-40-40");
764
+ expect(wiki.filterTiddlers("One one ONE O!N!E +[slugify[]]").join(",")).toBe("one,one,one,one");
765
+ expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo +[slugify[]]").join(",")).toBe("tiddler-one,tiddler-two");
766
+ });
767
+
768
+ it("should handle the sortsub operator", function() {
769
+ var widget = require("$:/core/modules/widgets/widget.js");
770
+ var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
771
+ { wiki:wiki, document:$tw.document});
772
+ rootWidget.makeChildWidgets();
773
+ var anchorWidget = rootWidget.children[0];
774
+ rootWidget.setVariable("sort1","[length[]]");
775
+ rootWidget.setVariable("sort2","[get[text]else[]length[]]");
776
+ rootWidget.setVariable("sort3","[{!!value}divide{!!cost}]");
777
+ rootWidget.setVariable("sort4","[{!!title}]");
778
+ expect(wiki.filterTiddlers("[sortsub:number<sort1>]",anchorWidget).join(",")).toBe("one,hasList,TiddlerOne,has filter,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test");
779
+ expect(wiki.filterTiddlers("[!sortsub:number<sort1>]",anchorWidget).join(",")).toBe("filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,TiddlerOne,has filter,hasList,one");
780
+ expect(wiki.filterTiddlers("[sortsub:string<sort1>]",anchorWidget).join(",")).toBe("TiddlerOne,has filter,$:/TiddlerTwo,Tiddler Three,$:/ShadowPlugin,a fourth tiddler,filter regexp test,one,hasList");
781
+ expect(wiki.filterTiddlers("[!sortsub:string<sort1>]",anchorWidget).join(",")).toBe("hasList,one,filter regexp test,a fourth tiddler,$:/ShadowPlugin,$:/TiddlerTwo,Tiddler Three,TiddlerOne,has filter");
782
+ expect(wiki.filterTiddlers("[sortsub:number<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test,$:/ShadowPlugin");
783
+ expect(wiki.filterTiddlers("[!sortsub:number<sort2>]",anchorWidget).join(",")).toBe("$:/ShadowPlugin,filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,has filter,hasList,TiddlerOne,one");
784
+ expect(wiki.filterTiddlers("[sortsub:string<sort2>]",anchorWidget).join(",")).toBe("one,TiddlerOne,hasList,has filter,$:/ShadowPlugin,a fourth tiddler,Tiddler Three,$:/TiddlerTwo,filter regexp test");
785
+ expect(wiki.filterTiddlers("[!sortsub:string<sort2>]",anchorWidget).join(",")).toBe("filter regexp test,$:/TiddlerTwo,Tiddler Three,a fourth tiddler,$:/ShadowPlugin,has filter,hasList,TiddlerOne,one");
786
+ expect(wiki.filterTiddlers("[[TiddlerOne]] [[$:/TiddlerTwo]] [[Tiddler Three]] [[a fourth tiddler]] +[!sortsub:number<sort3>]",anchorWidget).join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne,a fourth tiddler");
787
+ 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");
788
+ });
789
+
790
+ it("should handle the toggle operator", function() {
791
+ expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] +[toggle[one]]").join(",")).toBe("two");
792
+ expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] -[[one]] +[toggle[one]]").join(",")).toBe("two,one");
793
+ expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] +[toggle[three],[four]]").join(",")).toBe("one,two,three");
794
+ expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] [[three]] +[toggle[three],[four]]").join(",")).toBe("one,two,four");
795
+ expect(wiki.filterTiddlers("[[Tiddler Three]tags[]] [[three]] [[four]] +[toggle[three],[five]]").join(",")).toBe("one,two,five,four");
796
+ });
797
+
798
+ it("should handle multiple operands for search-replace", function() {
799
+ var widget = require("$:/core/modules/widgets/widget.js");
800
+ var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
801
+ { wiki:wiki, document:$tw.document});
802
+ rootWidget.makeChildWidgets();
803
+ var anchorWidget = rootWidget.children[0];
804
+ rootWidget.setVariable("var1","different");
805
+ rootWidget.setVariable("myregexp1","e|o");
806
+ rootWidget.setVariable("myregexp2","^Unlike ");
807
+ rootWidget.setVariable("myregexp3","^(?!Unlike).*$");
808
+ rootWidget.setVariable("name","(\w+)\s(\w+)");
809
+ 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.");
810
+ 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.");
811
+ 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.");
812
+ expect(wiki.filterTiddlers("[[Hello There]search-replace:g:regexp<myregexp1>,[]]",anchorWidget).join(",")).toBe("Hll Thr");
813
+ expect(wiki.filterTiddlers("[[Hello There]search-replace::regexp<myregexp1>,[]]",anchorWidget).join(",")).toBe("Hllo There");
814
+ expect(wiki.filterTiddlers("[[Hello There]search-replace:gi[H],[]]",anchorWidget).join(",")).toBe("ello Tere");
815
+ 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");
816
+ 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");
817
+ 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");
818
+ expect(wiki.filterTiddlers("[[This is equation $$x$$ end.]search-replace[equation $$x$$ end.],[relation $$x$$ finish.]]").join(",")).toBe("This is relation $$x$$ finish.");
819
+ 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.");
820
+ 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.");
821
+ 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.");
822
+ });
823
+
824
+ it("should handle the pad operator", function() {
825
+ expect(wiki.filterTiddlers("[[2]pad[]]").join(",")).toBe("2");
826
+ expect(wiki.filterTiddlers("[[2]pad[0]]").join(",")).toBe("2");
827
+ expect(wiki.filterTiddlers("[[2]pad[1]]").join(",")).toBe("2");
828
+ expect(wiki.filterTiddlers("2 20 +[pad[3]]").join(",")).toBe("002,020");
829
+ expect(wiki.filterTiddlers("[[2]pad[9]]").join(",")).toBe("000000002");
830
+ expect(wiki.filterTiddlers("[[2]pad[9],[a]]").join(",")).toBe("aaaaaaaa2");
831
+ expect(wiki.filterTiddlers("[[12]pad[9],[abc]]").join(",")).toBe("abcabca12");
832
+ expect(wiki.filterTiddlers("[[12]pad:suffix[9],[abc]]").join(",")).toBe("12abcabca");
833
+ });
834
+
835
+ it("should handle the escapecss operator", function() {
836
+ expect(wiki.filterTiddlers("[[Hello There]escapecss[]]").join(",")).toBe("Hello\\ There");
837
+ expect(wiki.filterTiddlers('\'"Reveal.js" by Devin Weaver[1]\' +[escapecss[]]').join(",")).toBe('\\"Reveal\\.js\\"\\ by\\ Devin\\ Weaver\\[1\\]');
838
+ expect(wiki.filterTiddlers(".foo#bar (){} '--a' 0 \0 +[escapecss[]]").join(",")).toBe("\\.foo\\#bar,\\(\\)\\{\\},--a,\\30 ,\ufffd");
839
+ expect(wiki.filterTiddlers("'' +[escapecss[]]").join(",")).toBe("");
840
+ expect(wiki.filterTiddlers("1234 +[escapecss[]]").join(",")).toBe("\\31 234");
841
+ expect(wiki.filterTiddlers("'-25' +[escapecss[]]").join(",")).toBe("-\\32 5");
842
+ expect(wiki.filterTiddlers("'-' +[escapecss[]]").join(",")).toBe("\\-");
843
+ });
844
+
845
+ it("should handle the format operator", function() {
846
+ expect(wiki.filterTiddlers("[[Hello There]] [[GettingStarted]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]] GettingStarted");
847
+ expect(wiki.filterTiddlers("[title[Hello There]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]]");
848
+ expect(wiki.filterTiddlers("[title[HelloThere]] +[format:titlelist[]]").join(" ")).toBe("HelloThere");
849
+ });
850
+
851
+ it("should handle the deserializers operator", function() {
852
+ 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");
853
+ });
854
+
855
+ it("should handle the charcode operator", function() {
856
+ expect(wiki.filterTiddlers("[charcode[9]]").join(" ")).toBe(String.fromCharCode(9));
857
+ expect(wiki.filterTiddlers("[charcode[9],[10]]").join(" ")).toBe(String.fromCharCode(9) + String.fromCharCode(10));
858
+ expect(wiki.filterTiddlers("[charcode[]]").join(" ")).toBe("");
859
+ });
860
+
861
+ it("should parse filter variable parameters", function(){
862
+ expect($tw.utils.parseFilterVariable("currentTiddler")).toEqual(
863
+ { name: 'currentTiddler', params: [ ] }
864
+ );
865
+ expect($tw.utils.parseFilterVariable("now DDMM")).toEqual(
866
+ { name: 'now', params: [{ type: 'macro-parameter', start: 3, value: 'DDMM', end: 8 }] }
867
+ );
868
+ expect($tw.utils.parseFilterVariable("now DDMM UTC")).toEqual(
869
+ { name: 'now', params: [{ type: 'macro-parameter', start: 3, value: 'DDMM', end: 8 }, { type: 'macro-parameter', start: 8, value: 'UTC', end: 12 }] }
870
+ );
871
+ expect($tw.utils.parseFilterVariable("now format:DDMM")).toEqual(
872
+ { name: 'now', params: [{ type: 'macro-parameter', name:'format', start: 3, value: 'DDMM', end: 15 }] }
873
+ );
874
+ expect($tw.utils.parseFilterVariable("now format:'DDMM'")).toEqual(
875
+ { name: 'now', params: [{ type: 'macro-parameter', name:'format', start: 3, value: 'DDMM', end: 17 }] }
876
+ );
877
+ expect($tw.utils.parseFilterVariable("nowformat:'DDMM'")).toEqual(
878
+ { name: 'nowformat:\'DDMM\'', params: [] }
879
+ );
880
+ expect($tw.utils.parseFilterVariable("nowformat:'DD MM'")).toEqual(
881
+ { name: 'nowformat:', params: [{ type: 'macro-parameter', start: 10, value: 'DD MM', end: 17 }] }
882
+ );
883
+ expect($tw.utils.parseFilterVariable("now [UTC]YYYY0MM0DD0hh0mm0ssXXX")).toEqual(
884
+ { name: 'now', params: [{ type: 'macro-parameter', start: 3, value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 31 }] }
885
+ );
886
+ expect($tw.utils.parseFilterVariable("now '[UTC]YYYY0MM0DD0hh0mm0ssXXX'")).toEqual(
887
+ { name: 'now', params: [{ type: 'macro-parameter', start: 3, value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 33 }] }
888
+ );
889
+ expect($tw.utils.parseFilterVariable("now format:'[UTC]YYYY0MM0DD0hh0mm0ssXXX'")).toEqual(
890
+ { name: 'now', params: [{ type: 'macro-parameter', start: 3, name:'format', value: '[UTC]YYYY0MM0DD0hh0mm0ssXXX', end: 40 }] }
891
+ );
892
+ expect($tw.utils.parseFilterVariable("")).toEqual(
893
+ { name: '', params: [] }
894
+ );
895
+ });
896
+
897
+ }
898
+
479
899
  });
480
-
481
- }
482
-
483
- });
484
-
485
- })();
900
+
901
+ })();
902
+