tiddlywiki 5.3.0 → 5.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/.github/workflows/ci.yml +9 -2
  2. package/bin/build-site.sh +25 -5
  3. package/bin/ci-test.sh +16 -0
  4. package/boot/boot.js +18 -7
  5. package/core/images/new-journal-button.tid +1 -3
  6. package/core/language/en-GB/Exporters.multids +1 -1
  7. package/core/language/en-GB/Help/commands.tid +1 -1
  8. package/core/language/en-GB/Help/savewikifolder.tid +2 -2
  9. package/core/language/en-GB/Help/server.tid +1 -1
  10. package/core/language/en-GB/Types/image_svg_xml.tid +1 -1
  11. package/core/language/en-GB/Types/image_x-icon.tid +1 -1
  12. package/core/modules/commands/savetiddlers.js +1 -1
  13. package/core/modules/editor/engines/framed.js +1 -1
  14. package/core/modules/editor/engines/simple.js +1 -1
  15. package/core/modules/filters/all.js +5 -5
  16. package/core/modules/filters/encodings.js +6 -2
  17. package/core/modules/filters/json-ops.js +95 -1
  18. package/core/modules/filters/listops.js +1 -0
  19. package/core/modules/parsers/textparser.js +5 -4
  20. package/core/modules/parsers/wikiparser/rules/conditional.js +120 -0
  21. package/core/modules/parsers/wikiparser/rules/fnprocdef.js +2 -2
  22. package/core/modules/parsers/wikiparser/rules/parameters.js +1 -1
  23. package/core/modules/parsers/wikiparser/wikiparser.js +31 -8
  24. package/core/modules/savers/github.js +1 -1
  25. package/core/modules/startup/rootwidget.js +1 -0
  26. package/core/modules/startup/startup.js +5 -0
  27. package/core/modules/startup/windows.js +2 -1
  28. package/core/modules/syncer.js +160 -122
  29. package/core/modules/utils/dom/dom.js +3 -3
  30. package/core/modules/utils/dom/dragndrop.js +4 -2
  31. package/core/modules/utils/dom/http.js +19 -3
  32. package/core/modules/utils/fakedom.js +5 -1
  33. package/core/modules/utils/utils.js +27 -4
  34. package/core/modules/widgets/browse.js +10 -0
  35. package/core/modules/widgets/button.js +15 -3
  36. package/core/modules/widgets/checkbox.js +14 -1
  37. package/core/modules/widgets/draggable.js +16 -5
  38. package/core/modules/widgets/droppable.js +14 -2
  39. package/core/modules/widgets/image.js +19 -14
  40. package/core/modules/widgets/importvariables.js +1 -1
  41. package/core/modules/widgets/link.js +12 -2
  42. package/core/modules/widgets/list.js +176 -19
  43. package/core/modules/widgets/radio.js +4 -0
  44. package/core/modules/widgets/range.js +4 -0
  45. package/core/modules/widgets/scrollable.js +66 -1
  46. package/core/modules/widgets/select.js +35 -23
  47. package/core/modules/widgets/transclude.js +88 -45
  48. package/core/modules/widgets/widget.js +42 -47
  49. package/core/modules/wiki.js +3 -3
  50. package/core/templates/html-json-skinny-tiddler.tid +0 -1
  51. package/core/templates/html-json-tiddler.tid +1 -1
  52. package/core/templates/store.area.template.html.tid +4 -4
  53. package/core/ui/AlertTemplate.tid +1 -0
  54. package/core/ui/ControlPanel/Basics.tid +2 -2
  55. package/core/ui/EditTemplate/body/default.tid +12 -8
  56. package/core/ui/EditTemplate/fields.tid +2 -2
  57. package/core/ui/EditTemplate/type.tid +1 -1
  58. package/core/ui/EditTemplate.tid +1 -0
  59. package/core/ui/EditorToolbar/preview.tid +6 -0
  60. package/core/ui/ImportPreviews/Text.tid +1 -0
  61. package/core/ui/PageStylesheet.tid +1 -0
  62. package/core/ui/PageTemplate.tid +2 -1
  63. package/core/ui/RootTemplate.tid +1 -0
  64. package/core/ui/StoryTiddlerTemplate.tid +1 -0
  65. package/core/ui/ViewTemplate/body/default.tid +1 -0
  66. package/core/ui/ViewTemplate/subtitle.tid +2 -5
  67. package/core/ui/ViewTemplate.tid +1 -0
  68. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  69. package/core/wiki/config/ViewTemplateBodyFilters.multids +2 -1
  70. package/core/wiki/macros/colour-picker.tid +6 -6
  71. package/core/wiki/macros/image-picker.tid +5 -5
  72. package/core/wiki/macros/list.tid +95 -78
  73. package/core/wiki/macros/tabs.tid +9 -1
  74. package/core/wiki/macros/tag-picker.tid +2 -2
  75. package/core/wiki/macros/tag.tid +2 -1
  76. package/core/wiki/macros/toc.tid +3 -3
  77. package/core/wiki/tags/ViewTemplateBodyFilter.tid +1 -2
  78. package/editions/de-AT/tiddlers/HelloThere.tid +2 -2
  79. package/editions/de-AT/tiddlers/community/Fur_Entwickler.tid +1 -1
  80. package/editions/de-AT/tiddlers/external/tiddlywiki.files +1 -1
  81. package/editions/de-AT-server/tiddlers/system/favicon.png +0 -0
  82. package/editions/{es-ES-server/tiddlers/system/favicon.ico.meta → de-AT-server/tiddlers/system/favicon.png.meta} +1 -1
  83. package/editions/dev/tiddlers/images/favicon.png +0 -0
  84. package/editions/{de-AT-server/tiddlers/system/favicon.ico.meta → dev/tiddlers/images/favicon.png.meta} +1 -1
  85. package/editions/dev/tiddlers/new/HookMechanism.tid +28 -3
  86. package/editions/empty/tiddlywiki.info +5 -2
  87. package/editions/es-ES/tiddlers/Forums.tid +4 -5
  88. package/editions/es-ES/tiddlers/HelloThere.tid +2 -2
  89. package/editions/es-ES/tiddlers/Typography.tid +1 -1
  90. package/editions/es-ES/tiddlers/images/favicon.png +0 -0
  91. package/editions/{dev/tiddlers/images/favicon.ico.meta → es-ES/tiddlers/images/favicon.png.meta} +1 -1
  92. package/editions/es-ES/tiddlers/images/green_favicon.png +0 -0
  93. package/editions/es-ES/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  94. package/editions/es-ES-server/tiddlers/system/favicon.png +0 -0
  95. package/editions/{es-ES/tiddlers/images/favicon.ico.meta → es-ES-server/tiddlers/system/favicon.png.meta} +1 -1
  96. package/editions/fr-FR/tiddlers/images/favicon.png +0 -0
  97. package/editions/fr-FR/tiddlers/images/favicon.png.meta +2 -0
  98. package/editions/fr-FR/tiddlers/images/green_favicon.png +0 -0
  99. package/editions/fr-FR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  100. package/editions/fr-FR-server/tiddlers/system/favicon.png +0 -0
  101. package/editions/fr-FR-server/tiddlers/system/favicon.png.meta +2 -0
  102. package/editions/highlightdemo/tiddlywiki.info +1 -1
  103. package/editions/ja-JP/tiddlers/images/favicon.png +0 -0
  104. package/editions/ja-JP/tiddlers/images/favicon.png.meta +2 -0
  105. package/editions/ja-JP/tiddlers/images/green_favicon.png +0 -0
  106. package/editions/ja-JP/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  107. package/editions/katexdemo/tiddlywiki.info +1 -1
  108. package/editions/ko-KR/tiddlers/images/favicon.png +0 -0
  109. package/editions/ko-KR/tiddlers/images/favicon.png.meta +2 -0
  110. package/editions/ko-KR/tiddlers/images/green_favicon.png +0 -0
  111. package/editions/ko-KR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  112. package/editions/ko-KR-server/tiddlers/system/favicon.png +0 -0
  113. package/editions/ko-KR-server/tiddlers/system/favicon.png.meta +2 -0
  114. package/editions/pluginlibrary/tiddlywiki.info +2 -2
  115. package/editions/prerelease/tiddlers/{Release 5.3.1.tid → Release 5.3.3.tid } +23 -21
  116. package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
  117. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  118. package/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid +1 -1
  119. package/editions/prerelease/tiddlers/system/favicon.png +0 -0
  120. package/editions/prerelease/tiddlers/system/favicon.png.meta +2 -0
  121. package/editions/prerelease/tiddlers/system/temp-my-scroll-position.tid +3 -0
  122. package/editions/resumebuilder/tiddlywiki.info +1 -1
  123. package/editions/server/tiddlywiki.info +1 -1
  124. package/editions/server-external-js/tiddlywiki.info +1 -1
  125. package/editions/test/playwright.spec.js +25 -0
  126. package/editions/test/tiddlers/tests/data/conditionals/Basic.tid +26 -0
  127. package/editions/test/tiddlers/tests/data/conditionals/BlockMode.tid +37 -0
  128. package/editions/test/tiddlers/tests/data/conditionals/Else.tid +26 -0
  129. package/editions/test/tiddlers/tests/data/conditionals/Elseif.tid +32 -0
  130. package/editions/test/tiddlers/tests/data/conditionals/MissingEndIf.tid +26 -0
  131. package/editions/test/tiddlers/tests/data/conditionals/MultipleResults.tid +12 -0
  132. package/editions/test/tiddlers/tests/data/conditionals/Nested.tid +38 -0
  133. package/editions/test/tiddlers/tests/data/conditionals/NestedElseif.tid +60 -0
  134. package/editions/test/tiddlers/tests/data/functions/IndentedFunctions.tid +24 -0
  135. package/editions/test/tiddlers/tests/data/functions/WikifiedFunctions.tid +1 -1
  136. package/editions/test/tiddlers/tests/data/importvariables/WithSetWidgets.tid +23 -0
  137. package/editions/test/tiddlers/tests/data/importvariables/WithSetWidgets2.tid +22 -0
  138. package/editions/test/tiddlers/tests/data/importvariables/WithSetWidgetsAndMacros.tid +29 -0
  139. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplates.tid +29 -0
  140. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesInBlockMode.tid +32 -0
  141. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesOverriddenByAttributes.tid +33 -0
  142. package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplate.tid +30 -0
  143. package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplateInBlockMode.tid +32 -0
  144. package/editions/test/tiddlers/tests/data/list-widget/WithLimit.tid +25 -0
  145. package/editions/test/tiddlers/tests/data/list-widget/WithMissingTemplate.tid +26 -0
  146. package/editions/test/tiddlers/tests/data/procedures/Nested-indented.tid +20 -0
  147. package/editions/test/tiddlers/tests/data/procedures/TrailingNewlines.tid +22 -0
  148. package/editions/test/tiddlers/tests/data/transclude/CustomWidget-CodeblockOverride-TextParser.tid +20 -0
  149. package/editions/test/tiddlers/tests/data/transclude/CustomWidget-Simple-Indented.tid +33 -0
  150. package/editions/test/tiddlers/tests/data/transclude/Parameterised-Shortcut-ParametersIndented.tid +20 -0
  151. package/editions/test/tiddlers/tests/data/transclude/Procedures-Double-Underscore.tid +26 -0
  152. package/editions/test/tiddlers/tests/data/transclude/Variable-Refreshing.tid +27 -0
  153. package/editions/test/tiddlers/tests/data/transclude/Variable-Static.tid +15 -0
  154. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/ButtonWidget-DataAttributes.tid +27 -0
  155. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/CheckboxWidget-DataAttributes.tid +22 -0
  156. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DraggableWidget-DataAttributes.tid +27 -0
  157. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DroppableWidget-DataAttributes.tid +27 -0
  158. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/LinkWidget-DataAttributes.tid +27 -0
  159. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/OrderedStyleAttributes.tid +15 -0
  160. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/SelectWidget-DataAttributes.tid +27 -0
  161. package/editions/test/tiddlers/tests/data/widgets/ElementWidgetEventAttributes.tid +15 -0
  162. package/editions/test/tiddlers/tests/data/widgets/ElementWidgetStyleAttributes.tid +15 -0
  163. package/editions/test/tiddlers/tests/data/widgets/SubstitutedAttributes.tid +5 -3
  164. package/editions/test/tiddlers/tests/test-filters.js +5 -4
  165. package/editions/test/tiddlers/tests/test-json-filters.js +40 -0
  166. package/editions/test/tiddlers/tests/test-utils.js +23 -0
  167. package/editions/test/tiddlers/tests/test-widget.js +62 -0
  168. package/editions/tw.org/tiddlers/$__favicon.ico.png +0 -0
  169. package/editions/tw.org/tiddlywiki.info +1 -1
  170. package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.png +0 -0
  171. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{classic.tiddlywiki.com.ico.meta → classic.tiddlywiki.com.png.meta} +1 -1
  172. package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.png +0 -0
  173. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{links.tiddlywiki.org.ico.meta → links.tiddlywiki.org.png.meta} +1 -1
  174. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.png +0 -0
  175. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.dev.ico.meta → tiddlywiki.com.dev.png.meta} +1 -1
  176. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.png +0 -0
  177. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.ico.meta → tiddlywiki.com.png.meta} +1 -1
  178. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.png +0 -0
  179. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.prerelease.ico.meta → tiddlywiki.com.prerelease.png.meta} +1 -1
  180. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.png +0 -0
  181. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.upgrade.ico.meta → tiddlywiki.com.upgrade.png.meta} +1 -1
  182. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.png +0 -0
  183. package/editions/tw5.com/tiddlers/about/Archive.tid +82 -0
  184. package/editions/tw5.com/tiddlers/community/Chinese Community.tid +20 -0
  185. package/editions/tw5.com/tiddlers/community/editions/Tidme by oflg.tid +16 -0
  186. package/editions/tw5.com/tiddlers/community/plugins/FSRS4TW by oflg.tid +10 -0
  187. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid +3 -3
  188. package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +3 -1
  189. package/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid +5 -5
  190. package/editions/tw5.com/tiddlers/concepts/Macros.tid +7 -3
  191. package/editions/tw5.com/tiddlers/concepts/Title List.tid +5 -1
  192. package/editions/tw5.com/tiddlers/definitions/Git.tid +9 -0
  193. package/editions/tw5.com/tiddlers/definitions/GitHub.tid +6 -4
  194. package/editions/tw5.com/tiddlers/definitions/GitLab.tid +13 -0
  195. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Fourth.tid +2 -0
  196. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeThree.tid +11 -1
  197. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Third.tid +2 -0
  198. package/editions/tw5.com/tiddlers/filters/decodebase64 Operator.tid +6 -1
  199. package/editions/tw5.com/tiddlers/filters/encodebase64 Operator.tid +6 -1
  200. package/editions/tw5.com/tiddlers/filters/examples/jsonset.tid +59 -0
  201. package/editions/tw5.com/tiddlers/filters/examples/jsonstringify Operator (Examples).tid +7 -5
  202. package/editions/tw5.com/tiddlers/filters/examples/stringify_Operator_(Examples).tid +5 -3
  203. package/editions/tw5.com/tiddlers/filters/jsonextract.tid +8 -0
  204. package/editions/tw5.com/tiddlers/filters/jsonget.tid +8 -0
  205. package/editions/tw5.com/tiddlers/filters/jsonset.tid +64 -0
  206. package/editions/tw5.com/tiddlers/filters/jsonstringify Operator.tid +14 -15
  207. package/editions/tw5.com/tiddlers/filters/jsontype.tid +8 -0
  208. package/editions/tw5.com/tiddlers/filters/stringify_Operator.tid +12 -15
  209. package/editions/tw5.com/tiddlers/filters/substitute Operator.tid +3 -3
  210. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +1 -1
  211. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +6 -1
  212. package/editions/tw5.com/tiddlers/howtos/Constructing JSON tiddlers.tid +3 -3
  213. package/editions/tw5.com/tiddlers/images/Favicon template.svg +296 -0
  214. package/editions/tw5.com/tiddlers/images/Favicon template.svg.meta +3 -0
  215. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  216. package/editions/tw5.com/tiddlers/images/{New Release Banner.jpg.meta → New Release Banner.png.meta } +1 -1
  217. package/editions/tw5.com/tiddlers/images/favicon.png +0 -0
  218. package/editions/tw5.com/tiddlers/images/favicon.png.meta +2 -0
  219. package/editions/tw5.com/tiddlers/images/green_favicon.png +0 -0
  220. package/editions/tw5.com/tiddlers/images/green_favicon.png.meta +2 -0
  221. package/editions/tw5.com/tiddlers/macros/CoreMacros.tid +1 -1
  222. package/editions/tw5.com/tiddlers/macros/TagMacro.tid +3 -1
  223. package/editions/tw5.com/tiddlers/macros/examples/tag.tid +22 -1
  224. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid +2 -2
  225. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid +3 -3
  226. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid +3 -3
  227. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +2 -2
  228. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-focus-selector.tid +2 -2
  229. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid +90 -0
  230. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Zotero.tid +4 -3
  231. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid +4 -2
  232. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid +2 -2
  233. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid +3 -3
  234. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid +3 -3
  235. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid +4 -3
  236. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +12 -5
  237. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-permalink.tid +1 -1
  238. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-save-wiki.tid +3 -3
  239. package/editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid +2 -2
  240. package/editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid +2 -2
  241. package/editions/tw5.com/tiddlers/pragmas/Pragma_ _whitespace.tid +7 -3
  242. package/editions/tw5.com/tiddlers/pragmas/Pragmas.tid +3 -1
  243. package/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid +4 -2
  244. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.0.tid +1 -0
  245. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.1.tid +1 -0
  246. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.10.tid +1 -0
  247. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.11.tid +1 -0
  248. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.12.tid +1 -0
  249. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.13.tid +1 -0
  250. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.14.tid +1 -0
  251. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.15.tid +1 -0
  252. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.16.tid +1 -0
  253. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.17.tid +1 -0
  254. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.18.tid +1 -0
  255. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.19.tid +1 -0
  256. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.2.tid +1 -0
  257. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.20.tid +1 -0
  258. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.21.tid +1 -0
  259. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +1 -0
  260. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +1 -0
  261. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.3.tid +1 -0
  262. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.4.tid +1 -0
  263. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.5.tid +1 -0
  264. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.6.tid +1 -0
  265. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.7.tid +1 -0
  266. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid +1 -0
  267. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.9.tid +1 -0
  268. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +1 -0
  269. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +1 -0
  270. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.2.tid +1 -0
  271. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.3.tid +1 -0
  272. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid +1 -0
  273. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid +1 -0
  274. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.6.tid +1 -0
  275. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.7.tid +1 -0
  276. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.0.tid +1 -0
  277. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid +87 -0
  278. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid +184 -0
  279. package/editions/tw5.com/tiddlers/releasenotes/Releases.tid +4 -2
  280. package/editions/tw5.com/tiddlers/releasenotes/TiddlyWiki Releases.tid +1 -1
  281. package/editions/tw5.com/tiddlers/{Saving on Browser with TiddlyStow.tid → saving/Saving on Browser with TiddlyStow.tid } +2 -2
  282. package/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid +5 -1
  283. package/editions/tw5.com/tiddlers/saving/Saving via a Minimal Web Server.tid +8 -11
  284. package/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +5 -0
  285. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid +1 -1
  286. package/editions/tw5.com/tiddlers/variables/Behaviour of invoked variables depends on how the variable was declared.tid +52 -0
  287. package/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter expression function call.tid +10 -0
  288. package/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter operator parameter.tid +11 -0
  289. package/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via normal wikitext.tid +11 -0
  290. package/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid +11 -0
  291. package/editions/tw5.com/tiddlers/variables/Variable Usage.tid +5 -49
  292. package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +24 -2
  293. package/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +2 -2
  294. package/editions/tw5.com/tiddlers/widgets/BrowseWidget.tid +3 -1
  295. package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +3 -1
  296. package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +3 -1
  297. package/editions/tw5.com/tiddlers/widgets/Custom Widgets.tid +3 -1
  298. package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +3 -2
  299. package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +3 -1
  300. package/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +1 -1
  301. package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +2 -1
  302. package/editions/tw5.com/tiddlers/widgets/LinkWidget.tid +3 -1
  303. package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +27 -2
  304. package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +3 -1
  305. package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +3 -1
  306. package/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid +27 -2
  307. package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +4 -1
  308. package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +17 -1
  309. package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +2 -2
  310. package/editions/tw5.com/tiddlers/widgets/examples/ActionListopsWidget (Examples).tid +12 -1
  311. package/editions/tw5.com/tiddlers/wikitext/Anchor Links using HTML.tid +1 -1
  312. package/editions/tw5.com/tiddlers/wikitext/Conditional Shortcut Syntax.tid +62 -0
  313. package/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid +52 -19
  314. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -3
  315. package/editions/tw5.com/tiddlers/wikitext/Variable Attribute Values.tid +5 -2
  316. package/editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid +8 -3
  317. package/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid +1 -0
  318. package/editions/tw5.com/tiddlywiki.info +9 -3
  319. package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png +0 -0
  320. package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png.meta +2 -0
  321. package/editions/zh-Hans/tiddlers/images/favicon.png +0 -0
  322. package/editions/zh-Hans/tiddlers/images/favicon.png.meta +2 -0
  323. package/editions/zh-Hans/tiddlers/images/green_favicon.png +0 -0
  324. package/editions/zh-Hans/tiddlers/images/green_favicon.png.meta +2 -0
  325. package/editions/zh-Hant/tiddlers/images/favicon.png +0 -0
  326. package/editions/zh-Hant/tiddlers/images/favicon.png.meta +2 -0
  327. package/editions/zh-Hant/tiddlers/images/green_favicon.png +0 -0
  328. package/editions/zh-Hant/tiddlers/images/green_favicon.png.meta +2 -0
  329. package/languages/de-DE/Exporters.multids +1 -1
  330. package/languages/de-DE/Help/commands.tid +2 -2
  331. package/languages/de-DE/Help/server.tid +1 -1
  332. package/languages/de-DE/Types/image_x-icon.tid +1 -1
  333. package/languages/es-ES/Buttons.multids +2 -0
  334. package/languages/es-ES/Fields.multids +4 -0
  335. package/languages/es-ES/Help/listen.tid +1 -1
  336. package/languages/es-ES/Help/savewikifolder.tid +16 -1
  337. package/languages/es-ES/Help/server.tid +1 -1
  338. package/languages/es-ES/Misc.multids +3 -0
  339. package/languages/es-ES/SiteTitle.tid +1 -1
  340. package/languages/pl-PL/Exporters.multids +1 -1
  341. package/languages/pl-PL/Help/commands.tid +1 -1
  342. package/languages/pl-PL/Help/savewikifolder.tid +19 -4
  343. package/languages/pl-PL/Help/server.tid +1 -1
  344. package/languages/zh-Hans/Exporters.multids +1 -1
  345. package/languages/zh-Hans/Help/commands.tid +1 -1
  346. package/languages/zh-Hans/Help/savewikifolder.tid +5 -1
  347. package/languages/zh-Hans/Help/server.tid +1 -1
  348. package/languages/zh-Hans/Types/image_svg_xml.tid +1 -1
  349. package/languages/zh-Hans/Types/image_x-icon.tid +1 -1
  350. package/languages/zh-Hant/Exporters.multids +1 -1
  351. package/languages/zh-Hant/Help/commands.tid +1 -1
  352. package/languages/zh-Hant/Help/savewikifolder.tid +5 -1
  353. package/languages/zh-Hant/Help/server.tid +1 -1
  354. package/languages/zh-Hant/Types/image_svg_xml.tid +1 -1
  355. package/languages/zh-Hant/Types/image_x-icon.tid +1 -1
  356. package/licenses/cla-individual.md +20 -0
  357. package/package.json +4 -1
  358. package/playwright.config.js +46 -0
  359. package/plugins/tiddlywiki/codemirror/styles.tid +5 -0
  360. package/plugins/tiddlywiki/comments/styles.tid +8 -8
  361. package/plugins/tiddlywiki/dynannotate/docs/readme.tid +1 -0
  362. package/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +28 -27
  363. package/plugins/tiddlywiki/evernote/modules/enex-deserializer.js +82 -23
  364. package/plugins/tiddlywiki/evernote/readme.tid +1 -0
  365. package/plugins/tiddlywiki/evernote/samples/sample-enex-with-image.xml.enex +2 -2
  366. package/plugins/tiddlywiki/googleanalytics/googleanalytics.js +1 -1
  367. package/plugins/tiddlywiki/googleanalytics/settings.tid +1 -3
  368. package/plugins/tiddlywiki/jasmine/jasmine-plugin.js +9 -2
  369. package/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js +1 -1
  370. package/plugins/tiddlywiki/jasmine/startup.js +2 -1
  371. package/plugins/tiddlywiki/qrcode/barcodereader.js +90 -0
  372. package/plugins/tiddlywiki/qrcode/docs/barcodereader.tid +44 -0
  373. package/plugins/tiddlywiki/qrcode/{doc/usage.tid → docs/makeqr.tid} +4 -4
  374. package/plugins/tiddlywiki/qrcode/docs.tid +3 -0
  375. package/plugins/tiddlywiki/qrcode/{MakeContactQR.tid → examples/make/MakeContactQR.tid} +1 -1
  376. package/plugins/tiddlywiki/qrcode/{MakeGenericQR.tid → examples/make/MakeGenericQR.tid} +1 -1
  377. package/plugins/tiddlywiki/qrcode/{MakeWifiQR.tid → examples/make/MakeWifiQR.tid} +1 -1
  378. package/plugins/tiddlywiki/qrcode/examples/make/make.tid +5 -0
  379. package/plugins/tiddlywiki/qrcode/examples/read/BarCodeReader.tid +17 -0
  380. package/plugins/tiddlywiki/qrcode/examples/read/read.tid +5 -0
  381. package/plugins/tiddlywiki/qrcode/examples.tid +3 -0
  382. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/LICENSE +201 -0
  383. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/README.md +398 -0
  384. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/html5-qrcode.min.js +1 -0
  385. package/plugins/tiddlywiki/qrcode/files/tiddlywiki.files +20 -4
  386. package/plugins/tiddlywiki/qrcode/makeqr.js +1 -1
  387. package/plugins/tiddlywiki/qrcode/plugin.info +1 -1
  388. package/plugins/tiddlywiki/qrcode/readme.tid +15 -0
  389. package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +0 -1
  390. package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +1 -2
  391. package/plugins/tiddlywiki/upgrade/UpgradeWizard.tid +2 -2
  392. package/plugins/tiddlywiki/upgrade/favicon.png +0 -0
  393. package/plugins/tiddlywiki/upgrade/favicon.png.meta +2 -0
  394. package/readme.md +1 -1
  395. package/themes/tiddlywiki/vanilla/base.tid +45 -14
  396. package/themes/tiddlywiki/vanilla/settings.multids +1 -1
  397. package/editions/de-AT-server/tiddlers/system/favicon.ico +0 -0
  398. package/editions/dev/tiddlers/images/favicon.ico +0 -0
  399. package/editions/es-ES/tiddlers/images/favicon.ico +0 -0
  400. package/editions/es-ES/tiddlers/images/green_favicon.ico +0 -0
  401. package/editions/es-ES-server/tiddlers/system/favicon.ico +0 -0
  402. package/editions/fr-FR/tiddlers/images/favicon.ico +0 -0
  403. package/editions/fr-FR/tiddlers/images/favicon.ico.meta +0 -2
  404. package/editions/fr-FR/tiddlers/images/green_favicon.ico +0 -0
  405. package/editions/fr-FR-server/tiddlers/system/favicon.ico +0 -0
  406. package/editions/fr-FR-server/tiddlers/system/favicon.ico.meta +0 -2
  407. package/editions/ja-JP/tiddlers/images/favicon.ico +0 -0
  408. package/editions/ja-JP/tiddlers/images/favicon.ico.meta +0 -2
  409. package/editions/ja-JP/tiddlers/images/green_favicon.ico +0 -0
  410. package/editions/ko-KR/tiddlers/images/favicon.ico +0 -0
  411. package/editions/ko-KR/tiddlers/images/favicon.ico.meta +0 -2
  412. package/editions/ko-KR/tiddlers/images/green_favicon.ico +0 -0
  413. package/editions/ko-KR-server/tiddlers/system/favicon.ico +0 -0
  414. package/editions/ko-KR-server/tiddlers/system/favicon.ico.meta +0 -2
  415. package/editions/prerelease/tiddlers/system/favicon.ico +0 -0
  416. package/editions/prerelease/tiddlers/system/favicon.ico.meta +0 -2
  417. package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.ico +0 -0
  418. package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.ico +0 -0
  419. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.ico +0 -0
  420. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.ico +0 -0
  421. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.ico +0 -0
  422. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.ico +0 -0
  423. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.ico +0 -0
  424. package/editions/tw5.com/tiddlers/community/editions/TiddlyMemo by oflg.tid +0 -16
  425. package/editions/tw5.com/tiddlers/community/tutorials/Install and run TiddlyWiki on a CentOS 6 VPS using Nginx.tid +0 -16
  426. package/editions/tw5.com/tiddlers/images/New Release Banner.jpg +0 -0
  427. package/editions/tw5.com/tiddlers/images/favicon.ico +0 -0
  428. package/editions/tw5.com/tiddlers/images/favicon.ico.meta +0 -2
  429. package/editions/tw5.com/tiddlers/images/green_favicon.ico +0 -0
  430. package/editions/tw5.com/tiddlers/images/green_favicon.ico.meta +0 -2
  431. package/editions/tw5.com-server/tiddlers/system/favicon.ico +0 -0
  432. package/editions/tw5.com-server/tiddlers/system/favicon.ico.meta +0 -2
  433. package/editions/zh-Hans/tiddlers/images/favicon.ico +0 -0
  434. package/editions/zh-Hans/tiddlers/images/favicon.ico.meta +0 -2
  435. package/editions/zh-Hans/tiddlers/images/green_favicon.ico +0 -0
  436. package/editions/zh-Hans/tiddlers/images/green_favicon.ico.meta +0 -2
  437. package/editions/zh-Hant/tiddlers/images/favicon.ico +0 -0
  438. package/editions/zh-Hant/tiddlers/images/favicon.ico.meta +0 -2
  439. package/editions/zh-Hant/tiddlers/images/green_favicon.ico +0 -0
  440. package/editions/zh-Hant/tiddlers/images/green_favicon.ico.meta +0 -2
  441. package/plugins/tiddlywiki/qrcode/doc/examples.tid +0 -3
  442. package/plugins/tiddlywiki/qrcode/doc/readme.tid +0 -13
  443. package/plugins/tiddlywiki/upgrade/favicon.ico +0 -0
  444. package/plugins/tiddlywiki/upgrade/favicon.ico.meta +0 -2
  445. /package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.org.ico.meta → tiddlywiki.org.png.meta} +0 -0
  446. /package/plugins/tiddlywiki/qrcode/files/{LICENSE → qrcode/LICENSE} +0 -0
  447. /package/plugins/tiddlywiki/qrcode/files/{README.md → qrcode/README.md} +0 -0
  448. /package/plugins/tiddlywiki/qrcode/files/{qrcode.js → qrcode/qrcode.js} +0 -0
@@ -0,0 +1,87 @@
1
+ caption: 5.3.1
2
+ created: 20230820112855583
3
+ modified: 20230820112855583
4
+ released: 20230820112855583
5
+ tags: ReleaseNotes
6
+ title: Release 5.3.1
7
+ type: text/vnd.tiddlywiki
8
+ description: Bug fix release for v5.3.0
9
+
10
+ //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.0...v5.3.1]]//
11
+
12
+ <<.banner-credits
13
+ credit:"""Congratulations to [[vilc|https://talk.tiddlywiki.org/u/vilc]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/banner-image-competition-for-v5-3-0/7406/10]]).
14
+ """
15
+ url:"https://github.com/Jermolene/TiddlyWiki5/blob/4124bbdfb3e2445d45488006dfff1925d067ab0f/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png?raw=true"
16
+ >>
17
+
18
+ ! Overview of v5.3.1
19
+
20
+ This release comes only a few weeks after [[v5.3.0|Release 5.3.0]]. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP -- the [[demo|WidgetMessage: tm-http-request Example - Random Dog]] downloads a random image or video of a dog.
21
+
22
+ ! Bug Fixes and Reversions of v5.3.0 Changes
23
+
24
+ * Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
25
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7647">> inefficiency when transcluding with the ''$output'' attribute set to `text/plain` that manifested itself as extremely slow export times
26
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7648">> unwanted error message "Global assignment is not allowed within modules on node"
27
+
28
+ ! Translation improvement
29
+
30
+ Improvements to the following translations:
31
+
32
+ * Chinese
33
+ * Polish
34
+
35
+ ! Widget Improvements
36
+
37
+ * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7594">> ''tabindex'' attribute to SelectWidget
38
+
39
+ ! Hackability Improvements
40
+
41
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7611">> ImportVariablesWidget and [[Pragma: \import]] to trim whitespace when parsing tiddlers
42
+ * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/9b2af1359614f4ad5afd05be7cf9853909334592">> [[WidgetMessage: tm-http-request]] to handle binary responses ([[demo|WidgetMessage: tm-http-request Example - Random Dog]])
43
+
44
+ ! Bug Fixes
45
+
46
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7627">> table of contents indentation
47
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7595">> bindStatus and bindProgress parameters of [[WidgetMessage: tm-http-request]]
48
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7606">> attribute substitution to handle variables containing non-word characters
49
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7624">> the pragmas introduced in v5.3.0 so that they can be indented with whitespace
50
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7619">> size of tiddler icons
51
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7622">> drag and drop from Chrome-like browsers to Firefox
52
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7679">> listIndex mode of checkbox widgets
53
+
54
+ ! Node.js Improvements
55
+
56
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7645">> console reporting of ~JavaScript errors
57
+
58
+ ! Developer Improvements
59
+
60
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/6c7c21a87bdb0d8a00df1c14eea18912164e0b57">> overeager onload handler in Jasmine plugin
61
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/08bad90e51c45233a196333e101bbbf6ecf702ce">> ordering of shadow tiddler listings to not reflect order of insertion
62
+
63
+ ! Acknowledgements
64
+
65
+ [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
66
+
67
+ <<.contributors """
68
+ AnthonyMuscio
69
+ btheado
70
+ catter-fly
71
+ cmo-pomerium
72
+ CrossEye
73
+ flibbles
74
+ hffqyd
75
+ lilscribby
76
+ linonetwo
77
+ Marxsal
78
+ mateuszwilczek
79
+ pille1842
80
+ pmario
81
+ rmunn
82
+ saqimtiaz
83
+ stevesunypoly
84
+ TiddlyTweeter
85
+ twMat
86
+ yaisog
87
+ """>>
@@ -0,0 +1,184 @@
1
+ caption: 5.3.2
2
+ created: 20231213080637781
3
+ modified: 20231213080637781
4
+ released: 20231213080637781
5
+ tags: ReleaseNotes
6
+ title: Release 5.3.2
7
+ type: text/vnd.tiddlywiki
8
+ description: Under development
9
+
10
+ //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.1...v5.3.2]]//
11
+
12
+ <<.banner-credits
13
+ credit:"""Congratulations to [[catter-fly|https://talk.tiddlywiki.org/u/catter-fly]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/banner-image-competition-for-v5-3-2/8569]]).
14
+ """
15
+ url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/51862f812851afda0ed3540f8463f51def0d4f9a/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png"
16
+ >>
17
+ ! Major Improvements
18
+
19
+ !! Conditional Shortcut Syntax
20
+
21
+ <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7710">> a new [[shortcut syntax|Conditional Shortcut Syntax]] for concisely expressing if-then-else logic. This is the first of a new type of wikitext syntax based on tokens delimited with `<%` and `%>`. We plan to introduce other structures using the same format such as a "case" statement.
22
+
23
+ These new token-based shortcuts allow a richer structure and expressivity than existing features such as widgets or pragmas. For example:
24
+
25
+ ```
26
+ <% if [<animal>match[Elephant]] %>
27
+ It is an elephant
28
+ <% elseif [<animal>match[Giraffe]] %>
29
+ It is a giraffe
30
+ <% else %>
31
+ It is completely unknown
32
+ <% endif %>
33
+ ```
34
+
35
+ Behind the scenes, the conditional shortcut syntax is rendered as the equivalent [[ListWidgets|ListWidget]].
36
+
37
+ !! Explicit Templates for the ListWidget
38
+
39
+ <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7784">> support for `<$list-template>` and `<$list-empty>` as immediate children of the <<.wid "ListWidget">> widget to specify the list item template and/or the empty template.
40
+
41
+ This new feature is designed to replace a common pattern of using the `emptyMessage` attribute of the ListWidget to render complex wikitext that thus has to be quoted. Working with wikitext within quotes is awkward and error prone. The new structure can be somewhat faster because it allows the empty message to be parsed in advanced of rendering.
42
+
43
+ For example:
44
+
45
+ ```
46
+ <$list filter=<<filter>>>
47
+ <$list-template>
48
+ <$text text=<<currentTiddler>>/>
49
+ </$list-template>
50
+ <$list-empty>
51
+ None!
52
+ </$list-empty>
53
+ </$list>
54
+ ```
55
+
56
+ Note that the <<.attr "emptyMessage">> and <<.attr "template">> attributes take precedence if they are present.
57
+
58
+ !! Joiners for the ListWidget
59
+
60
+ <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7694">> a <<.attr "join">> attribute to the <<.wid "ListWidget">> widget to insert a short piece of text between list items. This is both easier to use and faster than using the <<.attr "counter">> attribute for the same purpose. So if your list looked like this:
61
+
62
+ ```
63
+ <$list filter=<<filter>> counter="counter" variable="item">
64
+ <$text text=<<item>>/><$list filter="[<counter-last>match[no]]" variable="ignore"><$text text=", "/></$list>
65
+ </$list>
66
+ ```
67
+
68
+ You can replace it with:
69
+
70
+ ```
71
+ <$list filter=<<filter>> variable="item" join=", "><$text text=<<item>>/></$list>
72
+ ```
73
+
74
+ If the joiner text that you need is long and awkward to write in an attribute, you can use the new `<$list-join>` widget. Like `<$list-template>` and `<$list-empty>`, it must be an immediate child of the <<.wid "ListWidget">>:
75
+
76
+ ```
77
+ <$list filter=<<filter>> variable="item"><$text text=<<item>>/><$list-join>, and <em>also</em> let's not forget </$list-join></$list>
78
+ ```
79
+
80
+ !! jsonset operator
81
+
82
+ <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7742">> [[jsonset Operator]] for setting values within JSON objects
83
+
84
+ !! QR Code Reader
85
+
86
+ <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7746">> QR Code plugin to be able to read QR codes and a number of other bar code formats
87
+
88
+ ! Translation improvements
89
+
90
+ Improvements to the following translations:
91
+
92
+ * Chinese
93
+ * Polish
94
+ * Spanish
95
+
96
+ ! Plugin Improvements
97
+
98
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/1be8f0a9336952d4745d2bd4f2327e353580a272">> Comments Plugin to use predefined palette colours
99
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7785">> Evernote Importer Plugin to support images and other attachments
100
+ * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7790">> `$floating` attribute to Dynannotate Plugin to support popups that do not disappear when another part of the screen is clicked. Instead they have to dismissed manually
101
+
102
+ ! Widget Improvements
103
+
104
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7734">> ImageWidget encoding for more image types
105
+ * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7634">> ImageWidget to add a "usemap" attribute
106
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7649">> the ScrollableWidget to allow the scroll position to be bound to a tiddler, so that changes to the tiddler affect the scroll position, and vice versa
107
+
108
+ ! Usability Improvements
109
+
110
+ * <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/7747">> editor preview button to automatically focus the editor
111
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7764">> file type names in the export menu
112
+
113
+ ! Hackability Improvements
114
+
115
+ * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7769">> all the relevant core widgets to allow arbitrary `data-*` attributes and `style.*` attributes to be applied to the generated DOM nodes. This is useful for passing data to the EventCatcherWidget
116
+ * <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7849">> [[jsonextract Operator]], [[jsonget Operator]], [[jsonset Operator]] and [[jsontype Operator]] to allow negative indexes into arrays to be counted from the end of the array
117
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7690">> the default page layout to better support CSS grid and flexbox layouts
118
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7787">> the editor to use grid layout, simplifying customisation
119
+
120
+ ! Bug Fixes
121
+
122
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7758">> ordering of Vanilla stylesheets
123
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fa9bfa07a095548eb2f8339b0b1b816d2e6794ef">> missing closing tag in tag-pill-inner macro
124
+ * <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/issues/7732">> invalid "type" attribute from textarea elements generated by the EditTextWidget
125
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7749">> editor "type" dropdown state tiddlers
126
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7712">> handling of "counter-last" variable when appending items with the ListWidget
127
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6088">> upgrade download link in Firefox
128
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7698">> refreshing of transcluded functions
129
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7789">> resizing of height of textareas in control panel
130
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7683">> [[encodebase64 Operator]] and [[decodebase64 Operator]] to work properly with binary data
131
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7708">> [[WidgetMessage: tm-open-window]] when opening an existing window to bring it to the front and focus it
132
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7809">> behaviour of [[last Operator]] when zero items selected
133
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7806">> incorrectly setting focus on field name input field when deleting field using the delete field button
134
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7802">> [[Table-of-Contents Macros]] to not show expander icon for a sublist that has all children excluded
135
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7794">> overflow of [[CodeMirror Plugin]] editor within grid container
136
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7835">> wikitest parser removing whitespace when parsing pragmas
137
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7842">> tooltip for editor add field button
138
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7844">> plain text parser being susceptible to the CodeBlockWidget being redefined
139
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7855">> pragmas not working within the action string of several core macros
140
+
141
+ ! Node.js Improvements
142
+
143
+ * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7843">> a significant flaw in the synchronisation algorithm used by the client-server configuration. The flaw could lead to tiddlers temporarily disappearing from the browser
144
+
145
+ ! Performance Improvements
146
+
147
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7702">> performance of predefined patterns with [[all Operator]]
148
+ * <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/issues/7671">> favicon format to PNG
149
+
150
+ ! Developer Improvements
151
+
152
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7751">> global hook handling to support removing hooks
153
+ * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7539">> some useful npm scripts to `package.json`
154
+
155
+ ! Infrastructure Improvements
156
+
157
+ * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7820">> Continuous Integration tests to use Playwright to run our browser-based tests
158
+ * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7737">> an automatic build of the external core TiddlyWiki at https://tiddlywiki.com/empty-external-core.html
159
+
160
+ ! Acknowledgements
161
+
162
+ [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
163
+
164
+ <<.contributors """
165
+ AnthonyMuscio
166
+ BramChen
167
+ BuckarooBanzay
168
+ BurningTreeC
169
+ CrossEye
170
+ EvidentlyCube
171
+ Gk0Wk
172
+ joebordes
173
+ kookma
174
+ linonetwo
175
+ mateuszwilczek
176
+ oflg
177
+ pille1842
178
+ pmario
179
+ rmunn
180
+ saqimtiaz
181
+ simonbaird
182
+ T1mL3arn
183
+ yaisog
184
+ """>>
@@ -1,9 +1,11 @@
1
1
  created: 20150419144523070
2
- modified: 20220802100223019
2
+ modified: 20231005205612322
3
3
  tags: About
4
4
  title: Releases
5
5
  type: text/vnd.tiddlywiki
6
6
 
7
- New releases of TiddlyWiki and TiddlyDesktop are announced via the [[official discussion groups|Forums]] and [[Twitter|https://twitter.com/TiddlyWiki]] (you can also subscribe to an Atom/RSS feed of [[TiddlyWiki releases from GitHub|https://github.com/jermolene/tiddlywiki5/releases.atom]])
7
+ New releases of TiddlyWiki and TiddlyDesktop are announced via the [[official discussion groups|Forums]] and [[Twitter|https://twitter.com/TiddlyWiki]]
8
+
9
+ See the [[TiddlyWiki Archive]] to download older versions.
8
10
 
9
11
  <<tabs "[[TiddlyWiki Releases]] [[TiddlyDesktop Releases]]" "TiddlyWiki Releases" "$:/state/tab">>
@@ -5,7 +5,7 @@ tags: Releases
5
5
  title: TiddlyWiki Releases
6
6
  type: text/vnd.tiddlywiki
7
7
 
8
- Here are the details of recent releases of TiddlyWiki5. See [[TiddlyWiki5 Versioning]] for details of how releases are named. Note that archived versions of release source files are available at https://github.com/Jermolene/TiddlyWiki5/releases
8
+ Here are the details of recent releases of TiddlyWiki5. See [[TiddlyWiki5 Versioning]] for details of how releases are named.
9
9
 
10
10
  If you are using node.js, you can also install prior versions like this:
11
11
 
@@ -1,4 +1,4 @@
1
- caption: TiddlyStow (experimental)
1
+ caption: ~TiddlyStow (experimental)
2
2
  color: #FF8A65
3
3
  created: 20230403170650008
4
4
  delivery: Saver
@@ -13,4 +13,4 @@ url: https://github.com/btheado/tiddlystow
13
13
  ''Link:'' {{!!url}}
14
14
 
15
15
  Tiddlystow saves TiddlyWiki files locally using the browser file system API (Chrome-based browsers currently).
16
- This is a simple web page for loading a local TiddlyWiki file and storing it back to the same local file requiring no plugins or extensions.
16
+ This is a simple web page for loading a local TiddlyWiki file and storing it back to the same local file requiring no plugins or extensions.
@@ -4,7 +4,7 @@ created: 20190408173002622
4
4
  delivery: Service
5
5
  description: Save changes directly to a Git repository (on GitHub, GitLab)
6
6
  method: save
7
- modified: 20200507203007684
7
+ modified: 20230723074211772
8
8
  tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge
9
9
  title: Saving to a Git service
10
10
  type: text/vnd.tiddlywiki
@@ -24,3 +24,7 @@ Saving to a Git service is configured in the [[$:/ControlPanel]] in the ''Git Se
24
24
  Notes
25
25
 
26
26
  * The Git service token or password is stored persistently in browser local storage. Be sure to clear the password if using a shared machine. Using a personal access token for authentication offers an extra layer of security: if the access token is accidentally exposed it can be revoked without needing to reset the account password
27
+
28
+ ---
29
+
30
+ For a more detailed info about the ~GitHub saver see: [[GitHub Saver Tutorial by Mohammad]]
@@ -1,4 +1,4 @@
1
- caption: tw5-server
1
+ caption: tw5server
2
2
  color: #70c9a0
3
3
  community-author: hffqyd
4
4
  created: 20230302011710789
@@ -10,27 +10,23 @@ tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving
10
10
  title: Saving via a Minimal Web Server
11
11
  type: text/vnd.tiddlywiki
12
12
 
13
- A local server for TiddlyWiki5 that saves and backups wikis, inspired by
13
+ A local mini binary server for TiddlyWiki5 that saves and backups wikis and uploads files for TiddlyWiki, inspired by
14
14
  [[tw5-server.rb | https://gist.github.com/jimfoltz/ee791c1bdd30ce137bc23cce826096da]].
15
15
 
16
- tw5-server provides features of:
16
+ tw5server provides features of:
17
17
 
18
18
  * Server for TiddlyWiki5, as well as other files (e.g. images used in TW5 `[img[images/*.png]]`);
19
19
  * Easy to save wiki via browsers;
20
20
  * Backup wiki in compress format (.gz), to save disk space;
21
21
  * Auto clean backups: keep one newest per previous month, keep all backups in current month.
22
- * Upload files/images to server, for use in tiddlywiki as external links.
23
- * Offer binary executable for Linux, macos and windows.
22
+ * Upload files/images to server via pressing button or drag-and-drop, for use in tiddlywiki as external links.
23
+ * Offer binary executable for Linux, macos, Android and windows.
24
24
 
25
- Download executable script and binary at the github.com [[tw5-server|https://github.com/hffqyd/tw5-server]].
25
+ Download executable binary at the github.com [[tw5-server|https://github.com/hffqyd/tw5-server]].
26
26
 
27
27
  ! Usage
28
28
 
29
29
  ```bash
30
- # python script:
31
- python tw5-server.py -p 8000 -d ./ -b backup_dir
32
-
33
- # binary file:
34
30
  tw5server -a:192.168.0.10 -p:8000 -d:./ -b:backup
35
31
 
36
32
  -h usage help
@@ -44,6 +40,7 @@ Backups auto-clean strategy:
44
40
  Keep all backups in current month, keep only the newest one for previous months.
45
41
  ```
46
42
 
47
- In Unix/Linux, just excute `./tw5-server.py` (with `chmod +x tw5-server.py`).
43
+ In Unix/Linux, maybe first `chmod +x tw5server`), then run it.
44
+ For Android version, run it in Termux, or some other terminals.
48
45
 
49
46
  Then go to http://localhost:8000 (or other address:port specified in command) in your web browser, and click on your wiki html file.
@@ -147,6 +147,11 @@ type: text/vnd.tiddlywiki
147
147
  gap: 1em;
148
148
  }
149
149
 
150
+ .tc-cards.tc-small {
151
+ text-align: center;
152
+ font-size: 0.7em;
153
+ }
154
+
150
155
  .tc-cards.tc-action-card {
151
156
  text-align: center;
152
157
  background: none;
@@ -6,4 +6,4 @@ tags: SystemTags
6
6
  title: SystemTag: $:/tags/Macro
7
7
  type: text/vnd.tiddlywiki
8
8
 
9
- The [[system tag|SystemTags]] `$:/tags/Macro` marks global macros. It is now deprecated in favour of [[SystemTag $:/tags/Global]].
9
+ The [[system tag|SystemTags]] `$:/tags/Macro` marks global macros. It is now deprecated in favour of [[SystemTag: $:/tags/Global]].
@@ -0,0 +1,52 @@
1
+ created: 20230726145210484
2
+ modified: 20230726145757234
3
+ tags: [[Variable Usage]]
4
+ title: Behaviour of invoked variables depends on how the variable was declared
5
+ type: text/vnd.tiddlywiki
6
+
7
+ \define m1(a1) $a1$ - <<__a1__>> - <<a1>>
8
+ \procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
9
+ \function f1(a1) "$a1$" "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
10
+
11
+ Invoked in normal wikitext context: `<$transclude $variable=macro/>` or `<<macro>>`
12
+
13
+ {{Behaviour of variables invoked via normal wikitext}}
14
+
15
+ Invoked via widget attribute: `<div class=<<macro>>/>`
16
+
17
+ {{Behaviour of variables invoked via widget attributes}}
18
+
19
+ Invoked via filter operator parameter: `[<macro>]`
20
+
21
+ {{Behaviour of variables invoked via filter operator parameter}}
22
+
23
+ Invoked via function call in a filter expression: `[function[macro]]`
24
+
25
+ {{Behaviour of variables invoked via filter expression function call}}
26
+
27
+ !! Examples
28
+
29
+ Below is an example macro, procedure and function definition. All three forms of parameter substitution `$a1$`, `<<__a1__>>`, and `<<a1>>` are included in each definition. The output helps illustrate when each form of substitution will or will not have affect.
30
+
31
+ ```
32
+ \define m1(a1) $a1$ - <<__a1__>> - <<a1>>
33
+ \procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
34
+ \function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
35
+ ```
36
+
37
+ | !Variable transclusion|!output |
38
+ | `<<m1 foo>>`|<<m1 foo>>|
39
+ | `<<p1 foo>>`|<<p1 foo>>|
40
+ | `<<f1 foo>>`|<<f1 foo>>|
41
+ | !Widget attribute|!output |
42
+ | `<$text text=<<m1 foo>>/>`|<$text text=<<m1 foo>>/>|
43
+ | `<$text text=<<p1 foo>>/>`|<$text text=<<p1 foo>>/>|
44
+ | `<$text text=<<f1 foo>>/>`|<$text text=<<f1 foo>>/>|
45
+ | !Filter operator parameter|!output |
46
+ | `[<m1 foo>]`|<$text text={{{[<m1 foo>]}}}/>|
47
+ | `[<p1 foo>]`|<$text text={{{[<p1 foo>]}}}/>|
48
+ | `[<f1 foo>]`|<$text text={{{[<f1 foo>]}}}/>|
49
+ | !Function call in filter expression|!output |
50
+ | `[function[m1],[foo]]`|<$text text={{{[function[m1],[foo]]}}}/>|
51
+ | `[function[p1],[foo]]`|<$text text={{{[function[p1],[foo]]}}}/>|
52
+ | `[function[f1],[foo]]`|<$text text={{{[function[f1],[foo]]}}}/>|
@@ -0,0 +1,10 @@
1
+ created: 20230726143929233
2
+ modified: 20230726150604831
3
+ tags: [[Variable Usage]]
4
+ title: Behaviour of variables invoked via filter expression function call
5
+ type: text/vnd.tiddlywiki
6
+
7
+ |tc-first-col-min-width|k
8
+ |!how declared|!behaviour|
9
+ |\define, <<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Every function is a variable, but only variables defined using \function are invokable using the <<.olink function>> filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.|
10
+ |\function|The body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.|
@@ -0,0 +1,11 @@
1
+ created: 20230726143617389
2
+ modified: 20230726150625716
3
+ tags: [[Variable Usage]]
4
+ title: Behaviour of variables invoked via filter operator parameter
5
+ type: text/vnd.tiddlywiki
6
+
7
+ |tc-first-col-min-width|k
8
+ |!how declared|!behaviour|
9
+ |\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.|
10
+ |<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the filter operator's parameter.|
11
+ |\function|The body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.|
@@ -0,0 +1,11 @@
1
+ created: 20230726142925020
2
+ modified: 20230726150648189
3
+ tags: [[Variable Usage]]
4
+ title: Behaviour of variables invoked via normal wikitext
5
+ type: text/vnd.tiddlywiki
6
+
7
+ |tc-first-col-min-width|k
8
+ |!how declared|!behaviour|
9
+ |\define|All wikitext and variable substitution and textual substitution takes place|
10
+ |<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|All wikitext and variable substitution takes place|
11
+ |\function|Invoking a function in this way (`<<macro>>`) is a synonym for `<$text text={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded|
@@ -0,0 +1,11 @@
1
+ created: 20230726143332803
2
+ modified: 20230726150616232
3
+ tags: [[Variable Usage]]
4
+ title: Behaviour of variables invoked via widget attributes
5
+ type: text/vnd.tiddlywiki
6
+
7
+ |tc-first-col-min-width|k
8
+ |!how declared|!behaviour|
9
+ |\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value|
10
+ |<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the attribute's value.|
11
+ |\function|When a function is invoked as `<div class=<<macro>>/>`, it is a synonym for `<div class={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue|
@@ -1,13 +1,9 @@
1
1
  created: 20230421020225031
2
- modified: 20230422144812613
2
+ modified: 20230726145912019
3
3
  tags:
4
4
  title: Variable Usage
5
5
  type: text/vnd.tiddlywiki
6
6
 
7
- \define m1(a1) $a1$ - <<__a1__>> - <<a1>>
8
- \procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
9
- \function f1(a1) "$a1$" "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
10
-
11
7
  !Ways to define variables and parameters
12
8
  |! how declared|! how parameters are defined|! accessing parameter values in the body|
13
9
  |\define|`()`|`$param$, <<__param__>>`|
@@ -100,50 +96,10 @@ These examples are meant to provide insight into the various ways of defining an
100
96
  </$let>
101
97
 
102
98
 
103
- !Behavior of invoked variables depends on how the variable was declared
104
-
105
- |!how invoked|!how declared|!behavior|
106
- |`<$transclude $variable=macro/>` or `<<macro>>` in normal wikitext context|\define|All wikitext and variable substitution and textual substitution takes place|
107
- |~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|All wikitext and variable substitution takes place|
108
- |~|\function|Invoking a function in this way (`<<macro>>`) is a synonym for `<$text text={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded.|
109
- ||||
110
- |widget attribute: `<div class=<<macro>>/>`|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value|
111
- |~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the attribute's value.|
112
- |~|\function|When a function is invoked as `<div class=<<macro>>/>`, it is a synonym for `<div class={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue|
113
- ||||
114
- |filter operator parameter: `[<macro>]`|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.|
115
- |~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the filter operator's parameter.|
116
- |~|\function|The body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded|
117
- ||||
118
- |function call in a filter expression: `[function[macro]]`|\define, <<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Every function is a variable, but only variables defined using \function are invokable using the <<.olink function>> filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.|
119
- |~|\function|The body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.|
120
-
121
- !! Examples
122
-
123
- Below is an example macro, procedure and function definition. All three forms of parameter substitution `$a1$`, `<<__a1__>>`, and `<<a1>>` are included in each definition. The output helps illustrate when each form of substitution will or will not have affect.
124
-
125
- ```
126
- \define m1(a1) $a1$ - <<__a1__>> - <<a1>>
127
- \procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
128
- \function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
129
- ```
130
-
131
- | !Variable transclusion|!output |
132
- | `<<m1 foo>>`|<<m1 foo>>|
133
- | `<<p1 foo>>`|<<p1 foo>>|
134
- | `<<f1 foo>>`|<<f1 foo>>|
135
- | !Widget attribute|!output |
136
- | `<$text text=<<m1 foo>>/>`|<$text text=<<m1 foo>>/>|
137
- | `<$text text=<<p1 foo>>/>`|<$text text=<<p1 foo>>/>|
138
- | `<$text text=<<f1 foo>>/>`|<$text text=<<f1 foo>>/>|
139
- | !Filter operator parameter|!output |
140
- | `[<m1 foo>]`|<$text text={{{[<m1 foo>]}}}/>|
141
- | `[<p1 foo>]`|<$text text={{{[<p1 foo>]}}}/>|
142
- | `[<f1 foo>]`|<$text text={{{[<f1 foo>]}}}/>|
143
- | !Function call in filter expression|!output |
144
- | `[function[m1],[foo]]`|<$text text={{{[function[m1],[foo]]}}}/>|
145
- | `[function[p1],[foo]]`|<$text text={{{[function[p1],[foo]]}}}/>|
146
- | `[function[f1],[foo]]`|<$text text={{{[function[f1],[foo]]}}}/>|
99
+ !Behaviour of invoked variables depends on how the variable was declared
100
+
101
+ {{Behaviour of invoked variables depends on how the variable was declared}}
102
+
147
103
 
148
104
  !Namespaces
149
105
 
@@ -1,6 +1,6 @@
1
1
  caption: action-listops
2
2
  created: 20141025120850184
3
- modified: 20230301183438774
3
+ modified: 20230805103548113
4
4
  myfield:
5
5
  tags: ActionWidgets Widgets
6
6
  title: ActionListopsWidget
@@ -22,6 +22,28 @@ The ''action-listops'' widget is invisible. Any content within it is ignored.
22
22
  |$subfilter |An optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated |
23
23
  |$tags |An optional subfilter expression, which takes the <<.field tags>> field of the target tiddler as input, and saves the modified list of tags back to the <<.field tags>> field |
24
24
 
25
+ !! Note on subfilter expressions
26
+
27
+ If the manipulation depends on the current contents of the list, e.g. when using the <<.olink toggle>> operator to toggle the presence of an element, the [[Filter Run]] would be prefixed with the `+` / `:and` [[filter run prefix|Filter Expression]] so that it properly receives the list as input.
28
+
29
+ ```
30
+ <$action-listops $subfilter="+[toggle[List Item]]"/>
31
+ ```
32
+
33
+ The above widget will toggle the presence of the element <<.value "List Item">> in the field <<.field list>> of the current tiddler, removing or adding the element as necessary.
34
+
35
+ Similarly, if an element is to always be removed when it is present, the `-` / `:except` [[filter run prefix|Filter Expression]] can be used. Both of the following yield the same result:
36
+
37
+ ```
38
+ <$action-listops $subfilter="-[[List Item]]"/>
39
+ <$action-listops $subfilter="+[remove[List Item]]"/>
40
+ ```
41
+
42
+ Without any prefixes, the filter run output is simply [[dominantly appended|Dominant Append]] to the list.
43
+
44
+ See also the [[Examples|ActionListopsWidget (Examples)]].
45
+
46
+
25
47
  !! Using $filter or $subfilter
26
48
 
27
49
  Standalone use of the `$subfilter` attribute can be replaced by using a (more complicated) `$filter` attribute value.
@@ -103,4 +125,4 @@ Add 'abc' to 'myfield'
103
125
  The [[enlist Operator]] with `raw` suffix will enlist the list saved in <<.field myfield>> of the current tiddler without de-duplication, while e.g. the [[list Operator]] will always de-duplicate. The widget then adds the item <<.value abc>> -- whether or not it is already included in the list -- and replaces the original list in <<.field myfield>>.
104
126
 
105
127
 
106
- ! [[Examples|ActionListopsWidget (Examples)]]
128
+ ! [[Examples|ActionListopsWidget (Examples)]]
@@ -1,6 +1,6 @@
1
1
  caption: action-popup
2
2
  created: 20200303114556528
3
- modified: 20220815205132124
3
+ modified: 20230731193016105
4
4
  tags: Widgets ActionWidgets
5
5
  title: ActionPopupWidget
6
6
  type: text/vnd.tiddlywiki
@@ -30,6 +30,6 @@ Here is an example of button that triggers the "more" button in the sidebar "Too
30
30
  <$macrocall $name='wikitext-example-without-html'
31
31
  src='<$button>
32
32
  <$action-setfield $tiddler="$:/state/tab/sidebar--595412856" $value="$:/core/ui/SideBar/Tools"/>
33
- <$action-popup $state="$:/state/popup/more-2053862905" $coords="(0,20,0,0)"/>
33
+ <$action-popup $state="$:/state/popup/more--810643385" $coords="(0,20,0,0)"/>
34
34
  Click me!
35
35
  </$button>'/>