tiddlywiki 5.3.1 → 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 (364) 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 +12 -0
  5. package/core/language/en-GB/Exporters.multids +1 -1
  6. package/core/language/en-GB/Help/commands.tid +1 -1
  7. package/core/language/en-GB/Help/savewikifolder.tid +2 -2
  8. package/core/language/en-GB/Help/server.tid +1 -1
  9. package/core/language/en-GB/Types/image_svg_xml.tid +1 -1
  10. package/core/language/en-GB/Types/image_x-icon.tid +1 -1
  11. package/core/modules/commands/savetiddlers.js +1 -1
  12. package/core/modules/editor/engines/framed.js +1 -1
  13. package/core/modules/editor/engines/simple.js +1 -1
  14. package/core/modules/filters/all.js +5 -5
  15. package/core/modules/filters/encodings.js +6 -2
  16. package/core/modules/filters/json-ops.js +95 -1
  17. package/core/modules/filters/listops.js +1 -0
  18. package/core/modules/parsers/textparser.js +5 -4
  19. package/core/modules/parsers/wikiparser/rules/conditional.js +120 -0
  20. package/core/modules/parsers/wikiparser/wikiparser.js +31 -8
  21. package/core/modules/savers/github.js +1 -1
  22. package/core/modules/startup/windows.js +2 -1
  23. package/core/modules/syncer.js +160 -122
  24. package/core/modules/utils/dom/dom.js +3 -3
  25. package/core/modules/utils/dom/http.js +1 -1
  26. package/core/modules/utils/fakedom.js +5 -1
  27. package/core/modules/utils/utils.js +27 -4
  28. package/core/modules/widgets/browse.js +10 -0
  29. package/core/modules/widgets/button.js +15 -3
  30. package/core/modules/widgets/checkbox.js +11 -0
  31. package/core/modules/widgets/draggable.js +16 -5
  32. package/core/modules/widgets/droppable.js +14 -2
  33. package/core/modules/widgets/image.js +19 -14
  34. package/core/modules/widgets/link.js +12 -2
  35. package/core/modules/widgets/list.js +176 -19
  36. package/core/modules/widgets/radio.js +4 -0
  37. package/core/modules/widgets/range.js +4 -0
  38. package/core/modules/widgets/scrollable.js +66 -1
  39. package/core/modules/widgets/select.js +34 -26
  40. package/core/modules/widgets/transclude.js +19 -6
  41. package/core/modules/widgets/widget.js +35 -19
  42. package/core/modules/wiki.js +2 -2
  43. package/core/templates/html-json-skinny-tiddler.tid +0 -1
  44. package/core/templates/html-json-tiddler.tid +1 -1
  45. package/core/templates/store.area.template.html.tid +4 -4
  46. package/core/ui/ControlPanel/Basics.tid +2 -2
  47. package/core/ui/EditTemplate/body/default.tid +12 -8
  48. package/core/ui/EditTemplate/fields.tid +2 -2
  49. package/core/ui/EditTemplate/type.tid +1 -1
  50. package/core/ui/EditorToolbar/preview.tid +6 -0
  51. package/core/ui/PageTemplate.tid +1 -1
  52. package/core/ui/ViewTemplate/subtitle.tid +2 -5
  53. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  54. package/core/wiki/macros/colour-picker.tid +6 -6
  55. package/core/wiki/macros/image-picker.tid +5 -5
  56. package/core/wiki/macros/list.tid +95 -78
  57. package/core/wiki/macros/tabs.tid +9 -1
  58. package/core/wiki/macros/tag-picker.tid +2 -2
  59. package/core/wiki/macros/tag.tid +2 -1
  60. package/core/wiki/macros/toc.tid +2 -2
  61. package/editions/de-AT/tiddlers/HelloThere.tid +2 -2
  62. package/editions/de-AT/tiddlers/community/Fur_Entwickler.tid +1 -1
  63. package/editions/de-AT-server/tiddlers/system/favicon.png +0 -0
  64. package/editions/{es-ES-server/tiddlers/system/favicon.ico.meta → de-AT-server/tiddlers/system/favicon.png.meta} +1 -1
  65. package/editions/dev/tiddlers/images/favicon.png +0 -0
  66. package/editions/{de-AT-server/tiddlers/system/favicon.ico.meta → dev/tiddlers/images/favicon.png.meta} +1 -1
  67. package/editions/dev/tiddlers/new/HookMechanism.tid +28 -3
  68. package/editions/empty/tiddlywiki.info +5 -2
  69. package/editions/es-ES/tiddlers/Forums.tid +4 -5
  70. package/editions/es-ES/tiddlers/HelloThere.tid +2 -2
  71. package/editions/es-ES/tiddlers/Typography.tid +1 -1
  72. package/editions/es-ES/tiddlers/images/favicon.png +0 -0
  73. package/editions/{dev/tiddlers/images/favicon.ico.meta → es-ES/tiddlers/images/favicon.png.meta} +1 -1
  74. package/editions/es-ES/tiddlers/images/green_favicon.png +0 -0
  75. package/editions/es-ES/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  76. package/editions/es-ES-server/tiddlers/system/favicon.png +0 -0
  77. package/editions/{es-ES/tiddlers/images/favicon.ico.meta → es-ES-server/tiddlers/system/favicon.png.meta} +1 -1
  78. package/editions/fr-FR/tiddlers/images/favicon.png +0 -0
  79. package/editions/fr-FR/tiddlers/images/favicon.png.meta +2 -0
  80. package/editions/fr-FR/tiddlers/images/green_favicon.png +0 -0
  81. package/editions/fr-FR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  82. package/editions/fr-FR-server/tiddlers/system/favicon.png +0 -0
  83. package/editions/fr-FR-server/tiddlers/system/favicon.png.meta +2 -0
  84. package/editions/highlightdemo/tiddlywiki.info +1 -1
  85. package/editions/ja-JP/tiddlers/images/favicon.png +0 -0
  86. package/editions/ja-JP/tiddlers/images/favicon.png.meta +2 -0
  87. package/editions/ja-JP/tiddlers/images/green_favicon.png +0 -0
  88. package/editions/ja-JP/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  89. package/editions/katexdemo/tiddlywiki.info +1 -1
  90. package/editions/ko-KR/tiddlers/images/favicon.png +0 -0
  91. package/editions/ko-KR/tiddlers/images/favicon.png.meta +2 -0
  92. package/editions/ko-KR/tiddlers/images/green_favicon.png +0 -0
  93. package/editions/ko-KR/tiddlers/images/{green_favicon.ico.meta → green_favicon.png.meta} +1 -1
  94. package/editions/ko-KR-server/tiddlers/system/favicon.png +0 -0
  95. package/editions/ko-KR-server/tiddlers/system/favicon.png.meta +2 -0
  96. package/editions/pluginlibrary/tiddlywiki.info +2 -2
  97. package/editions/prerelease/tiddlers/{Release 5.3.2.tid → Release 5.3.3.tid } +23 -25
  98. package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
  99. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  100. package/editions/prerelease/tiddlers/system/favicon.png +0 -0
  101. package/editions/prerelease/tiddlers/system/favicon.png.meta +2 -0
  102. package/editions/prerelease/tiddlers/system/temp-my-scroll-position.tid +3 -0
  103. package/editions/resumebuilder/tiddlywiki.info +1 -1
  104. package/editions/server/tiddlywiki.info +1 -1
  105. package/editions/server-external-js/tiddlywiki.info +1 -1
  106. package/editions/test/playwright.spec.js +25 -0
  107. package/editions/test/tiddlers/tests/data/conditionals/Basic.tid +26 -0
  108. package/editions/test/tiddlers/tests/data/conditionals/BlockMode.tid +37 -0
  109. package/editions/test/tiddlers/tests/data/conditionals/Else.tid +26 -0
  110. package/editions/test/tiddlers/tests/data/conditionals/Elseif.tid +32 -0
  111. package/editions/test/tiddlers/tests/data/conditionals/MissingEndIf.tid +26 -0
  112. package/editions/test/tiddlers/tests/data/conditionals/MultipleResults.tid +12 -0
  113. package/editions/test/tiddlers/tests/data/conditionals/Nested.tid +38 -0
  114. package/editions/test/tiddlers/tests/data/conditionals/NestedElseif.tid +60 -0
  115. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplates.tid +29 -0
  116. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesInBlockMode.tid +32 -0
  117. package/editions/test/tiddlers/tests/data/list-widget/WithExplicitTemplatesOverriddenByAttributes.tid +33 -0
  118. package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplate.tid +30 -0
  119. package/editions/test/tiddlers/tests/data/list-widget/WithJoinTemplateInBlockMode.tid +32 -0
  120. package/editions/test/tiddlers/tests/data/list-widget/WithLimit.tid +25 -0
  121. package/editions/test/tiddlers/tests/data/list-widget/WithMissingTemplate.tid +26 -0
  122. package/editions/test/tiddlers/tests/data/transclude/CustomWidget-CodeblockOverride-TextParser.tid +20 -0
  123. package/editions/test/tiddlers/tests/data/transclude/Variable-Refreshing.tid +27 -0
  124. package/editions/test/tiddlers/tests/data/transclude/Variable-Static.tid +15 -0
  125. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/ButtonWidget-DataAttributes.tid +27 -0
  126. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/CheckboxWidget-DataAttributes.tid +22 -0
  127. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DraggableWidget-DataAttributes.tid +27 -0
  128. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/DroppableWidget-DataAttributes.tid +27 -0
  129. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/LinkWidget-DataAttributes.tid +27 -0
  130. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/OrderedStyleAttributes.tid +15 -0
  131. package/editions/test/tiddlers/tests/data/widgets/DataAttributes/SelectWidget-DataAttributes.tid +27 -0
  132. package/editions/test/tiddlers/tests/data/widgets/ElementWidgetEventAttributes.tid +15 -0
  133. package/editions/test/tiddlers/tests/data/widgets/ElementWidgetStyleAttributes.tid +15 -0
  134. package/editions/test/tiddlers/tests/test-filters.js +1 -0
  135. package/editions/test/tiddlers/tests/test-json-filters.js +40 -0
  136. package/editions/test/tiddlers/tests/test-utils.js +23 -0
  137. package/editions/test/tiddlers/tests/test-widget.js +62 -0
  138. package/editions/tw.org/tiddlers/$__favicon.ico.png +0 -0
  139. package/editions/tw.org/tiddlywiki.info +1 -1
  140. package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.png +0 -0
  141. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{classic.tiddlywiki.com.ico.meta → classic.tiddlywiki.com.png.meta} +1 -1
  142. package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.png +0 -0
  143. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{links.tiddlywiki.org.ico.meta → links.tiddlywiki.org.png.meta} +1 -1
  144. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.png +0 -0
  145. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.dev.ico.meta → tiddlywiki.com.dev.png.meta} +1 -1
  146. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.png +0 -0
  147. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.ico.meta → tiddlywiki.com.png.meta} +1 -1
  148. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.png +0 -0
  149. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.prerelease.ico.meta → tiddlywiki.com.prerelease.png.meta} +1 -1
  150. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.png +0 -0
  151. package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.com.upgrade.ico.meta → tiddlywiki.com.upgrade.png.meta} +1 -1
  152. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.png +0 -0
  153. package/editions/tw5.com/tiddlers/about/Archive.tid +82 -0
  154. package/editions/tw5.com/tiddlers/community/Chinese Community.tid +20 -0
  155. package/editions/tw5.com/tiddlers/community/editions/Tidme by oflg.tid +16 -0
  156. package/editions/tw5.com/tiddlers/community/plugins/FSRS4TW by oflg.tid +10 -0
  157. package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +3 -1
  158. package/editions/tw5.com/tiddlers/concepts/Macros.tid +7 -3
  159. package/editions/tw5.com/tiddlers/concepts/Title List.tid +5 -1
  160. package/editions/tw5.com/tiddlers/filters/decodebase64 Operator.tid +6 -1
  161. package/editions/tw5.com/tiddlers/filters/encodebase64 Operator.tid +6 -1
  162. package/editions/tw5.com/tiddlers/filters/examples/jsonset.tid +59 -0
  163. package/editions/tw5.com/tiddlers/filters/examples/jsonstringify Operator (Examples).tid +7 -5
  164. package/editions/tw5.com/tiddlers/filters/examples/stringify_Operator_(Examples).tid +5 -3
  165. package/editions/tw5.com/tiddlers/filters/jsonextract.tid +8 -0
  166. package/editions/tw5.com/tiddlers/filters/jsonget.tid +8 -0
  167. package/editions/tw5.com/tiddlers/filters/jsonset.tid +64 -0
  168. package/editions/tw5.com/tiddlers/filters/jsonstringify Operator.tid +14 -15
  169. package/editions/tw5.com/tiddlers/filters/jsontype.tid +8 -0
  170. package/editions/tw5.com/tiddlers/filters/stringify_Operator.tid +12 -15
  171. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +1 -1
  172. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +6 -1
  173. package/editions/tw5.com/tiddlers/howtos/Constructing JSON tiddlers.tid +3 -3
  174. package/editions/tw5.com/tiddlers/images/Favicon template.svg +296 -0
  175. package/editions/tw5.com/tiddlers/images/Favicon template.svg.meta +3 -0
  176. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  177. package/editions/tw5.com/tiddlers/images/favicon.png +0 -0
  178. package/editions/tw5.com/tiddlers/images/favicon.png.meta +2 -0
  179. package/editions/tw5.com/tiddlers/images/green_favicon.png +0 -0
  180. package/editions/tw5.com/tiddlers/images/green_favicon.png.meta +2 -0
  181. package/editions/tw5.com/tiddlers/macros/CoreMacros.tid +1 -1
  182. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +12 -5
  183. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-permalink.tid +1 -1
  184. package/editions/tw5.com/tiddlers/pragmas/Pragma_ _whitespace.tid +7 -3
  185. package/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid +3 -1
  186. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.0.tid +1 -0
  187. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.1.tid +1 -0
  188. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.10.tid +1 -0
  189. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.11.tid +1 -0
  190. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.12.tid +1 -0
  191. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.13.tid +1 -0
  192. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.14.tid +1 -0
  193. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.15.tid +1 -0
  194. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.16.tid +1 -0
  195. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.17.tid +1 -0
  196. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.18.tid +1 -0
  197. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.19.tid +1 -0
  198. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.2.tid +1 -0
  199. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.20.tid +1 -0
  200. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.21.tid +1 -0
  201. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +1 -0
  202. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +1 -0
  203. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.3.tid +1 -0
  204. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.4.tid +1 -0
  205. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.5.tid +1 -0
  206. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.6.tid +1 -0
  207. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.7.tid +1 -0
  208. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid +1 -0
  209. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.9.tid +1 -0
  210. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +1 -0
  211. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +1 -0
  212. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.2.tid +1 -0
  213. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.3.tid +1 -0
  214. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.4.tid +1 -0
  215. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.5.tid +1 -0
  216. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.6.tid +1 -0
  217. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.7.tid +1 -0
  218. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.0.tid +1 -0
  219. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid +8 -1
  220. package/editions/tw5.com/tiddlers/releasenotes/Release 5.3.2.tid +184 -0
  221. package/editions/tw5.com/tiddlers/releasenotes/Releases.tid +3 -1
  222. package/editions/tw5.com/tiddlers/system/tw5.com-styles.tid +5 -0
  223. package/editions/tw5.com/tiddlers/widgets/BrowseWidget.tid +3 -1
  224. package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +3 -1
  225. package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +3 -1
  226. package/editions/tw5.com/tiddlers/widgets/Custom Widgets.tid +3 -1
  227. package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +3 -2
  228. package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +3 -1
  229. package/editions/tw5.com/tiddlers/widgets/GenesisWidget.tid +1 -1
  230. package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +2 -1
  231. package/editions/tw5.com/tiddlers/widgets/LinkWidget.tid +3 -1
  232. package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +25 -2
  233. package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +3 -1
  234. package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +3 -1
  235. package/editions/tw5.com/tiddlers/widgets/ScrollableWidget.tid +27 -2
  236. package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +4 -1
  237. package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +17 -1
  238. package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +2 -2
  239. package/editions/tw5.com/tiddlers/wikitext/Conditional Shortcut Syntax.tid +62 -0
  240. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -3
  241. package/editions/tw5.com/tiddlywiki.info +9 -3
  242. package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png +0 -0
  243. package/editions/tw5.com-server/tiddlers/system/tiddlywiki.com.server.png.meta +2 -0
  244. package/editions/zh-Hans/tiddlers/images/favicon.png +0 -0
  245. package/editions/zh-Hans/tiddlers/images/favicon.png.meta +2 -0
  246. package/editions/zh-Hans/tiddlers/images/green_favicon.png +0 -0
  247. package/editions/zh-Hans/tiddlers/images/green_favicon.png.meta +2 -0
  248. package/editions/zh-Hant/tiddlers/images/favicon.png +0 -0
  249. package/editions/zh-Hant/tiddlers/images/favicon.png.meta +2 -0
  250. package/editions/zh-Hant/tiddlers/images/green_favicon.png +0 -0
  251. package/editions/zh-Hant/tiddlers/images/green_favicon.png.meta +2 -0
  252. package/languages/de-DE/Exporters.multids +1 -1
  253. package/languages/de-DE/Help/commands.tid +2 -2
  254. package/languages/de-DE/Help/server.tid +1 -1
  255. package/languages/de-DE/Types/image_x-icon.tid +1 -1
  256. package/languages/es-ES/Buttons.multids +2 -0
  257. package/languages/es-ES/Fields.multids +4 -0
  258. package/languages/es-ES/Help/listen.tid +1 -1
  259. package/languages/es-ES/Help/savewikifolder.tid +16 -1
  260. package/languages/es-ES/Help/server.tid +1 -1
  261. package/languages/es-ES/Misc.multids +3 -0
  262. package/languages/es-ES/SiteTitle.tid +1 -1
  263. package/languages/pl-PL/Exporters.multids +1 -1
  264. package/languages/pl-PL/Help/commands.tid +1 -1
  265. package/languages/pl-PL/Help/savewikifolder.tid +3 -1
  266. package/languages/pl-PL/Help/server.tid +1 -1
  267. package/languages/zh-Hans/Exporters.multids +1 -1
  268. package/languages/zh-Hans/Help/commands.tid +1 -1
  269. package/languages/zh-Hans/Help/server.tid +1 -1
  270. package/languages/zh-Hans/Types/image_svg_xml.tid +1 -1
  271. package/languages/zh-Hans/Types/image_x-icon.tid +1 -1
  272. package/languages/zh-Hant/Exporters.multids +1 -1
  273. package/languages/zh-Hant/Help/commands.tid +1 -1
  274. package/languages/zh-Hant/Help/server.tid +1 -1
  275. package/languages/zh-Hant/Types/image_svg_xml.tid +1 -1
  276. package/languages/zh-Hant/Types/image_x-icon.tid +1 -1
  277. package/licenses/cla-individual.md +10 -0
  278. package/package.json +4 -1
  279. package/playwright.config.js +46 -0
  280. package/plugins/tiddlywiki/codemirror/styles.tid +5 -0
  281. package/plugins/tiddlywiki/comments/styles.tid +8 -8
  282. package/plugins/tiddlywiki/dynannotate/docs/readme.tid +1 -0
  283. package/plugins/tiddlywiki/dynannotate/modules/dynannotate.js +28 -27
  284. package/plugins/tiddlywiki/evernote/modules/enex-deserializer.js +82 -23
  285. package/plugins/tiddlywiki/evernote/readme.tid +1 -0
  286. package/plugins/tiddlywiki/evernote/samples/sample-enex-with-image.xml.enex +2 -2
  287. package/plugins/tiddlywiki/jasmine/run-wiki-based-tests.js +1 -1
  288. package/plugins/tiddlywiki/qrcode/barcodereader.js +90 -0
  289. package/plugins/tiddlywiki/qrcode/docs/barcodereader.tid +44 -0
  290. package/plugins/tiddlywiki/qrcode/{doc/usage.tid → docs/makeqr.tid} +4 -4
  291. package/plugins/tiddlywiki/qrcode/docs.tid +3 -0
  292. package/plugins/tiddlywiki/qrcode/{MakeContactQR.tid → examples/make/MakeContactQR.tid} +1 -1
  293. package/plugins/tiddlywiki/qrcode/{MakeGenericQR.tid → examples/make/MakeGenericQR.tid} +1 -1
  294. package/plugins/tiddlywiki/qrcode/{MakeWifiQR.tid → examples/make/MakeWifiQR.tid} +1 -1
  295. package/plugins/tiddlywiki/qrcode/examples/make/make.tid +5 -0
  296. package/plugins/tiddlywiki/qrcode/examples/read/BarCodeReader.tid +17 -0
  297. package/plugins/tiddlywiki/qrcode/examples/read/read.tid +5 -0
  298. package/plugins/tiddlywiki/qrcode/examples.tid +3 -0
  299. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/LICENSE +201 -0
  300. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/README.md +398 -0
  301. package/plugins/tiddlywiki/qrcode/files/html5-qrcode/html5-qrcode.min.js +1 -0
  302. package/plugins/tiddlywiki/qrcode/files/tiddlywiki.files +20 -4
  303. package/plugins/tiddlywiki/qrcode/makeqr.js +1 -1
  304. package/plugins/tiddlywiki/qrcode/plugin.info +1 -1
  305. package/plugins/tiddlywiki/qrcode/readme.tid +15 -0
  306. package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +0 -1
  307. package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +1 -2
  308. package/plugins/tiddlywiki/upgrade/UpgradeWizard.tid +2 -2
  309. package/plugins/tiddlywiki/upgrade/favicon.png +0 -0
  310. package/plugins/tiddlywiki/upgrade/favicon.png.meta +2 -0
  311. package/readme.md +1 -1
  312. package/themes/tiddlywiki/vanilla/base.tid +37 -7
  313. package/themes/tiddlywiki/vanilla/settings.multids +1 -1
  314. package/editions/de-AT-server/tiddlers/system/favicon.ico +0 -0
  315. package/editions/dev/tiddlers/images/favicon.ico +0 -0
  316. package/editions/es-ES/tiddlers/images/favicon.ico +0 -0
  317. package/editions/es-ES/tiddlers/images/green_favicon.ico +0 -0
  318. package/editions/es-ES-server/tiddlers/system/favicon.ico +0 -0
  319. package/editions/fr-FR/tiddlers/images/favicon.ico +0 -0
  320. package/editions/fr-FR/tiddlers/images/favicon.ico.meta +0 -2
  321. package/editions/fr-FR/tiddlers/images/green_favicon.ico +0 -0
  322. package/editions/fr-FR-server/tiddlers/system/favicon.ico +0 -0
  323. package/editions/fr-FR-server/tiddlers/system/favicon.ico.meta +0 -2
  324. package/editions/ja-JP/tiddlers/images/favicon.ico +0 -0
  325. package/editions/ja-JP/tiddlers/images/favicon.ico.meta +0 -2
  326. package/editions/ja-JP/tiddlers/images/green_favicon.ico +0 -0
  327. package/editions/ko-KR/tiddlers/images/favicon.ico +0 -0
  328. package/editions/ko-KR/tiddlers/images/favicon.ico.meta +0 -2
  329. package/editions/ko-KR/tiddlers/images/green_favicon.ico +0 -0
  330. package/editions/ko-KR-server/tiddlers/system/favicon.ico +0 -0
  331. package/editions/ko-KR-server/tiddlers/system/favicon.ico.meta +0 -2
  332. package/editions/prerelease/tiddlers/system/favicon.ico +0 -0
  333. package/editions/prerelease/tiddlers/system/favicon.ico.meta +0 -2
  334. package/editions/tw5.com/tiddlers/_tw_shared/favicons/classic.tiddlywiki.com.ico +0 -0
  335. package/editions/tw5.com/tiddlers/_tw_shared/favicons/links.tiddlywiki.org.ico +0 -0
  336. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.dev.ico +0 -0
  337. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.ico +0 -0
  338. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.prerelease.ico +0 -0
  339. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.com.upgrade.ico +0 -0
  340. package/editions/tw5.com/tiddlers/_tw_shared/favicons/tiddlywiki.org.ico +0 -0
  341. package/editions/tw5.com/tiddlers/community/editions/TiddlyMemo by oflg.tid +0 -16
  342. package/editions/tw5.com/tiddlers/community/tutorials/Install and run TiddlyWiki on a CentOS 6 VPS using Nginx.tid +0 -16
  343. package/editions/tw5.com/tiddlers/images/favicon.ico +0 -0
  344. package/editions/tw5.com/tiddlers/images/favicon.ico.meta +0 -2
  345. package/editions/tw5.com/tiddlers/images/green_favicon.ico +0 -0
  346. package/editions/tw5.com/tiddlers/images/green_favicon.ico.meta +0 -2
  347. package/editions/tw5.com-server/tiddlers/system/favicon.ico +0 -0
  348. package/editions/tw5.com-server/tiddlers/system/favicon.ico.meta +0 -2
  349. package/editions/zh-Hans/tiddlers/images/favicon.ico +0 -0
  350. package/editions/zh-Hans/tiddlers/images/favicon.ico.meta +0 -2
  351. package/editions/zh-Hans/tiddlers/images/green_favicon.ico +0 -0
  352. package/editions/zh-Hans/tiddlers/images/green_favicon.ico.meta +0 -2
  353. package/editions/zh-Hant/tiddlers/images/favicon.ico +0 -0
  354. package/editions/zh-Hant/tiddlers/images/favicon.ico.meta +0 -2
  355. package/editions/zh-Hant/tiddlers/images/green_favicon.ico +0 -0
  356. package/editions/zh-Hant/tiddlers/images/green_favicon.ico.meta +0 -2
  357. package/plugins/tiddlywiki/qrcode/doc/examples.tid +0 -3
  358. package/plugins/tiddlywiki/qrcode/doc/readme.tid +0 -13
  359. package/plugins/tiddlywiki/upgrade/favicon.ico +0 -0
  360. package/plugins/tiddlywiki/upgrade/favicon.ico.meta +0 -2
  361. /package/editions/tw5.com/tiddlers/_tw_shared/favicons/{tiddlywiki.org.ico.meta → tiddlywiki.org.png.meta} +0 -0
  362. /package/plugins/tiddlywiki/qrcode/files/{LICENSE → qrcode/LICENSE} +0 -0
  363. /package/plugins/tiddlywiki/qrcode/files/{README.md → qrcode/README.md} +0 -0
  364. /package/plugins/tiddlywiki/qrcode/files/{qrcode.js → qrcode/qrcode.js} +0 -0
@@ -109,6 +109,7 @@ TranscludeWidget.prototype.collectAttributes = function() {
109
109
  this.recursionMarker = this.getAttribute("recursionMarker","yes");
110
110
  } else {
111
111
  this.transcludeVariable = this.getAttribute("$variable");
112
+ this.transcludeVariableIsFunction = false;
112
113
  this.transcludeType = this.getAttribute("$type");
113
114
  this.transcludeOutput = this.getAttribute("$output","text/html");
114
115
  this.transcludeTitle = this.getAttribute("$tiddler",this.getVariable("currentTiddler"));
@@ -184,7 +185,9 @@ TranscludeWidget.prototype.getTransclusionTarget = function() {
184
185
  if(this.transcludeVariable) {
185
186
  // Transcluding a variable
186
187
  var variableInfo = this.getVariableInfo(this.transcludeVariable,{params: this.getOrderedTransclusionParameters()});
188
+ this.transcludeVariableIsFunction = variableInfo.srcVariable && variableInfo.srcVariable.isFunctionDefinition;
187
189
  text = variableInfo.text;
190
+ this.transcludeFunctionResult = text;
188
191
  return {
189
192
  text: variableInfo.text,
190
193
  type: this.transcludeType
@@ -219,21 +222,24 @@ TranscludeWidget.prototype.parseTransclusionTarget = function(parseAsInline) {
219
222
  // Transcluding a variable
220
223
  var variableInfo = this.getVariableInfo(this.transcludeVariable,{params: this.getOrderedTransclusionParameters()}),
221
224
  srcVariable = variableInfo && variableInfo.srcVariable;
225
+ if(srcVariable && srcVariable.isFunctionDefinition) {
226
+ this.transcludeVariableIsFunction = true;
227
+ this.transcludeFunctionResult = (variableInfo.resultList ? variableInfo.resultList[0] : variableInfo.text) || "";
228
+ }
222
229
  if(variableInfo.text) {
223
230
  if(srcVariable && srcVariable.isFunctionDefinition) {
224
- var result = (variableInfo.resultList ? variableInfo.resultList[0] : variableInfo.text) || "";
225
231
  parser = {
226
232
  tree: [{
227
233
  type: "text",
228
- text: result
234
+ text: this.transcludeFunctionResult
229
235
  }],
230
- source: result,
236
+ source: this.transcludeFunctionResult,
231
237
  type: "text/vnd.tiddlywiki"
232
238
  };
233
239
  if(parseAsInline) {
234
240
  parser.tree[0] = {
235
241
  type: "text",
236
- text: result
242
+ text: this.transcludeFunctionResult
237
243
  };
238
244
  } else {
239
245
  parser.tree[0] = {
@@ -241,7 +247,7 @@ TranscludeWidget.prototype.parseTransclusionTarget = function(parseAsInline) {
241
247
  tag: "p",
242
248
  children: [{
243
249
  type: "text",
244
- text: result
250
+ text: this.transcludeFunctionResult
245
251
  }]
246
252
  }
247
253
  }
@@ -430,12 +436,19 @@ TranscludeWidget.prototype.parserNeedsRefresh = function() {
430
436
  return (this.sourceText === undefined || parserInfo.sourceText !== this.sourceText || parserInfo.parserType !== this.parserType)
431
437
  };
432
438
 
439
+ TranscludeWidget.prototype.functionNeedsRefresh = function() {
440
+ var oldResult = this.transcludeFunctionResult;
441
+ var variableInfo = this.getVariableInfo(this.transcludeVariable,{params: this.getOrderedTransclusionParameters()});
442
+ var newResult = (variableInfo.resultList ? variableInfo.resultList[0] : variableInfo.text) || "";
443
+ return oldResult !== newResult;
444
+ }
445
+
433
446
  /*
434
447
  Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
435
448
  */
436
449
  TranscludeWidget.prototype.refresh = function(changedTiddlers) {
437
450
  var changedAttributes = this.computeAttributes();
438
- if(($tw.utils.count(changedAttributes) > 0) || (!this.transcludeVariable && changedTiddlers[this.transcludeTitle] && this.parserNeedsRefresh())) {
451
+ if(($tw.utils.count(changedAttributes) > 0) || (this.transcludeVariableIsFunction && this.functionNeedsRefresh()) || (!this.transcludeVariable && changedTiddlers[this.transcludeTitle] && this.parserNeedsRefresh())) {
439
452
  this.refreshSelf();
440
453
  return true;
441
454
  } else {
@@ -413,16 +413,34 @@ Widget.prototype.getAttribute = function(name,defaultText) {
413
413
  };
414
414
 
415
415
  /*
416
- Assign the computed attributes of the widget to a domNode
416
+ Assign the common attributes of the widget to a domNode
417
417
  options include:
418
- excludeEventAttributes: ignores attributes whose name begins with "on"
418
+ sourcePrefix: prefix of attributes that are to be directly assigned (defaults to the empty string meaning all attributes)
419
+ destPrefix: prefix to be applied to attribute names that are to be directly assigned (defaults to the emtpy string which means no prefix is added)
420
+ changedAttributes: hashmap by attribute name of attributes to process (if missing, process all attributes)
421
+ excludeEventAttributes: ignores attributes whose name would begin with "on"
419
422
  */
420
423
  Widget.prototype.assignAttributes = function(domNode,options) {
421
424
  options = options || {};
422
- var self = this;
425
+ var self = this,
426
+ changedAttributes = options.changedAttributes || this.attributes,
427
+ sourcePrefix = options.sourcePrefix || "",
428
+ destPrefix = options.destPrefix || "",
429
+ EVENT_ATTRIBUTE_PREFIX = "on";
423
430
  var assignAttribute = function(name,value) {
431
+ // Process any style attributes before considering sourcePrefix and destPrefix
432
+ if(name.substr(0,6) === "style." && name.length > 6) {
433
+ domNode.style[$tw.utils.unHyphenateCss(name.substr(6))] = value;
434
+ return;
435
+ }
436
+ // Check if the sourcePrefix is a match
437
+ if(name.substr(0,sourcePrefix.length) === sourcePrefix) {
438
+ name = destPrefix + name.substr(sourcePrefix.length);
439
+ } else {
440
+ value = undefined;
441
+ }
424
442
  // Check for excluded attribute names
425
- if(options.excludeEventAttributes && name.substr(0,2) === "on") {
443
+ if(options.excludeEventAttributes && name.substr(0,2).toLowerCase() === EVENT_ATTRIBUTE_PREFIX) {
426
444
  value = undefined;
427
445
  }
428
446
  if(value !== undefined) {
@@ -432,26 +450,24 @@ Widget.prototype.assignAttributes = function(domNode,options) {
432
450
  namespace = "http://www.w3.org/1999/xlink";
433
451
  name = name.substr(6);
434
452
  }
435
- // Handle styles
436
- if(name.substr(0,6) === "style." && name.length > 6) {
437
- domNode.style[$tw.utils.unHyphenateCss(name.substr(6))] = value;
438
- } else {
439
- // Setting certain attributes can cause a DOM error (eg xmlns on the svg element)
440
- try {
441
- domNode.setAttributeNS(namespace,name,value);
442
- } catch(e) {
443
- }
453
+ // Setting certain attributes can cause a DOM error (eg xmlns on the svg element)
454
+ try {
455
+ domNode.setAttributeNS(namespace,name,value);
456
+ } catch(e) {
444
457
  }
445
458
  }
446
- }
447
- // Not all parse tree nodes have the orderedAttributes property
459
+ };
460
+ // If the parse tree node has the orderedAttributes property then use that order
448
461
  if(this.parseTreeNode.orderedAttributes) {
449
462
  $tw.utils.each(this.parseTreeNode.orderedAttributes,function(attribute,index) {
450
- assignAttribute(attribute.name,self.attributes[attribute.name]);
451
- });
463
+ if(attribute.name in changedAttributes) {
464
+ assignAttribute(attribute.name,self.getAttribute(attribute.name));
465
+ }
466
+ });
467
+ // Otherwise update each changed attribute irrespective of order
452
468
  } else {
453
- $tw.utils.each(Object.keys(self.attributes).sort(),function(name) {
454
- assignAttribute(name,self.attributes[name]);
469
+ $tw.utils.each(changedAttributes,function(value,name) {
470
+ assignAttribute(name,self.getAttribute(name));
455
471
  });
456
472
  }
457
473
  };
@@ -1287,7 +1287,7 @@ exports.search = function(text,options) {
1287
1287
  console.log("Regexp error parsing /(" + text + ")/" + flags + ": ",e);
1288
1288
  }
1289
1289
  } else if(options.some) {
1290
- terms = text.trim().split(/ +/);
1290
+ terms = text.trim().split(/[^\S\xA0]+/);
1291
1291
  if(terms.length === 1 && terms[0] === "") {
1292
1292
  searchTermsRegExps = null;
1293
1293
  } else {
@@ -1298,7 +1298,7 @@ exports.search = function(text,options) {
1298
1298
  searchTermsRegExps.push(new RegExp("(" + regExpStr + ")",flags));
1299
1299
  }
1300
1300
  } else { // default: words
1301
- terms = text.split(/ +/);
1301
+ terms = text.split(/[^\S\xA0]+/);
1302
1302
  if(terms.length === 1 && terms[0] === "") {
1303
1303
  searchTermsRegExps = null;
1304
1304
  } else {
@@ -1,4 +1,3 @@
1
1
  title: $:/core/templates/html-json-skinny-tiddler
2
2
 
3
- <$list filter="[<numTiddlers>compare:number:gteq[1]] ~[<counter>!match[1]]">`,`<$text text=<<newline>>/></$list>
4
3
  <$jsontiddler tiddler=<<currentTiddler>> exclude="text" escapeUnsafeScriptChars="yes"/>
@@ -1,3 +1,3 @@
1
1
  title: $:/core/templates/html-json-tiddler
2
2
 
3
- <$list filter="[<counter>!match[1]]">`,`<$text text=<<newline>>/></$list><$jsontiddler tiddler=<<currentTiddler>> escapeUnsafeScriptChars="yes"/>
3
+ <$jsontiddler tiddler=<<currentTiddler>> escapeUnsafeScriptChars="yes"/>
@@ -6,14 +6,14 @@ title: $:/core/templates/store.area.template.html
6
6
  <$list filter="[[storeAreaFormat]is[variable]getvariable[]else[json]match[json]]">
7
7
  <!-- New-style JSON store area, with an old-style store area for compatibility with v5.1.x tooling -->
8
8
  `<script class="tiddlywiki-tiddler-store" type="application/json">[`
9
- <$vars newline={{{ [charcode[10]] }}}>
9
+ <$let newline={{{ [charcode[10]] }}} join=`,$(newline)$`>
10
10
  <$text text=<<newline>>/>
11
- <$list filter=<<saveTiddlerFilter>> counter="counter" template="$:/core/templates/html-json-tiddler"/>
11
+ <$list filter=<<saveTiddlerFilter>> join=<<join>> template="$:/core/templates/html-json-tiddler"/>
12
12
  <$vars numTiddlers={{{ [subfilter<saveTiddlerFilter>count[]] }}}>
13
- <$list filter={{{ [<skinnySaveTiddlerFilter>] }}} counter="counter" template="$:/core/templates/html-json-skinny-tiddler"/>
13
+ <$list filter={{{ [<skinnySaveTiddlerFilter>] }}} join=<<join>> template="$:/core/templates/html-json-skinny-tiddler"/>
14
14
  </$vars>
15
15
  <$text text=<<newline>>/>
16
- </$vars>
16
+ </$let>
17
17
  `]</script>`
18
18
  `<div id="storeArea" style="display:none;">`
19
19
  `</div>`
@@ -26,10 +26,10 @@ caption: {{$:/language/ControlPanel/Basics/Caption}}
26
26
  |<$link to="$:/SiteSubtitle"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler="$:/SiteSubtitle" default="" tag="input"/> |
27
27
  |<$link to="$:/status/UserName"><<lingo Username/Prompt>></$link> |<$edit-text tiddler="$:/status/UserName" default="" tag="input"/> |
28
28
  |<$link to="$:/config/AnimationDuration"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler="$:/config/AnimationDuration" default="" tag="input"/> |
29
- |<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
29
+ |<$link to="$:/DefaultTiddlers"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit class="tc-edit-texteditor" tiddler="$:/DefaultTiddlers" autoHeight="yes"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |
30
30
  |<$link to="$:/language/DefaultNewTiddlerTitle"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler="$:/language/DefaultNewTiddlerTitle" default="" tag="input"/> |
31
31
  |<$link to="$:/config/NewJournal/Title"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler="$:/config/NewJournal/Title" default="" tag="input"/> |
32
- |<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" class="tc-edit-texteditor" default=""/> |
32
+ |<$link to="$:/config/NewJournal/Text"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler="$:/config/NewJournal/Text" class="tc-edit-texteditor" default="" autoHeight="yes"/> |
33
33
  |<$link to="$:/config/NewTiddler/Tags"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewTiddler/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> |
34
34
  |<$link to="$:/config/NewJournal/Tags"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler="$:/config/NewJournal/Tags" tagField="text">{{||$:/core/ui/EditTemplate/tags}}<$list filter="[<currentTiddler>tags[]] +[limit[1]]" variable="ignore"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field="text" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=""/></$button></$list></$vars> |
35
35
  |<$link to="$:/config/AutoFocus"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |
@@ -1,5 +1,9 @@
1
1
  title: $:/core/ui/EditTemplate/body/default
2
2
 
3
+ \function edit-preview-state()
4
+ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] +[get[text]] :else[[no]]
5
+ \end
6
+
3
7
  \define config-visibility-title()
4
8
  $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
5
9
  \end
@@ -10,15 +14,16 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
10
14
 
11
15
  \whitespace trim
12
16
  <$let
13
- edit-preview-state={{{ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] }}}
14
17
  importTitle=<<qualify $:/ImportImage>>
15
18
  importState=<<qualify $:/state/ImportImage>> >
16
19
  <$dropzone importTitle=<<importTitle>> autoOpenOnImport="no" contentTypesFilter={{$:/config/Editor/ImportContentTypesFilter}} class="tc-dropzone-editor" enable={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}} filesOnly="yes" actions=<<importFileActions>> >
17
- <$reveal stateTitle=<<edit-preview-state>> type="match" text="yes" tag="div">
18
- <div class="tc-tiddler-preview">
20
+ <div>
21
+ <div class={{{ [function[edit-preview-state]match[yes]then[tc-tiddler-preview]else[tc-tiddler-preview-hidden]] [[tc-tiddler-editor]] +[join[ ]] }}}>
19
22
 
20
23
  <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
21
24
 
25
+ <$list filter="[function[edit-preview-state]match[yes]]" variable="ignore">
26
+
22
27
  <div class="tc-tiddler-preview-preview" data-tiddler-title={{!!draft.title}} data-tags={{!!tags}}>
23
28
 
24
29
  <$transclude tiddler={{$:/state/editpreviewtype}} mode="inline">
@@ -29,13 +34,12 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
29
34
 
30
35
  </div>
31
36
 
32
- </div>
33
- </$reveal>
37
+ </$list>
34
38
 
35
- <$reveal stateTitle=<<edit-preview-state>> type="nomatch" text="yes" tag="div">
39
+ </div>
36
40
 
37
- <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
41
+ </div>
38
42
 
39
- </$reveal>
40
43
  </$dropzone>
44
+
41
45
  </$let>
@@ -54,7 +54,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$
54
54
  \whitespace trim
55
55
  <$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>
56
56
  <$reveal type="nomatch" text="" default=<<name>>>
57
- <$button tooltip=<<lingo Fields/Add/Button/Hint>>>
57
+ <$button tooltip={{$:/language/EditTemplate/Fields/Add/Button/Hint}}>
58
58
  <$action-sendmessage $message="tm-add-field"
59
59
  $name=<<name>>
60
60
  $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
@@ -89,7 +89,7 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
89
89
  </td>
90
90
  <td class="tc-edit-field-remove">
91
91
  <$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>
92
- <$action-deletefield $field=<<currentField>>/><$set name="currentTiddlerCSSescaped" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<current-tiddler-new-field-selector>>/></$set>
92
+ <$action-deletefield $field=<<currentField>>/>
93
93
  {{$:/core/images/delete-button}}
94
94
  </$button>
95
95
  </td>
@@ -10,7 +10,7 @@ first-search-filter: [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[d
10
10
  <em class="tc-edit tc-small-gap-right"><<lingo Type/Prompt>></em>
11
11
  <div class="tc-type-selector-dropdown-wrapper">
12
12
  <div class="tc-type-selector"><$fieldmangler>
13
- <$macrocall $name="keyboard-driven-input" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups="yes" configTiddlerFilter="[[$:/core/ui/EditTemplate/type]]" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter="[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]"/></$button>
13
+ <$macrocall $name="keyboard-driven-input" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups="yes" configTiddlerFilter="[[$:/core/ui/EditTemplate/type]]" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter="[<typeInputTiddler>] [<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]"/></$button>
14
14
  </$fieldmangler></div>
15
15
 
16
16
  <div class="tc-block-dropdown-wrapper">
@@ -9,11 +9,17 @@ button-classes: tc-text-editor-toolbar-item-start-group
9
9
  shortcuts: ((preview))
10
10
 
11
11
  \whitespace trim
12
+ <$let
13
+ edit-preview-state={{{ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] }}}
14
+ >
12
15
  <$reveal state=<<edit-preview-state>> type="match" text="yes" tag="span">
13
16
  {{$:/core/images/preview-open}}
14
17
  <$action-setfield $tiddler=<<edit-preview-state>> $value="no"/>
18
+ <$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/>
15
19
  </$reveal>
16
20
  <$reveal state=<<edit-preview-state>> type="nomatch" text="yes" tag="span">
17
21
  {{$:/core/images/preview-closed}}
18
22
  <$action-setfield $tiddler=<<edit-preview-state>> $value="yes"/>
23
+ <$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/>
19
24
  </$reveal>
25
+ </$let>
@@ -20,7 +20,7 @@ code-body: yes
20
20
 
21
21
  <$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>
22
22
 
23
- <$dropzone enable=<<tv-enable-drag-and-drop>>>
23
+ <$dropzone enable=<<tv-enable-drag-and-drop>> class="tc-dropzone tc-page-container-inner">
24
24
 
25
25
  <$list filter="[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]" variable="listItem">
26
26
 
@@ -4,11 +4,8 @@ tags: $:/tags/ViewTemplate
4
4
  \whitespace trim
5
5
  <$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
6
6
  <div class="tc-subtitle">
7
- <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler" counter="indexSubtitleTiddler">
8
- <$list filter="[<indexSubtitleTiddler-first>match[no]]" variable="ignore">
9
- &nbsp;
10
- </$list>
11
- <$transclude tiddler=<<subtitleTiddler>> mode="inline"/>
7
+ <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler">
8
+ <$transclude tiddler=<<subtitleTiddler>> mode="inline"/><$list-join>&nbsp;</$list-join>
12
9
  </$list>
13
10
  </div>
14
11
  </$reveal>
@@ -1,6 +1,6 @@
1
1
  title: $:/config/OfficialPluginLibrary
2
2
  tags: $:/tags/PluginLibrary
3
- url: https://tiddlywiki.com/library/v5.3.1/index.html
3
+ url: https://tiddlywiki.com/library/v5.3.2/index.html
4
4
  caption: {{$:/language/OfficialPluginLibrary}}
5
5
 
6
6
  {{$:/language/OfficialPluginLibrary/Hint}}
@@ -13,7 +13,7 @@ tags: $:/tags/Macro
13
13
 
14
14
  $(colour-picker-update-recent)$
15
15
 
16
- $actions$
16
+ <$transclude $variable="__actions__"/>
17
17
 
18
18
  <span style="display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;"/>
19
19
 
@@ -23,7 +23,7 @@ $actions$
23
23
  \define colour-picker-recent-inner(actions)
24
24
  \whitespace trim
25
25
  <$set name="colour-picker-value" value="$(recentColour)$">
26
- <$macrocall $name="colour-picker-inner" actions="""$actions$"""/>
26
+ <$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
27
27
  </$set>
28
28
  \end
29
29
 
@@ -31,7 +31,7 @@ $actions$
31
31
  \whitespace trim
32
32
  {{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
33
33
  &#32;
34
- <$macrocall $name="colour-picker-recent-inner" actions="""$actions$"""/>
34
+ <$macrocall $name="colour-picker-recent-inner" actions=<<__actions__>>/>
35
35
  </$list>
36
36
  \end
37
37
 
@@ -39,13 +39,13 @@ $actions$
39
39
  \whitespace trim
40
40
  <div class="tc-colour-chooser">
41
41
 
42
- <$macrocall $name="colour-picker-recent" actions="""$actions$"""/>
42
+ <$macrocall $name="colour-picker-recent" actions=<<__actions__>>/>
43
43
 
44
44
  ---
45
45
 
46
46
  <$list filter="LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black" variable="colour-picker-value">
47
47
  &#32;
48
- <$macrocall $name="colour-picker-inner" actions="""$actions$"""/>
48
+ <$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
49
49
  </$list>
50
50
 
51
51
  ---
@@ -54,7 +54,7 @@ $actions$
54
54
  &#32;
55
55
  <$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
56
56
  <$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
57
- <$macrocall $name="colour-picker-inner" actions="""$actions$"""/>
57
+ <$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
58
58
  </$set>
59
59
 
60
60
  </div>
@@ -5,13 +5,13 @@ title: $:/core/macros/image-picker
5
5
  type: text/vnd.tiddlywiki
6
6
 
7
7
  \define image-picker-thumbnail(actions)
8
- <$button tag="a" tooltip="""$(imageTitle)$""">$actions$<$transclude tiddler=<<imageTitle>>/></$button>
8
+ <$button tag="a" tooltip="""$(imageTitle)$"""><$transclude $variable="__actions__"/><$transclude tiddler=<<imageTitle>>/></$button>
9
9
  \end
10
10
 
11
11
  \define image-picker-list(filter,actions)
12
12
  \whitespace trim
13
13
  <$list filter="""$filter$""" variable="imageTitle">
14
- <$macrocall $name="image-picker-thumbnail" actions="""$actions$"""/>
14
+ <$macrocall $name="image-picker-thumbnail" actions=<<__actions__>>/>
15
15
  &#32;
16
16
  </$list>
17
17
  \end
@@ -25,15 +25,15 @@ type: text/vnd.tiddlywiki
25
25
  {{$:/language/SystemTiddlers/Include/Prompt}}
26
26
  </$checkbox>
27
27
  <$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
28
- <$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions="""$actions$"""/>
28
+ <$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions=<<__actions__>>/>
29
29
  </$reveal>
30
30
  <$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
31
- <$macrocall $name="image-picker-list" filter="""$filter$""" actions="""$actions$"""/>
31
+ <$macrocall $name="image-picker-list" filter="""$filter$""" actions=<<__actions__>>/>
32
32
  </$reveal>
33
33
  </$vars>
34
34
  </div>
35
35
  \end
36
36
 
37
37
  \define image-picker-include-tagged-images(actions)
38
- <$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions="""$actions$"""/>
38
+ <$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<__actions__>>/>
39
39
  \end