tiddlywiki 5.3.3 → 5.3.4

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 (893) hide show
  1. package/bin/build-site.sh +33 -0
  2. package/boot/boot.js +61 -26
  3. package/boot/tiddlywiki.files +32 -0
  4. package/contributing.md +1 -1
  5. package/core/copyright.tid +1 -1
  6. package/core/images/standard-layout.tid +7 -0
  7. package/core/language/en-GB/Buttons.multids +3 -0
  8. package/core/language/en-GB/ControlPanel.multids +6 -0
  9. package/core/language/en-GB/Docs/ModuleTypes.multids +1 -1
  10. package/core/language/en-GB/Docs/PaletteColours.multids +7 -0
  11. package/core/language/en-GB/Fields.multids +2 -0
  12. package/core/language/en-GB/Misc.multids +2 -2
  13. package/core/modules/commands/listen.js +1 -1
  14. package/core/modules/commands/makelibrary.js +1 -26
  15. package/core/modules/commands/save.js +3 -1
  16. package/core/modules/commands/savewikifolder.js +4 -1
  17. package/core/modules/filters/backtranscludes.js +26 -0
  18. package/core/modules/filters/crypto.js +2 -5
  19. package/core/modules/filters/strings.js +6 -3
  20. package/core/modules/filters/transcludes.js +26 -0
  21. package/core/modules/filters/x-listops.js +1 -1
  22. package/core/modules/indexers/back-indexer.js +122 -0
  23. package/core/modules/macros/csvtiddlers.js +9 -5
  24. package/core/modules/parsers/parseutils.js +1 -1
  25. package/core/modules/parsers/wikiparser/rules/codeblock.js +6 -3
  26. package/core/modules/parsers/wikiparser/rules/codeinline.js +5 -2
  27. package/core/modules/parsers/wikiparser/rules/extlink.js +2 -1
  28. package/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js +15 -5
  29. package/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js +15 -5
  30. package/core/modules/parsers/wikiparser/rules/fnprocdef.js +3 -3
  31. package/core/modules/parsers/wikiparser/rules/hardlinebreaks.js +2 -1
  32. package/core/modules/parsers/wikiparser/rules/heading.js +4 -2
  33. package/core/modules/parsers/wikiparser/rules/html.js +25 -0
  34. package/core/modules/parsers/wikiparser/rules/image.js +2 -2
  35. package/core/modules/parsers/wikiparser/rules/import.js +2 -1
  36. package/core/modules/parsers/wikiparser/rules/list.js +29 -4
  37. package/core/modules/parsers/wikiparser/rules/macrodef.js +3 -3
  38. package/core/modules/parsers/wikiparser/rules/prettyextlink.js +7 -2
  39. package/core/modules/parsers/wikiparser/rules/prettylink.js +12 -5
  40. package/core/modules/parsers/wikiparser/rules/quoteblock.js +16 -30
  41. package/core/modules/parsers/wikiparser/rules/syslink.js +6 -3
  42. package/core/modules/parsers/wikiparser/rules/table.js +2 -1
  43. package/core/modules/parsers/wikiparser/rules/typedblock.js +4 -1
  44. package/core/modules/parsers/wikiparser/rules/wikilink.js +4 -1
  45. package/core/modules/parsers/wikiparser/wikiparser.js +39 -5
  46. package/core/modules/saver-handler.js +7 -3
  47. package/core/modules/server/authenticators/header.js +3 -1
  48. package/core/modules/server/server.js +5 -0
  49. package/core/modules/startup/render.js +8 -2
  50. package/core/modules/startup/rootwidget.js +10 -2
  51. package/core/modules/startup/story.js +14 -4
  52. package/core/modules/startup/windows.js +1 -1
  53. package/core/modules/utils/dom/dom.js +3 -1
  54. package/core/modules/utils/dom/http.js +19 -7
  55. package/core/modules/utils/errors.js +23 -0
  56. package/core/modules/utils/fakedom.js +2 -2
  57. package/core/modules/utils/filesystem.js +13 -10
  58. package/core/modules/utils/repository.js +52 -0
  59. package/core/modules/utils/utils.js +11 -2
  60. package/core/modules/widgets/action-deletefield.js +7 -2
  61. package/core/modules/widgets/action-log.js +6 -1
  62. package/core/modules/widgets/button.js +1 -1
  63. package/core/modules/widgets/data.js +182 -0
  64. package/core/modules/widgets/draggable.js +2 -2
  65. package/core/modules/widgets/edit.js +1 -1
  66. package/core/modules/widgets/importvariables.js +1 -1
  67. package/core/modules/widgets/link.js +1 -1
  68. package/core/modules/widgets/parameters.js +12 -0
  69. package/core/modules/widgets/testcase.js +165 -0
  70. package/core/modules/widgets/transclude.js +24 -1
  71. package/core/modules/widgets/widget.js +23 -10
  72. package/core/modules/wiki.js +78 -2
  73. package/core/palettes/Vanilla.tid +7 -0
  74. package/core/plugin.info +2 -1
  75. package/core/templates/external-js/save-all-external-js.tid +1 -1
  76. package/core/templates/external-js/save-offline-external-js.tid +1 -1
  77. package/core/templates/save-all.tid +1 -1
  78. package/core/templates/save-empty.tid +1 -1
  79. package/core/templates/save-lazy-all.tid +1 -1
  80. package/core/templates/save-lazy-images.tid +1 -1
  81. package/core/ui/AdvancedSearch/Filter.tid +1 -4
  82. package/core/ui/AdvancedSearch/Standard.tid +5 -4
  83. package/core/ui/Components/plugin-info.tid +11 -1
  84. package/core/ui/ControlPanel/Modals/AddPlugins.tid +13 -2
  85. package/core/ui/ControlPanel/Saving/DownloadSaver.tid +11 -2
  86. package/core/ui/ControlPanel/Saving/General.tid +11 -3
  87. package/core/ui/ControlPanel/Settings/CamelCase.tid +10 -1
  88. package/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab.tid +11 -6
  89. package/core/ui/ControlPanel/Settings/DefaultSidebarTab.tid +11 -5
  90. package/core/ui/ControlPanel/Settings/EditorToolbar.tid +9 -2
  91. package/core/ui/ControlPanel/Settings/InfoPanelMode.tid +11 -3
  92. package/core/ui/ControlPanel/Settings/LinkToBehaviour.tid +15 -11
  93. package/core/ui/ControlPanel/Settings/MissingLinks.tid +6 -2
  94. package/core/ui/ControlPanel/Settings/NavigationAddressBar.tid +13 -4
  95. package/core/ui/ControlPanel/Settings/NavigationHistory.tid +11 -3
  96. package/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode.tid +17 -2
  97. package/core/ui/ControlPanel/Settings/PerformanceInstrumentation.tid +9 -1
  98. package/core/ui/ControlPanel/Settings/TitleLinks.tid +11 -3
  99. package/core/ui/ControlPanel/Settings/ToolbarButtonStyle.tid +9 -6
  100. package/core/ui/ControlPanel/Settings/ToolbarButtons.tid +17 -2
  101. package/core/ui/ControlPanel/TestCases.tid +10 -0
  102. package/core/ui/ControlPanel/TestCasesAll.tid +24 -0
  103. package/core/ui/ControlPanel/TestCasesFailed.tid +15 -0
  104. package/core/ui/ControlPanel/TiddlyWiki.tid +2 -2
  105. package/core/ui/EditTemplate/body/default.tid +7 -2
  106. package/core/ui/EditTemplate/controls.tid +12 -6
  107. package/core/ui/EditTemplate/tags.tid +52 -28
  108. package/core/ui/EditorToolbar/preview.tid +2 -2
  109. package/core/ui/KeyboardShortcuts/refresh.tid +5 -0
  110. package/core/ui/PageControls/more-page-actions.tid +37 -44
  111. package/core/ui/PageControls.tid +10 -13
  112. package/core/ui/{PageTemplate.tid → StandardLayout.tid} +1 -1
  113. package/core/ui/TestCaseTemplate.tid +19 -0
  114. package/core/ui/TestCases/DefaultTemplate.tid +91 -0
  115. package/core/ui/TestCases/DefaultTemplateSourceTabs.tid +27 -0
  116. package/core/ui/TestCases/RawJSONTemplate.tid +4 -0
  117. package/core/ui/TestCases/actions/Export.tid +4 -0
  118. package/core/ui/TestCases/actions/Import.tid +11 -0
  119. package/core/ui/ViewTemplate/title.tid +33 -26
  120. package/core/ui/ViewToolbar/more-tiddler-actions.tid +35 -43
  121. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  122. package/core/wiki/config/ShortcutInfo.multids +1 -0
  123. package/core/wiki/config/ViewTemplateBodyFilters.multids +1 -0
  124. package/core/wiki/config/shortcuts/shortcuts-mac.multids +1 -0
  125. package/core/wiki/config/shortcuts/shortcuts-not-mac.multids +1 -0
  126. package/core/wiki/macros/CSS.tid +44 -51
  127. package/core/wiki/macros/copy-to-clipboard.tid +17 -11
  128. package/core/wiki/macros/diff.tid +28 -28
  129. package/core/wiki/macros/tag-picker.tid +165 -160
  130. package/core/wiki/macros/tag.tid +3 -1
  131. package/core/wiki/macros/testcase.tid +10 -0
  132. package/core/wiki/tags/TestCaseActions.tid +2 -0
  133. package/core/wiki/tags/ViewTemplateBodyFilter.tid +1 -1
  134. package/editions/dev/tiddlers/HelloThere.tid +1 -0
  135. package/editions/dev/tiddlers/javascript-widget-tutorial/Javascript Widget Tutorial.tid +22 -16
  136. package/editions/dev/tiddlers/new/Using ES2016 for Writing Plugins.tid +18 -8
  137. package/editions/dev/tiddlers/new/Using TiddlyWiki as a library.tid +5 -0
  138. package/editions/dev/tiddlers/system/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid +6 -0
  139. package/editions/full/tiddlywiki.info +1 -0
  140. package/editions/geospatialdemo/tiddlers/DefaultTiddlers.tid +4 -0
  141. package/editions/geospatialdemo/tiddlers/Features.tid +14 -0
  142. package/editions/geospatialdemo/tiddlers/Flickr Demo.tid +27 -0
  143. package/editions/geospatialdemo/tiddlers/Geospatial Plugin Logo.png +0 -0
  144. package/editions/geospatialdemo/tiddlers/Geospatial Plugin Logo.png.meta +2 -0
  145. package/editions/geospatialdemo/tiddlers/HelloThere.tid +37 -0
  146. package/editions/geospatialdemo/tiddlers/Markers.tid +53 -0
  147. package/editions/geospatialdemo/tiddlers/SiteSubtitle.tid +3 -0
  148. package/editions/geospatialdemo/tiddlers/SiteTitle.tid +3 -0
  149. package/editions/geospatialdemo/tiddlers/cascades/ViewTemplateBodyFilters.tid +6 -0
  150. package/editions/geospatialdemo/tiddlers/cities/LimehouseTownHall.tid +9 -0
  151. package/editions/geospatialdemo/tiddlers/cities/Motovun.tid +9 -0
  152. package/editions/geospatialdemo/tiddlers/cities/NewYork.tid +8 -0
  153. package/editions/geospatialdemo/tiddlers/cities/Oxford.tid +8 -0
  154. package/editions/geospatialdemo/tiddlers/cities/Toronto.tid +8 -0
  155. package/editions/geospatialdemo/tiddlers/cities/Winchester.tid +8 -0
  156. package/editions/geospatialdemo/tiddlers/config/flickr-param.multids +5 -0
  157. package/editions/geospatialdemo/tiddlers/default-import-spec.tid +4 -0
  158. package/editions/geospatialdemo/tiddlers/favicon.png +0 -0
  159. package/editions/geospatialdemo/tiddlers/favicon.png.meta +2 -0
  160. package/editions/geospatialdemo/tiddlers/features/canada-census-subdivision-millesime.geojson +1 -0
  161. package/editions/geospatialdemo/tiddlers/features/canada-census-subdivision-millesime.geojson.meta +5 -0
  162. package/editions/geospatialdemo/tiddlers/features/denver-bikerental.tid +109 -0
  163. package/editions/geospatialdemo/tiddlers/features/denver-campus.tid +63 -0
  164. package/editions/geospatialdemo/tiddlers/features/denver-freebus.tid +56 -0
  165. package/editions/geospatialdemo/tiddlers/features/denver-lightrail.tid +30 -0
  166. package/editions/geospatialdemo/tiddlers/features/harvard-glb-volc-geojson.json +1 -0
  167. package/editions/geospatialdemo/tiddlers/features/harvard-glb-volc-geojson.json.meta +5 -0
  168. package/editions/geospatialdemo/tiddlers/features/us-states.geojson +54 -0
  169. package/editions/geospatialdemo/tiddlers/features/us-states.geojson.meta +5 -0
  170. package/editions/geospatialdemo/tiddlers/real-estate-demo/real-estate-demo.tid +99 -0
  171. package/editions/geospatialdemo/tiddlers/real-estate-demo/schema.json +22 -0
  172. package/editions/geospatialdemo/tiddlers/real-estate-demo/schema.json.meta +3 -0
  173. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRow.tid +5 -0
  174. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldAddress.tid +7 -0
  175. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldBroker.tid +7 -0
  176. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldCity.tid +7 -0
  177. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldLat.tid +8 -0
  178. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldLong.tid +8 -0
  179. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldPrice.tid +8 -0
  180. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldSalesAgent.tid +7 -0
  181. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldState.tid +7 -0
  182. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldTags.tid +7 -0
  183. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldTitle.tid +8 -0
  184. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesRowFieldZipCode.tid +7 -0
  185. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/PropertiesSheet.tid +7 -0
  186. package/editions/geospatialdemo/tiddlers/real-estate-demo/xlsx-utils-import-specs/workbook.tid +7 -0
  187. package/editions/geospatialdemo/tiddlers/sidebarlayout.tid +2 -0
  188. package/editions/geospatialdemo/tiddlers/ui/geofeature.tid +39 -0
  189. package/editions/geospatialdemo/tiddlers/ui/geomarker.tid +128 -0
  190. package/editions/geospatialdemo/tiddlywiki.info +23 -0
  191. package/editions/introduction/tiddlers/slides/CecilyMap.tid +12 -12
  192. package/editions/introduction/tiddlers/slides/blank.json +1 -1
  193. package/editions/prerelease/tiddlers/{Release 5.3.4.tid → Release 5.3.5.tid } +11 -8
  194. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  195. package/editions/prerelease/tiddlers/system/configPerformanceInstrumentation.tid +2 -0
  196. package/editions/prerelease/tiddlywiki.info +4 -1
  197. package/editions/test/tiddlers/HelloThere.tid +4 -0
  198. package/editions/test/tiddlers/tests/data/data-widget/ImportCompound.tid +27 -0
  199. package/editions/test/tiddlers/tests/data/data-widget/ImportFilter.tid +28 -0
  200. package/editions/test/tiddlers/tests/data/data-widget/ImportTiddler.tid +23 -0
  201. package/editions/test/tiddlers/tests/data/data-widget/Simple.tid +18 -0
  202. package/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables.tid +24 -0
  203. package/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables2.tid +20 -0
  204. package/editions/test/tiddlers/tests/data/functions/FunctionFilterrunVariables3.tid +21 -0
  205. package/editions/test/tiddlers/tests/data/importvariables/WithSetWidgets2.tid +1 -0
  206. package/editions/test/tiddlers/tests/data/importvariables/WithSetWidgetsAndMacros.tid +1 -0
  207. package/editions/test/tiddlers/tests/data/macros/EndInBody.tid +16 -0
  208. package/editions/test/tiddlers/tests/data/macros/IndentedEnd.tid +16 -0
  209. package/editions/test/tiddlers/tests/data/macros/MismatchedNamedEnd.tid +16 -0
  210. package/editions/test/tiddlers/tests/data/macros/WhitespaceOnlyWithEnd.tid +18 -0
  211. package/editions/test/tiddlers/tests/data/macros/WhitespaceOnlyWithEnd2.tid +15 -0
  212. package/editions/test/tiddlers/tests/data/macros/unusedtitle/basic-params-draft-exists.tid +27 -0
  213. package/editions/test/tiddlers/tests/data/macros/unusedtitle/basic-params-empty-tiddler-exists.tid +23 -0
  214. package/editions/test/tiddlers/tests/data/macros/unusedtitle/basic-params-empty.tid +20 -0
  215. package/editions/test/tiddlers/tests/data/macros/unusedtitle/basic-params-tiddlers-exist.tid +28 -0
  216. package/editions/test/tiddlers/tests/data/macros/unusedtitle/basic-params.tid +20 -0
  217. package/editions/test/tiddlers/tests/data/macros/unusedtitle/template-empty-params-tiddler-exist.tid +50 -0
  218. package/editions/test/tiddlers/tests/data/macros/unusedtitle/template-empty-params.tid +24 -0
  219. package/editions/test/tiddlers/tests/data/macros/unusedtitle/template.tid +28 -0
  220. package/editions/test/tiddlers/tests/data/pragmas/WhitespaceAfterPragma.tid +4 -1
  221. package/editions/test/tiddlers/tests/data/procedures/EndInBody.tid +16 -0
  222. package/editions/test/tiddlers/tests/data/procedures/IndentedEnd.tid +16 -0
  223. package/editions/test/tiddlers/tests/data/procedures/MismatchedNamedEnd.tid +16 -0
  224. package/editions/test/tiddlers/tests/data/procedures/WhitespaceOnlyWithEnd.tid +18 -0
  225. package/editions/test/tiddlers/tests/data/procedures/WhitespaceOnlyWithEnd2.tid +15 -0
  226. package/editions/test/tiddlers/tests/data/transclude/Procedures-Whitespace2.tid +25 -0
  227. package/editions/test/tiddlers/tests/data/transclude/Procedures-Whitespace3.tid +30 -0
  228. package/editions/test/tiddlers/tests/data/transclude/Recursion.tid +2 -1
  229. package/editions/test/tiddlers/tests/from-tw5.com/tiddlywiki.files +5 -0
  230. package/editions/test/tiddlers/tests/test-action-deletefield.js +176 -0
  231. package/editions/test/tiddlers/tests/test-backlinks.js +57 -44
  232. package/editions/test/tiddlers/tests/test-backtranscludes.js +241 -0
  233. package/editions/test/tiddlers/tests/test-fakedom.js +27 -0
  234. package/editions/test/tiddlers/tests/test-plugins.js +55 -0
  235. package/editions/test/tiddlers/tests/test-widget-getVariableInfo.js +95 -0
  236. package/editions/test/tiddlers/tests/test-widget.js +61 -0
  237. package/editions/test/tiddlers/tests/test-wikitext-parser.js +48 -49
  238. package/editions/test/tiddlywiki.info +2 -1
  239. package/editions/tour/tiddlers/Solar System/Asteroid (253) Mathilde Image.png +0 -0
  240. package/editions/tour/tiddlers/Solar System/Asteroid (253) Mathilde Image.png.meta +3 -0
  241. package/editions/tour/tiddlers/Solar System/Asteroid.tid +17 -0
  242. package/editions/tour/tiddlers/Solar System/Comet Image.png +0 -0
  243. package/editions/tour/tiddlers/Solar System/Comet Image.png.meta +3 -0
  244. package/editions/tour/tiddlers/Solar System/Comet.tid +15 -0
  245. package/editions/tour/tiddlers/Solar System/Earth Image.png +0 -0
  246. package/editions/tour/tiddlers/Solar System/Earth Image.png.meta +3 -0
  247. package/editions/tour/tiddlers/Solar System/Earth's Moon Image.png +0 -0
  248. package/editions/tour/tiddlers/Solar System/Earth's Moon Image.png.meta +3 -0
  249. package/editions/tour/tiddlers/Solar System/Earth's Moon.tid +10 -0
  250. package/editions/tour/tiddlers/Solar System/Earth.tid +21 -0
  251. package/editions/tour/tiddlers/Solar System/Jupiter Image.png +0 -0
  252. package/editions/tour/tiddlers/Solar System/Jupiter Image.png.meta +3 -0
  253. package/editions/tour/tiddlers/Solar System/Jupiter.tid +15 -0
  254. package/editions/tour/tiddlers/Solar System/Kuiper belt.tid +12 -0
  255. package/editions/tour/tiddlers/Solar System/Mars Image.png +0 -0
  256. package/editions/tour/tiddlers/Solar System/Mars Image.png.meta +5 -0
  257. package/editions/tour/tiddlers/Solar System/Mars.tid +11 -0
  258. package/editions/tour/tiddlers/Solar System/Mercury Image.png +0 -0
  259. package/editions/tour/tiddlers/Solar System/Mercury Image.png.meta +3 -0
  260. package/editions/tour/tiddlers/Solar System/Mercury.tid +21 -0
  261. package/editions/tour/tiddlers/Solar System/Milky Way Image.png +0 -0
  262. package/editions/tour/tiddlers/Solar System/Milky Way Image.png.meta +5 -0
  263. package/editions/tour/tiddlers/Solar System/Milky Way.tid +14 -0
  264. package/editions/tour/tiddlers/Solar System/Moon.tid +9 -0
  265. package/editions/tour/tiddlers/Solar System/Neptune Image.png +0 -0
  266. package/editions/tour/tiddlers/Solar System/Neptune Image.png.meta +3 -0
  267. package/editions/tour/tiddlers/Solar System/Neptune.tid +19 -0
  268. package/editions/tour/tiddlers/Solar System/Planet Image.png +0 -0
  269. package/editions/tour/tiddlers/Solar System/Planet Image.png.meta +3 -0
  270. package/editions/tour/tiddlers/Solar System/Planet.tid +17 -0
  271. package/editions/tour/tiddlers/Solar System/Pluto Image.png +0 -0
  272. package/editions/tour/tiddlers/Solar System/Pluto Image.png.meta +3 -0
  273. package/editions/tour/tiddlers/Solar System/Pluto.tid +12 -0
  274. package/editions/tour/tiddlers/Solar System/Saturn Image.png +0 -0
  275. package/editions/tour/tiddlers/Solar System/Saturn Image.png.meta +3 -0
  276. package/editions/tour/tiddlers/Solar System/Saturn.tid +17 -0
  277. package/editions/tour/tiddlers/Solar System/Solar System Image.png +0 -0
  278. package/editions/tour/tiddlers/Solar System/Solar System Image.png.meta +3 -0
  279. package/editions/tour/tiddlers/Solar System/Solar System.tid +18 -0
  280. package/editions/tour/tiddlers/Solar System/Sun Image.png +0 -0
  281. package/editions/tour/tiddlers/Solar System/Sun Image.png.meta +5 -0
  282. package/editions/tour/tiddlers/Solar System/Sun.tid +17 -0
  283. package/editions/tour/tiddlers/Solar System/Uranus Image.png +0 -0
  284. package/editions/tour/tiddlers/Solar System/Uranus Image.png.meta +3 -0
  285. package/editions/tour/tiddlers/Solar System/Uranus.tid +19 -0
  286. package/editions/tour/tiddlers/Solar System/Venus Image.png +0 -0
  287. package/editions/tour/tiddlers/Solar System/Venus Image.png.meta +3 -0
  288. package/editions/tour/tiddlers/Solar System/Venus.tid +17 -0
  289. package/editions/tour/tiddlers/System/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid +4 -0
  290. package/editions/tour/tiddlers/System/DefaultTiddlers.tid +4 -0
  291. package/editions/tour/tiddlers/System/HelloThere.tid +5 -0
  292. package/editions/tour/tiddlers/System/SiteSubtitle.tid +2 -0
  293. package/editions/tour/tiddlers/System/SiteTitle.tid +2 -0
  294. package/editions/tour/tiddlers/System/configAutoStartTour.tid +2 -0
  295. package/editions/tour/tiddlers/System/styles.tid +9 -0
  296. package/editions/tour/tiddlywiki.info +16 -0
  297. package/editions/translators/tiddlywiki.info +1 -0
  298. package/editions/tw5.com/tiddlers/String Operators.tid +8 -0
  299. package/editions/tw5.com/tiddlers/Tag Operators.tid +8 -0
  300. package/editions/tw5.com/tiddlers/TiddlyWiki Docs PR Maker.tid +12 -0
  301. package/editions/tw5.com/tiddlers/about/Archive.tid +1 -1
  302. package/editions/tw5.com/tiddlers/about/Developers.tid +1 -0
  303. package/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid +5 -5
  304. package/editions/tw5.com/tiddlers/community/Community Editions.tid +2 -2
  305. package/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid +2 -2
  306. package/editions/tw5.com/tiddlers/community/Improving TiddlyWiki Documentation.tid +21 -1
  307. package/editions/tw5.com/tiddlers/community/plugins/Disqus comments plugin by bimlas.tid +1 -1
  308. package/editions/tw5.com/tiddlers/community/plugins/Kin filter operator by bimlas.tid +1 -1
  309. package/editions/tw5.com/tiddlers/community/plugins/Locator plugin by bimlas.tid +1 -1
  310. package/editions/tw5.com/tiddlers/community/themes/Notebook theme by Nicolas Petton.tid +2 -2
  311. package/editions/tw5.com/tiddlers/concepts/Bags and Recipes.tid +42 -0
  312. package/editions/tw5.com/tiddlers/concepts/ColourPalettes.tid +2 -2
  313. package/editions/tw5.com/tiddlers/concepts/CompoundTiddlers.tid +31 -0
  314. package/editions/tw5.com/tiddlers/concepts/Filters.tid +3 -3
  315. package/editions/tw5.com/tiddlers/concepts/Hard and Soft Links.tid +4 -2
  316. package/editions/tw5.com/tiddlers/concepts/Hard and Soft Transclusions.tid +16 -0
  317. package/editions/tw5.com/tiddlers/concepts/ShadowTiddlers.tid +4 -2
  318. package/editions/tw5.com/tiddlers/concepts/Temporary Tiddlers.tid +8 -0
  319. package/editions/tw5.com/tiddlers/concepts/TestCaseTiddlers.tid +26 -0
  320. package/editions/tw5.com/tiddlers/concepts/TextReference.tid +2 -2
  321. package/editions/tw5.com/tiddlers/concepts/TiddlerFields.tid +4 -3
  322. package/editions/tw5.com/tiddlers/concepts/Transclusion.tid +10 -3
  323. package/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +34 -3
  324. package/editions/tw5.com/tiddlers/customising/Creating new toolbar buttons.tid +2 -2
  325. package/editions/tw5.com/tiddlers/definitions/Legacy.tid +9 -0
  326. package/editions/tw5.com/tiddlers/definitions/TiddlyFox.tid +4 -2
  327. package/editions/tw5.com/tiddlers/definitions/TiddlyWeb.tid +2 -3
  328. package/editions/tw5.com/tiddlers/definitions/TiddlyWebAdaptor.tid +9 -0
  329. package/editions/tw5.com/tiddlers/definitions/UnaMesa.tid +10 -0
  330. package/editions/tw5.com/tiddlers/fields/ListField.tid +3 -3
  331. package/editions/tw5.com/tiddlers/filters/Conditional Operators.tid +6 -4
  332. package/editions/tw5.com/tiddlers/filters/Filter Operators.tid +13 -6
  333. package/editions/tw5.com/tiddlers/filters/Mathematics Operators.tid +2 -2
  334. package/editions/tw5.com/tiddlers/filters/add.tid +2 -2
  335. package/editions/tw5.com/tiddlers/filters/all.tid +8 -4
  336. package/editions/tw5.com/tiddlers/filters/append.tid +3 -3
  337. package/editions/tw5.com/tiddlers/filters/backtranscludes.tid +14 -0
  338. package/editions/tw5.com/tiddlers/filters/charcode.tid +2 -2
  339. package/editions/tw5.com/tiddlers/filters/compare Operator.tid +2 -2
  340. package/editions/tw5.com/tiddlers/filters/cycle Operator.tid +1 -1
  341. package/editions/tw5.com/tiddlers/filters/divide Operator.tid +1 -1
  342. package/editions/tw5.com/tiddlers/filters/enlist Operator.tid +2 -2
  343. package/editions/tw5.com/tiddlers/filters/enlist-input Operator.tid +1 -1
  344. package/editions/tw5.com/tiddlers/filters/examples/Brownies.tid +1 -1
  345. package/editions/tw5.com/tiddlers/filters/examples/Chick Peas.tid +1 -1
  346. package/editions/tw5.com/tiddlers/filters/examples/Milk.tid +1 -1
  347. package/editions/tw5.com/tiddlers/filters/examples/Rice Pudding.tid +1 -1
  348. package/editions/tw5.com/tiddlers/filters/examples/backtransclude.tid +7 -0
  349. package/editions/tw5.com/tiddlers/filters/examples/prepend.tid +2 -2
  350. package/editions/tw5.com/tiddlers/filters/examples/sha256 Operator (Examples).tid +9 -0
  351. package/editions/tw5.com/tiddlers/filters/examples/subfilter Operator (Examples).tid +1 -1
  352. package/editions/tw5.com/tiddlers/filters/examples/transclude.tid +5 -0
  353. package/editions/tw5.com/tiddlers/filters/field.tid +11 -11
  354. package/editions/tw5.com/tiddlers/filters/format.tid +6 -6
  355. package/editions/tw5.com/tiddlers/filters/jsonextract.tid +2 -2
  356. package/editions/tw5.com/tiddlers/filters/jsonget.tid +2 -2
  357. package/editions/tw5.com/tiddlers/filters/jsonindexes.tid +2 -2
  358. package/editions/tw5.com/tiddlers/filters/jsontype.tid +2 -2
  359. package/editions/tw5.com/tiddlers/filters/log Operator.tid +1 -1
  360. package/editions/tw5.com/tiddlers/filters/match Operator.tid +5 -6
  361. package/editions/tw5.com/tiddlers/filters/max Operator.tid +2 -2
  362. package/editions/tw5.com/tiddlers/filters/min Operator.tid +1 -1
  363. package/editions/tw5.com/tiddlers/filters/minlength.tid +3 -3
  364. package/editions/tw5.com/tiddlers/filters/moduleproperty Operator.tid +1 -1
  365. package/editions/tw5.com/tiddlers/filters/modules.tid +1 -1
  366. package/editions/tw5.com/tiddlers/filters/multiply Operator.tid +1 -1
  367. package/editions/tw5.com/tiddlers/filters/power Operator.tid +1 -1
  368. package/editions/tw5.com/tiddlers/filters/prefix.tid +9 -10
  369. package/editions/tw5.com/tiddlers/filters/prepend.tid +2 -2
  370. package/editions/tw5.com/tiddlers/filters/range.tid +11 -11
  371. package/editions/tw5.com/tiddlers/filters/reduce.tid +2 -2
  372. package/editions/tw5.com/tiddlers/filters/remainder Operator.tid +1 -1
  373. package/editions/tw5.com/tiddlers/filters/remove.tid +3 -3
  374. package/editions/tw5.com/tiddlers/filters/removeprefix.tid +8 -9
  375. package/editions/tw5.com/tiddlers/filters/removesuffix.tid +8 -9
  376. package/editions/tw5.com/tiddlers/filters/search.tid +3 -3
  377. package/editions/tw5.com/tiddlers/filters/sortby.tid +1 -1
  378. package/editions/tw5.com/tiddlers/filters/splitregexp Operator.tid +20 -2
  379. package/editions/tw5.com/tiddlers/filters/subfilter Operator.tid +3 -3
  380. package/editions/tw5.com/tiddlers/filters/subtract Operator.tid +1 -1
  381. package/editions/tw5.com/tiddlers/filters/suffix.tid +9 -10
  382. package/editions/tw5.com/tiddlers/filters/syntax/All Filter Run Prefix.tid +18 -0
  383. package/editions/tw5.com/tiddlers/filters/syntax/And Filter Run Prefix.tid +18 -0
  384. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix (Examples).tid +2 -2
  385. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid +14 -9
  386. package/editions/tw5.com/tiddlers/filters/syntax/Else Filter Run Prefix.tid +18 -0
  387. package/editions/tw5.com/tiddlers/filters/syntax/Except Filter Run Prefix.tid +18 -0
  388. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +11 -63
  389. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix (Examples).tid +2 -2
  390. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix.tid +19 -14
  391. package/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid +11 -7
  392. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix (Examples).tid +2 -2
  393. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix.tid +18 -0
  394. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run.tid +5 -4
  395. package/editions/tw5.com/tiddlers/filters/syntax/Filter Step.tid +22 -10
  396. package/editions/tw5.com/tiddlers/filters/syntax/Filter Syntax.tid +12 -6
  397. package/editions/tw5.com/tiddlers/filters/syntax/Filter Whitespace.tid +5 -3
  398. package/editions/tw5.com/tiddlers/filters/syntax/Interchangeable Filter Run Prefixes.tid +44 -0
  399. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix (Examples).tid +2 -2
  400. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +13 -8
  401. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix (Examples).tid +2 -2
  402. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix.tid +21 -16
  403. package/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +32 -6
  404. package/editions/tw5.com/tiddlers/filters/syntax/Or Filter Run Prefix.tid +18 -0
  405. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix (Examples).tid +2 -2
  406. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix.tid +23 -14
  407. package/editions/tw5.com/tiddlers/filters/syntax/Shortcut Filter Run Prefixes.tid +29 -0
  408. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid +2 -2
  409. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +16 -9
  410. package/editions/tw5.com/tiddlers/filters/syntax/then Filter Run Prefix.tid +3 -36
  411. package/editions/tw5.com/tiddlers/filters/toggle Operator.tid +2 -2
  412. package/editions/tw5.com/tiddlers/filters/transcludes.tid +14 -0
  413. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +4 -3
  414. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +1 -1
  415. package/editions/tw5.com/tiddlers/howtos/Concatenating text and variables using macro substitution.tid +6 -0
  416. package/editions/tw5.com/tiddlers/howtos/Custom_data-styles.tid +4 -2
  417. package/editions/tw5.com/tiddlers/howtos/How to embed PDF and other documents.tid +2 -2
  418. package/editions/tw5.com/tiddlers/howtos/Setting a page background image.tid +2 -2
  419. package/editions/tw5.com/tiddlers/howtos/Tagging.tid +3 -3
  420. package/editions/tw5.com/tiddlers/howtos/Using Excise.tid +2 -2
  421. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  422. package/editions/tw5.com/tiddlers/images/Open Collective Logo.tid +4 -2
  423. package/editions/tw5.com/tiddlers/macros/StylesheetMacros.tid +3 -1
  424. package/editions/tw5.com/tiddlers/macros/TagMacro.tid +30 -2
  425. package/editions/tw5.com/tiddlers/macros/examples/tag.tid +8 -4
  426. package/editions/tw5.com/tiddlers/macros/import/tags-of-current-tiddler.tid +2 -1
  427. package/editions/tw5.com/tiddlers/macros/import/tv-get-export-image-link.tid +3 -2
  428. package/editions/tw5.com/tiddlers/macros/import/tv-wikilink-tooltip.tid +2 -1
  429. package/editions/tw5.com/tiddlers/macros/list-thumbnails Macro.tid +5 -5
  430. package/editions/tw5.com/tiddlers/macros/syntax/Macro Call Syntax.tid +5 -1
  431. package/editions/tw5.com/tiddlers/macros/syntax/Macro Definition Syntax.tid +5 -1
  432. package/editions/tw5.com/tiddlers/macros/syntax/Procedure Call Syntax.tid +33 -0
  433. package/editions/tw5.com/tiddlers/macros/syntax/Procedure Definition Syntax.tid +93 -0
  434. package/editions/tw5.com/tiddlers/macros/syntax/Procedure Syntax.tid +11 -0
  435. package/editions/tw5.com/tiddlers/macros/tag-picker_Macro.tid +13 -5
  436. package/editions/tw5.com/tiddlers/macros/thumbnail Macro.tid +19 -4
  437. package/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid +5 -1
  438. package/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +1 -1
  439. package/editions/tw5.com/tiddlers/mechanisms/WikificationMechanism.tid +3 -3
  440. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-copy-to-clipboard.tid +3 -1
  441. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid +2 -2
  442. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +2 -2
  443. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Basic Authentication.tid +34 -0
  444. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid +1 -1
  445. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid +1 -1
  446. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Examples.tid +117 -0
  447. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid +8 -1
  448. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-permalink.tid +3 -1
  449. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-permaview.tid +3 -1
  450. package/editions/tw5.com/tiddlers/nodejs/Naming of System Tiddlers.tid +4 -4
  451. package/editions/tw5.com/tiddlers/nodejs/TiddlyWiki5 Versioning.tid +1 -1
  452. package/editions/tw5.com/tiddlers/plugins/Plugin Stability.tid +14 -0
  453. package/editions/tw5.com/tiddlers/pragmas/Pragma_ _parsermode.tid +1 -1
  454. package/editions/tw5.com/tiddlers/procedures/Procedures.tid +6 -3
  455. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid +1 -1
  456. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.3.tid +1 -1
  457. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.4.tid +170 -0
  458. package/editions/tw5.com/tiddlers/saving/Saving with FireFox.tid +17 -0
  459. package/editions/tw5.com/tiddlers/saving/Saving with Polly.tid +0 -1
  460. package/editions/tw5.com/tiddlers/saving/Saving with TiddlyFox on Android.tid +4 -2
  461. package/editions/tw5.com/tiddlers/saving/Saving with TiddlyFox.tid +2 -19
  462. package/editions/tw5.com/tiddlers/saving/TiddlyBucket - Save to AWS or Google Storage.tid +0 -1
  463. package/editions/tw5.com/tiddlers/styleguide/Documentation Macros.tid +188 -163
  464. package/editions/tw5.com/tiddlers/system/$__SplashScreen.tid +3 -1
  465. package/editions/tw5.com/tiddlers/system/ContributionBanner.tid +7 -3
  466. package/editions/tw5.com/tiddlers/system/Deprecated.tid +5 -1
  467. package/editions/tw5.com/tiddlers/system/Deprecated_-_What_does_it_mean.tid +0 -3
  468. package/editions/tw5.com/tiddlers/system/Sources.tid +36 -15
  469. package/editions/tw5.com/tiddlers/system/TableOfContents.tid +2 -2
  470. package/editions/tw5.com/tiddlers/system/doc-macros.tid +181 -170
  471. package/editions/tw5.com/tiddlers/system/doc-styles.tid +46 -23
  472. package/editions/tw5.com/tiddlers/system/download-empty.tid +4 -4
  473. package/editions/tw5.com/tiddlers/system/filter-run-template.tid +50 -0
  474. package/editions/tw5.com/tiddlers/system/operator-macros.tid +46 -32
  475. package/editions/tw5.com/tiddlers/system/operator-template.tid +52 -71
  476. package/editions/tw5.com/tiddlers/system/variable-macros.tid +15 -10
  477. package/editions/tw5.com/tiddlers/system/version-macros.tid +29 -5
  478. package/editions/tw5.com/tiddlers/system/wikitext-macros.tid +54 -62
  479. package/editions/tw5.com/tiddlers/tag-picker Macro (Examples).tid +69 -0
  480. package/editions/tw5.com/tiddlers/tag-pill Macro (Examples).tid +14 -0
  481. package/editions/tw5.com/tiddlers/testcases/DataWidget/ImportCompound.tid +33 -0
  482. package/editions/tw5.com/tiddlers/testcases/DataWidget/ImportedFilter.tid +49 -0
  483. package/editions/tw5.com/tiddlers/testcases/DataWidget/ImportedTiddler.tid +29 -0
  484. package/editions/tw5.com/tiddlers/testcases/DataWidget/Refreshing.tid +30 -0
  485. package/editions/tw5.com/tiddlers/testcases/DataWidget/SimpleTiddler.tid +22 -0
  486. package/editions/tw5.com/tiddlers/testcases/TestCaseWidget/FailingTest.tid +15 -0
  487. package/editions/tw5.com/tiddlers/testcases/TestCaseWidget/NoExpectedResults.tid +12 -0
  488. package/editions/tw5.com/tiddlers/testcases/TestCaseWidget/TwoPlusTwo.tid +18 -0
  489. package/editions/tw5.com/tiddlers/testcases/TestCaseWidget/currentTiddler.tid +16 -0
  490. package/editions/tw5.com/tiddlers/testcases/TranscludeWidget/SimpleTransclusion.tid +23 -0
  491. package/editions/tw5.com/tiddlers/variables/Variables.tid +4 -3
  492. package/editions/tw5.com/tiddlers/variables/examples/tv-get-export-image-link.tid +7 -1
  493. package/editions/tw5.com/tiddlers/variables/tv-filter-export-link Variable.tid +2 -2
  494. package/editions/tw5.com/tiddlers/variables/tv-get-export-image-link.tid +4 -4
  495. package/editions/tw5.com/tiddlers/variables/tv-get-export-link.tid +4 -4
  496. package/editions/tw5.com/tiddlers/variables/tv-wikilink-template.tid +2 -2
  497. package/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +2 -2
  498. package/editions/tw5.com/tiddlers/webserver/Using the integrated static file server.tid +17 -2
  499. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ use-browse-cache.tid +25 -0
  500. package/editions/tw5.com/tiddlers/webserver/WebServer.tid +1 -1
  501. package/editions/tw5.com/tiddlers/widgets/ActionDeleteFieldWidget.tid +51 -20
  502. package/editions/tw5.com/tiddlers/widgets/ActionDeleteTiddlerWidget.tid +16 -14
  503. package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +5 -3
  504. package/editions/tw5.com/tiddlers/widgets/DataWidget.tid +42 -0
  505. package/editions/tw5.com/tiddlers/widgets/EncryptWidget.tid +5 -5
  506. package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +32 -0
  507. package/editions/tw5.com/tiddlers/widgets/RevealWidget.tid +2 -2
  508. package/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid +10 -0
  509. package/editions/tw5.com/tiddlers/widgets/TestCaseWidget.tid +107 -0
  510. package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +34 -34
  511. package/editions/tw5.com/tiddlers/widgets/Widgets.tid +4 -4
  512. package/editions/tw5.com/tiddlers/wikitext/Block Quotes in WikiText.tid +32 -1
  513. package/editions/tw5.com/tiddlers/wikitext/Hard Linebreaks in WikiText.tid +7 -3
  514. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +2 -2
  515. package/editions/tw5.com/tiddlers/wikitext/Transclusion in WikiText.tid +27 -6
  516. package/editions/tw5.com/tiddlers/wikitext/parser/Block Mode WikiText.tid +2 -2
  517. package/editions/tw5.com/tiddlers/workingwithtw/Sharing your tiddlers with others.tid +2 -2
  518. package/editions/tw5.com/tiddlywiki.info +5 -2
  519. package/languages/de-DE/Buttons.multids +4 -1
  520. package/languages/de-DE/ControlPanel.multids +7 -1
  521. package/languages/de-DE/Dates.multids +1 -1
  522. package/languages/de-DE/Docs/ModuleTypes.multids +2 -2
  523. package/languages/de-DE/Docs/PaletteColours.multids +4 -1
  524. package/languages/de-DE/EditTemplate.multids +1 -1
  525. package/languages/de-DE/Exporters.multids +1 -1
  526. package/languages/de-DE/Fields.multids +3 -1
  527. package/languages/de-DE/Help/build.tid +1 -1
  528. package/languages/de-DE/Help/clearpassword.tid +2 -2
  529. package/languages/de-DE/Help/commands.tid +2 -2
  530. package/languages/de-DE/Help/editions.tid +1 -1
  531. package/languages/de-DE/Help/fetch.tid +6 -6
  532. package/languages/de-DE/Help/import.tid +5 -5
  533. package/languages/de-DE/Help/init.tid +1 -1
  534. package/languages/de-DE/Help/listen.tid +8 -8
  535. package/languages/de-DE/Help/load.tid +3 -3
  536. package/languages/de-DE/Help/makelibrary.tid +2 -2
  537. package/languages/de-DE/Help/output.tid +2 -2
  538. package/languages/de-DE/Help/password.tid +1 -1
  539. package/languages/de-DE/Help/render.tid +6 -6
  540. package/languages/de-DE/Help/save.tid +3 -4
  541. package/languages/de-DE/Help/server.tid +5 -0
  542. package/languages/de-DE/Help/setfield.tid +1 -1
  543. package/languages/de-DE/Import.multids +1 -1
  544. package/languages/de-DE/Misc.multids +6 -6
  545. package/languages/de-DE/Modals/Download.tid +0 -1
  546. package/languages/de-DE/NewJournal.multids +1 -1
  547. package/languages/de-DE/Notifications.multids +1 -1
  548. package/languages/de-DE/Search.multids +1 -1
  549. package/languages/de-DE/SideBar.multids +1 -1
  550. package/languages/de-DE/SiteSubtitle.tid +1 -1
  551. package/languages/de-DE/ThemeTweaks.multids +1 -1
  552. package/languages/de-DE/TiddlerInfo.multids +1 -1
  553. package/languages/fr-FR/Buttons.multids +1 -0
  554. package/languages/fr-FR/ControlPanel.multids +6 -0
  555. package/languages/fr-FR/Docs/ModuleTypes.multids +1 -1
  556. package/languages/fr-FR/Docs/PaletteColours.multids +3 -0
  557. package/languages/fr-FR/Fields.multids +3 -1
  558. package/languages/fr-FR/Help/commands.tid +1 -1
  559. package/languages/fr-FR/Help/savewikifolder.tid +15 -0
  560. package/languages/fr-FR/Help/server.tid +1 -1
  561. package/languages/fr-FR/Types/application_javascript.tid +3 -3
  562. package/languages/fr-FR/Types/application_json.tid +2 -2
  563. package/languages/fr-FR/Types/application_x_tiddler_dictionary.tid +2 -2
  564. package/languages/fr-FR/Types/image_gif.tid +2 -2
  565. package/languages/fr-FR/Types/image_jpeg.tid +1 -1
  566. package/languages/fr-FR/Types/image_png.tid +1 -1
  567. package/languages/fr-FR/Types/image_svg_xml.tid +1 -1
  568. package/languages/fr-FR/Types/image_x-icon.tid +1 -1
  569. package/languages/fr-FR/Types/text_css.tid +2 -2
  570. package/languages/fr-FR/Types/text_html.tid +2 -2
  571. package/languages/fr-FR/Types/text_plain.tid +2 -2
  572. package/languages/fr-FR/Types/text_vnd.tiddlywiki.tid +2 -2
  573. package/languages/fr-FR/Types/text_x-tiddlywiki.tid +1 -1
  574. package/languages/mk-MK/Buttons.multids +195 -0
  575. package/languages/mk-MK/ControlPanel.multids +231 -0
  576. package/languages/mk-MK/CoreReadMe.tid +8 -0
  577. package/languages/mk-MK/Dates.multids +87 -0
  578. package/languages/mk-MK/Docs/ModuleTypes.multids +30 -0
  579. package/languages/mk-MK/Docs/PaletteColours.multids +109 -0
  580. package/languages/mk-MK/EditTemplate.multids +38 -0
  581. package/languages/mk-MK/Exporters.multids +6 -0
  582. package/languages/mk-MK/Fields.multids +43 -0
  583. package/languages/mk-MK/Filters.multids +16 -0
  584. package/languages/mk-MK/GettingStarted.tid +18 -0
  585. package/languages/mk-MK/Help/build.tid +11 -0
  586. package/languages/mk-MK/Help/clearpassword.tid +8 -0
  587. package/languages/mk-MK/Help/commands.tid +18 -0
  588. package/languages/mk-MK/Help/default.tid +26 -0
  589. package/languages/mk-MK/Help/deletetiddlers.tid +8 -0
  590. package/languages/mk-MK/Help/editions.tid +8 -0
  591. package/languages/mk-MK/Help/fetch.tid +38 -0
  592. package/languages/mk-MK/Help/help.tid +10 -0
  593. package/languages/mk-MK/Help/import.tid +24 -0
  594. package/languages/mk-MK/Help/init.tid +23 -0
  595. package/languages/mk-MK/Help/listen.tid +35 -0
  596. package/languages/mk-MK/Help/load.tid +19 -0
  597. package/languages/mk-MK/Help/makelibrary.tid +14 -0
  598. package/languages/mk-MK/Help/notfound.tid +4 -0
  599. package/languages/mk-MK/Help/output.tid +11 -0
  600. package/languages/mk-MK/Help/password.tid +10 -0
  601. package/languages/mk-MK/Help/render.tid +35 -0
  602. package/languages/mk-MK/Help/rendertiddler.tid +24 -0
  603. package/languages/mk-MK/Help/rendertiddlers.tid +20 -0
  604. package/languages/mk-MK/Help/save.tid +25 -0
  605. package/languages/mk-MK/Help/savetiddler.tid +14 -0
  606. package/languages/mk-MK/Help/savetiddlers.tid +16 -0
  607. package/languages/mk-MK/Help/savewikifolder.tid +34 -0
  608. package/languages/mk-MK/Help/server.tid +43 -0
  609. package/languages/mk-MK/Help/setfield.tid +17 -0
  610. package/languages/mk-MK/Help/unpackplugin.tid +8 -0
  611. package/languages/mk-MK/Help/verbose.tid +8 -0
  612. package/languages/mk-MK/Help/version.tid +8 -0
  613. package/languages/mk-MK/Import.multids +34 -0
  614. package/languages/mk-MK/Misc.multids +99 -0
  615. package/languages/mk-MK/Modals/Download.tid +13 -0
  616. package/languages/mk-MK/NewJournal.multids +5 -0
  617. package/languages/mk-MK/Notifications.multids +6 -0
  618. package/languages/mk-MK/Search.multids +20 -0
  619. package/languages/mk-MK/SideBar.multids +18 -0
  620. package/languages/mk-MK/SiteSubtitle.tid +3 -0
  621. package/languages/mk-MK/SiteTitle.tid +3 -0
  622. package/languages/mk-MK/Snippets/ListByTag.tid +5 -0
  623. package/languages/mk-MK/Snippets/MacroDefinition.tid +7 -0
  624. package/languages/mk-MK/Snippets/Table4x3.tid +8 -0
  625. package/languages/mk-MK/Snippets/TableOfContents.tid +9 -0
  626. package/languages/mk-MK/ThemeTweaks.multids +42 -0
  627. package/languages/mk-MK/TiddlerInfo.multids +21 -0
  628. package/languages/mk-MK/Types/application%2Fjavascript.tid +4 -0
  629. package/languages/mk-MK/Types/application%2Fjson.tid +4 -0
  630. package/languages/mk-MK/Types/application%2Fx-tiddler-dictionary.tid +4 -0
  631. package/languages/mk-MK/Types/image%2Fgif.tid +4 -0
  632. package/languages/mk-MK/Types/image%2Fjpeg.tid +4 -0
  633. package/languages/mk-MK/Types/image%2Fpng.tid +4 -0
  634. package/languages/mk-MK/Types/image%2Fsvg%2Bxml.tid +4 -0
  635. package/languages/mk-MK/Types/image%2Fx-icon.tid +4 -0
  636. package/languages/mk-MK/Types/text%2Fcss.tid +4 -0
  637. package/languages/mk-MK/Types/text%2Fhtml.tid +4 -0
  638. package/languages/mk-MK/Types/text%2Fplain.tid +4 -0
  639. package/languages/mk-MK/Types/text%2Fvnd.tiddlywiki.tid +4 -0
  640. package/languages/mk-MK/Types/text%2Fx-tiddlywiki.tid +4 -0
  641. package/languages/mk-MK/icon.tid +8 -0
  642. package/languages/mk-MK/plugin.info +8 -0
  643. package/languages/pl-PL/Dates.multids +41 -41
  644. package/languages/zh-Hans/Buttons.multids +3 -0
  645. package/languages/zh-Hans/ControlPanel.multids +6 -0
  646. package/languages/zh-Hans/Docs/ModuleTypes.multids +1 -1
  647. package/languages/zh-Hans/Docs/PaletteColours.multids +7 -0
  648. package/languages/zh-Hans/Fields.multids +2 -0
  649. package/languages/zh-Hans/Misc.multids +3 -3
  650. package/languages/zh-Hant/Buttons.multids +3 -0
  651. package/languages/zh-Hant/ControlPanel.multids +6 -0
  652. package/languages/zh-Hant/Docs/ModuleTypes.multids +1 -1
  653. package/languages/zh-Hant/Docs/PaletteColours.multids +7 -0
  654. package/languages/zh-Hant/Fields.multids +2 -0
  655. package/languages/zh-Hant/Misc.multids +2 -2
  656. package/license +1 -1
  657. package/licenses/cla-individual.md +14 -0
  658. package/package.json +1 -1
  659. package/plugins/tiddlywiki/async/plugin.info +2 -1
  660. package/plugins/tiddlywiki/aws/plugin.info +2 -1
  661. package/plugins/tiddlywiki/aws/templates/lambda/sjcl.tid +2 -2
  662. package/plugins/tiddlywiki/bibtex/plugin.info +2 -1
  663. package/plugins/tiddlywiki/blog/plugin.info +2 -1
  664. package/plugins/tiddlywiki/browser-sniff/plugin.info +2 -1
  665. package/plugins/tiddlywiki/browser-storage/plugin.info +2 -1
  666. package/plugins/tiddlywiki/cecily/plugin.info +2 -1
  667. package/plugins/tiddlywiki/classictools/modules/recipe.js +9 -0
  668. package/plugins/tiddlywiki/classictools/plugin.info +2 -1
  669. package/plugins/tiddlywiki/classictools/templates/tiddlywiki2.externaljs.template.html.tid +4 -4
  670. package/plugins/tiddlywiki/classictools/templates/tiddlywiki2.template.html.tid +21 -21
  671. package/plugins/tiddlywiki/codemirror/plugin.info +2 -1
  672. package/plugins/tiddlywiki/codemirror-autocomplete/plugin.info +2 -1
  673. package/plugins/tiddlywiki/codemirror-closebrackets/plugin.info +2 -1
  674. package/plugins/tiddlywiki/codemirror-closetag/plugin.info +2 -1
  675. package/plugins/tiddlywiki/codemirror-fullscreen-editing/plugin.info +2 -1
  676. package/plugins/tiddlywiki/codemirror-keymap-emacs/plugin.info +2 -1
  677. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/plugin.info +2 -1
  678. package/plugins/tiddlywiki/codemirror-keymap-vim/plugin.info +2 -1
  679. package/plugins/tiddlywiki/codemirror-mode-css/plugin.info +2 -1
  680. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/plugin.info +2 -1
  681. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/plugin.info +2 -1
  682. package/plugins/tiddlywiki/codemirror-mode-javascript/plugin.info +2 -1
  683. package/plugins/tiddlywiki/codemirror-mode-markdown/plugin.info +2 -1
  684. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/plugin.info +2 -1
  685. package/plugins/tiddlywiki/codemirror-mode-xml/plugin.info +2 -1
  686. package/plugins/tiddlywiki/codemirror-search-replace/plugin.info +2 -1
  687. package/plugins/tiddlywiki/codemirror-trailingspace/plugin.info +2 -1
  688. package/plugins/tiddlywiki/comments/plugin.info +2 -1
  689. package/plugins/tiddlywiki/confetti/confetti-manager.js +56 -0
  690. package/plugins/tiddlywiki/confetti/confetti-widget.js +67 -0
  691. package/plugins/tiddlywiki/confetti/examples/staggered.tid +10 -0
  692. package/plugins/tiddlywiki/confetti/examples/typing-trigger.tid +10 -0
  693. package/plugins/tiddlywiki/confetti/files/LICENSE +15 -0
  694. package/plugins/tiddlywiki/confetti/files/confetti.js +626 -0
  695. package/plugins/tiddlywiki/confetti/files/tiddlywiki.files +20 -0
  696. package/plugins/tiddlywiki/confetti/plugin.info +7 -0
  697. package/plugins/tiddlywiki/confetti/readme.tid +65 -0
  698. package/plugins/tiddlywiki/confetti/startup.js +63 -0
  699. package/plugins/tiddlywiki/consent-banner/plugin.info +2 -1
  700. package/plugins/tiddlywiki/d3/plugin.info +2 -1
  701. package/plugins/tiddlywiki/dynannotate/docs/readme.tid +10 -0
  702. package/plugins/tiddlywiki/dynannotate/examples/spotlight.tid +71 -0
  703. package/plugins/tiddlywiki/dynannotate/modules/element-spotlight.js +136 -0
  704. package/plugins/tiddlywiki/dynannotate/modules/startup.js +24 -1
  705. package/plugins/tiddlywiki/dynannotate/plugin.info +2 -1
  706. package/plugins/tiddlywiki/dynannotate/styles.tid +17 -0
  707. package/plugins/tiddlywiki/dynaview/plugin.info +2 -1
  708. package/plugins/tiddlywiki/evernote/plugin.info +2 -1
  709. package/plugins/tiddlywiki/external-attachments/plugin.info +2 -1
  710. package/plugins/tiddlywiki/filesystem/plugin.info +2 -1
  711. package/plugins/tiddlywiki/freelinks/plugin.info +2 -1
  712. package/plugins/tiddlywiki/geospatial/baselayers/TagsGeoBaseLayer.tid +2 -0
  713. package/plugins/tiddlywiki/geospatial/baselayers/esri-world-imagery.tid +7 -0
  714. package/plugins/tiddlywiki/geospatial/baselayers/openstreetmap.tid +7 -0
  715. package/plugins/tiddlywiki/geospatial/baselayers/opentopomap.tid +7 -0
  716. package/plugins/tiddlywiki/geospatial/docs/flickr.tid +141 -0
  717. package/plugins/tiddlywiki/geospatial/docs/geobaselayer.tid +20 -0
  718. package/plugins/tiddlywiki/geospatial/docs/geodifference.tid +20 -0
  719. package/plugins/tiddlywiki/geospatial/docs/geodistance.tid +14 -0
  720. package/plugins/tiddlywiki/geospatial/docs/geointersect.tid +20 -0
  721. package/plugins/tiddlywiki/geospatial/docs/geolayer.tid +24 -0
  722. package/plugins/tiddlywiki/geospatial/docs/geolocation.tid +92 -0
  723. package/plugins/tiddlywiki/geospatial/docs/geolookup.tid +16 -0
  724. package/plugins/tiddlywiki/geospatial/docs/geomap.tid +122 -0
  725. package/plugins/tiddlywiki/geospatial/docs/geonearestpoint.tid +19 -0
  726. package/plugins/tiddlywiki/geospatial/docs/geopoint.tid +22 -0
  727. package/plugins/tiddlywiki/geospatial/docs/geounion.tid +20 -0
  728. package/plugins/tiddlywiki/geospatial/docs/olc-decode.tid +14 -0
  729. package/plugins/tiddlywiki/geospatial/docs/olc-encode.tid +14 -0
  730. package/plugins/tiddlywiki/geospatial/docs.tid +3 -0
  731. package/plugins/tiddlywiki/geospatial/files/leaflet.js/LICENSE +26 -0
  732. package/plugins/tiddlywiki/geospatial/files/leaflet.js/images/layers-2x.png +0 -0
  733. package/plugins/tiddlywiki/geospatial/files/leaflet.js/images/layers.png +0 -0
  734. package/plugins/tiddlywiki/geospatial/files/leaflet.js/images/marker-icon-2x.png +0 -0
  735. package/plugins/tiddlywiki/geospatial/files/leaflet.js/images/marker-icon.png +0 -0
  736. package/plugins/tiddlywiki/geospatial/files/leaflet.js/images/marker-shadow.png +0 -0
  737. package/plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet-src.js +14512 -0
  738. package/plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet-src.js.map +1 -0
  739. package/plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet.css +661 -0
  740. package/plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet.js +6 -0
  741. package/plugins/tiddlywiki/geospatial/files/leaflet.js/leaflet.js.map +1 -0
  742. package/plugins/tiddlywiki/geospatial/files/leaflet.js/tiddlywiki.files +34 -0
  743. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/MIT-LICENCE.txt +20 -0
  744. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/MarkerCluster.Default.css +60 -0
  745. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/MarkerCluster.css +14 -0
  746. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster-src.js +2718 -0
  747. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster-src.js.map +1 -0
  748. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster.js +2 -0
  749. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster.js.map +1 -0
  750. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/tiddlywiki.files +41 -0
  751. package/plugins/tiddlywiki/geospatial/files/open-location-code/LICENSE +202 -0
  752. package/plugins/tiddlywiki/geospatial/files/open-location-code/openlocationcode.js +695 -0
  753. package/plugins/tiddlywiki/geospatial/files/open-location-code/openlocationcode.min.js +1 -0
  754. package/plugins/tiddlywiki/geospatial/files/open-location-code/tiddlywiki.files +21 -0
  755. package/plugins/tiddlywiki/geospatial/files/turf.js/LICENSE +20 -0
  756. package/plugins/tiddlywiki/geospatial/files/turf.js/tiddlywiki.files +21 -0
  757. package/plugins/tiddlywiki/geospatial/files/turf.js/turf.6.5.0.js +88 -0
  758. package/plugins/tiddlywiki/geospatial/geotools.js +41 -0
  759. package/plugins/tiddlywiki/geospatial/helpers/Flickr.tid +99 -0
  760. package/plugins/tiddlywiki/geospatial/helpers/FlickrDefaultPhotoTemplate.tid +11 -0
  761. package/plugins/tiddlywiki/geospatial/icon.tid +6 -0
  762. package/plugins/tiddlywiki/geospatial/images/markers/pin.svg +9 -0
  763. package/plugins/tiddlywiki/geospatial/images/markers/pin.svg.meta +2 -0
  764. package/plugins/tiddlywiki/geospatial/license.tid +10 -0
  765. package/plugins/tiddlywiki/geospatial/operators/helper.js +24 -0
  766. package/plugins/tiddlywiki/geospatial/operators/lookup.js +45 -0
  767. package/plugins/tiddlywiki/geospatial/operators/measurement.js +54 -0
  768. package/plugins/tiddlywiki/geospatial/operators/olc.js +55 -0
  769. package/plugins/tiddlywiki/geospatial/operators/transformation.js +88 -0
  770. package/plugins/tiddlywiki/geospatial/plugin.info +7 -0
  771. package/plugins/tiddlywiki/geospatial/readme.tid +13 -0
  772. package/plugins/tiddlywiki/geospatial/settings.tid +24 -0
  773. package/plugins/tiddlywiki/geospatial/startup.js +78 -0
  774. package/plugins/tiddlywiki/geospatial/styles.tid +10 -0
  775. package/plugins/tiddlywiki/geospatial/tests/operators/geodifference-interactive.tid +63 -0
  776. package/plugins/tiddlywiki/geospatial/tests/operators/geodifference.tid +54 -0
  777. package/plugins/tiddlywiki/geospatial/tests/operators/geodistance.tid +30 -0
  778. package/plugins/tiddlywiki/geospatial/tests/operators/geointersect-interactive.tid +63 -0
  779. package/plugins/tiddlywiki/geospatial/tests/operators/geointersect.tid +54 -0
  780. package/plugins/tiddlywiki/geospatial/tests/operators/geolookup.tid +64 -0
  781. package/plugins/tiddlywiki/geospatial/tests/operators/geonearestpoint.tid +28 -0
  782. package/plugins/tiddlywiki/geospatial/tests/operators/geonearestpoint2.tid +45 -0
  783. package/plugins/tiddlywiki/geospatial/tests/operators/geopoint.tid +21 -0
  784. package/plugins/tiddlywiki/geospatial/tests/operators/geounion-interactive.tid +63 -0
  785. package/plugins/tiddlywiki/geospatial/tests/operators/geounion.tid +54 -0
  786. package/plugins/tiddlywiki/geospatial/tests/operators/olc-decode.tid +20 -0
  787. package/plugins/tiddlywiki/geospatial/tests/operators/olc-encode.tid +20 -0
  788. package/plugins/tiddlywiki/geospatial/tests/widgets/geomap-draggable-marker.tid +40 -0
  789. package/plugins/tiddlywiki/geospatial/tests/widgets/geomap-refresh.tid +62 -0
  790. package/plugins/tiddlywiki/geospatial/tests/widgets/geomap.tid +54 -0
  791. package/plugins/tiddlywiki/geospatial/widgets/geobaselayer.js +17 -0
  792. package/plugins/tiddlywiki/geospatial/widgets/geolayer.js +17 -0
  793. package/plugins/tiddlywiki/geospatial/widgets/geomap.js +301 -0
  794. package/plugins/tiddlywiki/github-fork-ribbon/plugin.info +2 -1
  795. package/plugins/tiddlywiki/github-fork-ribbon/readme.tid +2 -4
  796. package/plugins/tiddlywiki/github-fork-ribbon/styles.tid +10 -11
  797. package/plugins/tiddlywiki/github-fork-ribbon/template.tid +26 -0
  798. package/plugins/tiddlywiki/github-fork-ribbon/usage.tid +79 -24
  799. package/plugins/tiddlywiki/googleanalytics/plugin.info +2 -1
  800. package/plugins/tiddlywiki/hammerjs/plugin.info +2 -1
  801. package/plugins/tiddlywiki/help/plugin.info +2 -1
  802. package/plugins/tiddlywiki/highlight/files/tiddlywiki.files +0 -1
  803. package/plugins/tiddlywiki/highlight/plugin.info +2 -1
  804. package/plugins/tiddlywiki/highlight-legacy/plugin.info +2 -1
  805. package/plugins/tiddlywiki/innerwiki/anchor.js +17 -0
  806. package/plugins/tiddlywiki/innerwiki/innerwiki.js +6 -66
  807. package/plugins/tiddlywiki/innerwiki/plugin.info +2 -1
  808. package/plugins/tiddlywiki/internals/plugin.info +2 -1
  809. package/plugins/tiddlywiki/jasmine/plugin.info +2 -1
  810. package/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js +21 -18
  811. package/plugins/tiddlywiki/jszip/plugin.info +2 -1
  812. package/plugins/tiddlywiki/katex/plugin.info +2 -1
  813. package/plugins/tiddlywiki/markdown/plugin.info +2 -1
  814. package/plugins/tiddlywiki/markdown-legacy/plugin.info +2 -1
  815. package/plugins/tiddlywiki/menubar/items/pagecontrols.tid +9 -10
  816. package/plugins/tiddlywiki/menubar/plugin.info +2 -1
  817. package/plugins/tiddlywiki/mobiledragdrop/plugin.info +2 -1
  818. package/plugins/tiddlywiki/nodewebkitsaver/plugin.info +2 -1
  819. package/plugins/tiddlywiki/pluginlibrary/plugin.info +2 -1
  820. package/plugins/tiddlywiki/powered-by-tiddlywiki/plugin.info +2 -1
  821. package/plugins/tiddlywiki/qrcode/plugin.info +2 -1
  822. package/plugins/tiddlywiki/railroad/plugin.info +2 -1
  823. package/plugins/tiddlywiki/savetrail/plugin.info +2 -1
  824. package/plugins/tiddlywiki/sax/plugin.info +2 -1
  825. package/plugins/tiddlywiki/share/plugin.info +2 -1
  826. package/plugins/tiddlywiki/stacked-view/plugin.info +2 -1
  827. package/plugins/tiddlywiki/tahoelafs/plugin.info +2 -1
  828. package/plugins/tiddlywiki/text-slicer/plugin.info +2 -1
  829. package/plugins/tiddlywiki/tiddlyweb/plugin.info +2 -1
  830. package/plugins/tiddlywiki/tour/config-AutoStartTour.tid +2 -0
  831. package/plugins/tiddlywiki/tour/config-CurrentTour.tid +2 -0
  832. package/plugins/tiddlywiki/tour/config-DefaultColourMappings.multids +31 -0
  833. package/plugins/tiddlywiki/tour/config-ShowTour.tid +2 -0
  834. package/plugins/tiddlywiki/tour/docs.tid +25 -0
  835. package/plugins/tiddlywiki/tour/images/tour-button-icon.tid +9 -0
  836. package/plugins/tiddlywiki/tour/plugin.info +8 -0
  837. package/plugins/tiddlywiki/tour/readme.tid +3 -0
  838. package/plugins/tiddlywiki/tour/settings.tid +154 -0
  839. package/plugins/tiddlywiki/tour/simplified-tiddler-with-tags.tid +106 -0
  840. package/plugins/tiddlywiki/tour/simplified-tiddler.tid +22 -0
  841. package/plugins/tiddlywiki/tour/start-tour-button.tid +18 -0
  842. package/plugins/tiddlywiki/tour/startup-actions.tid +7 -0
  843. package/plugins/tiddlywiki/tour/styles.tid +261 -0
  844. package/plugins/tiddlywiki/tour/tour-panel.tid +104 -0
  845. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/config/ProductName.tid +2 -0
  846. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-GasGiant.tid +4 -0
  847. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-Jupiter.tid +5 -0
  848. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-Mars.tid +5 -0
  849. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-Planet.tid +4 -0
  850. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-Rocky.tid +4 -0
  851. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/data/tiddlers-Saturn.tid +5 -0
  852. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/images/tiddlywiki-tour-logo.svg +28 -0
  853. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/images/tiddlywiki-tour-logo.svg.meta +2 -0
  854. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/introduction-to-tiddlywiki.tid +8 -0
  855. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/settings.tid +4 -0
  856. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/close-control-panel.tid +9 -0
  857. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/closing-tiddlers.tid +25 -0
  858. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/create-tiddler.tid +11 -0
  859. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/end-of-fullscreen.tid +10 -0
  860. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/finished.tid +13 -0
  861. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/links.tid +23 -0
  862. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/open-control-panel.tid +9 -0
  863. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/recent.tid +9 -0
  864. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/search.tid +9 -0
  865. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/tags.tid +26 -0
  866. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/tiddlers.tid +16 -0
  867. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/steps/welcome.tid +10 -0
  868. package/plugins/tiddlywiki/tour/tours/introduction-to-tiddlywiki/tagsTourIntroductionToTiddlyWiki.tid +2 -0
  869. package/plugins/tiddlywiki/tour/variables.tid +104 -0
  870. package/plugins/tiddlywiki/translators/plugin.info +2 -1
  871. package/plugins/tiddlywiki/tw2parser/plugin.info +2 -1
  872. package/plugins/tiddlywiki/tw5.com-docs/plugin.info +2 -1
  873. package/plugins/tiddlywiki/tw5.com-docs/readme.tid +7 -0
  874. package/plugins/tiddlywiki/twitter/plugin.info +2 -1
  875. package/plugins/tiddlywiki/twitter-archivist/plugin.info +2 -1
  876. package/plugins/tiddlywiki/upgrade/plugin.info +2 -1
  877. package/plugins/tiddlywiki/xlsx-utils/plugin.info +2 -1
  878. package/plugins/tiddlywiki/xmldom/plugin.info +2 -1
  879. package/readme.md +6 -6
  880. package/themes/tiddlywiki/vanilla/base.tid +212 -9
  881. package/themes/tiddlywiki/vanilla/reset.tid +61 -85
  882. package/boot/sjcl.js.meta +0 -3
  883. package/core/modules/indexers/backlinks-index.js +0 -86
  884. package/editions/es-ES/tiddlers/$__StoryList.tid +0 -6
  885. package/editions/tw.org/tiddlers/$__StoryList.tid +0 -3
  886. package/editions/tw5.com/tiddlers/$__StoryList.tid +0 -5
  887. package/plugins/tiddlywiki/innerwiki/data.js +0 -58
  888. /package/editions/fr-FR/tiddlers/community/editions/{_Noteself_ by Danielo Rodr/303/255guez.tid" → _Noteself_ by Danielo Rodriguez.tid} +0 -0
  889. /package/editions/test/tiddlers/tests/data/macros/{NestedMacros-indented.tid → nested-macros/NestedMacros-indented.tid} +0 -0
  890. /package/editions/test/tiddlers/tests/data/macros/{NestedMacros-indented2.tid → nested-macros/NestedMacros-indented2.tid} +0 -0
  891. /package/editions/test/tiddlers/tests/data/macros/{NestedMacros.tid → nested-macros/NestedMacros.tid} +0 -0
  892. /package/editions/test/tiddlers/tests/data/macros/{TrailingNewlines.tid → trailing-newlines/TrailingNewlines.tid} +0 -0
  893. /package/editions/tw5.com/tiddlers/{Tables in WikiText CSS Utility Classes.tid → wikitext/Tables in WikiText CSS Utility Classes.tid} +0 -0
@@ -0,0 +1,52 @@
1
+ /*\
2
+ title: $:/core/modules/utils/repository.js
3
+ type: application/javascript
4
+ module-type: utils
5
+
6
+ Utilities for working with the TiddlyWiki repository file structure
7
+
8
+ \*/
9
+ (function(){
10
+
11
+ /*jslint node: true, browser: true */
12
+ /*global $tw: false */
13
+ "use strict";
14
+
15
+ /*
16
+ Get an object containing all the plugins as a hashmap by title of the JSON representation of the plugin
17
+ Options:
18
+
19
+ ignoreEnvironmentVariables: defaults to false
20
+ */
21
+ exports.getAllPlugins = function(options) {
22
+ options = options || {};
23
+ var fs = require("fs"),
24
+ path = require("path"),
25
+ tiddlers = {};
26
+ // Collect up the library plugins
27
+ var collectPlugins = function(folder) {
28
+ var pluginFolders = $tw.utils.getSubdirectories(folder) || [];
29
+ for(var p=0; p<pluginFolders.length; p++) {
30
+ if(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {
31
+ var pluginFields = $tw.loadPluginFolder(path.resolve(folder,"./" + pluginFolders[p]));
32
+ if(pluginFields && pluginFields.title) {
33
+ tiddlers[pluginFields.title] = pluginFields;
34
+ }
35
+ }
36
+ }
37
+ },
38
+ collectPublisherPlugins = function(folder) {
39
+ var publisherFolders = $tw.utils.getSubdirectories(folder) || [];
40
+ for(var t=0; t<publisherFolders.length; t++) {
41
+ if(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {
42
+ collectPlugins(path.resolve(folder,"./" + publisherFolders[t]));
43
+ }
44
+ }
45
+ };
46
+ $tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.pluginsEnvVar),collectPublisherPlugins);
47
+ $tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.themesEnvVar),collectPublisherPlugins);
48
+ $tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,options.ignoreEnvironmentVariables ? undefined : $tw.config.languagesEnvVar),collectPlugins);
49
+ return tiddlers;
50
+ };
51
+
52
+ })();
@@ -819,6 +819,15 @@ exports.hashString = function(str) {
819
819
  },0);
820
820
  };
821
821
 
822
+ /*
823
+ Cryptographic hash function as used by sha256 filter operator
824
+ options.length .. number of characters returned defaults to 64
825
+ */
826
+ exports.sha256 = function(str, options) {
827
+ options = options || {}
828
+ return $tw.sjcl.codec.hex.fromBits($tw.sjcl.hash.sha256.hash(str)).substr(0,options.length || 64);
829
+ }
830
+
822
831
  /*
823
832
  Base64 utility functions that work in either browser or Node.js
824
833
  */
@@ -922,7 +931,7 @@ IE does not have sign function
922
931
  */
923
932
  exports.sign = Math.sign || function(x) {
924
933
  x = +x; // convert to a number
925
- if (x === 0 || isNaN(x)) {
934
+ if(x === 0 || isNaN(x)) {
926
935
  return x;
927
936
  }
928
937
  return x > 0 ? 1 : -1;
@@ -935,7 +944,7 @@ exports.strEndsWith = function(str,ending,position) {
935
944
  if(str.endsWith) {
936
945
  return str.endsWith(ending,position);
937
946
  } else {
938
- if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {
947
+ if(typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {
939
948
  position = str.length;
940
949
  }
941
950
  position -= ending.length;
@@ -37,6 +37,7 @@ Compute the internal state of the widget
37
37
  DeleteFieldWidget.prototype.execute = function() {
38
38
  this.actionTiddler = this.getAttribute("$tiddler",this.getVariable("currentTiddler"));
39
39
  this.actionField = this.getAttribute("$field",null);
40
+ this.actionTimestamp = this.getAttribute("$timestamp","yes") === "yes";
40
41
  };
41
42
 
42
43
  /*
@@ -69,11 +70,15 @@ DeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {
69
70
  $tw.utils.each(this.attributes,function(attribute,name) {
70
71
  if(name.charAt(0) !== "$" && name !== "title") {
71
72
  removeFields[name] = undefined;
72
- hasChanged = true;
73
+ if(name in tiddler.fields) {
74
+ hasChanged = true;
75
+ }
73
76
  }
74
77
  });
75
78
  if(hasChanged) {
76
- this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));
79
+ var creationFields = this.actionTimestamp ? this.wiki.getCreationFields() : {};
80
+ var modificationFields = this.actionTimestamp ? this.wiki.getModificationFields() : {};
81
+ this.wiki.addTiddler(new $tw.Tiddler(creationFields,tiddler,removeFields,modificationFields));
77
82
  }
78
83
  }
79
84
  return true; // Action was invoked
@@ -66,7 +66,12 @@ LogWidget.prototype.log = function() {
66
66
  });
67
67
 
68
68
  for(var v in this.variables) {
69
- allVars[v] = this.getVariable(v,{defaultValue:""});
69
+ var variable = this.parentWidget && this.parentWidget.variables[v];
70
+ if(variable && variable.isFunctionDefinition) {
71
+ allVars[v] = variable.value;
72
+ } else {
73
+ allVars[v] = this.getVariable(v,{defaultValue:""});
74
+ }
70
75
  }
71
76
  if(this.filter) {
72
77
  filteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));
@@ -262,7 +262,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
262
262
  */
263
263
  ButtonWidget.prototype.refresh = function(changedTiddlers) {
264
264
  var changedAttributes = this.computeAttributes();
265
- if(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.popupAbsCoords || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) {
265
+ if(changedAttributes.tooltip || changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.popupAbsCoords || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle || changedAttributes.disabled || changedAttributes["default"]) {
266
266
  this.refreshSelf();
267
267
  return true;
268
268
  } else {
@@ -0,0 +1,182 @@
1
+ /*\
2
+ title: $:/core/modules/widgets/data.js
3
+ type: application/javascript
4
+ module-type: widget
5
+
6
+ Widget to dynamically represent one or more tiddlers
7
+
8
+ \*/
9
+ (function(){
10
+
11
+ /*jslint node: true, browser: true */
12
+ /*global $tw: false */
13
+ "use strict";
14
+
15
+ var Widget = require("$:/core/modules/widgets/widget.js").widget;
16
+
17
+ var DataWidget = function(parseTreeNode,options) {
18
+ this.dataWidgetTag = parseTreeNode.type;
19
+ this.initialise(parseTreeNode,options);
20
+ };
21
+
22
+ /*
23
+ Inherit from the base widget class
24
+ */
25
+ DataWidget.prototype = new Widget();
26
+
27
+ /*
28
+ Render this widget into the DOM
29
+ */
30
+ DataWidget.prototype.render = function(parent,nextSibling) {
31
+ this.parentDomNode = parent;
32
+ this.computeAttributes();
33
+ this.execute();
34
+ this.dataPayload = this.computeDataTiddlerValues(); // Array of $tw.Tiddler objects
35
+ this.domNode = this.document.createTextNode(this.readDataTiddlerValuesAsJson());
36
+ parent.insertBefore(this.domNode,nextSibling);
37
+ this.domNodes.push(this.domNode);
38
+ };
39
+
40
+ /*
41
+ Compute the internal state of the widget
42
+ */
43
+ DataWidget.prototype.execute = function() {
44
+ // Nothing to do here
45
+ };
46
+
47
+ /*
48
+ Read the tiddler value(s) from a data widget as an array of tiddler field objects (not $tw.Tiddler objects)
49
+ */
50
+ DataWidget.prototype.readDataTiddlerValues = function() {
51
+ var results = [];
52
+ $tw.utils.each(this.dataPayload,function(tiddler,index) {
53
+ results.push(tiddler.getFieldStrings());
54
+ });
55
+ return results;
56
+ };
57
+
58
+ /*
59
+ Read the tiddler value(s) from a data widget as an array of tiddler field objects (not $tw.Tiddler objects)
60
+ */
61
+ DataWidget.prototype.readDataTiddlerValuesAsJson = function() {
62
+ return JSON.stringify(this.readDataTiddlerValues(),null,4);
63
+ };
64
+
65
+ /*
66
+ Compute list of tiddlers from a data widget
67
+ */
68
+ DataWidget.prototype.computeDataTiddlerValues = function() {
69
+ var self = this;
70
+ // Read any attributes not prefixed with $
71
+ var item = Object.create(null);
72
+ $tw.utils.each(this.attributes,function(value,name) {
73
+ if(name.charAt(0) !== "$") {
74
+ item[name] = value;
75
+ }
76
+ });
77
+ // Deal with $tiddler, $filter or $compound-tiddler attributes
78
+ var tiddlers = [],title;
79
+ if(this.hasAttribute("$tiddler")) {
80
+ title = this.getAttribute("$tiddler");
81
+ if(title) {
82
+ var tiddler = this.wiki.getTiddler(title);
83
+ if(tiddler) {
84
+ tiddlers.push(tiddler);
85
+ }
86
+ }
87
+ }
88
+ if(this.hasAttribute("$filter")) {
89
+ var filter = this.getAttribute("$filter");
90
+ if(filter) {
91
+ var titles = this.wiki.filterTiddlers(filter);
92
+ $tw.utils.each(titles,function(title) {
93
+ var tiddler = self.wiki.getTiddler(title);
94
+ tiddlers.push(tiddler);
95
+ });
96
+ }
97
+ }
98
+ if(this.hasAttribute("$compound-tiddler")) {
99
+ title = this.getAttribute("$compound-tiddler");
100
+ if(title) {
101
+ tiddlers.push.apply(tiddlers,this.extractCompoundTiddler(title));
102
+ }
103
+ }
104
+ // Return the literal item if none of the special attributes were used
105
+ if(!this.hasAttribute("$tiddler") && !this.hasAttribute("$filter") && !this.hasAttribute("$compound-tiddler")) {
106
+ if(Object.keys(item).length > 0 && !!item.title) {
107
+ return [new $tw.Tiddler(item)];
108
+ } else {
109
+ return [];
110
+ }
111
+ } else {
112
+ // Apply the item fields to each of the tiddlers
113
+ delete item.title; // Do not overwrite the title
114
+ if(Object.keys(item).length > 0) {
115
+ $tw.utils.each(tiddlers,function(tiddler,index) {
116
+ tiddlers[index] = new $tw.Tiddler(tiddler,item);
117
+ });
118
+ }
119
+ return tiddlers;
120
+ }
121
+ };
122
+
123
+ /*
124
+ Helper to extract tiddlers from text/vnd.tiddlywiki-multiple tiddlers
125
+ */
126
+ DataWidget.prototype.extractCompoundTiddler = function(title) {
127
+ var tiddler = this.wiki.getTiddler(title);
128
+ if(tiddler && tiddler.fields.type === "text/vnd.tiddlywiki-multiple") {
129
+ var text = tiddler.fields.text || "",
130
+ rawTiddlers = text.split(/\r?\n\+\r?\n/),
131
+ tiddlers = [];
132
+ $tw.utils.each(rawTiddlers,function(rawTiddler) {
133
+ var fields = Object.create(null),
134
+ split = rawTiddler.split(/\r?\n\r?\n/mg);
135
+ if(split.length >= 1) {
136
+ fields = $tw.utils.parseFields(split[0],fields);
137
+ }
138
+ if(split.length >= 2) {
139
+ fields.text = split.slice(1).join("\n\n");
140
+ }
141
+ tiddlers.push(new $tw.Tiddler(fields));
142
+ });
143
+ return tiddlers;
144
+ } else {
145
+ return [];
146
+ }
147
+ };
148
+
149
+ /*
150
+ Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
151
+ */
152
+ DataWidget.prototype.refresh = function(changedTiddlers) {
153
+ var changedAttributes = this.computeAttributes();
154
+ var newPayload = this.computeDataTiddlerValues();
155
+ if(hasPayloadChanged(this.dataPayload,newPayload)) {
156
+ this.dataPayload = newPayload;
157
+ this.domNode.textContent = this.readDataTiddlerValuesAsJson();
158
+ return true;
159
+ } else {
160
+ return false;
161
+ }
162
+ };
163
+
164
+ /*
165
+ Compare two arrays of tiddlers and return true if they are different
166
+ */
167
+ function hasPayloadChanged(a,b) {
168
+ if(a.length === b.length) {
169
+ for(var t=0; t<a.length; t++) {
170
+ if(!(a[t].isEqual(b[t]))) {
171
+ return true;
172
+ }
173
+ }
174
+ return false;
175
+ } else {
176
+ return true;
177
+ }
178
+ }
179
+
180
+ exports.data = DataWidget;
181
+
182
+ })();
@@ -119,7 +119,7 @@ DraggableWidget.prototype.refresh = function(changedTiddlers) {
119
119
  return true;
120
120
  } else {
121
121
  if(changedAttributes["class"]) {
122
- this.assignDomNodeClasses();
122
+ this.updateDomNodeClasses();
123
123
  }
124
124
  this.assignAttributes(this.domNodes[0],{
125
125
  changedAttributes: changedAttributes,
@@ -132,4 +132,4 @@ DraggableWidget.prototype.refresh = function(changedTiddlers) {
132
132
 
133
133
  exports.draggable = DraggableWidget;
134
134
 
135
- })();
135
+ })();
@@ -90,7 +90,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
90
90
  EditWidget.prototype.refresh = function(changedTiddlers) {
91
91
  var changedAttributes = this.computeAttributes();
92
92
  // Refresh if an attribute has changed, or the type associated with the target tiddler has changed
93
- if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {
93
+ if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (this.getEditorType() !== this.editorType)) {
94
94
  this.refreshSelf();
95
95
  return true;
96
96
  } else {
@@ -49,7 +49,7 @@ ImportVariablesWidget.prototype.execute = function(tiddlerList) {
49
49
  this.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);
50
50
  // Accumulate the <$set> widgets from each tiddler
51
51
  $tw.utils.each(this.tiddlerList,function(title) {
52
- var parser = widgetPointer.wiki.parseTiddler(title,{parseAsInline:true, configTrimWhiteSpace:true});
52
+ var parser = widgetPointer.wiki.parseTiddler(title,{parseAsInline:true, configTrimWhiteSpace:false});
53
53
  if(parser) {
54
54
  var parseTreeNode = parser.tree[0];
55
55
  while(parseTreeNode && ["setvariable","set","parameters"].indexOf(parseTreeNode.type) !== -1) {
@@ -217,7 +217,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
217
217
  */
218
218
  LinkWidget.prototype.refresh = function(changedTiddlers) {
219
219
  var changedAttributes = this.computeAttributes();
220
- if($tw.utils.count(changedAttributes) > 0) {
220
+ if($tw.utils.count(changedAttributes) > 0 || changedTiddlers[this.to]) {
221
221
  this.refreshSelf();
222
222
  return true;
223
223
  }
@@ -74,6 +74,18 @@ ParametersWidget.prototype.execute = function() {
74
74
  self.setVariable(variableName,getValue(name));
75
75
  }
76
76
  });
77
+ } else {
78
+ // There is no parent transclude. i.e. direct rendering.
79
+ // We use default values only.
80
+ $tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(self.parseTreeNode),function(attr,index) {
81
+ var name = attr.name;
82
+ // If the attribute name starts with $$ then reduce to a single dollar
83
+ if(name.substr(0,2) === "$$") {
84
+ name = name.substr(1);
85
+ }
86
+ var value = self.getAttribute(attr.name,"");
87
+ self.setVariable(name,value);
88
+ });
77
89
  }
78
90
  // Construct the child widgets
79
91
  this.makeChildWidgets();
@@ -0,0 +1,165 @@
1
+ /*\
2
+ title: $:/core/modules/widgets/testcase.js
3
+ type: application/javascript
4
+ module-type: widget
5
+
6
+ Widget to display a test case
7
+
8
+ \*/
9
+ (function(){
10
+
11
+ /*jslint node: true, browser: true */
12
+ /*global $tw: false */
13
+ "use strict";
14
+
15
+ var Widget = require("$:/core/modules/widgets/widget.js").widget;
16
+
17
+ var TestCaseWidget = function(parseTreeNode,options) {
18
+ this.initialise(parseTreeNode,options);
19
+ };
20
+
21
+ /*
22
+ Inherit from the base widget class
23
+ */
24
+ TestCaseWidget.prototype = new Widget();
25
+
26
+ /*
27
+ Render this widget into the DOM
28
+ */
29
+ TestCaseWidget.prototype.render = function(parent,nextSibling) {
30
+ var self = this;
31
+ this.parentDomNode = parent;
32
+ this.computeAttributes();
33
+ this.execute();
34
+ // Create container DOM node
35
+ var domNode = this.document.createElement("div");
36
+ this.domNodes.push(domNode);
37
+ parent.insertBefore(domNode,nextSibling);
38
+ // Render the children into a hidden DOM node
39
+ var parser = {
40
+ tree: [{
41
+ type: "widget",
42
+ attributes: {},
43
+ orderedAttributes: [],
44
+ children: this.parseTreeNode.children || []
45
+ }]
46
+ };
47
+ this.contentRoot = this.wiki.makeWidget(parser,{
48
+ document: $tw.fakeDocument,
49
+ parentWidget: this
50
+ });
51
+ this.contentContainer = $tw.fakeDocument.createElement("div");
52
+ this.contentRoot.render(this.contentContainer,null);
53
+ // Create a wiki
54
+ this.testcaseWiki = new $tw.Wiki();
55
+ // Always load the core plugin
56
+ var loadTiddler = function(title) {
57
+ var tiddler = self.wiki.getTiddler(title);
58
+ if(tiddler) {
59
+ self.testcaseWiki.addTiddler(tiddler);
60
+ }
61
+ }
62
+ loadTiddler("$:/core");
63
+ loadTiddler("$:/plugins/tiddlywiki/codemirror");
64
+ // Load tiddlers from child data widgets
65
+ var tiddlers = [];
66
+ this.findChildrenDataWidgets(this.contentRoot.children,"data",function(widget) {
67
+ Array.prototype.push.apply(tiddlers,widget.readDataTiddlerValues());
68
+ });
69
+ var jsonPayload = JSON.stringify(tiddlers);
70
+ this.testcaseWiki.addTiddlers(tiddlers);
71
+ // Unpack plugin tiddlers
72
+ this.testcaseWiki.readPluginInfo();
73
+ this.testcaseWiki.registerPluginTiddlers("plugin");
74
+ this.testcaseWiki.unpackPluginTiddlers();
75
+ this.testcaseWiki.addIndexersToWiki();
76
+ // Generate a `transclusion` variable that depends on the values of the payload tiddlers so that the template can easily make unique state tiddlers
77
+ this.setVariable("transclusion",$tw.utils.hashString(jsonPayload));
78
+ // Generate a `payloadTiddlers` variable that contains the payload in JSON format
79
+ this.setVariable("payloadTiddlers",jsonPayload);
80
+ // Only run the tests if the testcase output and expected results were specified, and those tiddlers actually exist in the wiki
81
+ var shouldRunTests = false;
82
+ if(this.testcaseTestOutput && this.testcaseWiki.tiddlerExists(this.testcaseTestOutput) && this.testcaseTestExpectedResult && this.testcaseWiki.tiddlerExists(this.testcaseTestExpectedResult)) {
83
+ shouldRunTests = true;
84
+ }
85
+ // Render the test rendering if required
86
+ if(shouldRunTests) {
87
+ var testcaseOutputContainer = $tw.fakeDocument.createElement("div");
88
+ var testcaseOutputWidget = this.testcaseWiki.makeTranscludeWidget(this.testcaseTestOutput,{
89
+ document: $tw.fakeDocument,
90
+ parseAsInline: false,
91
+ parentWidget: this,
92
+ variables: {
93
+ currentTiddler: this.testcaseTestOutput
94
+ }
95
+ });
96
+ testcaseOutputWidget.render(testcaseOutputContainer);
97
+ }
98
+ // Clear changes queue
99
+ this.testcaseWiki.clearTiddlerEventQueue();
100
+ // Run the actions if provided
101
+ if(this.testcaseWiki.tiddlerExists(this.testcaseTestActions)) {
102
+ testcaseOutputWidget.invokeActionString(this.testcaseWiki.getTiddlerText(this.testcaseTestActions));
103
+ testcaseOutputWidget.refresh(this.testcaseWiki.changedTiddlers,testcaseOutputContainer);
104
+ }
105
+ // Set up the test result variables
106
+ var testResult = "",
107
+ outputHTML = "",
108
+ expectedHTML = "";
109
+ if(shouldRunTests) {
110
+ outputHTML = testcaseOutputContainer.children[0].innerHTML;
111
+ expectedHTML = this.testcaseWiki.getTiddlerText(this.testcaseTestExpectedResult);
112
+ if(outputHTML === expectedHTML) {
113
+ testResult = "pass";
114
+ } else {
115
+ testResult = "fail";
116
+ }
117
+ this.setVariable("outputHTML",outputHTML);
118
+ this.setVariable("expectedHTML",expectedHTML);
119
+ this.setVariable("testResult",testResult);
120
+ this.setVariable("currentTiddler",this.testcaseTestOutput);
121
+ }
122
+ // Don't display anything if testHideIfPass is "yes" and the tests have passed
123
+ if(this.testcaseHideIfPass === "yes" && testResult !== "fail") {
124
+ return;
125
+ }
126
+ // Render the page root template of the subwiki
127
+ var rootWidget = this.testcaseWiki.makeTranscludeWidget(this.testcaseTemplate,{
128
+ document: this.document,
129
+ parseAsInline: false,
130
+ parentWidget: this
131
+ });
132
+ rootWidget.render(domNode);
133
+ // Trap changes in the wiki and refresh the rendering
134
+ this.testcaseWiki.addEventListener("change",function(changes) {
135
+ rootWidget.refresh(changes,domNode);
136
+ });
137
+ };
138
+
139
+ /*
140
+ Compute the internal state of the widget
141
+ */
142
+ TestCaseWidget.prototype.execute = function() {
143
+ this.testcaseTemplate = this.getAttribute("template","$:/core/ui/testcases/DefaultTemplate");
144
+ this.testcaseTestOutput = this.getAttribute("testOutput");
145
+ this.testcaseTestActions = this.getAttribute("testActions");
146
+ this.testcaseTestExpectedResult = this.getAttribute("testExpectedResult");
147
+ this.testcaseHideIfPass = this.getAttribute("testHideIfPass");
148
+ };
149
+
150
+ /*
151
+ Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
152
+ */
153
+ TestCaseWidget.prototype.refresh = function(changedTiddlers) {
154
+ var changedAttributes = this.computeAttributes();
155
+ if($tw.utils.count(changedAttributes) > 0) {
156
+ this.refreshSelf();
157
+ return true;
158
+ } else {
159
+ return this.contentRoot.refresh(changedTiddlers);
160
+ }
161
+ };
162
+
163
+ exports["testcase"] = TestCaseWidget;
164
+
165
+ })();
@@ -30,7 +30,30 @@ TranscludeWidget.prototype.render = function(parent,nextSibling) {
30
30
  this.parentDomNode = parent;
31
31
  this.computeAttributes();
32
32
  this.execute();
33
- this.renderChildren(parent,nextSibling);
33
+ try {
34
+ this.renderChildren(parent,nextSibling);
35
+ } catch(error) {
36
+ if(error instanceof $tw.utils.TranscludeRecursionError) {
37
+ // We were infinite looping.
38
+ // We need to try and abort as much of the loop as we can, so we will keep "throwing" upward until we find a transclusion that has a different signature.
39
+ // Hopefully that will land us just outside where the loop began. That's where we want to issue an error.
40
+ // Rendering widgets beneath this point may result in a freezing browser if they explode exponentially.
41
+ var transcludeSignature = this.getVariable("transclusion");
42
+ if(this.getAncestorCount() > $tw.utils.TranscludeRecursionError.MAX_WIDGET_TREE_DEPTH - 50) {
43
+ // For the first fifty transcludes we climb up, we simply collect signatures.
44
+ // We're assuming that those first 50 will likely include all transcludes involved in the loop.
45
+ error.signatures[transcludeSignature] = true;
46
+ } else if(!error.signatures[transcludeSignature]) {
47
+ // Now that we're past the first 50, let's look for the first signature that wasn't in the loop. That'll be where we print the error and resume rendering.
48
+ this.children = [this.makeChildWidget({type: "error", attributes: {
49
+ "$message": {type: "string", value: $tw.language.getString("Error/RecursiveTransclusion")}
50
+ }})];
51
+ this.renderChildren(parent,nextSibling);
52
+ return;
53
+ }
54
+ }
55
+ throw error;
56
+ }
34
57
  };
35
58
 
36
59
  /*
@@ -12,9 +12,6 @@ Widget base class
12
12
  /*global $tw: false */
13
13
  "use strict";
14
14
 
15
- /* Maximum permitted depth of the widget tree for recursion detection */
16
- var MAX_WIDGET_TREE_DEPTH = 1000;
17
-
18
15
  /*
19
16
  Create a widget object for a parse tree node
20
17
  parseTreeNode: reference to the parse tree node to be rendered
@@ -153,7 +150,7 @@ Widget.prototype.getVariableInfo = function(name,options) {
153
150
  } else if(variable.isFunctionDefinition) {
154
151
  // Function evaluations
155
152
  params = self.resolveVariableParameters(variable.params,actualParams);
156
- var variables = Object.create(null);
153
+ var variables = options.variables || Object.create(null);
157
154
  // Apply default parameter values
158
155
  $tw.utils.each(variable.params,function(param,index) {
159
156
  if(param["default"]) {
@@ -166,6 +163,8 @@ Widget.prototype.getVariableInfo = function(name,options) {
166
163
  });
167
164
  resultList = this.wiki.filterTiddlers(value,this.makeFakeWidgetWithVariables(variables),options.source);
168
165
  value = resultList[0] || "";
166
+ } else {
167
+ params = variable.params;
169
168
  }
170
169
  return {
171
170
  text: value,
@@ -317,7 +316,8 @@ Widget.prototype.getStateQualifier = function(name) {
317
316
  Make a fake widget with specified variables, suitable for variable lookup in filters
318
317
  */
319
318
  Widget.prototype.makeFakeWidgetWithVariables = function(variables) {
320
- var self = this;
319
+ var self = this,
320
+ variables = variables || {};
321
321
  return {
322
322
  getVariable: function(name,opts) {
323
323
  if($tw.utils.hop(variables,name)) {
@@ -335,7 +335,7 @@ Widget.prototype.makeFakeWidgetWithVariables = function(variables) {
335
335
  };
336
336
  } else {
337
337
  opts = opts || {};
338
- opts.variables = variables;
338
+ opts.variables = $tw.utils.extend(variables,opts.variables);
339
339
  return self.getVariableInfo(name,opts);
340
340
  };
341
341
  },
@@ -494,10 +494,8 @@ Widget.prototype.makeChildWidgets = function(parseTreeNodes,options) {
494
494
  this.children = [];
495
495
  var self = this;
496
496
  // Check for too much recursion
497
- if(this.getAncestorCount() > MAX_WIDGET_TREE_DEPTH) {
498
- this.children.push(this.makeChildWidget({type: "error", attributes: {
499
- "$message": {type: "string", value: $tw.language.getString("Error/RecursiveTransclusion")}
500
- }}));
497
+ if(this.getAncestorCount() > $tw.utils.TranscludeRecursionError.MAX_WIDGET_TREE_DEPTH) {
498
+ throw new $tw.utils.TranscludeRecursionError();
501
499
  } else {
502
500
  // Create set variable widgets for each variable
503
501
  $tw.utils.each(options.variables,function(value,name) {
@@ -813,6 +811,21 @@ Widget.prototype.allowActionPropagation = function() {
813
811
  return true;
814
812
  };
815
813
 
814
+ /*
815
+ Find child <$data> widgets recursively. The tag name allows aliased versions of the widget to be found too
816
+ */
817
+ Widget.prototype.findChildrenDataWidgets = function(children,tag,callback) {
818
+ var self = this;
819
+ $tw.utils.each(children,function(child) {
820
+ if(child.dataWidgetTag === tag) {
821
+ callback(child);
822
+ }
823
+ if(child.children) {
824
+ self.findChildrenDataWidgets(child.children,tag,callback);
825
+ }
826
+ });
827
+ };
828
+
816
829
  /*
817
830
  Evaluate a variable with parameters. This is a static convenience method that attempts to evaluate a variable as a function, returning an array of strings
818
831
  */