tiddlywiki 5.4.0 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/bin/build-site.sh +1 -1
  2. package/bin/build-tw-org.sh +0 -0
  3. package/bin/ci-pre-build.sh +0 -0
  4. package/bin/ci-push.sh +0 -0
  5. package/bin/ci-test.sh +0 -0
  6. package/bin/clean.sh +0 -0
  7. package/bin/get-plugin-library-version-number +0 -0
  8. package/bin/ginsu.sh +0 -0
  9. package/bin/lazy.sh +0 -0
  10. package/bin/npm-publish.sh +0 -0
  11. package/bin/optimise-svgs.js +0 -0
  12. package/bin/quick-bld.sh +0 -0
  13. package/bin/readme-bld.sh +0 -0
  14. package/bin/serve.sh +0 -0
  15. package/bin/tankbld.sh +0 -0
  16. package/bin/test.sh +0 -0
  17. package/bin/update-translation-from-html-file.sh +0 -0
  18. package/bin/verbump.sh +0 -0
  19. package/community/people/BurningTreeC.tid +9 -0
  20. package/community/project/teams/TiddlyDesktop Team.tid +8 -0
  21. package/core/images/advanced-search-button.tid +0 -0
  22. package/core/images/auto-height.tid +0 -0
  23. package/core/images/blank.tid +0 -0
  24. package/core/images/bold.tid +0 -0
  25. package/core/images/cancel-button.tid +0 -0
  26. package/core/images/chevron-down.tid +0 -0
  27. package/core/images/chevron-left.tid +0 -0
  28. package/core/images/chevron-right.tid +0 -0
  29. package/core/images/chevron-up.tid +0 -0
  30. package/core/images/clone-button.tid +0 -0
  31. package/core/images/close-all-button.tid +0 -0
  32. package/core/images/close-button.tid +0 -0
  33. package/core/images/close-others-button.tid +0 -0
  34. package/core/images/delete-button.tid +0 -0
  35. package/core/images/done-button.tid +0 -0
  36. package/core/images/down-arrow.tid +0 -0
  37. package/core/images/download-button.tid +0 -0
  38. package/core/images/edit-button.tid +0 -0
  39. package/core/images/erase.tid +0 -0
  40. package/core/images/excise.tid +0 -0
  41. package/core/images/export-button.tid +0 -0
  42. package/core/images/file.tid +0 -0
  43. package/core/images/fixed-height.tid +0 -0
  44. package/core/images/fold-all-button.tid +0 -0
  45. package/core/images/fold-button.tid +0 -0
  46. package/core/images/fold-others-button.tid +0 -0
  47. package/core/images/folder.tid +0 -0
  48. package/core/images/full-screen-button.tid +0 -0
  49. package/core/images/github.tid +0 -0
  50. package/core/images/globe.tid +0 -0
  51. package/core/images/heading-1.tid +0 -0
  52. package/core/images/heading-2.tid +0 -0
  53. package/core/images/heading-3.tid +0 -0
  54. package/core/images/heading-4.tid +0 -0
  55. package/core/images/heading-5.tid +0 -0
  56. package/core/images/heading-6.tid +0 -0
  57. package/core/images/help.tid +0 -0
  58. package/core/images/home-button.tid +0 -0
  59. package/core/images/import-button.tid +0 -0
  60. package/core/images/info-button.tid +0 -0
  61. package/core/images/italic.tid +0 -0
  62. package/core/images/layout-button.tid +0 -0
  63. package/core/images/left-arrow.tid +0 -0
  64. package/core/images/line-width.tid +0 -0
  65. package/core/images/list-bullet.tid +0 -0
  66. package/core/images/list-number.tid +0 -0
  67. package/core/images/locked-padlock.tid +0 -0
  68. package/core/images/mail.tid +0 -0
  69. package/core/images/menu-button.tid +0 -0
  70. package/core/images/mono-block.tid +0 -0
  71. package/core/images/mono-line.tid +0 -0
  72. package/core/images/new-button.tid +0 -0
  73. package/core/images/new-here-button.tid +0 -0
  74. package/core/images/new-image-button.tid +0 -0
  75. package/core/images/new-journal-button.tid +0 -0
  76. package/core/images/opacity.tid +0 -0
  77. package/core/images/open-window.tid +0 -0
  78. package/core/images/options-button.tid +0 -0
  79. package/core/images/paint.tid +0 -0
  80. package/core/images/palette.tid +0 -0
  81. package/core/images/permalink-button.tid +0 -0
  82. package/core/images/permaview-button.tid +0 -0
  83. package/core/images/picture.tid +0 -0
  84. package/core/images/plugin-generic-language.tid +0 -0
  85. package/core/images/plugin-generic-plugin.tid +0 -0
  86. package/core/images/plugin-generic-theme.tid +0 -0
  87. package/core/images/preview-closed.tid +0 -0
  88. package/core/images/preview-open.tid +0 -0
  89. package/core/images/quote.tid +0 -0
  90. package/core/images/refresh-button.tid +0 -0
  91. package/core/images/right-arrow.tid +0 -0
  92. package/core/images/save-button.tid +0 -0
  93. package/core/images/size.tid +0 -0
  94. package/core/images/spiral.tid +0 -0
  95. package/core/images/stamp.tid +0 -0
  96. package/core/images/star-filled.tid +0 -0
  97. package/core/images/storyview-classic.tid +0 -0
  98. package/core/images/storyview-pop.tid +0 -0
  99. package/core/images/storyview-zoomin.tid +0 -0
  100. package/core/images/strikethrough.tid +0 -0
  101. package/core/images/subscript.tid +0 -0
  102. package/core/images/superscript.tid +0 -0
  103. package/core/images/tag-button.tid +0 -0
  104. package/core/images/theme-button.tid +0 -0
  105. package/core/images/tip.tid +0 -0
  106. package/core/images/twitter.tid +0 -0
  107. package/core/images/underline.tid +0 -0
  108. package/core/images/unfold-all-button.tid +0 -0
  109. package/core/images/unfold-button.tid +0 -0
  110. package/core/images/unlocked-padlock.tid +0 -0
  111. package/core/images/up-arrow.tid +0 -0
  112. package/core/images/video.tid +0 -0
  113. package/core/images/warning.tid +0 -0
  114. package/core/modules/editor/engines/framed.js +2 -3
  115. package/core/modules/editor/engines/simple.js +2 -3
  116. package/core/modules/parsers/wikiparser/rules/codeinline.js +5 -2
  117. package/core/modules/parsers/wikiparser/rules/extlink.js +2 -1
  118. package/core/modules/parsers/wikiparser/rules/import.js +1 -1
  119. package/core/modules/parsers/wikiparser/rules/wikilinkprefix.js +4 -2
  120. package/core/modules/startup/load-modules.js +2 -2
  121. package/core/modules/startup/startup.js +0 -0
  122. package/core/modules/utils/deprecated.js +60 -11
  123. package/core/modules/utils/diff-match-patch/LICENSE +0 -0
  124. package/core/modules/utils/diff-match-patch/README.md +0 -0
  125. package/core/modules/utils/diff-match-patch/diff_match_patch.js +0 -0
  126. package/core/modules/utils/diff-match-patch/diff_match_patch_uncompressed.js +0 -0
  127. package/core/modules/utils/dom/dom.js +13 -0
  128. package/core/modules/utils/fakedom.js +9 -0
  129. package/core/modules/utils/utils.js +27 -7
  130. package/core/modules/widgets/element.js +0 -0
  131. package/core/modules/widgets/entity.js +0 -0
  132. package/core/modules/widgets/fields.js +0 -0
  133. package/core/modules/widgets/link.js +0 -0
  134. package/core/modules/widgets/list.js +0 -0
  135. package/core/modules/widgets/navigator.js +0 -0
  136. package/core/modules/widgets/reveal.js +0 -0
  137. package/core/modules/widgets/select.js +3 -4
  138. package/core/modules/widgets/setvariable.js +0 -0
  139. package/core/modules/widgets/text.js +0 -0
  140. package/core/modules/widgets/tiddler.js +0 -0
  141. package/core/modules/widgets/transclude.js +0 -0
  142. package/core/modules/widgets/view.js +0 -0
  143. package/core/modules/widgets/void.js +0 -0
  144. package/core/modules/widgets/widget.js +0 -0
  145. package/core/modules/wiki.js +0 -0
  146. package/core/sjcl-license.tid +0 -0
  147. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  148. package/core-server/commands/rendertiddler.js +0 -0
  149. package/editions/de-AT/tiddlers/system/$__editions_de-AT-DE_download-empty.tid +0 -0
  150. package/editions/de-AT/tiddlywiki.info +0 -0
  151. package/editions/de-DE/tiddlywiki.info +0 -0
  152. package/editions/dev/tiddlywiki.info +0 -1
  153. package/editions/es-ES/tiddlers/system/download-empty.tid +0 -0
  154. package/editions/fr-FR/tiddlers/system/download-empty.tid +0 -0
  155. package/editions/introduction/tiddlywiki.info +0 -1
  156. package/editions/ja-JP/tiddlers/about/Archive.tid +1 -0
  157. package/editions/ja-JP/tiddlers/filters/syntax/Filter Expression.tid +2 -0
  158. package/editions/ja-JP/tiddlers/filters/syntax/Filter Parameter.tid +11 -1
  159. package/editions/ja-JP/tiddlers/filters/syntax/Filter Step.tid +3 -3
  160. package/editions/ja-JP/tiddlers/filters/syntax/Interchangeable Filter Run Prefixes.tid +3 -0
  161. package/editions/ja-JP/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +10 -1
  162. package/editions/ja-JP/tiddlers/filters/syntax/Let Filter Run Prefix (Examples).tid +15 -0
  163. package/editions/ja-JP/tiddlers/filters/syntax/Let Filter Run Prefix.tid +32 -0
  164. package/editions/ja-JP/tiddlers/filters/syntax/Named Filter Run Prefix.tid +11 -0
  165. package/editions/ja-JP/tiddlers/filters/syntax/Shortcut Filter Run Prefixes.tid +5 -3
  166. package/editions/ja-JP/tiddlers/filters/syntax/then Filter Run Prefix.tid +1 -1
  167. package/editions/ja-JP/tiddlers/functions/Functions.tid +3 -2
  168. package/editions/ja-JP/tiddlers/hellothere/HelloThere.tid +2 -2
  169. package/editions/ja-JP/tiddlers/hellothere/HelloThumbnail.tid +1 -1
  170. package/editions/ja-JP/tiddlers/hellothere/thumbnails/HelloThumbnail - Latest Version.tid +1 -0
  171. package/editions/ja-JP/tiddlers/hellothere/thumbnails/HelloThumbnail - Newsletter.tid +0 -1
  172. package/editions/ja-JP/tiddlers/procedures/Procedure Calls.tid +3 -52
  173. package/editions/ja-JP/tiddlers/procedures/calls/Calls.tid +66 -0
  174. package/editions/ja-JP/tiddlers/saving/Encryption.tid +5 -5
  175. package/editions/ja-JP/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid +4 -2
  176. package/editions/ja-JP/tiddlers/wikitext/Description Lists in WikiText.tid +33 -3
  177. package/editions/ja-JP/tiddlers/wikitext/Formatting in WikiText.tid +1 -1
  178. package/editions/ja-JP/tiddlers/wikitext/Lists in WikiText.tid +6 -2
  179. package/editions/ja-JP/tiddlers/wikitext/Macro Calls.tid +1 -52
  180. package/editions/ja-JP/tiddlers/wikitext/Multi-Valued Variable Attribute Values.tid +39 -0
  181. package/editions/ja-JP/tiddlers/wikitext/Tables in WikiText CSS Utility Classes.tid +12 -1
  182. package/editions/ja-JP/tiddlers/wikitext/Transclusion in WikiText.tid +22 -0
  183. package/editions/ja-JP/tiddlers/wikitext/Widget Attributes.tid +3 -2
  184. package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
  185. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  186. package/editions/test/playwright.spec.js +1 -1
  187. package/editions/test/quick-test.js +71 -0
  188. package/editions/test/tiddlers/tests/test-deprecated.js +252 -0
  189. package/editions/test/tiddlers/tests/test-edit-widgets/edit-widgets-helpers.js +138 -0
  190. package/editions/test/tiddlers/tests/test-edit-widgets/test-edit-text-widget-attributes.js +353 -0
  191. package/editions/test/tiddlers/tests/test-edit-widgets/test-edit-text-widget.js +198 -0
  192. package/editions/test/tiddlers/tests/test-fakedom.js +11 -0
  193. package/editions/test/tiddlers/tests/test-parsetree-positions.js +60 -0
  194. package/editions/test/tiddlers/tests/test-select-widget.js +144 -0
  195. package/editions/test/tiddlers/tests/test-utils-copyObjectProperiesSafe.js +240 -0
  196. package/editions/test/tiddlers/tests/test-widget.js +0 -0
  197. package/editions/tiddlywiki-surveys/scripts/import-great-interview-project-json.sh +0 -0
  198. package/editions/tw5.com/tiddlers/$__StoryList.tid +3 -0
  199. package/editions/tw5.com/tiddlers/about/Archive.tid +4 -2
  200. package/editions/tw5.com/tiddlers/community/Community Survey 2025.tid +2 -2
  201. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +1 -1
  202. package/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +1 -1
  203. package/editions/tw5.com/tiddlers/images/New Release Banner.webp +0 -0
  204. package/editions/tw5.com/tiddlers/releasenotes/5.4.0/#9609_impacts_event detail variables in eventcatcher.tid +8 -0
  205. package/editions/tw5.com/tiddlers/releasenotes/5.4.0/Release 5.4.0.tid +1 -1
  206. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9828.tid +13 -0
  207. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9829.tid +9 -0
  208. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9836.tid +32 -0
  209. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9841.tid +13 -0
  210. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9870.tid +9 -0
  211. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9873.tid +14 -0
  212. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9882/#9882-fix-invalid-source-positions.tid +21 -0
  213. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/#9905.tid +13 -0
  214. package/editions/tw5.com/tiddlers/releasenotes/5.4.1/Release 5.4.1.tid +19 -0
  215. package/editions/tw5.com/tiddlers/variables/Multi-Valued Variables.tid +2 -2
  216. package/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +1 -1
  217. package/languages/de-DE/Fields.multids +0 -0
  218. package/languages/de-DE/Filters.multids +0 -0
  219. package/languages/de-DE/GettingStarted.tid +0 -0
  220. package/languages/de-DE/TiddlerInfo.multids +0 -0
  221. package/languages/pl-PL/ControlPanel.multids +2 -1
  222. package/languages/pl-PL/Draft.multids +4 -0
  223. package/languages/pl-PL/Import.multids +2 -0
  224. package/languages/pl-PL/Misc.multids +1 -0
  225. package/languages/pl-PL/TiddlerInfo.multids +5 -0
  226. package/languages/sv-SE/Buttons.multids +0 -0
  227. package/languages/sv-SE/ControlPanel.multids +0 -0
  228. package/languages/sv-SE/Dates.multids +0 -0
  229. package/languages/sv-SE/Docs/ModuleTypes.multids +0 -0
  230. package/languages/sv-SE/Docs/PaletteColours.multids +0 -0
  231. package/languages/sv-SE/EditTemplate.multids +0 -0
  232. package/languages/sv-SE/Exporters.multids +0 -0
  233. package/languages/sv-SE/Fields.multids +0 -0
  234. package/languages/sv-SE/Filters.multids +0 -0
  235. package/languages/sv-SE/GettingStarted.tid +0 -0
  236. package/languages/sv-SE/Help/build.tid +0 -0
  237. package/languages/sv-SE/Help/clearpassword.tid +0 -0
  238. package/languages/sv-SE/Help/default.tid +0 -0
  239. package/languages/sv-SE/Help/editions.tid +0 -0
  240. package/languages/sv-SE/Help/help.tid +0 -0
  241. package/languages/sv-SE/Help/init.tid +0 -0
  242. package/languages/sv-SE/Help/load.tid +0 -0
  243. package/languages/sv-SE/Help/makelibrary.tid +0 -0
  244. package/languages/sv-SE/Help/notfound.tid +0 -0
  245. package/languages/sv-SE/Help/output.tid +0 -0
  246. package/languages/sv-SE/Help/password.tid +0 -0
  247. package/languages/sv-SE/Help/rendertiddler.tid +0 -0
  248. package/languages/sv-SE/Help/rendertiddlers.tid +0 -0
  249. package/languages/sv-SE/Help/savetiddler.tid +0 -0
  250. package/languages/sv-SE/Help/savetiddlers.tid +0 -0
  251. package/languages/sv-SE/Help/server.tid +0 -0
  252. package/languages/sv-SE/Help/setfield.tid +0 -0
  253. package/languages/sv-SE/Help/unpackplugin.tid +0 -0
  254. package/languages/sv-SE/Help/verbose.tid +0 -0
  255. package/languages/sv-SE/Help/version.tid +0 -0
  256. package/languages/sv-SE/Import.multids +0 -0
  257. package/languages/sv-SE/Misc.multids +0 -0
  258. package/languages/sv-SE/Modals/Download.tid +0 -0
  259. package/languages/sv-SE/NewJournal.multids +0 -0
  260. package/languages/sv-SE/Notifications.multids +0 -0
  261. package/languages/sv-SE/Search.multids +0 -0
  262. package/languages/sv-SE/SideBar.multids +0 -0
  263. package/languages/sv-SE/SiteSubtitle.tid +0 -0
  264. package/languages/sv-SE/SiteTitle.tid +0 -0
  265. package/languages/sv-SE/TiddlerInfo.multids +0 -0
  266. package/languages/sv-SE/Types/application_javascript.tid +0 -0
  267. package/languages/sv-SE/Types/application_json.tid +0 -0
  268. package/languages/sv-SE/Types/application_x_tiddler_dictionary.tid +0 -0
  269. package/languages/sv-SE/Types/image_gif.tid +0 -0
  270. package/languages/sv-SE/Types/image_jpeg.tid +0 -0
  271. package/languages/sv-SE/Types/image_png.tid +0 -0
  272. package/languages/sv-SE/Types/image_svg_xml.tid +0 -0
  273. package/languages/sv-SE/Types/text_css.tid +0 -0
  274. package/languages/sv-SE/Types/text_html.tid +0 -0
  275. package/languages/sv-SE/Types/text_plain.tid +0 -0
  276. package/languages/sv-SE/Types/text_vnd.tiddlywiki.tid +0 -0
  277. package/languages/sv-SE/plugin.info +0 -0
  278. package/licenses/cla-individual.md +2 -0
  279. package/package.json +1 -1
  280. package/playwright.config.js +11 -3
  281. package/plugins/tiddlywiki/codemirror/EditorTypeMappings.multids +0 -0
  282. package/plugins/tiddlywiki/codemirror/edit-codemirror.js +0 -0
  283. package/plugins/tiddlywiki/codemirror/engine.js +3 -4
  284. package/plugins/tiddlywiki/codemirror/files/addon/dialog/dialog.css +0 -0
  285. package/plugins/tiddlywiki/codemirror/files/addon/dialog/dialog.js +0 -0
  286. package/plugins/tiddlywiki/codemirror/files/codemirror.css +0 -0
  287. package/plugins/tiddlywiki/codemirror/files/codemirror.js +0 -0
  288. package/plugins/tiddlywiki/codemirror/files/mode/tw-meta.js +0 -0
  289. package/plugins/tiddlywiki/codemirror/files/tiddlywiki.files +0 -0
  290. package/plugins/tiddlywiki/codemirror/keyboard.tid +0 -0
  291. package/plugins/tiddlywiki/codemirror/plugin.info +0 -0
  292. package/plugins/tiddlywiki/codemirror/readme.tid +0 -0
  293. package/plugins/tiddlywiki/codemirror/styles.tid +0 -0
  294. package/plugins/tiddlywiki/codemirror/usage.tid +0 -0
  295. package/plugins/tiddlywiki/codemirror-autocomplete/files/tiddlywiki.files +0 -0
  296. package/plugins/tiddlywiki/codemirror-autocomplete/plugin.info +0 -0
  297. package/plugins/tiddlywiki/codemirror-autocomplete/readme.tid +0 -0
  298. package/plugins/tiddlywiki/codemirror-closebrackets/files/addon/edit/matchbrackets.js +0 -0
  299. package/plugins/tiddlywiki/codemirror-closebrackets/files/tiddlywiki.files +0 -0
  300. package/plugins/tiddlywiki/codemirror-closebrackets/plugin.info +0 -0
  301. package/plugins/tiddlywiki/codemirror-closebrackets/readme.tid +0 -0
  302. package/plugins/tiddlywiki/codemirror-closetag/files/tiddlywiki.files +0 -0
  303. package/plugins/tiddlywiki/codemirror-closetag/plugin.info +0 -0
  304. package/plugins/tiddlywiki/codemirror-closetag/readme.tid +0 -0
  305. package/plugins/tiddlywiki/codemirror-fullscreen-editing/files/tiddlywiki.files +0 -0
  306. package/plugins/tiddlywiki/codemirror-fullscreen-editing/plugin.info +0 -0
  307. package/plugins/tiddlywiki/codemirror-fullscreen-editing/readme.tid +0 -0
  308. package/plugins/tiddlywiki/codemirror-keymap-emacs/files/keymap/emacs.js +0 -0
  309. package/plugins/tiddlywiki/codemirror-keymap-emacs/files/tiddlywiki.files +0 -0
  310. package/plugins/tiddlywiki/codemirror-keymap-emacs/plugin.info +0 -0
  311. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/keymap/sublime.js +0 -0
  312. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/files/tiddlywiki.files +0 -0
  313. package/plugins/tiddlywiki/codemirror-keymap-sublime-text/plugin.info +0 -0
  314. package/plugins/tiddlywiki/codemirror-keymap-vim/files/keymap/vim.js +0 -0
  315. package/plugins/tiddlywiki/codemirror-keymap-vim/files/tiddlywiki.files +0 -0
  316. package/plugins/tiddlywiki/codemirror-keymap-vim/plugin.info +0 -0
  317. package/plugins/tiddlywiki/codemirror-mode-css/files/mode/css/css.js +0 -0
  318. package/plugins/tiddlywiki/codemirror-mode-css/files/tiddlywiki.files +0 -0
  319. package/plugins/tiddlywiki/codemirror-mode-css/plugin.info +0 -0
  320. package/plugins/tiddlywiki/codemirror-mode-css/readme.tid +0 -0
  321. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/files/addon/mode/multiplex.js +0 -0
  322. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/files/mode/htmlembedded/htmlembedded.js +0 -0
  323. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/files/tiddlywiki.files +0 -0
  324. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/plugin.info +0 -0
  325. package/plugins/tiddlywiki/codemirror-mode-htmlembedded/readme.tid +0 -0
  326. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/files/mode/htmlmixed/htmlmixed.js +0 -0
  327. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/files/tiddlywiki.files +0 -0
  328. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/plugin.info +0 -0
  329. package/plugins/tiddlywiki/codemirror-mode-htmlmixed/readme.tid +0 -0
  330. package/plugins/tiddlywiki/codemirror-mode-javascript/files/mode/javascript/javascript.js +0 -0
  331. package/plugins/tiddlywiki/codemirror-mode-javascript/files/tiddlywiki.files +0 -0
  332. package/plugins/tiddlywiki/codemirror-mode-javascript/plugin.info +0 -0
  333. package/plugins/tiddlywiki/codemirror-mode-javascript/readme.tid +0 -0
  334. package/plugins/tiddlywiki/codemirror-mode-markdown/files/mode/markdown/markdown.js +0 -0
  335. package/plugins/tiddlywiki/codemirror-mode-markdown/files/tiddlywiki.files +0 -0
  336. package/plugins/tiddlywiki/codemirror-mode-markdown/plugin.info +0 -0
  337. package/plugins/tiddlywiki/codemirror-mode-markdown/readme.tid +0 -0
  338. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/files/mode/tiddlywiki/tiddlywiki.css +0 -0
  339. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/files/mode/tiddlywiki/tiddlywiki.js +0 -0
  340. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/files/tiddlywiki.files +0 -0
  341. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/plugin.info +0 -0
  342. package/plugins/tiddlywiki/codemirror-mode-x-tiddlywiki/readme.tid +0 -0
  343. package/plugins/tiddlywiki/codemirror-mode-xml/files/mode/xml/xml.js +0 -0
  344. package/plugins/tiddlywiki/codemirror-mode-xml/files/tiddlywiki.files +0 -0
  345. package/plugins/tiddlywiki/codemirror-mode-xml/plugin.info +0 -0
  346. package/plugins/tiddlywiki/codemirror-mode-xml/readme.tid +0 -0
  347. package/plugins/tiddlywiki/codemirror-search-replace/files/addon/search/searchcursor.js +0 -0
  348. package/plugins/tiddlywiki/codemirror-search-replace/files/tiddlywiki.files +0 -0
  349. package/plugins/tiddlywiki/codemirror-search-replace/plugin.info +0 -0
  350. package/plugins/tiddlywiki/codemirror-search-replace/readme.tid +0 -0
  351. package/plugins/tiddlywiki/codemirror-trailingspace/files/tiddlywiki.files +0 -0
  352. package/plugins/tiddlywiki/codemirror-trailingspace/plugin.info +0 -0
  353. package/plugins/tiddlywiki/codemirror-trailingspace/readme.tid +0 -0
  354. package/plugins/tiddlywiki/evernote/samples/sample-enex-with-image.xml.enex +0 -0
  355. package/plugins/tiddlywiki/evernote/samples/sample-enex.xml.enex +0 -0
  356. package/plugins/tiddlywiki/freelinks/aho-corasick.js +20 -14
  357. package/plugins/tiddlywiki/freelinks/config-Freelinks-MaxLinks.tid +2 -0
  358. package/plugins/tiddlywiki/freelinks/macros-view.tid +2 -3
  359. package/plugins/tiddlywiki/freelinks/readme.tid +9 -3
  360. package/plugins/tiddlywiki/freelinks/settings.tid +2 -0
  361. package/plugins/tiddlywiki/freelinks/text.js +25 -5
  362. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/MarkerCluster.Default.css +0 -0
  363. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/MarkerCluster.css +0 -0
  364. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster-src.js +0 -0
  365. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster-src.js.map +0 -0
  366. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster.js +0 -0
  367. package/plugins/tiddlywiki/geospatial/files/leaflet.markercluster/leaflet.markercluster.js.map +0 -0
  368. package/plugins/tiddlywiki/jasmine/update-packages.sh +0 -0
  369. package/plugins/tiddlywiki/jszip/files/LICENSE.markdown +0 -0
  370. package/plugins/tiddlywiki/jszip/files/jszip.min.v2.6.1.js +0 -0
  371. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  372. package/plugins/tiddlywiki/markdown/EditorToolbar/bold.tid +0 -0
  373. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-1.tid +0 -0
  374. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-2.tid +0 -0
  375. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-3.tid +0 -0
  376. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-4.tid +0 -0
  377. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-5.tid +0 -0
  378. package/plugins/tiddlywiki/markdown/EditorToolbar/heading-6.tid +0 -0
  379. package/plugins/tiddlywiki/markdown/EditorToolbar/italic.tid +0 -0
  380. package/plugins/tiddlywiki/markdown/EditorToolbar/link.tid +0 -0
  381. package/plugins/tiddlywiki/markdown/EditorToolbar/linkify.tid +0 -0
  382. package/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet.tid +0 -0
  383. package/plugins/tiddlywiki/markdown/EditorToolbar/list-number.tid +0 -0
  384. package/plugins/tiddlywiki/markdown/EditorToolbar/mono-block.tid +0 -0
  385. package/plugins/tiddlywiki/markdown/EditorToolbar/mono-line.tid +0 -0
  386. package/plugins/tiddlywiki/markdown/EditorToolbar/quote.tid +0 -0
  387. package/plugins/tiddlywiki/markdown/docs_type_markdown.tid +0 -0
  388. package/plugins/tiddlywiki/markdown/files/tiddlywiki.files +0 -0
  389. package/plugins/tiddlywiki/markdown/images/new-markdown-button.tid +0 -0
  390. package/plugins/tiddlywiki/markdown/new-markdown.tid +0 -0
  391. package/plugins/tiddlywiki/markdown/plugin.info +0 -0
  392. package/plugins/tiddlywiki/markdown/readme.tid +0 -0
  393. package/plugins/tiddlywiki/markdown/wrapper.js +0 -0
  394. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/bold.tid +0 -0
  395. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-1.tid +0 -0
  396. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-2.tid +0 -0
  397. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-3.tid +0 -0
  398. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-4.tid +0 -0
  399. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-5.tid +0 -0
  400. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/heading-6.tid +0 -0
  401. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/italic.tid +0 -0
  402. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/link.tid +0 -0
  403. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/linkify.tid +0 -0
  404. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-bullet.tid +0 -0
  405. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/list-number.tid +0 -0
  406. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-block.tid +0 -0
  407. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/mono-line.tid +0 -0
  408. package/plugins/tiddlywiki/markdown-legacy/EditorToolbar/quote.tid +0 -0
  409. package/plugins/tiddlywiki/markdown-legacy/docs_type_markdown.tid +0 -0
  410. package/plugins/tiddlywiki/markdown-legacy/files/tiddlywiki.files +0 -0
  411. package/plugins/tiddlywiki/markdown-legacy/images/new-markdown-button.tid +0 -0
  412. package/plugins/tiddlywiki/markdown-legacy/new-markdown.tid +0 -0
  413. package/plugins/tiddlywiki/markdown-legacy/plugin.info +0 -0
  414. package/plugins/tiddlywiki/markdown-legacy/readme.tid +0 -0
  415. package/plugins/tiddlywiki/markdown-legacy/usage.tid +0 -0
  416. package/plugins/tiddlywiki/markdown-legacy/wrapper.js +0 -0
  417. package/plugins/tiddlywiki/qrcode/files/qrcode/LICENSE +0 -0
  418. package/plugins/tiddlywiki/qrcode/files/qrcode/README.md +0 -0
  419. package/plugins/tiddlywiki/qrcode/files/qrcode/qrcode.js +0 -0
  420. package/plugins/tiddlywiki/tw2parser/wikitextrules.js +0 -0
  421. package/plugins/tiddlywiki/xmldom/files/LICENSE +0 -0
  422. package/plugins/tiddlywiki/xmldom/files/dom-parser.js +0 -0
  423. package/plugins/tiddlywiki/xmldom/files/dom.js +0 -0
  424. package/plugins/tiddlywiki/xmldom/files/entities.js +0 -0
  425. package/plugins/tiddlywiki/xmldom/files/readme.md +0 -0
  426. package/plugins/tiddlywiki/xmldom/files/sax.js +0 -0
  427. package/readme.md +1 -1
  428. package/.claude/settings.json +0 -34
  429. package/.claude/settings.local.json +0 -21
  430. package/editions/dev/tiddlers/$__StoryList.tid +0 -3
  431. package/editions/ja-JP/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +0 -13
  432. package/editions/ja-JP/tiddlers/howtos/Windows HTA Hack.tid +0 -19
  433. package/editions/ja-JP/tiddlers/saving/Saving with TiddlyIE.tid +0 -28
  434. package/editions/test/tiddlers/$__StoryList.tid +0 -2
  435. package/editions/tw5.com/tiddlers/releasenotes/5.4.0/#9609_impacts_event detail variables in eventcatcher.json +0 -13
File without changes
@@ -4,12 +4,21 @@ title: $:/core/modules/utils/aho-corasick.js
4
4
  type: application/javascript
5
5
  module-type: utils
6
6
 
7
- Optimized Aho-Corasick string matching algorithm implementation with enhanced performance
8
- and error handling for TiddlyWiki freelinking functionality.
9
-
10
- - Uses WeakMap for failure links (required; plain object keys would collide).
11
- - search() converts case per character to avoid Unicode index desync.
12
- - Optional word boundary filtering: CJK always allowed; Latin requires non-word chars around.
7
+ Optimized Aho-Corasick string matching algorithm implementation with enhanced
8
+ performance and error handling for TiddlyWiki freelinking functionality.
9
+
10
+ - Uses WeakMap for failure links. WeakMap keys are compared by object identity
11
+ (reference equality), which is required here because trie nodes are plain
12
+ objects a regular {} map would not work because JavaScript only supports
13
+ string and Symbol keys, forcing object keys to be coerced to strings.
14
+ - Outputs are merged at build time (classic AC optimization), eliminating the
15
+ need to walk the failure chain during search.
16
+ - search() converts case per character to avoid Unicode index desync (e.g.
17
+ Turkish İ expands under toLowerCase(), shifting subsequent indices).
18
+ - No match count cap in search(); truncation is handled at the render stage
19
+ by processTextWithMatches() to avoid silently dropping matches mid-text.
20
+ - Optional word boundary filtering: CJK always allowed; Latin requires
21
+ non-word characters on both sides.
13
22
 
14
23
  \*/
15
24
 
@@ -18,7 +27,6 @@ and error handling for TiddlyWiki freelinking functionality.
18
27
  function AhoCorasick() {
19
28
  this.trie = {};
20
29
  this.failure = new WeakMap();
21
- this.maxFailureDepth = 100;
22
30
  this.patternCount = 0;
23
31
  }
24
32
 
@@ -76,18 +84,18 @@ AhoCorasick.prototype.buildFailureLinks = function() {
76
84
  if(!child || typeof child !== "object") continue;
77
85
 
78
86
  var fail = self.failure.get(node) || root;
79
- var depth = 0;
80
87
 
81
- while(fail !== root && !fail[edge] && depth < self.maxFailureDepth) {
88
+ while(fail !== root && !fail[edge]) {
82
89
  fail = self.failure.get(fail) || root;
83
- depth++;
84
90
  }
85
91
 
86
92
  var nextFail = (fail[edge] && fail[edge] !== child) ? fail[edge] : root;
87
93
  self.failure.set(child, nextFail);
88
94
 
89
95
  if(nextFail.$) {
90
- if(!child.$) child.$ = [];
96
+ if(!child.$) {
97
+ child.$ = [];
98
+ }
91
99
  child.$ = child.$.concat(nextFail.$);
92
100
  }
93
101
 
@@ -106,8 +114,6 @@ AhoCorasick.prototype.search = function(text, useWordBoundary, ignoreCase) {
106
114
  var root = this.trie;
107
115
  var textLength = text.length;
108
116
 
109
- var maxMatches = Math.min(textLength * 2, 10000);
110
-
111
117
  for(var i = 0; i < textLength; i++) {
112
118
  var ch = ignoreCase ? text[i].toLowerCase() : text[i];
113
119
 
@@ -120,7 +126,7 @@ AhoCorasick.prototype.search = function(text, useWordBoundary, ignoreCase) {
120
126
 
121
127
  if(node.$) {
122
128
  var outputs = node.$;
123
- for(var j = 0; j < outputs.length && matches.length < maxMatches; j++) {
129
+ for(var j = 0; j < outputs.length; j++) {
124
130
  var out = outputs[j];
125
131
  var matchStart = i - out.length + 1;
126
132
  var matchEnd = i + 1;
@@ -0,0 +1,2 @@
1
+ title: $:/config/Freelinks/MaxLinks
2
+ text: 500
@@ -2,7 +2,6 @@ title: $:/plugins/tiddlywiki/freelinks/macros/view
2
2
  tags: $:/tags/Macro/View
3
3
 
4
4
  <$set name="tv-freelinks" value={{$:/config/Freelinks/Enable}}>
5
-
6
5
  <$set name="tv-freelinks-ignore-case" value={{$:/config/Freelinks/IgnoreCase}}/>
7
-
8
- </$set>
6
+ </$set>
7
+ </$set>
@@ -23,6 +23,10 @@ Use `$:/config/Freelinks/TargetFilter` to define which tiddlers are eligible for
23
23
 
24
24
  Within view templates, the variable `tv-freelinks` is automatically set to the content of `$:/config/Freelinks/Enable`, which can be set via the settings panel of this plugin.
25
25
 
26
+ Use `$:/config/Freelinks/MaxLinks` to set the maximum number of links rendered per text node (default: 500).
27
+
28
+ Since TiddlyWiki splits tiddler content into multiple text nodes, the effective limit per tiddler is higher than this value. Text beyond the limit remains as plain text rather than being silently dropped. This cap protects against DOM overload when a large number of tiddler titles match the text, for example in dictionary-scale wikis. Raising this value significantly increases render time.
29
+
26
30
  !! Notes
27
31
 
28
32
  To change within which tiddlers freelinking occurs requires customising the shadow tiddler [[$:/plugins/tiddlywiki/freelinks/macros/view]]. This tiddler is tagged `$:/tags/Macro/View` which means that it will be included as a local macro in each view template. By default, its content is:
@@ -57,7 +61,9 @@ The Aho-Corasick algorithm implementation includes:
57
61
 
58
62
  * Unicode character support for international text
59
63
  * Prevention of self-referential links within the current tiddler
60
- * Performance safeguards including depth protection and result limiting
64
+ * Uses a `WeakMap` for failure links, required for correct object-keyed traversal
65
+ * Merges pattern outputs at build time for efficient single-pass search
66
+ * Converts case per character during search to avoid Unicode index desync (e.g. Turkish İ, German ß)
67
+ * Runs search to completion without truncation; the `MaxLinks` cap is applied at render time so that the longest-match selection always has full information and text beyond the cap is preserved as plain text rather than silently dropped
61
68
  * Graceful fallback handling for invalid patterns
62
-
63
- Longer tiddler titles take precedence over shorter ones when multiple matches are possible.
69
+ * Skips draft tiddlers and system tiddlers (`$:/`) during cache invalidation to avoid unnecessary rebuilds on UI interactions
@@ -9,3 +9,5 @@ Filter defining tiddlers to which freelinks are made: <$edit-text tiddler="$:/co
9
9
  <$checkbox tiddler="$:/config/Freelinks/WordBoundary" field="text" checked="yes" unchecked="no" default="yes"> <$link to="$:/config/Freelinks/WordBoundary">Word Boundary Check</$link> </$checkbox>
10
10
 
11
11
  <$checkbox tiddler="$:/config/Freelinks/IgnoreCase" field="text" checked="yes" unchecked="no" default="no"> <$link to="$:/config/Freelinks/IgnoreCase">Ignore case</$link> </$checkbox>
12
+
13
+ Maximum rendered freelinks (higher values may slow down large tiddlers): <$edit-text tiddler="$:/config/Freelinks/MaxLinks" tag="input" placeholder="500" default="500"/>
@@ -9,6 +9,11 @@ Optimized override of the core text widget that automatically linkifies text.
9
9
  - Global longest-match priority, then removes overlaps.
10
10
  - Excludes current tiddler title from linking.
11
11
  - Uses Aho-Corasick for performance.
12
+ - Render output capped by $:/config/Freelinks/MaxLinks (default 500).
13
+ The cap applies to the final set of non-overlapping rendered links, not to
14
+ the raw search results: search always runs to completion so that the
15
+ longest-match selection has full information. Text beyond the cap remains
16
+ as plain text rather than being silently omitted.
12
17
 
13
18
  \*/
14
19
 
@@ -16,6 +21,8 @@ Optimized override of the core text widget that automatically linkifies text.
16
21
 
17
22
  var TITLE_TARGET_FILTER = "$:/config/Freelinks/TargetFilter";
18
23
  var WORD_BOUNDARY_TIDDLER = "$:/config/Freelinks/WordBoundary";
24
+ var MAX_LINKS_TIDDLER = "$:/config/Freelinks/MaxLinks";
25
+ var IGNORE_CASE_TIDDLER = "$:/config/Freelinks/IgnoreCase";
19
26
 
20
27
  var Widget = require("$:/core/modules/widgets/widget.js").widget,
21
28
  LinkWidget = require("$:/core/modules/widgets/link.js").link,
@@ -63,7 +70,8 @@ TextNodeWidget.prototype.execute = function() {
63
70
  return computeTiddlerTitleInfo(self,ignoreCase);
64
71
  });
65
72
 
66
- if(this.tiddlerTitleInfo && this.tiddlerTitleInfo.titles && this.tiddlerTitleInfo.titles.length > 0 && this.tiddlerTitleInfo.ac) {
73
+ if(this.tiddlerTitleInfo && this.tiddlerTitleInfo.titles &&
74
+ this.tiddlerTitleInfo.titles.length > 0 && this.tiddlerTitleInfo.ac) {
67
75
  var newParseTree = this.processTextWithMatches(text,currentTiddlerTitle,ignoreCase,useWordBoundary);
68
76
  if(newParseTree && newParseTree.length > 0 &&
69
77
  (newParseTree.length > 1 || newParseTree[0].type !== "plain-text")) {
@@ -103,7 +111,14 @@ TextNodeWidget.prototype.processTextWithMatches = function(text,currentTiddlerTi
103
111
  var occupied = new Uint8Array(text.length);
104
112
  var validMatches = [];
105
113
 
114
+ var maxLinks = parseInt(this.wiki.getTiddlerText(MAX_LINKS_TIDDLER,"500"),10);
115
+ if(isNaN(maxLinks) || maxLinks <= 0) {
116
+ maxLinks = 500;
117
+ }
118
+
106
119
  for(var i = 0; i < matches.length; i++) {
120
+ if(validMatches.length >= maxLinks) break;
121
+
107
122
  var m = matches[i];
108
123
  var start = m.index;
109
124
  var end = start + m.length;
@@ -232,7 +247,9 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) {
232
247
  $tw.utils.each(changedTiddlers,function(change,title) {
233
248
  if(titlesHaveChanged) return;
234
249
 
235
- if(title === WORD_BOUNDARY_TIDDLER || title === TITLE_TARGET_FILTER) {
250
+ if(title === WORD_BOUNDARY_TIDDLER ||
251
+ title === TITLE_TARGET_FILTER ||
252
+ title === IGNORE_CASE_TIDDLER) {
236
253
  titlesHaveChanged = true;
237
254
  return;
238
255
  }
@@ -242,7 +259,8 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) {
242
259
  }
243
260
 
244
261
  if(change && change.isDeleted) {
245
- if(self.tiddlerTitleInfo && self.tiddlerTitleInfo.titles && self.tiddlerTitleInfo.titles.indexOf(title) !== -1) {
262
+ if(self.tiddlerTitleInfo && self.tiddlerTitleInfo.titles &&
263
+ self.tiddlerTitleInfo.titles.indexOf(title) !== -1) {
246
264
  titlesHaveChanged = true;
247
265
  }
248
266
  return;
@@ -253,15 +271,17 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) {
253
271
  return;
254
272
  }
255
273
 
256
- if(!self.tiddlerTitleInfo || !self.tiddlerTitleInfo.titles || self.tiddlerTitleInfo.titles.indexOf(title) === -1) {
274
+ if(!self.tiddlerTitleInfo || !self.tiddlerTitleInfo.titles ||
275
+ self.tiddlerTitleInfo.titles.indexOf(title) === -1) {
257
276
  titlesHaveChanged = true;
258
277
  }
259
278
  });
260
279
  }
261
280
 
262
281
  var wordBoundaryChanged = !!(changedTiddlers && changedTiddlers[WORD_BOUNDARY_TIDDLER]);
282
+ var maxLinksChanged = !!(changedTiddlers && changedTiddlers[MAX_LINKS_TIDDLER]);
263
283
 
264
- if(changedAttributes.text || titlesHaveChanged || wordBoundaryChanged) {
284
+ if(changedAttributes.text || titlesHaveChanged || wordBoundaryChanged || maxLinksChanged) {
265
285
  if(titlesHaveChanged) {
266
286
  self.wiki.clearCache("tiddler-title-info-insensitive");
267
287
  self.wiki.clearCache("tiddler-title-info-sensitive");
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <h1 class="">Welcome</h1><p>Welcome to <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a>, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.</p><p>TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/WikiText.html">WikiText</a>.</p><h2 class="">Demo</h2><p>Learn more and see it in action at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/</a></p><h2 class="">Developer Documentation</h2><p>Developer documentation is in progress at <a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev/" rel="noopener noreferrer" target="_blank">https://tiddlywiki.com/dev/</a></p><h2 class="">Pull Request Previews</h2><p>Pull request previews courtesy of <a class="tc-tiddlylink-external" href="https://netlify.com" rel="noopener noreferrer" target="_blank">Netlify</a></p><p><a href="https://www.netlify.com" rel="noopener noreferrer" target="_blank"><img alt="Deploys by Netlify" src="https://www.netlify.com/v3/img/components/netlify-light.svg"></a></p><h1 class="">Join the Community</h1><p>
2
2
  <h2 class="">User forums</h2><h3 class="">Talk TiddlyWiki</h3><p>As the official TiddlyWiki forum, Talk TiddlyWiki is a place to talk about TiddlyWiki: requests for help, <a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/c/announcements/20" rel="noopener noreferrer" target="_blank">announcements</a> of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.</p><p><a class="tc-tiddlylink-external" href="https://talk.tiddlywiki.org/" rel="noopener noreferrer" target="_blank">https://talk.tiddlywiki.org/</a></p><h3 class="">Google Groups</h3><p>For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005): <a class="tc-tiddlylink-external" href="https://groups.google.com/group/TiddlyWiki" rel="noopener noreferrer" target="_blank">https://groups.google.com/group/TiddlyWiki</a></p><h2 class="">Developer forums</h2><ul><li><a class="tc-tiddlylink-external" href="https://tiddlywiki.com/dev" rel="noopener noreferrer" target="_blank">tiddlywiki.com/dev</a> is the official developer documentation</li><li>Get involved in the <a class="tc-tiddlylink-external" href="https://github.com/TiddlyWiki/TiddlyWiki5" rel="noopener noreferrer" target="_blank">development on GitHub</a></li><li><a class="tc-tiddlylink-external" href="https://github.com/TiddlyWiki/TiddlyWiki5/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions</a> are for Q&amp;A and open-ended discussion</li><li><a class="tc-tiddlylink-external" href="https://github.com/TiddlyWiki/TiddlyWiki5/issues" rel="noopener noreferrer" target="_blank">GitHub Issues</a> are for raising bug reports and proposing specific, actionable new ideas</li><li>See <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Contributing.html">Contributing</a> for guidelines on how to contribute to the project.</li></ul><h2 class="">Other forums</h2><ul><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> Subreddit: <a class="tc-tiddlylink-external" href="https://www.reddit.com/r/TiddlyWiki5/" rel="noopener noreferrer" target="_blank">/r/TiddlyWiki5</a></li><li>Chat on Discord at <a class="tc-tiddlylink-external" href="https://discord.gg/HFFZVQ8" rel="noopener noreferrer" target="_blank">https://discord.gg/HFFZVQ8</a></li></ul>
3
- </p><hr><h1 class="">Installing TiddlyWiki on Node.js</h1><p>TiddlyWiki is a <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/SingleFileApplication.html">SingleFileApplication</a>, which is easy to use. For advanced users and developers there is a possibility to use a Node.js client / server configuration. This configuration is also used to build the TiddlyWiki <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/SinglePageApplication.html">SinglePageApplication</a></p><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.4.0". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button-dynamic tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt">
3
+ </p><hr><h1 class="">Installing TiddlyWiki on Node.js</h1><p>TiddlyWiki is a <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/SingleFileApplication.html">SingleFileApplication</a>, which is easy to use. For advanced users and developers there is a possibility to use a Node.js client / server configuration. This configuration is also used to build the TiddlyWiki <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/SinglePageApplication.html">SinglePageApplication</a></p><ol><li>Install <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Node.js.html">Node.js</a><ul><li>Linux: <blockquote><div><em>Debian/Ubuntu</em>:<br><code>apt install nodejs</code><br>May need to be followed up by:<br><code>apt install npm</code></div><div><em>Arch Linux</em><br><code>yay -S tiddlywiki</code> <br>(installs node and tiddlywiki)</div></blockquote></li><li>Mac<blockquote><div><code>brew install node</code></div></blockquote></li><li>Android<blockquote><div><a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/Serving%2520TW5%2520from%2520Android.html">Termux for Android</a></div></blockquote></li><li>Other <blockquote><div>See <a class="tc-tiddlylink-external" href="http://nodejs.org" rel="noopener noreferrer" target="_blank">http://nodejs.org</a></div></blockquote></li></ul></li><li>Open a command line terminal and type:<blockquote><div><code>npm install -g tiddlywiki</code></div><div>If it fails with an error you may need to re-run the command as an administrator:</div><div><code>sudo npm install -g tiddlywiki</code> (Mac/Linux)</div></blockquote></li><li>Ensure TiddlyWiki is installed by typing:<blockquote><div><code>tiddlywiki --version</code></div></blockquote><ul><li>In response, you should see <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> report its current version (eg "5.4.1". You may also see other debugging information reported.)</li></ul></li><li>Try it out:<ol><li><code>tiddlywiki mynewwiki --init server</code> to create a folder for a new wiki that includes server-related components</li><li><code>tiddlywiki mynewwiki --listen</code> to start <a class="tc-tiddlylink tc-tiddlylink-resolves" href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a></li><li>Visit <a class="tc-tiddlylink-external" href="http://127.0.0.1:8080/" rel="noopener noreferrer" target="_blank">http://127.0.0.1:8080/</a> in your browser</li><li>Try editing and creating tiddlers</li></ol></li><li>Optionally, make an offline copy:<ul><li>click the <span class="doc-icon"><svg class="tc-image-save-button-dynamic tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt">
4
4
  <g class="tc-image-save-button-dynamic-clean">
5
5
  <path d="M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z" fill-rule="evenodd"></path>
6
6
  </g>
@@ -1,34 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(gh pr:*)",
5
- "Bash(npm install:*)",
6
- "Read(//tmp/**)",
7
- "Bash(rm -rf /tmp/tw-dyn-test)",
8
- "Bash(mkdir -p /tmp/tw-dyn-test/tiddlers /tmp/tw-dyn-test/content)",
9
- "Bash(kill 36083 35881)",
10
- "Bash(wait)",
11
- "Read(//private/tmp/**)",
12
- "Bash(npm ls:*)",
13
- "Bash(npm start:*)",
14
- "Bash(echo \"started pid $!\")",
15
- "Bash(curl -s -o /dev/null -w \"%{http_code}\\\\n\" http://localhost:8080/)",
16
- "Bash(pkill -f \"tiddlywiki-wrapper/start.js\")",
17
- "Bash(rm -f /Users/jeremyruston/git/Jermolene/twillm/vault/Transformer.md.meta)",
18
- "Bash(cat)",
19
- "Bash(curl -s -X PUT -H \"X-Requested-With: TiddlyWiki\" -H \"Content-Type: application/json\" --data-binary @/tmp/put.json http://localhost:8080/recipes/default/tiddlers/Transformer -w \"HTTP %{http_code}\\\\n\")",
20
- "Bash(git -C /Users/jeremyruston/git/Jermolene/twillm status)",
21
- "Bash(git -C /Users/jeremyruston/git/Jermolene/twillm diff)",
22
- "Bash(git -C /Users/jeremyruston/git/Jermolene/twillm log --oneline -5)",
23
- "Bash(git commit -m ':*)",
24
- "Bash(cp tiddlywiki-wrapper/start.js /tmp/start-full.js)",
25
- "Bash(git reset:*)",
26
- "Bash(cp /tmp/start-full.js tiddlywiki-wrapper/start.js)",
27
- "Bash(git ls-tree *)"
28
- ],
29
- "additionalDirectories": [
30
- "/tmp/tw-dyn-test",
31
- "/private/tmp/tw-dyn-test"
32
- ]
33
- }
34
- }
@@ -1,21 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(gh issue view:*)",
5
- "WebFetch(domain:github.com)",
6
- "Bash(ls:*)",
7
- "Bash(grep:*)",
8
- "Bash(find:*)",
9
- "Bash(xargs:*)",
10
- "Bash(python3:*)",
11
- "Bash(node:*)",
12
- "Bash(npm test:*)",
13
- "Bash(git status:*)",
14
- "Bash(git checkout:*)",
15
- "Bash(git add:*)",
16
- "WebFetch(domain:talk.tiddlywiki.org)",
17
- "WebFetch(domain:tiddlywiki.com)",
18
- "Bash(/tmp/strip_comments.py:*)"
19
- ]
20
- }
21
- }
@@ -1,3 +0,0 @@
1
- list: [[New Tiddler]] HelloThere Introduction
2
- title: $:/StoryList
3
- type: text/vnd.tiddlywiki
@@ -1,13 +0,0 @@
1
- caption: Internet Explorer
2
- created: 20140811172058274
3
- modified: 20241029105938082
4
- original-modified: 20211114031651879
5
- tags: GettingStarted $:/deprecated
6
- title: GettingStarted - Internet Explorer
7
- ja-title: はじめに - Internet Explorer
8
- type: text/vnd.tiddlywiki
9
-
10
- {{Saving with TiddlyIE}}
11
-
12
- The [[Windows HTA Hack]] describes an alternative method of using TiddlyWiki with Internet Explorer.
13
- [[Windows HTAのハック|Windows HTA Hack]]では、Internet ExplorerでTiddlyWikiを使用する別の方法について説明します。
@@ -1,19 +0,0 @@
1
- caption: HTA Hack
2
- color: #F06292
3
- created: 20131212223146250
4
- delivery: DIY
5
- description: Internet Explorerで変更を手動で直接保存する方法
6
- method: save
7
- modified: 20241012122755089
8
- original-modified: 20200507110355115
9
- tags: Saving Windows $:/deprecated
10
- title: Windows HTA Hack
11
- ja-title: Windows HTAのハック
12
- type: text/vnd.tiddlywiki
13
-
14
- <<.deprecated-since "5.3.6">>
15
- Windowsでは、HTMLファイルの拡張子を`*.hta`に名前変更することで、TiddlyWikiを真のローカルアプリケーションに変換できます。その後、''fsosaver''モジュールは~ActiveX ~FileSystemObjectを使用して変更を保存できます。
16
-
17
- この方法の欠点の1つは、TiddlyWikiファイルがUTF-16フォーマットで保存されるため、通常のUTF-8エンコードの場合と比べて2倍の大きさになることです。ただし、別の保存方法でファイルを開いて保存すると、ファイルはUTF-8に再エンコードされます。
18
-
19
- 詳細については、Wikipediaを参照してください: https://en.wikipedia.org/wiki/HTML_Application