tiddlywiki 5.2.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/boot/boot.js +40 -3
  2. package/contributing.md +1 -1
  3. package/core/language/en-GB/ControlPanel.multids +15 -0
  4. package/core/modules/editor/engines/framed.js +1 -1
  5. package/core/modules/editor/engines/simple.js +1 -1
  6. package/core/modules/editor/factory.js +1 -1
  7. package/core/modules/editor/operations/text/focus-editor.js +17 -0
  8. package/core/modules/filterrunprefixes/cascade.js +53 -0
  9. package/core/modules/filterrunprefixes/filter.js +16 -9
  10. package/core/modules/filterrunprefixes/map.js +16 -9
  11. package/core/modules/filterrunprefixes/reduce.js +16 -18
  12. package/core/modules/filterrunprefixes/sort.js +10 -8
  13. package/core/modules/filters/listops.js +12 -0
  14. package/core/modules/filters/math.js +29 -0
  15. package/core/modules/filters/strings.js +11 -9
  16. package/core/modules/parsers/wikiparser/rules/html.js +4 -2
  17. package/core/modules/parsers/wikiparser/wikiparser.js +11 -8
  18. package/core/modules/server/routes/put-tiddler.js +1 -1
  19. package/core/modules/utils/dom/dragndrop.js +8 -2
  20. package/core/modules/utils/utils.js +0 -18
  21. package/core/modules/widgets/action-sendmessage.js +17 -7
  22. package/core/modules/widgets/action-setmultiplefields.js +86 -0
  23. package/core/modules/widgets/codeblock.js +7 -1
  24. package/core/modules/widgets/dropzone.js +2 -1
  25. package/core/modules/widgets/let.js +96 -0
  26. package/core/modules/widgets/link.js +2 -1
  27. package/core/modules/widgets/setmultiplevariables.js +81 -0
  28. package/core/modules/widgets/vars.js +2 -4
  29. package/core/modules/widgets/widget.js +20 -16
  30. package/core/modules/wiki.js +9 -4
  31. package/core/ui/Components/tag-link.tid +1 -1
  32. package/core/ui/ControlPanel/Cascades/EditTemplateBody.tid +9 -0
  33. package/core/ui/ControlPanel/Cascades/StoryTiddler.tid +9 -0
  34. package/core/ui/ControlPanel/Cascades/TiddlerColour.tid +9 -0
  35. package/core/ui/ControlPanel/Cascades/TiddlerIcon.tid +9 -0
  36. package/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid +9 -0
  37. package/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid +9 -0
  38. package/core/ui/ControlPanel/Cascades.tid +9 -0
  39. package/core/ui/EditTemplate/body/canonical-uri.tid +13 -0
  40. package/core/ui/EditTemplate/body/default.tid +38 -0
  41. package/core/ui/EditTemplate/body.tid +1 -51
  42. package/core/ui/EditTemplate/tags.tid +1 -1
  43. package/core/ui/EditorToolbar/link-dropdown.tid +1 -1
  44. package/core/ui/EditorToolbar/preview.tid +4 -4
  45. package/core/ui/ListTaggedCascade.tid +14 -0
  46. package/core/ui/PageTemplate/story.tid +1 -1
  47. package/core/ui/PluginListItemTemplate.tid +13 -3
  48. package/core/ui/StoryTiddlerTemplate.tid +3 -0
  49. package/core/ui/TagPickerTagTemplate.tid +3 -3
  50. package/core/ui/TagTemplate.tid +1 -1
  51. package/core/ui/TiddlerIcon.tid +8 -0
  52. package/core/ui/ViewTemplate/body/blank.tid +3 -0
  53. package/core/ui/ViewTemplate/body/code.tid +3 -0
  54. package/core/ui/ViewTemplate/body/default.tid +7 -0
  55. package/core/ui/ViewTemplate/{import.tid → body/import.tid} +1 -2
  56. package/core/ui/ViewTemplate/body/plugin.tid +10 -0
  57. package/core/ui/ViewTemplate/body.tid +1 -9
  58. package/core/ui/ViewTemplate/title/default.tid +6 -0
  59. package/core/ui/ViewTemplate/title/system.tid +6 -0
  60. package/core/ui/ViewTemplate/title.tid +4 -17
  61. package/core/wiki/config/EditTemplateBodyFilters.multids +5 -0
  62. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  63. package/core/wiki/config/StoryTiddlerTemplateFilters.multids +5 -0
  64. package/core/wiki/config/TiddlerColourFilters.multids +5 -0
  65. package/core/wiki/config/TiddlerIconFilters.multids +5 -0
  66. package/core/wiki/config/ViewTemplateBodyFilters.multids +8 -0
  67. package/core/wiki/config/ViewTemplateTitleFilters.multids +5 -0
  68. package/core/wiki/debugstylesheets.tid +9 -0
  69. package/core/wiki/macros/tag.tid +3 -1
  70. package/core/wiki/peek-stylesheets.tid +3 -0
  71. package/core/wiki/tags/EditTemplateBodyFilter.tid +2 -0
  72. package/core/wiki/tags/StoryTiddlerTemplateFilter.tid +2 -0
  73. package/core/wiki/tags/TiddlerColourFilter.tid +3 -0
  74. package/core/wiki/tags/TiddlerIconFilter.tid +3 -0
  75. package/core/wiki/tags/ViewTemplateBodyFilter.tid +3 -0
  76. package/core/wiki/tags/ViewTemplateTitleFilter.tid +3 -0
  77. package/editions/fr-FR/tiddlers/HelloThumbnail - Latest Version.tid +1 -1
  78. package/editions/prerelease/tiddlers/{Release 5.2.1.tid → Release 5.2.2.tid } +10 -18
  79. package/editions/test/tiddlers/tests/test-filters.js +4 -0
  80. package/editions/test/tiddlers/tests/test-html-parser.js +17 -11
  81. package/editions/test/tiddlers/tests/test-prefixes-filter.js +50 -0
  82. package/editions/test/tiddlers/tests/test-widget.js +34 -0
  83. package/editions/test/tiddlers/tests/test-wikitext-parser.js +30 -30
  84. package/editions/tw5.com/tiddlers/$__StoryList.tid +3 -3
  85. package/editions/tw5.com/tiddlers/{License.tid → about/License.tid} +0 -0
  86. package/editions/tw5.com/tiddlers/commands/NamedCommandParameters.tid +2 -2
  87. package/editions/tw5.com/tiddlers/community/Contributing.tid +2 -2
  88. package/editions/tw5.com/tiddlers/community/TW Icons by morosanuae.tid +2 -2
  89. package/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid +2 -2
  90. package/editions/tw5.com/tiddlers/community/editions/_Noteself_ by Danielo Rodriguez.tid +2 -2
  91. package/editions/tw5.com/tiddlers/community/examples/Reveal.js by Devin Weaver.tid +2 -2
  92. package/editions/tw5.com/tiddlers/community/plugins/Encrypt single tiddler plugin.tid +2 -2
  93. package/editions/tw5.com/tiddlers/community/plugins/TiddlyMap by Felix Kuppers.tid +2 -2
  94. package/editions/tw5.com/tiddlers/community/resources/TW5 Magick.tid +2 -2
  95. package/editions/tw5.com/tiddlers/community/resources/_Dynamic Tables_ by Jed Carty.tid +2 -2
  96. package/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid +5 -3
  97. package/editions/tw5.com/tiddlers/community/resources/_muritest_ by Simon Huber.tid +2 -2
  98. package/editions/tw5.com/tiddlers/concepts/Cascades.tid +47 -0
  99. package/editions/tw5.com/tiddlers/concepts/Concepts.tid +5 -3
  100. package/editions/tw5.com/tiddlers/concepts/Edit Template Body Cascade.tid +16 -0
  101. package/editions/tw5.com/tiddlers/concepts/Messages.tid +2 -2
  102. package/editions/tw5.com/tiddlers/concepts/ModuleType.tid +2 -2
  103. package/editions/tw5.com/tiddlers/concepts/Order of Tagged Tiddlers.tid +1 -1
  104. package/editions/tw5.com/tiddlers/concepts/Railroad Diagrams.tid +2 -1
  105. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template Cascade.tid +16 -0
  106. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template.tid +13 -0
  107. package/editions/tw5.com/tiddlers/concepts/TagTiddlers.tid +1 -1
  108. package/editions/tw5.com/tiddlers/concepts/Tiddler Colour Cascade.tid +16 -0
  109. package/editions/tw5.com/tiddlers/concepts/Tiddler Icon Cascade.tid +16 -0
  110. package/editions/tw5.com/tiddlers/concepts/View Template Body Cascade.tid +19 -0
  111. package/editions/tw5.com/tiddlers/concepts/View Template Title Cascade.tid +16 -0
  112. package/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +1 -1
  113. package/editions/tw5.com/tiddlers/customising/Creating new toolbar buttons.tid +35 -0
  114. package/editions/tw5.com/tiddlers/customising/Customise TiddlyWiki.tid +3 -3
  115. package/editions/tw5.com/tiddlers/customising/Customising TiddlyWiki's user interface.tid +75 -0
  116. package/editions/tw5.com/tiddlers/definitions/BT.tid +3 -2
  117. package/editions/tw5.com/tiddlers/definitions/MathML.tid +2 -2
  118. package/editions/tw5.com/tiddlers/definitions/Osmosoft.tid +3 -2
  119. package/editions/tw5.com/tiddlers/definitions/node-webkit.tid +2 -1
  120. package/editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid +4 -3707
  121. package/editions/tw5.com/tiddlers/demonstrations/Apple.tid +2 -2
  122. package/editions/tw5.com/tiddlers/demonstrations/Caruso - Ave Maria.tid +1 -0
  123. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Demo Tiddler List with Custom Story Tiddler Template.tid +10 -0
  124. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Styles.tid +31 -0
  125. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Template.tid +25 -0
  126. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/TiddlerTemplateFilter.tid +5 -0
  127. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerColourCascadeDemo/CustomTiddlerColourCascadeDemo.tid +9 -0
  128. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid +9 -0
  129. package/editions/tw5.com/tiddlers/demonstrations/ImageGallery Example.tid +5 -16
  130. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/Demonstration_ keyboard-driven-input Macro.tid +2 -2
  131. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/kdi-demo-configtid.tid +4 -3
  132. package/editions/tw5.com/tiddlers/demonstrations/SampleNotification.tid +2 -1
  133. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerFirst.tid +3 -1
  134. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerSecond.tid +3 -1
  135. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerThird.tid +3 -1
  136. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard.tid +2 -1
  137. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard2.tid +2 -1
  138. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Contents.tid +3 -2
  139. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/First.tid +3 -3
  140. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstOne.tid +2 -2
  141. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstThree.tid +2 -2
  142. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstTwo.tid +2 -2
  143. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Fourth.tid +2 -2
  144. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Second.tid +2 -2
  145. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondOne.tid +2 -2
  146. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThree.tid +3 -3
  147. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeOne.tid +2 -2
  148. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeThree.tid +2 -2
  149. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeTwo.tid +2 -2
  150. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondTwo.tid +2 -2
  151. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Third.tid +3 -3
  152. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdOne.tid +2 -2
  153. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdThree.tid +2 -2
  154. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdTwo.tid +2 -2
  155. package/editions/tw5.com/tiddlers/demonstrations/Tagged with TagMacro.tid +2 -1
  156. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Compose ballad.tid +3 -3
  157. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Get the Ring.tid +3 -3
  158. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Go to Mordor.tid +3 -3
  159. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Kill the Dragon.tid +4 -4
  160. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Make the beds.tid +3 -3
  161. package/editions/tw5.com/tiddlers/demonstrations/Tasks/done.tid +3 -1
  162. package/editions/tw5.com/tiddlers/demonstrations/Tasks/task.tid +3 -2
  163. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Days of the Week.tid +5 -4
  164. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Friday.tid +2 -1
  165. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Monday.tid +2 -1
  166. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Saturday.tid +3 -2
  167. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Sunday.tid +2 -1
  168. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Thursday.tid +2 -1
  169. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Tuesday.tid +2 -1
  170. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Wednesday.tid +2 -1
  171. package/editions/tw5.com/tiddlers/demonstrations/sampletag1.tid +3 -0
  172. package/editions/tw5.com/tiddlers/demonstrations/sampletag2.tid +3 -0
  173. package/editions/tw5.com/tiddlers/features/DateFormat.tid +7 -1
  174. package/editions/tw5.com/tiddlers/features/LazyLoading.tid +2 -3
  175. package/editions/tw5.com/tiddlers/features/Scalability.tid +4 -2
  176. package/editions/tw5.com/tiddlers/filters/acos Operator.tid +15 -0
  177. package/editions/tw5.com/tiddlers/filters/asin Operator.tid +15 -0
  178. package/editions/tw5.com/tiddlers/filters/atan Operator.tid +13 -0
  179. package/editions/tw5.com/tiddlers/filters/atan2 Operator.tid +15 -0
  180. package/editions/tw5.com/tiddlers/filters/cos Operator.tid +13 -0
  181. package/editions/tw5.com/tiddlers/filters/deserializers Operator.tid +1 -1
  182. package/editions/tw5.com/tiddlers/filters/enlist-input Operator.tid +1 -1
  183. package/editions/tw5.com/tiddlers/filters/examples/acos Operator (Examples).tid +7 -0
  184. package/editions/tw5.com/tiddlers/filters/examples/asin Operator (Examples).tid +7 -0
  185. package/editions/tw5.com/tiddlers/filters/examples/atan Operator (Examples).tid +7 -0
  186. package/editions/tw5.com/tiddlers/filters/examples/atan2 Operator (Examples).tid +7 -0
  187. package/editions/tw5.com/tiddlers/filters/examples/cos Operator (Examples).tid +7 -0
  188. package/editions/tw5.com/tiddlers/filters/examples/cycle Operator (Examples).tid +1 -1
  189. package/editions/tw5.com/tiddlers/filters/examples/log Operator (Examples).tid +1 -1
  190. package/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +2 -1
  191. package/editions/tw5.com/tiddlers/filters/examples/match Operator (Examples).tid +1 -1
  192. package/editions/tw5.com/tiddlers/filters/examples/search-replace Operator (Examples).tid +8 -2
  193. package/editions/tw5.com/tiddlers/filters/examples/sin Operator (Examples).tid +7 -0
  194. package/editions/tw5.com/tiddlers/filters/examples/subfilter Operator (Examples).tid +25 -3
  195. package/editions/tw5.com/tiddlers/filters/examples/tan Operator (Examples).tid +7 -0
  196. package/editions/tw5.com/tiddlers/filters/examples/zth Operator (Examples).tid +10 -0
  197. package/editions/tw5.com/tiddlers/filters/list.tid +2 -2
  198. package/editions/tw5.com/tiddlers/filters/nth.tid +9 -7
  199. package/editions/tw5.com/tiddlers/filters/range.tid +1 -1
  200. package/editions/tw5.com/tiddlers/filters/sin Operator.tid +13 -0
  201. package/editions/tw5.com/tiddlers/filters/storyviews.tid +1 -1
  202. package/editions/tw5.com/tiddlers/filters/subfilter Operator.tid +4 -2
  203. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix (Examples).tid +46 -0
  204. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid +20 -0
  205. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +4 -2
  206. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix (Examples).tid +30 -0
  207. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix.tid +27 -0
  208. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix (Examples).tid +7 -36
  209. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix (Examples).tid +36 -0
  210. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +15 -0
  211. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix (Examples).tid +26 -1
  212. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix.tid +9 -1
  213. package/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +2 -2
  214. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix (Examples).tid +27 -0
  215. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix.tid +38 -0
  216. package/editions/tw5.com/tiddlers/filters/tan Operator.tid +13 -0
  217. package/editions/tw5.com/tiddlers/filters/zth Operator.tid +18 -0
  218. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid +2 -1
  219. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +2 -1
  220. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +2 -1
  221. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +2 -1
  222. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid +2 -1
  223. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Online.tid +2 -2
  224. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid +2 -1
  225. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid +2 -1
  226. package/editions/tw5.com/tiddlers/{AllTiddlers.tid → hellothere/AllTiddlers.tid} +0 -0
  227. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +1 -1
  228. package/editions/tw5.com/tiddlers/hellothere/Some of the things you can do with TiddlyWiki.tid +2 -2
  229. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Badge.svg.tid +1 -0
  230. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Link.tid +1 -0
  231. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting NewImageType.tid +3 -1
  232. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting ShowEditPreviewPerTiddler.tid +10 -0
  233. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Typin Refresh Delay.tid +2 -2
  234. package/editions/tw5.com/tiddlers/howtos/Creating SubStories.tid +21 -33
  235. package/editions/tw5.com/tiddlers/howtos/Debugging Stylesheets.tid +11 -0
  236. package/editions/tw5.com/tiddlers/howtos/How to create a custom story tiddler template.tid +40 -0
  237. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler colour rule.tid +36 -0
  238. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler icon rule.tid +36 -0
  239. package/editions/tw5.com/tiddlers/howtos/How to create dynamic editor toolbar buttons.tid +2 -2
  240. package/editions/tw5.com/tiddlers/howtos/Simple ways to write protect tiddlers.tid +4 -5
  241. package/editions/tw5.com/tiddlers/howtos/Text preview.tid +6 -2
  242. package/editions/tw5.com/tiddlers/howtos/Using Stylesheets.tid +8 -4
  243. package/editions/tw5.com/tiddlers/images/Icon Gallery.tid +14 -0
  244. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  245. package/editions/tw5.com/tiddlers/languages/LanguageGallery.tid +2 -2
  246. package/editions/tw5.com/tiddlers/macros/examples/colour-picker Macro (Example 1).tid +2 -2
  247. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 1).tid +2 -2
  248. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 2).tid +2 -2
  249. package/editions/tw5.com/tiddlers/macros/examples/unusedtitle Macro (Examples 1).tid +2 -2
  250. package/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +2 -2
  251. package/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid +2 -2
  252. package/editions/tw5.com/tiddlers/messages/SampleModal.tid +2 -1
  253. package/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid +10 -0
  254. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +3 -0
  255. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +22 -4
  256. package/editions/tw5.com/tiddlers/nodejs/Environment Variables on Node.js.tid +4 -2
  257. package/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +10 -3
  258. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +6 -5
  259. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.info_Files.tid +2 -2
  260. package/editions/tw5.com/tiddlers/platforms/TiddlyFox Apocalypse.tid +2 -2
  261. package/editions/tw5.com/tiddlers/platforms/TiddlyWiki in the Sky for TiddlyWeb.tid +3 -8
  262. package/editions/tw5.com/tiddlers/plugins/Plugin Types.tid +2 -2
  263. package/editions/tw5.com/tiddlers/reference/Reference.tid +1 -0
  264. package/editions/tw5.com/tiddlers/releasenotes/BetaReleases.tid +2 -2
  265. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +118 -0
  266. package/editions/tw5.com/tiddlers/releasenotes/ReleaseTemplate.tid +3 -0
  267. package/editions/tw5.com/tiddlers/releasenotes/alpha/AlphaReleases.tid +2 -2
  268. package/editions/tw5.com/tiddlers/saving/Example config-tiddlyweb-host for IIS.txt.meta +1 -1
  269. package/editions/tw5.com/tiddlers/saving/Example package.json for IIS.txt.meta +1 -1
  270. package/editions/tw5.com/tiddlers/saving/Example tiddlywiki.info for IIS.txt.meta +1 -1
  271. package/editions/tw5.com/tiddlers/saving/Example web.config for IIS.txt.meta +1 -1
  272. package/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +31 -1
  273. package/editions/tw5.com/tiddlers/styleguide/Documentation Macros.tid +6 -2
  274. package/editions/tw5.com/tiddlers/{TableOfContents.tid → system/TableOfContents.tid} +0 -0
  275. package/editions/tw5.com/tiddlers/system/doc-macros.tid +17 -0
  276. package/editions/tw5.com/tiddlers/system/doc-styles.tid +32 -1
  277. package/editions/tw5.com/tiddlers/system/operator-macros.tid +12 -5
  278. package/editions/tw5.com/tiddlers/system/operator-template.tid +8 -8
  279. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Image.tid +2 -2
  280. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 1-2-3.tid +2 -1
  281. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 3-4-5.tid +2 -1
  282. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 4-5-6.tid +2 -1
  283. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid +2 -2
  284. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid +2 -2
  285. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +2 -2
  286. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +2 -2
  287. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Template.tid +2 -2
  288. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +2 -2
  289. package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +52 -2
  290. package/editions/tw5.com/tiddlers/widgets/ActionSendMessageWidget.tid +3 -1
  291. package/editions/tw5.com/tiddlers/widgets/ActionSetMultipleFieldsWidget.tid +31 -0
  292. package/editions/tw5.com/tiddlers/widgets/ActionWidget Execution Modes.tid +5 -2
  293. package/editions/tw5.com/tiddlers/widgets/ActionWidgets.tid +4 -4
  294. package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +2 -2
  295. package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +2 -2
  296. package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +2 -2
  297. package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +2 -2
  298. package/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid +2 -2
  299. package/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +8 -19
  300. package/editions/tw5.com/tiddlers/widgets/EditWidget.tid +2 -2
  301. package/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +2 -2
  302. package/editions/tw5.com/tiddlers/widgets/FieldManglerWidget.tid +3 -3
  303. package/editions/tw5.com/tiddlers/{Keyboard Codes.tid → widgets/Keyboard Codes.tid} +0 -0
  304. package/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid +2 -2
  305. package/editions/tw5.com/tiddlers/widgets/LetWidget.tid +57 -0
  306. package/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid +2 -2
  307. package/editions/tw5.com/tiddlers/widgets/ListopsData.tid +1 -0
  308. package/editions/tw5.com/tiddlers/widgets/MessageCatcherWidget.tid +2 -2
  309. package/editions/tw5.com/tiddlers/widgets/MessageHandlerWidgets.tid +13 -0
  310. package/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid +5 -2
  311. package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +2 -2
  312. package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +2 -2
  313. package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +15 -2
  314. package/editions/tw5.com/tiddlers/widgets/SetMultipleVariablesWidget.tid +33 -0
  315. package/editions/tw5.com/tiddlers/widgets/The Extended Listops Filters.tid +2 -1
  316. package/editions/tw5.com/tiddlers/widgets/TriggeringWidgets.tid +13 -0
  317. package/editions/tw5.com/tiddlers/widgets/VarsWidget.tid +7 -5
  318. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -2
  319. package/languages/pl-PL/ControlPanel.multids +1 -1
  320. package/languages/pl-PL/Docs/PaletteColours.multids +1 -1
  321. package/languages/pl-PL/Import.multids +1 -1
  322. package/languages/pl-PL/Misc.multids +2 -2
  323. package/languages/pl-PL/SideBar.multids +1 -1
  324. package/languages/zh-Hans/ControlPanel.multids +15 -0
  325. package/languages/zh-Hant/ControlPanel.multids +15 -0
  326. package/licenses/cla-individual.md +10 -0
  327. package/package.json +1 -1
  328. package/plugins/tiddlywiki/codemirror/engine.js +55 -2
  329. package/readme.md +2 -2
  330. package/themes/tiddlywiki/vanilla/ThemeTweaks.tid +7 -3
  331. package/themes/tiddlywiki/vanilla/base.tid +6 -0
  332. package/themes/tiddlywiki/vanilla/reset.tid +1 -1
  333. package/core/ui/ViewTemplate/plugin.tid +0 -15
  334. package/editions/tw5.com/tiddlers/customising/Page and tiddler layout customisation.tid +0 -63
  335. package/editions/tw5.com/tiddlers/demonstrations/SampleAlert.tid +0 -9
@@ -1,54 +1,4 @@
1
1
  title: $:/core/ui/EditTemplate/body
2
2
  tags: $:/tags/EditTemplate
3
3
 
4
- \define lingo-base() $:/language/EditTemplate/Body/
5
- \define config-visibility-title()
6
- $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
7
- \end
8
-
9
- \define importFileActions()
10
- <$action-popup $state=<<importState>> $coords="(0,0,0,0)" $floating="yes"/>
11
- \end
12
-
13
- <$list filter="[all[current]has[_canonical_uri]]">
14
-
15
- <div class="tc-message-box">
16
-
17
- <<lingo External/Hint>>
18
-
19
- <a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>
20
-
21
- <$edit-text field="_canonical_uri" class="tc-edit-fields" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"></$edit-text>
22
-
23
- </div>
24
-
25
- </$list>
26
-
27
- <$list filter="[all[current]!has[_canonical_uri]]">
28
- <$vars importTitle=<<qualify $:/ImportImage>> importState=<<qualify $:/state/ImportImage>> >
29
- <$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>> ><$reveal state="$:/state/showeditpreview" type="match" text="yes">
30
- <div class="tc-tiddler-preview">
31
-
32
- <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
33
-
34
- <div class="tc-tiddler-preview-preview">
35
-
36
- <$transclude tiddler={{$:/state/editpreviewtype}} mode="inline">
37
-
38
- <$transclude tiddler="$:/core/ui/EditTemplate/body/preview/output" mode="inline"/>
39
-
40
- </$transclude>
41
-
42
- </div>
43
-
44
- </div>
45
- </$reveal>
46
-
47
- <$reveal state="$:/state/showeditpreview" type="nomatch" text="yes">
48
-
49
- <$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
50
-
51
- </$reveal>
52
- </$dropzone>
53
- </$vars>
54
- </$list>
4
+ <$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/EditTemplateBodyFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/EditTemplate/body/default]] }}} />
@@ -29,7 +29,7 @@ color:$(foregroundColor)$;
29
29
  \whitespace trim
30
30
  <div class="tc-edit-tags">
31
31
  <$list filter="[list[!!$tagField$]sort[title]]" storyview="pop">
32
- <$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>
32
+ <$macrocall $name="tag-body" colour={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}} palette={{$:/palette}} icon={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}} tagField=<<__tagField__>>/>
33
33
  </$list>
34
34
  <$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups="yes">
35
35
  <$macrocall $name="tag-picker" tagField=<<__tagField__>>/>
@@ -13,7 +13,7 @@ title: $:/core/ui/EditorToolbar/link-dropdown
13
13
  <$set name="userInput" value={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="""<$action-deletetiddler $filter="[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]"/>"""><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$set>
14
14
  \end
15
15
 
16
- \define cancel-search-actions() <$list filter="[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]" emptyMessage="""<<cancel-search-actions-inner>>"""><$action-sendmessage $message="tm-edit-text-operation" $param="wrap-selection" prefix="" suffix=""/></$list>
16
+ \define cancel-search-actions() <$list filter="[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]" emptyMessage="""<<cancel-search-actions-inner>>"""><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list>
17
17
 
18
18
  \define external-link()
19
19
  <$button class="tc-btn-invisible" style="width: auto; display: inline-block; background-colour: inherit;" actions=<<add-link-actions>>>
@@ -8,11 +8,11 @@ condition: [<targetTiddler>]
8
8
  button-classes: tc-text-editor-toolbar-item-start-group
9
9
  shortcuts: ((preview))
10
10
 
11
- <$reveal state="$:/state/showeditpreview" type="match" text="yes" tag="span">
11
+ <$reveal state=<<edit-preview-state>> type="match" text="yes" tag="span">
12
12
  {{$:/core/images/preview-open}}
13
- <$action-setfield $tiddler="$:/state/showeditpreview" $value="no"/>
13
+ <$action-setfield $tiddler=<<edit-preview-state>> $value="no"/>
14
14
  </$reveal>
15
- <$reveal state="$:/state/showeditpreview" type="nomatch" text="yes" tag="span">
15
+ <$reveal state=<<edit-preview-state>> type="nomatch" text="yes" tag="span">
16
16
  {{$:/core/images/preview-closed}}
17
- <$action-setfield $tiddler="$:/state/showeditpreview" $value="yes"/>
17
+ <$action-setfield $tiddler=<<edit-preview-state>> $value="yes"/>
18
18
  </$reveal>
@@ -0,0 +1,14 @@
1
+ title: $:/snippets/ListTaggedCascade
2
+
3
+ {{||$:/language/ControlPanel/Cascades/TagPrompt}}
4
+
5
+ <ol>
6
+ <$list filter="[all[shadows+tiddlers]tag<currentTiddler>]">
7
+ <li>
8
+ <div>
9
+ <$link><$text text=<<currentTiddler>>/></$link>
10
+ </div>
11
+ <$codeblock code={{!!text}}/>
12
+ </li>
13
+ </$list>
14
+ </ol>
@@ -14,7 +14,7 @@ tags: $:/tags/PageTemplate
14
14
 
15
15
  </section>
16
16
 
17
- <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>
17
+ <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" template="$:/core/ui/StoryTiddlerTemplate" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>
18
18
 
19
19
  <section class="story-frontdrop">
20
20
 
@@ -1,5 +1,15 @@
1
1
  title: $:/core/ui/PluginListItemTemplate
2
2
 
3
- <div class="tc-menu-list-item">
4
- <$link to={{!!title}}><$view field="description"><$view field="title"/></$view></$link>
5
- </div>
3
+ \whitespace trim
4
+ <$link to={{!!title}} class="tc-plugin-info">
5
+ <div class="tc-plugin-info-chunk tc-plugin-info-icon">
6
+ <$transclude tiddler=<<currentTiddler>> subtiddler={{{ [<currentTiddler>addsuffix[/icon]] }}}>
7
+ <$transclude tiddler={{{ [<currentTiddler>get[plugin-type]addprefix[$:/core/images/plugin-generic-]] }}}/>
8
+ </$transclude>
9
+ </div>
10
+ <div class="tc-plugin-info-chunk tc-plugin-info-description">
11
+ <h1>
12
+ ''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'':&nbsp;<$view field="description"><$view field="title"/></$view>
13
+ </h1>
14
+ </div>
15
+ </$link>
@@ -0,0 +1,3 @@
1
+ title: $:/core/ui/StoryTiddlerTemplate
2
+
3
+ <$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/StoryTiddlerTemplateFilter]!is[draft]get[text]] :and[!is[blank]else{$:/config/ui/ViewTemplate}] }}} />
@@ -13,10 +13,10 @@ title: $:/core/ui/TagPickerTagTemplate
13
13
  <$action-setfield $tiddler=<<refreshTitle>> text="yes"/>
14
14
  </$list>
15
15
  <<actions>>
16
- <$set name="backgroundColor" value={{!!color}}>
17
- <$wikify name="foregroundColor" text="""<$macrocall $name="contrastcolour" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>""">
16
+ <$set name="backgroundColor" value={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}}>
17
+ <$wikify name="foregroundColor" text="""<$macrocall $name="contrastcolour" target=<<backgroundColor>> fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>""">
18
18
  <span class="tc-tag-label tc-btn-invisible" style=<<tag-pill-styles>>>
19
- <$transclude tiddler={{!!icon}}/><$view field="title" format="text"/>
19
+ {{||$:/core/ui/TiddlerIcon}}<$view field="title" format="text"/>
20
20
  </span>
21
21
  </$wikify>
22
22
  </$set>
@@ -3,7 +3,7 @@ title: $:/core/ui/TagTemplate
3
3
  \whitespace trim
4
4
  <span class="tc-tag-list-item" data-tag-title=<<currentTiddler>>>
5
5
  <$set name="transclusion" value=<<currentTiddler>>>
6
- <$macrocall $name="tag-pill-body" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<<qualify "$:/state/popup/tag">> dragFilter='[all[current]tagging[]]' tag='span'"""/>
6
+ <$macrocall $name="tag-pill-body" tag=<<currentTiddler>> icon={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}} colour={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<<qualify "$:/state/popup/tag">> dragFilter='[all[current]tagging[]]' tag='span'"""/>
7
7
  <$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below" animate="yes" class="tc-drop-down">
8
8
  <$set name="tv-show-missing-links" value="yes">
9
9
  <$transclude tiddler="$:/core/ui/ListItemTemplate"/>
@@ -0,0 +1,8 @@
1
+ title: $:/core/ui/TiddlerIcon
2
+
3
+ \whitespace trim
4
+ <$let tiddlerIcon={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}}>
5
+ <$list filter="[<tiddlerIcon>!is[blank]]" variable="ignore">
6
+ <$transclude tiddler=<<tiddlerIcon>>/>
7
+ </$list>
8
+ </$let>
@@ -0,0 +1,3 @@
1
+ title: $:/core/ui/ViewTemplate/body/blank
2
+
3
+ <!-- Intentionally blank -->
@@ -0,0 +1,3 @@
1
+ title: $:/core/ui/ViewTemplate/body/code
2
+
3
+ <$codeblock code={{{ [<currentTiddler>get[text]] }}} language={{{ [<currentTiddler>get[type]else[text/vnd.tiddlywiki]] }}}/>
@@ -0,0 +1,7 @@
1
+ title: $:/core/ui/ViewTemplate/body/default
2
+
3
+ <$transclude>
4
+
5
+ <$transclude tiddler="$:/language/MissingTiddler/Hint"/>
6
+
7
+ </$transclude>
@@ -1,5 +1,4 @@
1
- title: $:/core/ui/ViewTemplate/import
2
- tags: $:/tags/ViewTemplate
1
+ title: $:/core/ui/ViewTemplate/body/import
3
2
 
4
3
  \define lingo-base() $:/language/Import/
5
4
 
@@ -0,0 +1,10 @@
1
+ title: $:/core/ui/ViewTemplate/body/plugin
2
+
3
+ <div class="tc-tiddler-plugin-info">
4
+ <$let plugin-type={{!!plugin-type}}
5
+ default-popup-state="yes"
6
+ qualified-state=<<qualify "$:/state/plugin-info">>
7
+ >
8
+ {{||$:/core/ui/Components/plugin-info}}
9
+ </$let>
10
+ </div>
@@ -3,14 +3,6 @@ tags: $:/tags/ViewTemplate
3
3
 
4
4
  <$reveal tag="div" class="tc-tiddler-body" type="nomatch" stateTitle=<<folded-state>> text="hide" retain="yes" animate="yes">
5
5
 
6
- <$list filter="[all[current]!has[plugin-type]!field:hide-body[yes]]">
7
-
8
- <$transclude>
9
-
10
- <$transclude tiddler="$:/language/MissingTiddler/Hint"/>
11
-
12
- </$transclude>
13
-
14
- </$list>
6
+ <$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateBodyFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/body/default]] }}} />
15
7
 
16
8
  </$reveal>
@@ -0,0 +1,6 @@
1
+ title: $:/core/ui/ViewTemplate/title/default
2
+
3
+ \whitespace trim
4
+ <h2 class="tc-title">
5
+ <$view field="title"/>
6
+ </h2>
@@ -0,0 +1,6 @@
1
+ title: $:/core/ui/ViewTemplate/title/system
2
+
3
+ \whitespace trim
4
+ <h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
5
+ <span class="tc-system-title-prefix">$:/</span><$text text={{{ [<currentTiddler>removeprefix[$:/]] }}}/>
6
+ </h2>
@@ -12,25 +12,12 @@ fill:$(foregroundColor)$;
12
12
  </span>
13
13
  <$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
14
14
  <$link>
15
- <$set name="foregroundColor" value={{!!color}}>
16
- <$list filter="[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]">
15
+ <$let foregroundColor={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}}>
17
16
  <span class="tc-tiddler-title-icon" style=<<title-styles>>>
18
- <$transclude tiddler={{!!icon}}>
19
- <$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>
20
- </$transclude>
17
+ {{||$:/core/ui/TiddlerIcon}}
21
18
  </span>
22
- </$list>
23
- </$set>
24
- <$list filter="[all[current]removeprefix[$:/]]">
25
- <h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
26
- <span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
27
- </h2>
28
- </$list>
29
- <$list filter="[all[current]!prefix[$:/]]">
30
- <h2 class="tc-title">
31
- <$view field="title"/>
32
- </h2>
33
- </$list>
19
+ </$let>
20
+ <$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateTitleFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/title/default]] }}} />
34
21
  </$link>
35
22
  </$set>
36
23
  </div>
@@ -0,0 +1,5 @@
1
+ title: $:/config/EditTemplateBodyFilters/
2
+ tags: $:/tags/EditTemplateBodyFilter
3
+
4
+ canonical-uri: [has[_canonical_uri]then[$:/core/ui/EditTemplate/body/canonical-uri]]
5
+ default: [[$:/core/ui/EditTemplate/body/default]]
@@ -1,6 +1,6 @@
1
1
  title: $:/config/OfficialPluginLibrary
2
2
  tags: $:/tags/PluginLibrary
3
- url: https://tiddlywiki.com/library/v5.2.0/index.html
3
+ url: https://tiddlywiki.com/library/v5.2.1/index.html
4
4
  caption: {{$:/language/OfficialPluginLibrary}}
5
5
 
6
6
  {{$:/language/OfficialPluginLibrary/Hint}}
@@ -0,0 +1,5 @@
1
+ title: $:/config/StoryTiddlerTemplateFilters/
2
+ tags: $:/tags/StoryTiddlerTemplateFilter
3
+
4
+ draft: [is[draft]then{$:/config/ui/EditTemplate}]
5
+ default: [{$:/config/ui/ViewTemplate}]
@@ -0,0 +1,5 @@
1
+ title: $:/config/TiddlerColourFilters/
2
+ tags: $:/tags/TiddlerColourFilter
3
+
4
+ color-field: [has[color]then{!!color}]
5
+ default: [[$:/config/DefaultTiddlerColour]has[text]get[text]trim[]]
@@ -0,0 +1,5 @@
1
+ title: $:/config/TiddlerIconFilters/
2
+ tags: $:/tags/TiddlerIconFilter
3
+
4
+ icon-field: [has[icon]then{!!icon}]
5
+ default: [{$:/config/DefaultTiddlerIcon}has[text]]
@@ -0,0 +1,8 @@
1
+ title: $:/config/ViewTemplateBodyFilters/
2
+ tags: $:/tags/ViewTemplateBodyFilter
3
+
4
+ system: [prefix[$:/boot/]] [prefix[$:/config/]] [prefix[$:/core/]!field:title[$:/core/readme]!field:title[$:/core/icon]] [prefix[$:/info/]] [prefix[$:/language/]] [prefix[$:/languages/]] [prefix[$:/snippets/]] [prefix[$:/state/]] [prefix[$:/status/]] [prefix[$:/info/]] [prefix[$:/temp/]] +[limit[1]then[$:/core/ui/ViewTemplate/body/code]]
5
+ import: [field:plugin-type[import]then[$:/core/ui/ViewTemplate/body/import]]
6
+ plugin: [has[plugin-type]then[$:/core/ui/ViewTemplate/body/plugin]]
7
+ hide-body: [field:hide-body[yes]then[$:/core/ui/ViewTemplate/body/blank]]
8
+ default: [[$:/core/ui/ViewTemplate/body/default]]
@@ -0,0 +1,5 @@
1
+ title: $:/config/ViewTemplateTitleFilters/
2
+ tags: $:/tags/ViewTemplateTitleFilter
3
+
4
+ system: [prefix[$:/]then[$:/core/ui/ViewTemplate/title/system]]
5
+ default: [[$:/core/ui/ViewTemplate/title/default]]
@@ -0,0 +1,9 @@
1
+ title: $:/snippets/DebugStylesheets
2
+
3
+ <style>[test]{list-style:'❌'}</style>
4
+ <ul>
5
+ <$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]has[modified]]" counter="n">
6
+ <style>{{!!text}}[test="<<n>>"]{list-style:disc;}</style>
7
+ <li test=<<n>>><$link/></li>
8
+ </$list>
9
+ </ul>
@@ -21,7 +21,9 @@ $actions$<$transclude tiddler="""$icon$"""/><$view tiddler=<<__tag__>> field="ti
21
21
 
22
22
  \define tag-pill(tag,element-tag:"span",element-attributes:"",actions:"")
23
23
  <span class="tc-tag-list-item" data-tag-title=<<__tag__>>>
24
- <$macrocall $name="tag-pill-body" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/>
24
+ <$let currentTiddler=<<__tag__>>>
25
+ <$macrocall $name="tag-pill-body" tag=<<__tag__>> icon={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerIconFilter]!is[draft]get[text]] }}} colour={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] }}} palette={{$:/palette}} element-tag="""$element-tag$""" element-attributes="""$element-attributes$""" actions="""$actions$"""/>
26
+ </$let>
25
27
  </span>
26
28
  \end
27
29
 
@@ -1,6 +1,7 @@
1
1
  title: $:/snippets/peek-stylesheets
2
2
 
3
3
  \define expandable-stylesheets-list()
4
+ \whitespace trim
4
5
  <ol>
5
6
  <$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
6
7
  <$vars state=<<qualify "$:/state/peek-stylesheets/open/">>>
@@ -38,6 +39,7 @@ title: $:/snippets/peek-stylesheets
38
39
  \end
39
40
 
40
41
  \define stylesheets-list()
42
+ \whitespace trim
41
43
  <ol>
42
44
  <$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]">
43
45
  <li>
@@ -57,6 +59,7 @@ title: $:/snippets/peek-stylesheets
57
59
  </$list>
58
60
  </ol>
59
61
  \end
62
+ \whitespace trim
60
63
 
61
64
  <$vars modeState=<<qualify "$:/state/peek-stylesheets/mode/">>>
62
65
 
@@ -0,0 +1,2 @@
1
+ title: $:/tags/EditTemplateBodyFilter
2
+ list: $:/config/EditTemplateBodyFilters/canonical-uri $:/config/EditTemplateBodyFilters/default
@@ -0,0 +1,2 @@
1
+ title: $:/tags/StoryTiddlerTemplateFilter
2
+ list: $:/config/StoryTiddlerTemplateFilters/draft $:/config/StoryTiddlerTemplateFilters/default
@@ -0,0 +1,3 @@
1
+ title: $:/tags/TiddlerColourFilter
2
+ list: $:/config/TiddlerColourFilters/color-field $:/config/TiddlerColourFilters/default
3
+
@@ -0,0 +1,3 @@
1
+ title: $:/tags/TiddlerIconFilter
2
+ list: $:/config/TiddlerIconFilters/icon-field $:/config/TiddlerIconFilters/default
3
+
@@ -0,0 +1,3 @@
1
+ title: $:/tags/ViewTemplateBodyFilter
2
+ list: $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/default
3
+
@@ -0,0 +1,3 @@
1
+ title: $:/tags/ViewTemplateTitleFilter
2
+ list: $:/config/ViewTemplateTitleFilters/system $:/config/ViewTemplateTitleFilters/default
3
+
@@ -2,7 +2,7 @@ caption: Quoi de neuf dans <<version>>
2
2
  color: #fff
3
3
  created: 20160603124050989
4
4
  fr-title: BonjourLaVignette - Dernière Version
5
- image: New Release Banner.png
5
+ image: New Release Banner
6
6
  link: Releases
7
7
  modified: 20160603124131122
8
8
  tags: HelloThumbnail
@@ -1,22 +1,24 @@
1
- caption: 5.2.1
2
- created: 20211003152250369
3
- modified: 20211003152250369
1
+ caption: 5.2.2
2
+ created: 20211208115905247
3
+ modified: 20211208115905247
4
4
  tags: ReleaseNotes
5
- title: Release 5.2.1
5
+ title: Release 5.2.2
6
6
  type: text/vnd.tiddlywiki
7
7
 
8
8
  \define contributor(username)
9
9
  <a href="https://github.com/$username$" style="text-decoration:none;font-size:24px;" class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><img src="https://github.com/$username$.png?size=32" width="32" height="32"/> @<$text text=<<__username__>>/></a>
10
10
  \end
11
11
 
12
- //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.0...master]]//
12
+ //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.1...master]]//
13
13
 
14
14
  ! Highlights
15
15
 
16
- ! Performance Improvements
17
-
18
16
  *
19
17
 
18
+ ! Bug Fixes
19
+
20
+ *
21
+
20
22
  ! Usability Improvements
21
23
 
22
24
  *
@@ -33,7 +35,7 @@ type: text/vnd.tiddlywiki
33
35
 
34
36
  *
35
37
 
36
- ! Client-server Improvements
38
+ ! Developer Improvements
37
39
 
38
40
  *
39
41
 
@@ -41,20 +43,10 @@ type: text/vnd.tiddlywiki
41
43
 
42
44
  *
43
45
 
44
- ! Plugin Improvements
45
-
46
- ! Developer Experience Improvements
47
-
48
- *
49
-
50
46
  ! Translation improvements
51
47
 
52
48
  *
53
49
 
54
- ! Other Bug Fixes
55
-
56
- *
57
-
58
50
  ! Acknowledgements
59
51
 
60
52
  [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
@@ -815,6 +815,10 @@ Tests the filtering mechanism.
815
815
  expect(wiki.filterTiddlers("[[Unlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data]search-replace:g:regexp<myregexp2>,[]]",anchorWidget).join(",")).toBe("conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data");
816
816
  expect(wiki.filterTiddlers("[[Unlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data]search-replace:gm:regexp<myregexp2>,[]]",anchorWidget).join(",")).toBe("conventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data\nconventional online services, TiddlyWiki lets you choose where to keep your data");
817
817
  expect(wiki.filterTiddlers("[[Hello There\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\nguaranteeing that in the decades to come you will still be able to use the notes you take today.]search-replace:gm:regexp<myregexp3>,[]]",anchorWidget).join(",")).toBe("\nUnlike conventional online services, TiddlyWiki lets you choose where to keep your data\n");
818
+ expect(wiki.filterTiddlers("[[This is equation $$x$$ end.]search-replace[equation $$x$$ end.],[relation $$x$$ finish.]]").join(",")).toBe("This is relation $$x$$ finish.");
819
+ expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace:g:regexp[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TW is great,My TW is so fast.");
820
+ expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace::regexp[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TiddlyWiki is great,My TW is so fast.");
821
+ expect(wiki.filterTiddlers("[[This is an amazing TiddlyWiki]] [[How old is TiddlyWiki?. TiddlyWiki is great]] [[My TiddlyWiki is so fast.]] +[search-replace:g[TiddlyWiki],[TW]]").join(",")).toBe("This is an amazing TW,How old is TW?. TW is great,My TW is so fast.");
818
822
  });
819
823
 
820
824
  it("should handle the pad operator", function() {
@@ -156,46 +156,52 @@ describe("HTML tag new parser tests", function() {
156
156
  null
157
157
  );
158
158
  expect(parser.parseTag("<mytag>",0)).toEqual(
159
- { type : 'element', start : 0, attributes : { }, tag : 'mytag', end : 7 }
159
+ { type : 'element', start : 0, attributes : { }, orderedAttributes: [ ], tag : 'mytag', end : 7 }
160
160
  );
161
161
  expect(parser.parseTag("<mytag attrib1>",0)).toEqual(
162
- { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', value : 'true', start : 6, name : 'attrib1', end : 14 } }, tag : 'mytag', end : 15 }
162
+ { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', value : 'true', start : 6, name : 'attrib1', end : 14 } }, orderedAttributes: [ { start: 6, name: 'attrib1', type: 'string', value: 'true', end: 14 } ], tag : 'mytag', end : 15 }
163
163
  );
164
164
  expect(parser.parseTag("<mytag attrib1/>",0)).toEqual(
165
- { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', value : 'true', start : 6, name : 'attrib1', end : 14 } }, tag : 'mytag', isSelfClosing : true, end : 16 }
165
+ { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', value : 'true', start : 6, name : 'attrib1', end : 14 } }, orderedAttributes: [ { start: 6, name: 'attrib1', type: 'string', value: 'true', end: 14 } ], tag : 'mytag', isSelfClosing : true, end : 16 }
166
166
  );
167
167
  expect(parser.parseTag("<$view field=\"title\" format=\"link\"/>",0)).toEqual(
168
- { type : 'view', start : 0, attributes : { field : { start : 6, name : 'field', type : 'string', value : 'title', end : 20 }, format : { start : 20, name : 'format', type : 'string', value : 'link', end : 34 } }, tag : '$view', isSelfClosing : true, end : 36 }
168
+ { type : 'view', start : 0, attributes : { field : { start : 6, name : 'field', type : 'string', value : 'title', end : 20 }, format : { start : 20, name : 'format', type : 'string', value : 'link', end : 34 } }, orderedAttributes: [ { start: 6, name: 'field', type: 'string', value: 'title', end: 20 }, { start: 20, name: 'format', type: 'string', value: 'link', end: 34 } ], tag : '$view', isSelfClosing : true, end : 36 }
169
169
  );
170
170
  expect(parser.parseTag("<mytag attrib1='something'>",0)).toEqual(
171
- { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', start : 6, name : 'attrib1', value : 'something', end : 26 } }, tag : 'mytag', end : 27 }
171
+ { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', start : 6, name : 'attrib1', value : 'something', end : 26 } }, orderedAttributes: [ { start: 6, name: 'attrib1', type: 'string', value: 'something', end: 26 } ], tag : 'mytag', end : 27 }
172
+ );
173
+ expect(parser.parseTag("<mytag attrib1 attrib1='something'>",0)).toEqual(
174
+ { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', start : 15, name : 'attrib1', value : 'something', end : 34 } }, orderedAttributes: [ { start: 6, name: 'attrib1', type: 'string', value: 'true', end: 15 }, { start: 15, name: 'attrib1', type: 'string', value: 'something', end: 34 } ], tag : 'mytag', end : 35 }
175
+ );
176
+ expect(parser.parseTag("<mytag attrib1 attrib1='something' attrib1='else'>",0)).toEqual(
177
+ { type : 'element', start : 0, attributes : { attrib1 : { type : 'string', start : 34, name : 'attrib1', value : 'else', end : 49 } }, orderedAttributes: [ { start: 6, name: 'attrib1', type: 'string', value: 'true', end: 15 }, { start: 15, name: 'attrib1', type: 'string', value: 'something', end: 34 }, { start: 34, name: 'attrib1', type: 'string', value: 'else', end: 49 } ], tag : 'mytag', end : 50 }
172
178
  );
173
179
  expect(parser.parseTag("<$mytag attrib1='something' attrib2=else thing>",0)).toEqual(
174
- { type : 'mytag', start : 0, attributes : { attrib1 : { type : 'string', start : 7, name : 'attrib1', value : 'something', end : 27 }, attrib2 : { type : 'string', start : 27, name : 'attrib2', value : 'else', end : 40 }, thing : { type : 'string', start : 40, name : 'thing', value : 'true', end : 46 } }, tag : '$mytag', end : 47 }
180
+ { type : 'mytag', start : 0, attributes : { attrib1 : { type : 'string', start : 7, name : 'attrib1', value : 'something', end : 27 }, attrib2 : { type : 'string', start : 27, name : 'attrib2', value : 'else', end : 40 }, thing : { type : 'string', start : 40, name : 'thing', value : 'true', end : 46 } }, orderedAttributes: [ { start: 7, name: 'attrib1', type: 'string', value: 'something', end: 27 }, { start: 27, name: 'attrib2', type: 'string', value: 'else', end: 40 }, { start: 40, name: 'thing', type: 'string', value: 'true', end: 46 } ], tag : '$mytag', end : 47 }
175
181
  );
176
182
  expect(parser.parseTag("< $mytag attrib1='something' attrib2=else thing>",0)).toEqual(
177
183
  null
178
184
  );
179
185
  expect(parser.parseTag("<$mytag attrib3=<<myMacro one:two three:'four and five'>>>",0)).toEqual(
180
- { type : 'mytag', start : 0, attributes : { attrib3 : { type : 'macro', start : 7, name : 'attrib3', value : { type : 'macrocall', start : 16, params : [ { type : 'macro-parameter', start : 25, value : 'two', name : 'one', end : 33 }, { type : 'macro-parameter', start : 33, value : 'four and five', name : 'three', end : 55 } ], name : 'myMacro', end : 57 }, end : 57 } }, tag : '$mytag', end : 58 }
186
+ { type : 'mytag', start : 0, attributes : { attrib3 : { type : 'macro', start : 7, name : 'attrib3', value : { type : 'macrocall', start : 16, params : [ { type : 'macro-parameter', start : 25, value : 'two', name : 'one', end : 33 }, { type : 'macro-parameter', start : 33, value : 'four and five', name : 'three', end : 55 } ], name : 'myMacro', end : 57 }, end : 57 } }, orderedAttributes: [ { type : 'macro', start : 7, name : 'attrib3', value : { type : 'macrocall', start : 16, params : [ { type : 'macro-parameter', start : 25, value : 'two', name : 'one', end : 33 }, { type : 'macro-parameter', start : 33, value : 'four and five', name : 'three', end : 55 } ], name : 'myMacro', end : 57 }, end : 57 } ], tag : '$mytag', end : 58 }
181
187
  );
182
188
  expect(parser.parseTag("<$mytag attrib1='something' attrib2=else thing attrib3=<<myMacro one:two three:'four and five'>>>",0)).toEqual(
183
- { type : 'mytag', start : 0, attributes : { attrib1 : { type : 'string', start : 7, name : 'attrib1', value : 'something', end : 27 }, attrib2 : { type : 'string', start : 27, name : 'attrib2', value : 'else', end : 40 }, thing : { type : 'string', start : 40, name : 'thing', value : 'true', end : 47 }, attrib3 : { type : 'macro', start : 47, name : 'attrib3', value : { type : 'macrocall', start : 55, params : [ { type : 'macro-parameter', start : 64, value : 'two', name : 'one', end : 72 }, { type : 'macro-parameter', start : 72, value : 'four and five', name : 'three', end : 94 } ], name : 'myMacro', end : 96 }, end : 96 } }, tag : '$mytag', end : 97 }
189
+ { type : 'mytag', start : 0, attributes : { attrib1 : { type : 'string', start : 7, name : 'attrib1', value : 'something', end : 27 }, attrib2 : { type : 'string', start : 27, name : 'attrib2', value : 'else', end : 40 }, thing : { type : 'string', start : 40, name : 'thing', value : 'true', end : 47 }, attrib3 : { type : 'macro', start : 47, name : 'attrib3', value : { type : 'macrocall', start : 55, params : [ { type : 'macro-parameter', start : 64, value : 'two', name : 'one', end : 72 }, { type : 'macro-parameter', start : 72, value : 'four and five', name : 'three', end : 94 } ], name : 'myMacro', end : 96 }, end : 96 } }, orderedAttributes: [ { type : 'string', start : 7, name : 'attrib1', value : 'something', end : 27 }, { type : 'string', start : 27, name : 'attrib2', value : 'else', end : 40 }, { type : 'string', start : 40, name : 'thing', value : 'true', end : 47 }, { type : 'macro', start : 47, name : 'attrib3', value : { type : 'macrocall', start : 55, params : [ { type : 'macro-parameter', start : 64, value : 'two', name : 'one', end : 72 }, { type : 'macro-parameter', start : 72, value : 'four and five', name : 'three', end : 94 } ], name : 'myMacro', end : 96 }, end : 96 } ], tag : '$mytag', end : 97 }
184
190
  );
185
191
  });
186
192
 
187
193
  it("should find and parse HTML tags", function() {
188
194
  expect(parser.findNextTag("<something <mytag>",1)).toEqual(
189
- { type : 'element', start : 11, attributes : { }, tag : 'mytag', end : 18 }
195
+ { type : 'element', start : 11, attributes : { }, orderedAttributes: [ ], tag : 'mytag', end : 18 }
190
196
  );
191
197
  expect(parser.findNextTag("something else </mytag>",0)).toEqual(
192
198
  null
193
199
  );
194
200
  expect(parser.findNextTag("<<some other stuff>> <mytag>",0)).toEqual(
195
- { type : 'element', start : 1, attributes : { other : { type : 'string', value : 'true', start : 6, name : 'other', end : 13 }, stuff : { type : 'string', value : 'true', start : 13, name : 'stuff', end : 18 } }, tag : 'some', end : 19 }
201
+ { type : 'element', start : 1, attributes : { other : { type : 'string', value : 'true', start : 6, name : 'other', end : 13 }, stuff : { type : 'string', value : 'true', start : 13, name : 'stuff', end : 18 } }, orderedAttributes: [ { type : 'string', value : 'true', start : 6, name : 'other', end : 13 }, { type : 'string', value : 'true', start : 13, name : 'stuff', end : 18 } ], tag : 'some', end : 19 }
196
202
  );
197
203
  expect(parser.findNextTag("<<some other stuff>> <mytag>",2)).toEqual(
198
- { type : 'element', start : 21, attributes : { }, tag : 'mytag', end : 28 }
204
+ { type : 'element', start : 21, attributes : { }, orderedAttributes: [ ], tag : 'mytag', end : 28 }
199
205
  );
200
206
  });
201
207