tiddlywiki 5.1.23 → 5.2.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 (1303) hide show
  1. package/.eslintignore +5 -12
  2. package/.eslintrc.yml +17 -1
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +5 -0
  4. package/.github/workflows/ci.yml +3 -0
  5. package/bin/build-site.sh +2 -2
  6. package/bin/build-tw-org.sh +97 -0
  7. package/bin/optimise-svgs.js +43 -41
  8. package/boot/boot.js +155 -47
  9. package/boot/bootprefix.js +1 -0
  10. package/contributing.md +1 -1
  11. package/core/copyright.tid +1 -1
  12. package/core/images/minus-button.tid +4 -0
  13. package/core/images/plugin-generic-language.tid +1 -1
  14. package/core/images/plugin-generic-plugin.tid +1 -1
  15. package/core/images/plugin-generic-theme.tid +1 -1
  16. package/core/images/plus-button.tid +4 -0
  17. package/core/language/en-GB/ControlPanel.multids +19 -2
  18. package/core/language/en-GB/Docs/ModuleTypes.multids +1 -0
  19. package/core/language/en-GB/EditTemplate.multids +2 -0
  20. package/core/language/en-GB/Fields.multids +4 -3
  21. package/core/language/en-GB/Help/listen.tid +3 -2
  22. package/core/language/en-GB/Help/render.tid +5 -4
  23. package/core/language/en-GB/Help/save.tid +1 -1
  24. package/core/language/en-GB/Import.multids +6 -0
  25. package/core/language/en-GB/Misc.multids +4 -3
  26. package/core/modules/commander.js +1 -1
  27. package/core/modules/commands/fetch.js +1 -1
  28. package/core/modules/commands/init.js +1 -1
  29. package/core/modules/commands/render.js +55 -54
  30. package/core/modules/commands/rendertiddlers.js +1 -1
  31. package/core/modules/commands/savelibrarytiddlers.js +1 -1
  32. package/core/modules/commands/savewikifolder.js +18 -4
  33. package/core/modules/config.js +1 -1
  34. package/core/modules/deserializers.js +102 -89
  35. package/core/modules/editor/engines/framed.js +20 -4
  36. package/core/modules/editor/engines/simple.js +6 -2
  37. package/core/modules/editor/factory.js +85 -12
  38. package/core/modules/editor/operations/text/focus-editor.js +17 -0
  39. package/core/modules/editor/operations/text/insert-text.js +23 -0
  40. package/core/modules/editor/operations/text/wrap-lines.js +5 -3
  41. package/core/modules/filterrunprefixes/cascade.js +53 -0
  42. package/core/modules/filterrunprefixes/filter.js +22 -4
  43. package/core/modules/filterrunprefixes/map.js +46 -0
  44. package/core/modules/filterrunprefixes/reduce.js +19 -19
  45. package/core/modules/filterrunprefixes/sort.js +62 -0
  46. package/core/modules/filters/all.js +3 -3
  47. package/core/modules/filters/backlinks.js +3 -3
  48. package/core/modules/filters/contains.js +1 -1
  49. package/core/modules/filters/crypto.js +27 -0
  50. package/core/modules/filters/deserializers.js +27 -0
  51. package/core/modules/filters/editiondescription.js +1 -1
  52. package/core/modules/filters/encodings.js +3 -13
  53. package/core/modules/filters/field.js +1 -1
  54. package/core/modules/filters/fields.js +1 -1
  55. package/core/modules/filters/filter.js +12 -1
  56. package/core/modules/filters/format/date.js +2 -2
  57. package/core/modules/filters/format/relativedate.js +2 -2
  58. package/core/modules/filters/format/titlelist.js +25 -0
  59. package/core/modules/filters/has.js +1 -1
  60. package/core/modules/filters/insertbefore.js +1 -1
  61. package/core/modules/filters/is/draft.js +3 -3
  62. package/core/modules/filters/links.js +3 -3
  63. package/core/modules/filters/listops.js +14 -1
  64. package/core/modules/filters/lookup.js +29 -6
  65. package/core/modules/filters/math.js +102 -7
  66. package/core/modules/filters/moduleproperty.js +30 -0
  67. package/core/modules/filters/modules.js +16 -4
  68. package/core/modules/filters/prefix.js +30 -12
  69. package/core/modules/filters/range.js +7 -3
  70. package/core/modules/filters/reduce.js +2 -0
  71. package/core/modules/filters/regexp.js +1 -1
  72. package/core/modules/filters/removeprefix.js +16 -6
  73. package/core/modules/filters/removesuffix.js +20 -6
  74. package/core/modules/filters/search.js +1 -0
  75. package/core/modules/filters/sortsub.js +7 -4
  76. package/core/modules/filters/strings.js +26 -14
  77. package/core/modules/filters/suffix.js +32 -10
  78. package/core/modules/filters/tag.js +1 -1
  79. package/core/modules/filters/untagged.js +7 -14
  80. package/core/modules/filters/x-listops.js +5 -5
  81. package/core/modules/filters.js +32 -14
  82. package/core/modules/indexers/field-indexer.js +1 -1
  83. package/core/modules/indexers/tag-indexer.js +2 -2
  84. package/core/modules/info/platform.js +1 -1
  85. package/core/modules/keyboard.js +15 -7
  86. package/core/modules/macros/{uniquetitle.js → unusedtitle.js} +8 -7
  87. package/core/modules/parsers/htmlparser.js +4 -2
  88. package/core/modules/parsers/imageparser.js +1 -0
  89. package/core/modules/parsers/parseutils.js +41 -11
  90. package/core/modules/parsers/wikiparser/rules/commentblock.js +8 -2
  91. package/core/modules/parsers/wikiparser/rules/commentinline.js +1 -1
  92. package/core/modules/parsers/wikiparser/rules/html.js +7 -10
  93. package/core/modules/parsers/wikiparser/rules/import.js +1 -1
  94. package/core/modules/parsers/wikiparser/rules/macrocallblock.js +24 -28
  95. package/core/modules/parsers/wikiparser/rules/macrocallinline.js +17 -27
  96. package/core/modules/parsers/wikiparser/rules/table.js +1 -1
  97. package/core/modules/parsers/wikiparser/wikiparser.js +48 -25
  98. package/core/modules/pluginswitcher.js +1 -1
  99. package/core/modules/saver-handler.js +2 -1
  100. package/core/modules/savers/andtidwiki.js +1 -1
  101. package/core/modules/savers/download.js +1 -1
  102. package/core/modules/savers/gitea.js +3 -3
  103. package/core/modules/savers/github.js +3 -3
  104. package/core/modules/savers/gitlab.js +3 -3
  105. package/core/modules/savers/put.js +6 -3
  106. package/core/modules/savers/tiddlyfox.js +1 -1
  107. package/core/modules/savers/twedit.js +1 -1
  108. package/core/modules/savers/upload.js +15 -3
  109. package/core/modules/server/routes/delete-tiddler.js +1 -1
  110. package/core/modules/server/routes/get-favicon.js +1 -2
  111. package/core/modules/server/routes/get-file.js +21 -17
  112. package/core/modules/server/routes/get-index.js +1 -23
  113. package/core/modules/server/routes/get-login-basic.js +3 -2
  114. package/core/modules/server/routes/get-status.js +1 -2
  115. package/core/modules/server/routes/get-tiddler-html.js +3 -3
  116. package/core/modules/server/routes/get-tiddler.js +2 -3
  117. package/core/modules/server/routes/get-tiddlers-json.js +1 -2
  118. package/core/modules/server/routes/put-tiddler.js +3 -3
  119. package/core/modules/server/server.js +113 -17
  120. package/core/modules/startup/browser-messaging.js +2 -2
  121. package/core/modules/startup/favicon.js +1 -1
  122. package/core/modules/startup/load-modules.js +3 -0
  123. package/core/modules/startup/render.js +8 -3
  124. package/core/modules/startup/rootwidget.js +19 -4
  125. package/core/modules/startup/startup.js +2 -3
  126. package/core/modules/startup/story.js +5 -5
  127. package/core/modules/startup/windows.js +22 -9
  128. package/core/modules/storyviews/classic.js +5 -5
  129. package/core/modules/storyviews/pop.js +3 -3
  130. package/core/modules/storyviews/zoomin.js +3 -3
  131. package/core/modules/syncer.js +2 -6
  132. package/core/modules/tiddler.js +3 -3
  133. package/core/modules/upgraders/plugins.js +1 -1
  134. package/core/modules/upgraders/system.js +5 -6
  135. package/core/modules/utils/crypto.js +2 -2
  136. package/core/modules/utils/csv.js +1 -1
  137. package/core/modules/utils/dom/dom.js +6 -2
  138. package/core/modules/utils/dom/dragndrop.js +33 -10
  139. package/core/modules/utils/dom/http.js +18 -1
  140. package/core/modules/utils/dom/modal.js +3 -2
  141. package/core/modules/utils/dom/popup.js +1 -1
  142. package/core/modules/utils/dom/scroller.js +12 -8
  143. package/core/modules/utils/edition-info.js +1 -5
  144. package/core/modules/{startup/css-escape-polyfill.js → utils/escapecss.js} +17 -27
  145. package/core/modules/utils/fakedom.js +1 -1
  146. package/core/modules/utils/filesystem.js +89 -52
  147. package/core/modules/utils/linked-list.js +143 -57
  148. package/core/modules/utils/logger.js +2 -2
  149. package/core/modules/utils/performance.js +1 -1
  150. package/core/modules/utils/pluginmaker.js +2 -4
  151. package/core/modules/utils/transliterate.js +8 -1
  152. package/core/modules/utils/utils.js +80 -8
  153. package/core/modules/widgets/action-confirm.js +4 -3
  154. package/core/modules/widgets/action-createtiddler.js +12 -5
  155. package/core/modules/widgets/action-deletefield.js +1 -1
  156. package/core/modules/widgets/action-listops.js +6 -11
  157. package/core/modules/widgets/action-log.js +3 -3
  158. package/core/modules/widgets/action-navigate.js +12 -1
  159. package/core/modules/widgets/action-popup.js +3 -1
  160. package/core/modules/widgets/action-sendmessage.js +17 -7
  161. package/core/modules/widgets/action-setmultiplefields.js +86 -0
  162. package/core/modules/widgets/button.js +5 -2
  163. package/core/modules/widgets/codeblock.js +7 -1
  164. package/core/modules/widgets/draggable.js +17 -8
  165. package/core/modules/widgets/droppable.js +2 -2
  166. package/core/modules/widgets/dropzone.js +122 -25
  167. package/core/modules/widgets/edit-bitmap.js +6 -6
  168. package/core/modules/widgets/edit-shortcut.js +3 -3
  169. package/core/modules/widgets/element.js +1 -1
  170. package/core/modules/widgets/entity.js +1 -1
  171. package/core/modules/widgets/eventcatcher.js +52 -23
  172. package/core/modules/widgets/fieldmangler.js +16 -30
  173. package/core/modules/widgets/image.js +15 -5
  174. package/core/modules/widgets/importvariables.js +2 -2
  175. package/core/modules/widgets/jsontiddler.js +91 -0
  176. package/core/modules/widgets/keyboard.js +39 -20
  177. package/core/modules/widgets/let.js +96 -0
  178. package/core/modules/widgets/link.js +9 -2
  179. package/core/modules/widgets/linkcatcher.js +4 -4
  180. package/core/modules/widgets/list.js +65 -26
  181. package/core/modules/widgets/log.js +1 -1
  182. package/core/modules/widgets/macrocall.js +1 -1
  183. package/core/modules/widgets/messagecatcher.js +110 -0
  184. package/core/modules/widgets/navigator.js +41 -41
  185. package/core/modules/widgets/radio.js +14 -5
  186. package/core/modules/widgets/raw.js +1 -1
  187. package/core/modules/widgets/reveal.js +4 -4
  188. package/core/modules/widgets/scrollable.js +32 -30
  189. package/core/modules/widgets/select.js +1 -1
  190. package/core/modules/widgets/setmultiplevariables.js +81 -0
  191. package/core/modules/widgets/setvariable.js +2 -2
  192. package/core/modules/widgets/text.js +1 -1
  193. package/core/modules/widgets/tiddler.js +1 -1
  194. package/core/modules/widgets/transclude.js +9 -2
  195. package/core/modules/widgets/vars.js +3 -5
  196. package/core/modules/widgets/view.js +10 -3
  197. package/core/modules/widgets/widget.js +89 -35
  198. package/core/modules/widgets/wikify.js +1 -1
  199. package/core/modules/wiki-bulkops.js +20 -15
  200. package/core/modules/wiki.js +213 -89
  201. package/core/palettes/Blanca.tid +1 -0
  202. package/core/palettes/Blue.tid +1 -0
  203. package/core/palettes/BrightMute.tid +1 -0
  204. package/core/palettes/ContrastDark.tid +1 -0
  205. package/core/palettes/ContrastLight.tid +1 -0
  206. package/core/palettes/CupertinoDark.tid +1 -0
  207. package/core/palettes/DarkPhotos.tid +1 -0
  208. package/core/palettes/DesertSand.tid +1 -0
  209. package/core/palettes/GruvBoxDark.tid +1 -0
  210. package/core/palettes/Nord.tid +1 -0
  211. package/core/palettes/Rocker.tid +1 -0
  212. package/core/palettes/SolarFlare.tid +1 -0
  213. package/core/palettes/SolarizedDark.tid +1 -0
  214. package/core/palettes/SolarizedLight.tid +1 -0
  215. package/core/palettes/SpartanDay.tid +1 -0
  216. package/core/palettes/SpartanNight.tid +1 -0
  217. package/core/palettes/Twilight.tid +1 -0
  218. package/core/palettes/Vanilla.tid +1 -0
  219. package/core/templates/external-js/save-all-external-js.tid +1 -0
  220. package/core/templates/external-js/save-offline-external-js.tid +8 -0
  221. package/core/templates/external-js/tiddlywiki.js.tiddlers.tid +4 -0
  222. package/core/templates/external-js/tiddlywiki5-external-js.html.tid +3 -2
  223. package/core/templates/html-div-tiddler.tid +1 -1
  224. package/core/templates/html-json-skinny-tiddler.tid +4 -0
  225. package/core/templates/html-json-tiddler.tid +3 -0
  226. package/core/templates/save-lazy-images.tid +1 -1
  227. package/core/templates/store.area.template.html.tid +35 -12
  228. package/core/templates/tiddlywiki5.html.tid +1 -1
  229. package/core/ui/Components/plugin-info.tid +57 -55
  230. package/core/ui/Components/tag-link.tid +1 -1
  231. package/core/ui/ControlPanel/Cascades/EditTemplateBody.tid +9 -0
  232. package/core/ui/ControlPanel/Cascades/FieldEditor.tid +9 -0
  233. package/core/ui/ControlPanel/Cascades/StoryTiddler.tid +9 -0
  234. package/core/ui/ControlPanel/Cascades/TiddlerColour.tid +9 -0
  235. package/core/ui/ControlPanel/Cascades/TiddlerIcon.tid +9 -0
  236. package/core/ui/ControlPanel/Cascades/ViewTemplateBody.tid +9 -0
  237. package/core/ui/ControlPanel/Cascades/ViewTemplateTitle.tid +9 -0
  238. package/core/ui/ControlPanel/Cascades.tid +9 -0
  239. package/core/ui/ControlPanel/Plugins/Installed/Languages.tid +1 -0
  240. package/core/ui/ControlPanel/Plugins/Installed/Plugins.tid +1 -0
  241. package/core/ui/ControlPanel/Plugins/Installed/Themes.tid +1 -0
  242. package/core/ui/ControlPanel/Plugins.tid +1 -1
  243. package/core/ui/ControlPanel/Saving/GitHub.tid +1 -1
  244. package/core/ui/ControlPanel/Saving/TiddlySpot.tid +0 -2
  245. package/core/ui/EditTemplate/Preview/diffs-current.tid +1 -1
  246. package/core/ui/EditTemplate/Preview/diffs-shadow.tid +1 -1
  247. package/core/ui/EditTemplate/body/canonical-uri.tid +13 -0
  248. package/core/ui/EditTemplate/body/default.tid +38 -0
  249. package/core/ui/EditTemplate/body-editor.tid +10 -1
  250. package/core/ui/EditTemplate/body-toolbar-button.tid +8 -6
  251. package/core/ui/EditTemplate/body.tid +1 -47
  252. package/core/ui/EditTemplate/fieldEditor-default.tid +3 -0
  253. package/core/ui/EditTemplate/fields.tid +7 -5
  254. package/core/ui/EditTemplate/tags.tid +3 -3
  255. package/core/ui/EditTemplate/title.tid +1 -1
  256. package/core/ui/EditTemplate/type.tid +2 -2
  257. package/core/ui/EditTemplate.tid +2 -2
  258. package/core/ui/EditorToolbar/file-import.tid +41 -0
  259. package/core/ui/EditorToolbar/link-dropdown.tid +1 -1
  260. package/core/ui/EditorToolbar/preview.tid +4 -4
  261. package/core/ui/EditorToolbar/stamp-dropdown-item-template.tid +53 -0
  262. package/core/ui/EditorToolbar/stamp-dropdown.tid +1 -43
  263. package/core/ui/EditorToolbar/stamp.tid +1 -0
  264. package/core/ui/ExportTiddlyWikiCore.tid +22 -0
  265. package/core/ui/ImportListing.tid +20 -1
  266. package/core/ui/ListTaggedCascade.tid +14 -0
  267. package/core/ui/MoreSideBar/plugins/Languages.tid +1 -1
  268. package/core/ui/MoreSideBar/plugins/Plugins.tid +1 -1
  269. package/core/ui/MoreSideBar/plugins/Theme.tid +1 -1
  270. package/core/ui/PageControls/advanced-search.tid +1 -0
  271. package/core/ui/PageControls/closeall.tid +4 -1
  272. package/core/ui/PageControls/controlpanel.tid +1 -0
  273. package/core/ui/PageControls/encryption.tid +6 -2
  274. package/core/ui/PageControls/export-tiddlywikicore.tid +22 -0
  275. package/core/ui/PageControls/fold-all.tid +4 -1
  276. package/core/ui/PageControls/full-screen.tid +4 -1
  277. package/core/ui/PageControls/home.tid +4 -1
  278. package/core/ui/PageControls/import.tid +4 -1
  279. package/core/ui/PageControls/language.tid +0 -1
  280. package/core/ui/PageControls/manager.tid +4 -1
  281. package/core/ui/PageControls/more-page-actions.tid +4 -1
  282. package/core/ui/PageControls/new-image.tid +3 -1
  283. package/core/ui/PageControls/new-journal.tid +4 -1
  284. package/core/ui/PageControls/newtiddler.tid +3 -1
  285. package/core/ui/PageControls/palette.tid +0 -1
  286. package/core/ui/PageControls/print.tid +4 -1
  287. package/core/ui/PageControls/refresh.tid +4 -1
  288. package/core/ui/PageControls/savewiki.tid +4 -1
  289. package/core/ui/PageControls/storyview.tid +0 -1
  290. package/core/ui/PageControls/tag-button.tid +4 -1
  291. package/core/ui/PageControls/theme.tid +0 -1
  292. package/core/ui/PageControls/timestamp.tid +6 -2
  293. package/core/ui/PageControls/unfold-all.tid +4 -1
  294. package/core/ui/PageTemplate/story.tid +1 -1
  295. package/core/ui/PaletteManager.tid +1 -1
  296. package/core/ui/PluginListItemTemplate.tid +13 -3
  297. package/core/ui/SideBar/Open.tid +2 -2
  298. package/core/ui/StoryTiddlerTemplate.tid +3 -0
  299. package/core/ui/TagPickerTagTemplate.tid +3 -3
  300. package/core/ui/TagTemplate.tid +2 -2
  301. package/core/ui/TiddlerIcon.tid +8 -0
  302. package/core/ui/ViewTemplate/body/blank.tid +3 -0
  303. package/core/ui/ViewTemplate/body/code.tid +3 -0
  304. package/core/ui/ViewTemplate/body/default.tid +7 -0
  305. package/core/ui/ViewTemplate/{import.tid → body/import.tid} +9 -3
  306. package/core/ui/ViewTemplate/body/plugin.tid +10 -0
  307. package/core/ui/ViewTemplate/body.tid +1 -9
  308. package/core/ui/ViewTemplate/title/default.tid +6 -0
  309. package/core/ui/ViewTemplate/title/system.tid +6 -0
  310. package/core/ui/ViewTemplate/title.tid +6 -22
  311. package/core/ui/ViewTemplate.tid +6 -1
  312. package/core/ui/ViewToolbar/clone.tid +0 -1
  313. package/core/ui/ViewToolbar/close-others.tid +0 -1
  314. package/core/ui/ViewToolbar/edit.tid +0 -1
  315. package/core/ui/ViewToolbar/fold-others.tid +0 -1
  316. package/core/ui/ViewToolbar/fold.tid +0 -2
  317. package/core/ui/ViewToolbar/info.tid +1 -0
  318. package/core/ui/ViewToolbar/more-tiddler-actions.tid +0 -1
  319. package/core/ui/ViewToolbar/new-here.tid +1 -0
  320. package/core/ui/ViewToolbar/new-journal-here.tid +1 -0
  321. package/core/ui/ViewToolbar/open-window.tid +0 -1
  322. package/core/ui/ViewToolbar/permalink.tid +0 -1
  323. package/core/ui/ViewToolbar/permaview.tid +0 -1
  324. package/core/wiki/allfields.tid +1 -1
  325. package/core/wiki/config/EditTabIndex.tid +1 -2
  326. package/core/wiki/config/EditTemplateBodyFilters.multids +5 -0
  327. package/core/wiki/config/EditorEnableImportFilter.tid +4 -0
  328. package/core/wiki/config/EditorImportContentTypesFilter.tid +4 -0
  329. package/core/wiki/config/FieldEditorFilters.multids +4 -0
  330. package/core/wiki/config/OfficialPluginLibrary.tid +1 -1
  331. package/core/wiki/config/StoryTiddlerTemplateFilters.multids +5 -0
  332. package/core/wiki/config/TiddlerColourFilters.multids +5 -0
  333. package/core/wiki/config/TiddlerIconFilters.multids +5 -0
  334. package/core/wiki/config/ViewTemplateBodyFilters.multids +9 -0
  335. package/core/wiki/config/ViewTemplateTitleFilters.multids +5 -0
  336. package/core/wiki/config/shortcuts/shortcuts-mac.multids +0 -2
  337. package/core/wiki/config/shortcuts/shortcuts.multids +2 -2
  338. package/core/wiki/debugstylesheets.tid +9 -0
  339. package/core/wiki/macros/export.tid +6 -6
  340. package/core/wiki/macros/list.tid +2 -2
  341. package/core/wiki/macros/tag.tid +4 -2
  342. package/core/wiki/peek-stylesheets.tid +3 -0
  343. package/core/wiki/tags/ControlPanelPlugins.tid +1 -1
  344. package/core/wiki/tags/EditTemplateBodyFilter.tid +2 -0
  345. package/core/wiki/tags/StoryTiddlerTemplateFilter.tid +2 -0
  346. package/core/wiki/tags/TiddlerColourFilter.tid +3 -0
  347. package/core/wiki/tags/TiddlerIconFilter.tid +3 -0
  348. package/core/wiki/tags/ViewTemplateBodyFilter.tid +3 -0
  349. package/core/wiki/tags/ViewTemplateTitleFilter.tid +3 -0
  350. package/core/wiki/title.tid +4 -1
  351. package/core/wiki/viewswitcher.tid +2 -2
  352. package/editions/dev/tiddlers/HelloThere.tid +3 -1
  353. package/editions/dev/tiddlers/from Heigele and Jurke/Data-Storage.tid +1 -9
  354. package/editions/dev/tiddlers/from Heigele and Jurke/Syncadaptor.tid +2 -2
  355. package/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid +1 -1
  356. package/editions/dev/tiddlers/from tw5.com/moduletypes/WikiRuleModules.tid +6 -5
  357. package/editions/dev/tiddlers/new/Data Storage in Single File TiddlyWiki.tid +100 -0
  358. package/editions/dev/tiddlers/new/Data Storage.tid +10 -0
  359. package/editions/dev/tiddlers/new/Hook_ th-before-importing.tid +68 -0
  360. package/editions/dev/tiddlers/new/Hook_ th-closing-tiddler.tid +20 -0
  361. package/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid +3 -1
  362. package/editions/dev/tiddlers/new/ParserSubclassingMechanism.tid +42 -0
  363. package/editions/dev/tiddlers/new/TiddlyWiki Drag and Drop Interop.tid +15 -0
  364. package/editions/dev/tiddlers/new/dragndropinterop.html +35 -0
  365. package/editions/dev/tiddlers/new/dragndropinterop.html.meta +3 -0
  366. package/editions/dev/tiddlers/new/save-dragndropinterop.tid +3 -0
  367. package/editions/dynaviewdemo/tiddlers/SideBar-Open.tid +1 -1
  368. package/editions/dynaviewdemo/tiddlers/ViewTemplate.tid +4 -7
  369. package/editions/es-ES/tiddlers/Page_and_tiddler_layout_customisation.tid +1 -1
  370. package/editions/fr-FR/output/images/Blurry%20Lawn.jpg +0 -0
  371. package/editions/fr-FR/output/images/Newnham%20Horizon.jpg +0 -0
  372. package/editions/fr-FR/output/index.html +5051 -0
  373. package/editions/fr-FR/output/text/Alice%20in%20Wonderland.tid +3709 -0
  374. package/editions/fr-FR/tiddlers/$ _config_ViewTemplateTitleFilters_fr-default.tid +7 -0
  375. package/editions/fr-FR/tiddlers/$ _core_ui_ViewTemplate_title_fr-default.tid +8 -0
  376. package/editions/fr-FR/tiddlers/$__deprecated.tid +9 -0
  377. package/editions/fr-FR/tiddlers/$__editions_fr-FR_util-macros.tid +1 -0
  378. package/editions/fr-FR/tiddlers/$__editions_tw5.com_doc-macros.tid +69 -5
  379. package/editions/fr-FR/tiddlers/$__editions_tw5.com_version-macros.tid +15 -0
  380. package/editions/fr-FR/tiddlers/$__editions_tw5.com_wikitext-macros.tid +2 -2
  381. package/editions/fr-FR/tiddlers/Block_Quotes_in_WikiText.tid +15 -8
  382. package/editions/fr-FR/tiddlers/CamelCase.tid +6 -3
  383. package/editions/fr-FR/tiddlers/Code Blocks in WikiText.tid +27 -16
  384. package/editions/fr-FR/tiddlers/Community Links Aggregator.tid +11 -0
  385. package/editions/fr-FR/tiddlers/Community.tid +6 -4
  386. package/editions/fr-FR/tiddlers/Creating and editing tiddlers.tid +11 -11
  387. package/editions/fr-FR/tiddlers/Deprecated - What does it mean.tid +17 -0
  388. package/editions/fr-FR/tiddlers/Developers.tid +10 -5
  389. package/editions/fr-FR/tiddlers/Federatial.tid +11 -0
  390. package/editions/fr-FR/tiddlers/Formatting in WikiText.tid +12 -12
  391. package/editions/fr-FR/tiddlers/Forums.tid +27 -13
  392. package/editions/fr-FR/tiddlers/GettingStarted.tid +16 -14
  393. package/editions/fr-FR/tiddlers/Glossaire en-GB -_ fr-FR.tid +3 -1
  394. package/editions/fr-FR/tiddlers/HTML in WikiText.tid +77 -28
  395. package/editions/fr-FR/tiddlers/Headings in WikiText.tid +2 -2
  396. package/editions/fr-FR/tiddlers/HelloThere.tid +15 -12
  397. package/editions/fr-FR/tiddlers/HelloThumbnail - Latest Version.tid +1 -1
  398. package/editions/fr-FR/tiddlers/How to export tiddlers.tid +31 -0
  399. package/editions/fr-FR/tiddlers/ImageWidget.tid +33 -0
  400. package/editions/fr-FR/tiddlers/Images in WikiText.tid +69 -0
  401. package/editions/fr-FR/tiddlers/Importing Tiddlers.tid +26 -0
  402. package/editions/fr-FR/tiddlers/JeremyRuston.tid +9 -9
  403. package/editions/fr-FR/tiddlers/Linking in WikiText.tid +108 -19
  404. package/editions/fr-FR/tiddlers/ListField.tid +6 -6
  405. package/editions/fr-FR/tiddlers/Macros in WikiText.tid +5 -5
  406. package/editions/fr-FR/tiddlers/Macros.tid +17 -8
  407. package/editions/fr-FR/tiddlers/Page and tiddler layout customisation.tid +1 -1
  408. package/editions/fr-FR/tiddlers/PermaLinks.tid +19 -19
  409. package/editions/fr-FR/tiddlers/Philosophy of Tiddlers.tid +2 -2
  410. package/editions/fr-FR/tiddlers/Saving.tid +63 -4
  411. package/editions/fr-FR/tiddlers/Share Plugin.tid +15 -0
  412. package/editions/fr-FR/tiddlers/{Sharing_a_TiddlyWiki_on_Dropbox.tid → Sharing a TiddlyWiki on Dropbox.tid } +12 -4
  413. package/editions/fr-FR/tiddlers/Sharing your tiddlers with others.tid +18 -0
  414. package/editions/fr-FR/tiddlers/Structuring TiddlyWiki.tid +6 -6
  415. package/editions/fr-FR/tiddlers/Styles and Classes in WikiText.tid +11 -10
  416. package/editions/fr-FR/tiddlers/Tagging.tid +24 -18
  417. package/editions/fr-FR/tiddlers/TaskManagementExample.tid +3 -1
  418. package/editions/fr-FR/tiddlers/TiddlerLinks.tid +5 -5
  419. package/editions/fr-FR/tiddlers/TiddlyFox Apocalypse.tid +46 -0
  420. package/editions/fr-FR/tiddlers/TiddlyFox.tid +6 -3
  421. package/editions/fr-FR/tiddlers/TiddlyWiki.tid +6 -4
  422. package/editions/fr-FR/tiddlers/_TiddlyWiki for Scholars_ by Alberto Molina.tid +2 -2
  423. package/editions/innerwikidemo/tiddlywiki.info +2 -1
  424. package/editions/introduction/tiddlers/slides/TiddlyWiki.tid +1 -1
  425. package/editions/introduction/tiddlywiki.info +8 -1
  426. package/editions/prerelease/tiddlers/{Release 5.1.24.tid → Release 5.2.3.tid } +44 -12
  427. package/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +1 -1
  428. package/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +1 -1
  429. package/editions/prerelease/tiddlers/system/download-empty.tid +10 -0
  430. package/editions/server-external-js/tiddlywiki.info +7 -4
  431. package/editions/test/tiddlers/tests/data/deserializers/case 1.tid +4 -0
  432. package/editions/test/tiddlers/tests/data/deserializers/case 2.tid +12 -0
  433. package/editions/test/tiddlers/tests/data/deserializers/case 3.tid +18 -0
  434. package/editions/test/tiddlers/tests/data/deserializers/case 4.tid +19 -0
  435. package/editions/test/tiddlers/tests/data/deserializers/case 5.tid +20 -0
  436. package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal-all.tid +33 -0
  437. package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-horizontal.tid +43 -0
  438. package/editions/test/tiddlers/tests/data/tabs-macro/expected-html-tabs-vertical.tid +43 -0
  439. package/editions/test/tiddlers/tests/test-action-widgets.js +55 -0
  440. package/editions/test/tiddlers/tests/test-deserializers.js +39 -0
  441. package/editions/test/tiddlers/tests/test-filters.js +1018 -753
  442. package/editions/test/tiddlers/tests/test-html-parser.js +33 -12
  443. package/editions/test/tiddlers/tests/test-linked-list.js +182 -66
  444. package/editions/test/tiddlers/tests/test-parsetextreference.js +132 -0
  445. package/editions/test/tiddlers/tests/test-prefixes-filter.js +319 -5
  446. package/editions/test/tiddlers/tests/test-tags.js +19 -0
  447. package/editions/test/tiddlers/tests/test-utils.js +10 -0
  448. package/editions/test/tiddlers/tests/test-widget.js +189 -0
  449. package/editions/test/tiddlers/tests/test-wikitext-parser.js +140 -20
  450. package/editions/test/tiddlers/tests/test-wikitext-tabs-macro.js +86 -0
  451. package/editions/tw.org/tiddlers/$__DefaultTiddlers.tid +6 -0
  452. package/editions/tw.org/tiddlers/$__SiteSubtitle.tid +6 -0
  453. package/editions/tw.org/tiddlers/$__SiteTitle.tid +6 -0
  454. package/editions/tw.org/tiddlers/$__StoryList.tid +3 -0
  455. package/editions/tw.org/tiddlers/$__favicon.ico.png +0 -0
  456. package/editions/tw.org/tiddlers/$__favicon.ico.png.meta +4 -0
  457. package/editions/tw.org/tiddlers/$__palette.tid +6 -0
  458. package/editions/tw.org/tiddlers/$__palettes_BlueFlavour +165 -0
  459. package/editions/tw.org/tiddlers/$__palettes_BlueFlavour.meta +8 -0
  460. package/editions/tw.org/tiddlers/$__palettes_FlowingSun +165 -0
  461. package/editions/tw.org/tiddlers/$__palettes_FlowingSun.meta +8 -0
  462. package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodyfontsize.tid +6 -0
  463. package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_bodylineheight.tid +6 -0
  464. package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_metrics_sidebarwidth.tid +6 -0
  465. package/editions/tw.org/tiddlers/$__themes_tiddlywiki_vanilla_options_sidebarlayout.tid +6 -0
  466. package/editions/tw.org/tiddlers/HelloThere.tid +14 -0
  467. package/editions/tw.org/tiddlers/Table of Contents.tid +11 -0
  468. package/editions/tw.org/tiddlers/TiddlyWiki.tid +8 -0
  469. package/editions/tw.org/tiddlywiki.info +30 -0
  470. package/editions/tw5.com/tiddlers/$__StoryList.tid +5 -0
  471. package/editions/tw5.com/tiddlers/about/History of TiddlyWiki.tid +1 -1
  472. package/editions/tw5.com/tiddlers/{License.tid → about/License.tid} +0 -0
  473. package/editions/tw5.com/tiddlers/commands/NamedCommandParameters.tid +2 -2
  474. package/editions/tw5.com/tiddlers/community/Community Editions.tid +24 -0
  475. package/editions/tw5.com/tiddlers/community/Community Links Aggregator.tid +10 -0
  476. package/editions/tw5.com/tiddlers/community/Community Palettes.tid +24 -0
  477. package/editions/tw5.com/tiddlers/community/Community Plugins.tid +24 -0
  478. package/editions/tw5.com/tiddlers/community/Community Themes.tid +24 -0
  479. package/editions/tw5.com/tiddlers/community/Community.tid +5 -3
  480. package/editions/tw5.com/tiddlers/community/Contributing.tid +49 -13
  481. package/editions/tw5.com/tiddlers/community/Contributor License Agreement.tid +3 -3
  482. package/editions/tw5.com/tiddlers/community/Forums.tid +16 -13
  483. package/editions/tw5.com/tiddlers/community/Other Resources.tid +24 -0
  484. package/editions/tw5.com/tiddlers/community/Signing the Contributor License Agreement.tid +2 -2
  485. package/editions/tw5.com/tiddlers/community/TW Icons by morosanuae.tid +9 -0
  486. package/editions/tw5.com/tiddlers/community/TiddlyWiki Hangouts.tid +2 -2
  487. package/editions/tw5.com/tiddlers/community/editions/Drift by Tony K.tid +17 -0
  488. package/editions/tw5.com/tiddlers/community/editions/Stroll by David Gifford.tid +18 -0
  489. package/editions/tw5.com/tiddlers/community/editions/TiddlyResearch by Kebi.tid +25 -0
  490. package/editions/tw5.com/tiddlers/community/{resources → editions}/_Cardo-A Task and Project Management Wiki_ by David_Szego.tid +2 -2
  491. package/editions/tw5.com/tiddlers/community/{resources → editions}/_Noteself_ by Danielo Rodriguez.tid +2 -2
  492. package/editions/tw5.com/tiddlers/community/examples/PETTIL.tid +1 -1
  493. package/editions/tw5.com/tiddlers/community/examples/Reveal.js by Devin Weaver.tid +2 -2
  494. package/editions/tw5.com/tiddlers/community/{resources → examples}/_Lucky Sushi_ online shop by sini-Kit.tid +3 -3
  495. package/editions/tw5.com/tiddlers/community/palettes/Dracula for tiddlywiki.tid +22 -0
  496. package/editions/tw5.com/tiddlers/community/palettes/palletes by JD.tid +20 -0
  497. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Ace Editor Plugin by Joerg Plewe.tid +2 -2
  498. package/editions/tw5.com/tiddlers/community/{resources → plugins}/BJHacks.tid +2 -2
  499. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Disqus comments plugin by bimlas.tid +2 -2
  500. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Encrypt single tiddler plugin.tid +2 -2
  501. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Eucalys Tiddly World.tid +4 -3
  502. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Favorites by Mohammad.tid +1 -1
  503. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Full Text Search Plugin by Rob Hoelz.tid +2 -2
  504. package/editions/tw5.com/tiddlers/community/{resources → plugins}/GSD5.tid +3 -3
  505. package/editions/tw5.com/tiddlers/community/{resources → plugins}/IndexedDB Plugin by Andreas Abeck.tid +2 -2
  506. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Json Mangler plugin by Joshua Fontany.tid +3 -2
  507. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Kin filter operator by bimlas.tid +2 -2
  508. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Kookma Plugin Library by Mohammad.tid +1 -1
  509. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Leaflet_maps_plugin_by_Sylvain_Comte.tid +2 -2
  510. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Locator plugin by bimlas.tid +2 -2
  511. package/editions/tw5.com/tiddlers/community/{resources → plugins}/MathJax Plugin by Martin Kantor.tid +2 -2
  512. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Plugins by TheDiveO.tid +2 -2
  513. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Refnotes by Mohammad.tid +4 -4
  514. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Searchwikis by Mohammad.tid +2 -2
  515. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Shiraz by Mohammad.tid +2 -2
  516. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Slider by Mohammad.tid +1 -1
  517. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tiddler Commander by Mohammad.tid +1 -1
  518. package/editions/tw5.com/tiddlers/community/plugins/TiddlyClip by buggyjay.tid +14 -0
  519. package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyMap by Felix Kuppers.tid +2 -2
  520. package/editions/tw5.com/tiddlers/community/{resources → plugins}/TiddlyWiki for Scholars.tid +2 -2
  521. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tiddlyshow by Mohammad.tid +1 -1
  522. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Timelines by Mohammad.tid +1 -1
  523. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Tinka by Andreas Hahn.tid +2 -2
  524. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Todolist by Mohammad.tid +1 -1
  525. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Trashbin by Mohammad.tid +1 -1
  526. package/editions/tw5.com/tiddlers/community/{resources → plugins}/Utility by Mohammad.tid +1 -1
  527. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_JD Mobile Layout plugin_ by JD.tid +2 -2
  528. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Mal's Sandbox_ by Mal.tid +2 -2
  529. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_SK_Plugins_ by Stephen Kimmel.tid +2 -2
  530. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Slides and Stories_ by Jan.tid +2 -2
  531. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_TW5-TeXZilla_ plugin by Joe Renes.tid +2 -2
  532. package/editions/tw5.com/tiddlers/community/{resources → plugins}/_Tekan_ Kanban that stays with you_ by Riz.tid +2 -2
  533. package/editions/tw5.com/tiddlers/community/{resources → plugins}/datepicker based on Pikaday.tid +2 -2
  534. package/editions/tw5.com/tiddlers/community/{resources → plugins}/rboue's plugins for TiddlyWiki.tid +2 -2
  535. package/editions/tw5.com/tiddlers/community/{resources → plugins}/vis.js Timeline.tid +2 -2
  536. package/editions/tw5.com/tiddlers/community/resources/BrainTest.tid +2 -2
  537. package/editions/tw5.com/tiddlers/community/resources/Code styles and auto format settings for IDEs.tid +2 -2
  538. package/editions/tw5.com/tiddlers/community/resources/CouchDB Adaptor.tid +2 -2
  539. package/editions/tw5.com/tiddlers/community/resources/Filter Examples by Tobias Beer.tid +2 -2
  540. package/editions/tw5.com/tiddlers/community/resources/Font Awesome 5 Free SVGs for TiddlyWiki by morosanuae.tid +2 -2
  541. package/editions/tw5.com/tiddlers/community/resources/Gospel_Bubbles_by_Rev_David_Gifford.tid +2 -2
  542. package/editions/tw5.com/tiddlers/community/resources/Grok TiddlyWiki by Soren Bjornstad.tid +16 -0
  543. package/editions/tw5.com/tiddlers/community/resources/Heeg.ru.tid +2 -2
  544. package/editions/tw5.com/tiddlers/community/resources/Projectify by Nicolas Petton.tid +20 -0
  545. package/editions/tw5.com/tiddlers/community/resources/RegExp in Tiddlywiki by Mohammad.tid +2 -2
  546. package/editions/tw5.com/tiddlers/community/resources/SeeAlso by Matias Goldman.tid +2 -2
  547. package/editions/tw5.com/tiddlers/community/resources/Semantic Colors by Mohammad.tid +2 -2
  548. package/editions/tw5.com/tiddlers/community/resources/TB5 a pocket full of tips by Tobias Beer.tid +2 -2
  549. package/editions/tw5.com/tiddlers/community/resources/TW-Scripts by Mohammad.tid +2 -2
  550. package/editions/tw5.com/tiddlers/community/resources/TW5 Magick.tid +2 -2
  551. package/editions/tw5.com/tiddlers/community/resources/TW5-SingleExecutable_by_Jed_Carty.tid +2 -2
  552. package/editions/tw5.com/tiddlers/community/resources/TW5-firebase_ TiddlyWiki5 for Google Firebase by Peter Neumark.tid +27 -0
  553. package/editions/tw5.com/tiddlers/community/resources/TWCommunitySearch.tid +2 -2
  554. package/editions/tw5.com/tiddlers/community/resources/TWaddle by Matias Goldman.tid +1 -1
  555. package/editions/tw5.com/tiddlers/community/resources/TiddlyChrome by Arlen Beiler.tid +2 -2
  556. package/editions/tw5.com/tiddlers/community/resources/TiddlyDrive Add-on for Google Drive by Joshua Stubbs.tid +4 -4
  557. package/editions/tw5.com/tiddlers/community/resources/TiddlyServer by Arlen Beiler.tid +2 -2
  558. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Notes.tid +2 -2
  559. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid +2 -2
  560. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Video Tutorials by Francis Meetze.tid +2 -2
  561. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for Sublime Text 3 by roma0104.tid +2 -2
  562. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki extensions for ViM.tid +2 -2
  563. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki guide FR.tid +2 -2
  564. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki wu.tid +2 -2
  565. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Playground.tid +2 -2
  566. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Squared by Iannis Zannos.tid +2 -2
  567. package/editions/tw5.com/tiddlers/community/resources/Twexe_ Single File Tiddlywiki5 executable.tid +2 -2
  568. package/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid +2 -2
  569. package/editions/tw5.com/tiddlers/community/resources/Wikilabs by PMario.tid +3 -3
  570. package/editions/tw5.com/tiddlers/community/resources/Wills QnD gTD.tid +2 -2
  571. package/editions/tw5.com/tiddlers/community/resources/_ATWiki_ by Lamusia Project.tid +2 -2
  572. package/editions/tw5.com/tiddlers/community/resources/_Dropboard_ by Reid Gould.tid +2 -2
  573. package/editions/tw5.com/tiddlers/community/resources/_Dynamic Tables_ by Jed Carty.tid +2 -2
  574. package/editions/tw5.com/tiddlers/community/resources/_Hacks_ by Thomas Elmiger.tid +3 -2
  575. package/editions/tw5.com/tiddlers/community/resources/_In My Socks_ by Jed Carty.tid +2 -2
  576. package/editions/tw5.com/tiddlers/community/resources/_MathCell_ by Ste Wilson.tid +3 -2
  577. package/editions/tw5.com/tiddlers/community/resources/_TWeb.at_ by Mario Pietsch.tid +2 -2
  578. package/editions/tw5.com/tiddlers/community/resources/_TiddlyServer_ by Matt Lauber.tid +6 -3
  579. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Knowledge Network_ by Dmitry Sokolov.tid +2 -2
  580. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki Toolmap_ by David Gifford.tid +2 -2
  581. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Bourbon_ from mkt_memory.tid +2 -2
  582. package/editions/tw5.com/tiddlers/community/resources/_TiddlyWiki5 Forum on Reddit_ by Riz.tid +2 -2
  583. package/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +2 -2
  584. package/editions/tw5.com/tiddlers/community/resources/_X3DOM for TiddlyWiki 5_ by Jamal Wills.tid +2 -2
  585. package/editions/tw5.com/tiddlers/community/resources/_file-backups_ Extension Firefox by pmario.tid +2 -2
  586. package/editions/tw5.com/tiddlers/community/resources/_muritest_ by Simon Huber.tid +2 -2
  587. package/editions/tw5.com/tiddlers/community/resources/_savetiddlers_ Extension for Chrome and Firefox by buggyj.tid +2 -2
  588. package/editions/tw5.com/tiddlers/community/resources/twproxy by Steve Gattuso.tid +2 -2
  589. package/editions/tw5.com/tiddlers/community/themes/Mono theme by JD.tid +11 -0
  590. package/editions/tw5.com/tiddlers/community/themes/Notebook theme by Nicolas Petton.tid +19 -0
  591. package/editions/tw5.com/tiddlers/community/themes/Whitespace a negative-spacious webapp-nostalgic theme by JD.tid +11 -0
  592. package/editions/tw5.com/tiddlers/community/{resources → themes}/_Ghostwriter theme by Rory Gibson_ by Riz.tid +2 -2
  593. package/editions/tw5.com/tiddlers/community/{resources → themes}/_Moments-A little color won't hurt_ by Riz.tid +2 -2
  594. package/editions/tw5.com/tiddlers/community/{resources → tutorials}/GitHub Saver Tutorial by Mohammad.tid +2 -2
  595. package/editions/tw5.com/tiddlers/concepts/Cascades.tid +48 -0
  596. package/editions/tw5.com/tiddlers/concepts/Concepts.tid +5 -3
  597. package/editions/tw5.com/tiddlers/concepts/Customizing EditTemplate Field Rendering.tid +31 -0
  598. package/editions/tw5.com/tiddlers/concepts/Edit Template Body Cascade.tid +16 -0
  599. package/editions/tw5.com/tiddlers/concepts/Field Editor Cascade.tid +17 -0
  600. package/editions/tw5.com/tiddlers/concepts/Filters.tid +15 -10
  601. package/editions/tw5.com/tiddlers/concepts/Macros.tid +1 -3
  602. package/editions/tw5.com/tiddlers/concepts/Messages.tid +2 -2
  603. package/editions/tw5.com/tiddlers/concepts/ModuleType.tid +2 -2
  604. package/editions/tw5.com/tiddlers/concepts/Order of Tagged Tiddlers.tid +1 -1
  605. package/editions/tw5.com/tiddlers/concepts/PermaLinks.tid +2 -2
  606. package/editions/tw5.com/tiddlers/concepts/Pragma.tid +2 -2
  607. package/editions/tw5.com/tiddlers/concepts/Railroad Diagrams.tid +2 -1
  608. package/editions/tw5.com/tiddlers/concepts/ShadowTiddlers.tid +14 -3
  609. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template Cascade.tid +16 -0
  610. package/editions/tw5.com/tiddlers/concepts/Story Tiddler Template.tid +13 -0
  611. package/editions/tw5.com/tiddlers/concepts/SystemTags.tid +9 -9
  612. package/editions/tw5.com/tiddlers/concepts/TagTiddlers.tid +1 -1
  613. package/editions/tw5.com/tiddlers/concepts/Tiddler Colour Cascade.tid +16 -0
  614. package/editions/tw5.com/tiddlers/concepts/Tiddler Icon Cascade.tid +16 -0
  615. package/editions/tw5.com/tiddlers/concepts/TiddlerFields.tid +2 -1
  616. package/editions/tw5.com/tiddlers/concepts/View Template Body Cascade.tid +19 -0
  617. package/editions/tw5.com/tiddlers/concepts/View Template Title Cascade.tid +16 -0
  618. package/editions/tw5.com/tiddlers/customising/Alternative page layouts.tid +1 -1
  619. package/editions/tw5.com/tiddlers/customising/Creating new toolbar buttons.tid +35 -0
  620. package/editions/tw5.com/tiddlers/customising/Customise TiddlyWiki.tid +3 -3
  621. package/editions/tw5.com/tiddlers/customising/Customising TiddlyWiki's user interface.tid +75 -0
  622. package/editions/tw5.com/tiddlers/definitions/BT.tid +3 -2
  623. package/editions/tw5.com/tiddlers/definitions/MathML.tid +2 -2
  624. package/editions/tw5.com/tiddlers/definitions/Osmosoft.tid +3 -2
  625. package/editions/tw5.com/tiddlers/definitions/node-webkit.tid +2 -1
  626. package/editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid +1 -1
  627. package/editions/tw5.com/tiddlers/demonstrations/Apple.tid +7 -2
  628. package/editions/tw5.com/tiddlers/demonstrations/Caruso - Ave Maria.tid +1 -0
  629. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Demo Tiddler List with Custom Story Tiddler Template.tid +10 -0
  630. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Styles.tid +32 -0
  631. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/Template.tid +26 -0
  632. package/editions/tw5.com/tiddlers/demonstrations/CustomStoryTiddlerTemplateDemo.tid/TiddlerTemplateFilter.tid +6 -0
  633. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerColourCascadeDemo/CustomTiddlerColourCascadeDemo.tid +9 -0
  634. package/editions/tw5.com/tiddlers/demonstrations/CustomTiddlerIconCascadeDemo/CustomTiddlerIconCascadeDemo.tid +9 -0
  635. package/editions/tw5.com/tiddlers/demonstrations/ImageGallery Example.tid +5 -16
  636. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/Demonstration_ keyboard-driven-input Macro.tid +121 -0
  637. package/editions/tw5.com/tiddlers/demonstrations/KeyboardDrivenInput/kdi-demo-configtid.tid +7 -0
  638. package/editions/tw5.com/tiddlers/demonstrations/SampleNotification.tid +2 -1
  639. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerFirst.tid +3 -1
  640. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerSecond.tid +3 -1
  641. package/editions/tw5.com/tiddlers/demonstrations/SampleTiddlerThird.tid +3 -1
  642. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard.tid +2 -1
  643. package/editions/tw5.com/tiddlers/demonstrations/SampleWizard2.tid +2 -1
  644. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Contents.tid +3 -2
  645. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/First.tid +3 -3
  646. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstOne.tid +2 -2
  647. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstThree.tid +2 -2
  648. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/FirstTwo.tid +2 -2
  649. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Fourth.tid +2 -2
  650. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Second.tid +2 -2
  651. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondOne.tid +2 -2
  652. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThree.tid +3 -3
  653. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeOne.tid +2 -2
  654. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeThree.tid +2 -2
  655. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondThreeTwo.tid +2 -2
  656. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/SecondTwo.tid +2 -2
  657. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/Third.tid +3 -3
  658. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdOne.tid +2 -2
  659. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdThree.tid +2 -2
  660. package/editions/tw5.com/tiddlers/demonstrations/TableOfContents/ThirdTwo.tid +2 -2
  661. package/editions/tw5.com/tiddlers/demonstrations/Tagged with TagMacro.tid +2 -1
  662. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Compose ballad.tid +3 -3
  663. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Get the Ring.tid +3 -3
  664. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Go to Mordor.tid +3 -3
  665. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Kill the Dragon.tid +4 -4
  666. package/editions/tw5.com/tiddlers/demonstrations/Tasks/Make the beds.tid +3 -3
  667. package/editions/tw5.com/tiddlers/demonstrations/Tasks/done.tid +3 -1
  668. package/editions/tw5.com/tiddlers/demonstrations/Tasks/task.tid +3 -2
  669. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Days of the Week.tid +5 -4
  670. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Friday.tid +2 -1
  671. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Monday.tid +2 -1
  672. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Saturday.tid +3 -2
  673. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Sunday.tid +2 -1
  674. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Thursday.tid +2 -1
  675. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Tuesday.tid +2 -1
  676. package/editions/tw5.com/tiddlers/demonstrations/Weekdays/Wednesday.tid +2 -1
  677. package/editions/tw5.com/tiddlers/demonstrations/sampletag1.tid +3 -0
  678. package/editions/tw5.com/tiddlers/demonstrations/sampletag2.tid +3 -0
  679. package/editions/tw5.com/tiddlers/features/DateFormat.tid +11 -2
  680. package/editions/tw5.com/tiddlers/features/Importing Tiddlers.tid +1 -1
  681. package/editions/tw5.com/tiddlers/features/LazyLoading.tid +2 -3
  682. package/editions/tw5.com/tiddlers/features/Modals.tid +2 -1
  683. package/editions/tw5.com/tiddlers/features/Performance Instrumentation.tid +1 -1
  684. package/editions/tw5.com/tiddlers/features/Scalability.tid +4 -2
  685. package/editions/tw5.com/tiddlers/fileformats/TiddlerFiles.tid +15 -4
  686. package/editions/tw5.com/tiddlers/filters/Filter Operators.tid +11 -7
  687. package/editions/tw5.com/tiddlers/filters/Mathematics Operators.tid +2 -1
  688. package/editions/tw5.com/tiddlers/filters/acos Operator.tid +15 -0
  689. package/editions/tw5.com/tiddlers/filters/all.tid +2 -2
  690. package/editions/tw5.com/tiddlers/filters/asin Operator.tid +15 -0
  691. package/editions/tw5.com/tiddlers/filters/atan Operator.tid +13 -0
  692. package/editions/tw5.com/tiddlers/filters/atan2 Operator.tid +15 -0
  693. package/editions/tw5.com/tiddlers/filters/average.tid +13 -0
  694. package/editions/tw5.com/tiddlers/filters/butlast.tid +3 -1
  695. package/editions/tw5.com/tiddlers/filters/charcode.tid +17 -0
  696. package/editions/tw5.com/tiddlers/filters/cos Operator.tid +13 -0
  697. package/editions/tw5.com/tiddlers/filters/deserializers Operator.tid +14 -0
  698. package/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid +3 -3
  699. package/editions/tw5.com/tiddlers/filters/enlist Operator.tid +2 -3
  700. package/editions/tw5.com/tiddlers/filters/enlist-input Operator.tid +1 -1
  701. package/editions/tw5.com/tiddlers/filters/examples/acos Operator (Examples).tid +7 -0
  702. package/editions/tw5.com/tiddlers/filters/examples/asin Operator (Examples).tid +7 -0
  703. package/editions/tw5.com/tiddlers/filters/examples/atan Operator (Examples).tid +7 -0
  704. package/editions/tw5.com/tiddlers/filters/examples/atan2 Operator (Examples).tid +7 -0
  705. package/editions/tw5.com/tiddlers/filters/examples/average Operator (Examples).tid +10 -0
  706. package/editions/tw5.com/tiddlers/filters/examples/butlast.tid +4 -3
  707. package/editions/tw5.com/tiddlers/filters/examples/charcode.tid +7 -0
  708. package/editions/tw5.com/tiddlers/filters/examples/cos Operator (Examples).tid +7 -0
  709. package/editions/tw5.com/tiddlers/filters/examples/cycle Operator (Examples).tid +1 -1
  710. package/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid +7 -0
  711. package/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid +16 -1
  712. package/editions/tw5.com/tiddlers/filters/examples/insertbefore Operator (Examples).tid +28 -0
  713. package/editions/tw5.com/tiddlers/filters/examples/log Operator (Examples).tid +1 -1
  714. package/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +7 -1
  715. package/editions/tw5.com/tiddlers/filters/examples/match Operator (Examples).tid +1 -1
  716. package/editions/tw5.com/tiddlers/filters/examples/median Operator (Examples).tid +10 -0
  717. package/editions/tw5.com/tiddlers/filters/examples/moduleproperty Operator (Examples).tid +11 -0
  718. package/editions/tw5.com/tiddlers/filters/examples/modules.tid +4 -1
  719. package/editions/tw5.com/tiddlers/filters/examples/prefix.tid +4 -3
  720. package/editions/tw5.com/tiddlers/filters/examples/removeprefix.tid +2 -1
  721. package/editions/tw5.com/tiddlers/filters/examples/removesuffix.tid +2 -3
  722. package/editions/tw5.com/tiddlers/filters/examples/rest.tid +4 -3
  723. package/editions/tw5.com/tiddlers/filters/examples/search-replace Operator (Examples).tid +13 -1
  724. package/editions/tw5.com/tiddlers/filters/examples/search.tid +6 -1
  725. package/editions/tw5.com/tiddlers/filters/examples/sin Operator (Examples).tid +7 -0
  726. package/editions/tw5.com/tiddlers/filters/examples/sortan.tid +5 -1
  727. package/editions/tw5.com/tiddlers/filters/examples/standard-deviation Operator (Examples).tid +10 -0
  728. package/editions/tw5.com/tiddlers/filters/examples/subfilter Operator (Examples).tid +25 -3
  729. package/editions/tw5.com/tiddlers/filters/examples/suffix.tid +3 -2
  730. package/editions/tw5.com/tiddlers/filters/examples/tan Operator (Examples).tid +7 -0
  731. package/editions/tw5.com/tiddlers/filters/examples/unique Operator (Examples).tid +8 -0
  732. package/editions/tw5.com/tiddlers/filters/examples/variance Operator (Examples).tid +10 -0
  733. package/editions/tw5.com/tiddlers/filters/examples/zth Operator (Examples).tid +10 -0
  734. package/editions/tw5.com/tiddlers/filters/filter.tid +3 -1
  735. package/editions/tw5.com/tiddlers/filters/format.tid +2 -1
  736. package/editions/tw5.com/tiddlers/filters/insertbefore Operator.tid +21 -5
  737. package/editions/tw5.com/tiddlers/filters/list.tid +2 -2
  738. package/editions/tw5.com/tiddlers/filters/lookup Operator.tid +28 -10
  739. package/editions/tw5.com/tiddlers/filters/median.tid +13 -0
  740. package/editions/tw5.com/tiddlers/filters/moduleproperty Operator.tid +12 -0
  741. package/editions/tw5.com/tiddlers/filters/modules.tid +8 -6
  742. package/editions/tw5.com/tiddlers/filters/nth.tid +9 -7
  743. package/editions/tw5.com/tiddlers/filters/prefix.tid +17 -2
  744. package/editions/tw5.com/tiddlers/filters/range.tid +22 -20
  745. package/editions/tw5.com/tiddlers/filters/reduce.tid +2 -1
  746. package/editions/tw5.com/tiddlers/filters/removeprefix.tid +18 -3
  747. package/editions/tw5.com/tiddlers/filters/removesuffix.tid +18 -3
  748. package/editions/tw5.com/tiddlers/filters/search-replace Operator.tid +2 -2
  749. package/editions/tw5.com/tiddlers/filters/search.tid +10 -9
  750. package/editions/tw5.com/tiddlers/filters/sha256 Operator.tid +18 -0
  751. package/editions/tw5.com/tiddlers/filters/sin Operator.tid +13 -0
  752. package/editions/tw5.com/tiddlers/filters/sortsub Operator.tid +12 -9
  753. package/editions/tw5.com/tiddlers/filters/standard-deviation Operator.tid +15 -0
  754. package/editions/tw5.com/tiddlers/filters/storyviews.tid +1 -1
  755. package/editions/tw5.com/tiddlers/filters/subfilter Operator.tid +5 -3
  756. package/editions/tw5.com/tiddlers/filters/suffix.tid +17 -2
  757. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix (Examples).tid +46 -0
  758. package/editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid +20 -0
  759. package/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +12 -3
  760. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix (Examples).tid +30 -0
  761. package/editions/tw5.com/tiddlers/filters/syntax/Filter Filter Run Prefix.tid +27 -0
  762. package/editions/tw5.com/tiddlers/filters/syntax/Filter Parameter.tid +3 -2
  763. package/editions/tw5.com/tiddlers/filters/syntax/Filter Run Prefix (Examples).tid +9 -34
  764. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix (Examples).tid +36 -0
  765. package/editions/tw5.com/tiddlers/filters/syntax/Intersection Filter Run Prefix.tid +15 -0
  766. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix (Examples).tid +41 -0
  767. package/editions/tw5.com/tiddlers/filters/syntax/Map Filter Run Prefix.tid +27 -0
  768. package/editions/tw5.com/tiddlers/filters/syntax/Named Filter Run Prefix.tid +3 -3
  769. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix (Examples).tid +27 -0
  770. package/editions/tw5.com/tiddlers/filters/syntax/Reduce Filter Run Prefix.tid +38 -0
  771. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix (Examples).tid +33 -0
  772. package/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +32 -0
  773. package/editions/tw5.com/tiddlers/filters/tan Operator.tid +13 -0
  774. package/editions/tw5.com/tiddlers/filters/unique.tid +10 -0
  775. package/editions/tw5.com/tiddlers/filters/variance Operator.tid +15 -0
  776. package/editions/tw5.com/tiddlers/filters/zth Operator.tid +18 -0
  777. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid +2 -1
  778. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +2 -1
  779. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +2 -1
  780. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +2 -1
  781. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid +2 -1
  782. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Online.tid +2 -2
  783. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid +2 -1
  784. package/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid +2 -1
  785. package/editions/tw5.com/tiddlers/hellothere/A Gentle Guide to TiddlyWiki.tid +5 -2
  786. package/editions/tw5.com/tiddlers/{AllTiddlers.tid → hellothere/AllTiddlers.tid} +0 -0
  787. package/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +3 -3
  788. package/editions/tw5.com/tiddlers/hellothere/HelloThumbnail.tid +1 -1
  789. package/editions/tw5.com/tiddlers/hellothere/Some of the things you can do with TiddlyWiki.tid +2 -2
  790. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Badge.svg.tid +1 -0
  791. package/editions/tw5.com/tiddlers/hellothere/badges/ProductHunt-Link.tid +1 -0
  792. package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - Grok TiddlyWiki.tid +6 -0
  793. package/editions/tw5.com/tiddlers/hellothere/thumbnails/HelloThumbnail - TiddlyWikiLinks.tid +6 -0
  794. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting HtmlParserDisableSandbox.tid +13 -0
  795. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting NewImageType.tid +3 -1
  796. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting ShowEditPreviewPerTiddler.tid +10 -0
  797. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Disable Drag and Drop.tid +2 -2
  798. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Enable File Import in Editor_1.tid +12 -0
  799. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Setting_ Typin Refresh Delay.tid +2 -2
  800. package/editions/tw5.com/tiddlers/hiddensettings/Hidden Settings_ Import Content Types for Editor.tid +11 -0
  801. package/editions/tw5.com/tiddlers/howtos/Concatenating text and variables using macro substitution.tid +4 -14
  802. package/editions/tw5.com/tiddlers/howtos/Creating SubStories.tid +21 -33
  803. package/editions/tw5.com/tiddlers/howtos/Debugging Stylesheets.tid +11 -0
  804. package/editions/tw5.com/tiddlers/howtos/Formatting List Results as Tables with CSS - Specified Columns Methods.tid +4 -0
  805. package/editions/tw5.com/tiddlers/howtos/How to create a custom story tiddler template.tid +40 -0
  806. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler colour rule.tid +36 -0
  807. package/editions/tw5.com/tiddlers/howtos/How to create a custom tiddler icon rule.tid +36 -0
  808. package/editions/tw5.com/tiddlers/howtos/How to create dynamic editor toolbar buttons.tid +126 -0
  809. package/editions/tw5.com/tiddlers/howtos/Simple ways to write protect tiddlers.tid +4 -5
  810. package/editions/tw5.com/tiddlers/howtos/Text preview.tid +6 -2
  811. package/editions/tw5.com/tiddlers/howtos/Using Stylesheets.tid +10 -4
  812. package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png +0 -0
  813. package/editions/tw5.com/tiddlers/images/Grok TiddlyWiki.png.meta +3 -0
  814. package/editions/tw5.com/tiddlers/images/Icon Gallery.tid +14 -0
  815. package/editions/tw5.com/tiddlers/images/New Release Banner.png +0 -0
  816. package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png +0 -0
  817. package/editions/tw5.com/tiddlers/images/TiddlyWikiLinks.png.meta +3 -0
  818. package/editions/tw5.com/tiddlers/languages/Japanese (Japan) Edition.tid +11 -0
  819. package/editions/tw5.com/tiddlers/languages/LanguageGallery.tid +2 -2
  820. package/editions/tw5.com/tiddlers/macros/NowMacro.tid +3 -1
  821. package/editions/tw5.com/tiddlers/macros/TabsMacro.tid +3 -3
  822. package/editions/tw5.com/tiddlers/macros/UnusedTitleMacro.tid +28 -4
  823. package/editions/tw5.com/tiddlers/macros/examples/colour-picker Macro (Example 1).tid +2 -2
  824. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 1).tid +2 -2
  825. package/editions/tw5.com/tiddlers/macros/examples/image-picker Macro (Example 2).tid +2 -2
  826. package/editions/tw5.com/tiddlers/macros/examples/qualify.tid +0 -2
  827. package/editions/tw5.com/tiddlers/macros/examples/unusedtitle Macro (Examples 1).tid +51 -0
  828. package/editions/tw5.com/tiddlers/macros/examples/unusedtitle.tid +11 -2
  829. package/editions/tw5.com/tiddlers/macros/keyboard-driven-input_Macro.tid +3 -0
  830. package/editions/tw5.com/tiddlers/macros/list-links-draggable Macro.tid +1 -1
  831. package/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +3 -2
  832. package/editions/tw5.com/tiddlers/mechanisms/StateMechanism.tid +2 -2
  833. package/editions/tw5.com/tiddlers/messages/SampleModal.tid +2 -1
  834. package/editions/tw5.com/tiddlers/messages/SampleWindowTemplate.tid +10 -0
  835. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-all-windows.tid +20 -0
  836. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid +39 -0
  837. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid +6 -1
  838. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +27 -1
  839. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-navigate.tid +7 -1
  840. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-window.tid +28 -6
  841. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-relink-tiddler.tid +26 -0
  842. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-rename-tiddler.tid +4 -2
  843. package/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-scroll.tid +3 -0
  844. package/editions/tw5.com/tiddlers/nodejs/Customising Tiddler File Naming.tid +19 -15
  845. package/editions/tw5.com/tiddlers/nodejs/Environment Variables on Node.js.tid +4 -2
  846. package/editions/tw5.com/tiddlers/nodejs/Installing TiddlyWiki on Node.js.tid +10 -3
  847. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.files_Files.tid +6 -5
  848. package/editions/tw5.com/tiddlers/nodejs/tiddlywiki.info_Files.tid +2 -2
  849. package/editions/tw5.com/tiddlers/platforms/TiddlyFox Apocalypse.tid +2 -2
  850. package/editions/tw5.com/tiddlers/platforms/TiddlyWiki in the Sky for TiddlyWeb.tid +3 -8
  851. package/editions/tw5.com/tiddlers/plugins/Highlight Plugin.tid +3 -1
  852. package/editions/tw5.com/tiddlers/plugins/Plugin Types.tid +2 -2
  853. package/editions/tw5.com/tiddlers/plugins/Share Plugin.tid +12 -0
  854. package/editions/tw5.com/tiddlers/reference/Reference.tid +1 -0
  855. package/editions/tw5.com/tiddlers/releasenotes/BetaReleases.tid +2 -2
  856. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.21.tid +6 -0
  857. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.22.tid +6 -0
  858. package/editions/tw5.com/tiddlers/releasenotes/Release 5.1.23.tid +5 -3
  859. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.0.tid +303 -0
  860. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.1.tid +124 -0
  861. package/editions/tw5.com/tiddlers/releasenotes/Release 5.2.2.tid +162 -0
  862. package/editions/tw5.com/tiddlers/releasenotes/ReleaseTemplate.tid +3 -0
  863. package/editions/tw5.com/tiddlers/releasenotes/Releases.tid +4 -2
  864. package/editions/tw5.com/tiddlers/releasenotes/alpha/AlphaReleases.tid +2 -2
  865. package/editions/tw5.com/tiddlers/saving/Example config-tiddlyweb-host for IIS.txt.meta +1 -1
  866. package/editions/tw5.com/tiddlers/saving/Example package.json for IIS.txt.meta +1 -1
  867. package/editions/tw5.com/tiddlers/saving/Example tiddlywiki.info for IIS.txt.meta +1 -1
  868. package/editions/tw5.com/tiddlers/saving/Example web.config for IIS.txt.meta +1 -1
  869. package/editions/tw5.com/tiddlers/saving/Saving on Browser with the File System Access API.tid +21 -0
  870. package/editions/tw5.com/tiddlers/saving/Saving on TidGi.tid +26 -0
  871. package/editions/tw5.com/tiddlers/saving/Saving on TiddlyHost.tid +17 -0
  872. package/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid +19 -29
  873. package/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid +2 -2
  874. package/editions/tw5.com/tiddlers/saving/Saving via WebDAV.tid +65 -10
  875. package/editions/tw5.com/tiddlers/saving/Saving with Polly.tid +29 -0
  876. package/editions/tw5.com/tiddlers/saving/TiddlyWiki in the Sky for Dropbox.tid +1 -1
  877. package/editions/tw5.com/tiddlers/styleguide/Documentation Macros.tid +6 -2
  878. package/editions/tw5.com/tiddlers/styleguide/Tiddler Structure.tid +3 -1
  879. package/editions/tw5.com/tiddlers/{TableOfContents.tid → system/TableOfContents.tid} +0 -0
  880. package/editions/tw5.com/tiddlers/system/doc-macros.tid +42 -1
  881. package/editions/tw5.com/tiddlers/system/doc-styles.tid +34 -5
  882. package/editions/tw5.com/tiddlers/system/download-empty.tid +1 -0
  883. package/editions/tw5.com/tiddlers/system/operator-macros.tid +16 -7
  884. package/editions/tw5.com/tiddlers/system/operator-template.tid +14 -11
  885. package/editions/tw5.com/tiddlers/system/style-guide-macros.tid +5 -1
  886. package/editions/tw5.com/tiddlers/system/variable-macros.tid +4 -2
  887. package/editions/tw5.com/tiddlers/system/wikitext-macros.tid +21 -3
  888. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_ControlPanel_Plugins.tid +9 -0
  889. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid +9 -0
  890. package/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Image.tid +2 -2
  891. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 1-2-3.tid +2 -1
  892. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 3-4-5.tid +2 -1
  893. package/editions/tw5.com/tiddlers/variables/examples/Sample Headings 4-5-6.tid +2 -1
  894. package/editions/tw5.com/tiddlers/webserver/Using HTTPS.tid +17 -2
  895. package/editions/tw5.com/tiddlers/webserver/Using the external JavaScript template.tid +86 -9
  896. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Delete Tiddler.tid +5 -1
  897. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Get All Tiddlers.tid +1 -1
  898. package/editions/tw5.com/tiddlers/webserver/WebServer API_ Put Tiddler.tid +5 -1
  899. package/editions/tw5.com/tiddlers/webserver/WebServer Authorization.tid +15 -3
  900. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ admin.tid +8 -0
  901. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ required-plugins.tid +8 -0
  902. package/editions/tw5.com/tiddlers/webserver/WebServer Parameter_ tls-passphrase.tid +10 -0
  903. package/editions/tw5.com/tiddlers/widgets/$__docs_anyField.tid +8 -0
  904. package/editions/tw5.com/tiddlers/widgets/$__editions_tw5.com_widget-examples_qualify-transcluded.tid +14 -0
  905. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 1.tid +2 -2
  906. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 2.tid +2 -2
  907. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +3 -3
  908. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +4 -4
  909. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Template.tid +2 -2
  910. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid +10 -6
  911. package/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +7 -5
  912. package/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +52 -2
  913. package/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +4 -1
  914. package/editions/tw5.com/tiddlers/widgets/ActionSendMessageWidget.tid +3 -1
  915. package/editions/tw5.com/tiddlers/widgets/ActionSetMultipleFieldsWidget.tid +31 -0
  916. package/editions/tw5.com/tiddlers/widgets/ActionWidget Execution Modes.tid +49 -0
  917. package/editions/tw5.com/tiddlers/widgets/ActionWidgets.tid +10 -7
  918. package/editions/tw5.com/tiddlers/widgets/ButtonWidget.tid +2 -2
  919. package/editions/tw5.com/tiddlers/widgets/CheckboxWidget.tid +2 -2
  920. package/editions/tw5.com/tiddlers/widgets/DraggableWidget.tid +9 -4
  921. package/editions/tw5.com/tiddlers/widgets/DroppableWidget.tid +2 -2
  922. package/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid +11 -6
  923. package/editions/tw5.com/tiddlers/widgets/EditTextWidget.tid +10 -20
  924. package/editions/tw5.com/tiddlers/widgets/EditWidget.tid +2 -2
  925. package/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +36 -27
  926. package/editions/tw5.com/tiddlers/widgets/FieldManglerWidget.tid +3 -3
  927. package/editions/tw5.com/tiddlers/widgets/ImageWidget.tid +9 -1
  928. package/editions/tw5.com/tiddlers/widgets/JSONTiddlerWidget.tid +22 -0
  929. package/editions/tw5.com/tiddlers/widgets/Keyboard Codes.tid +27 -0
  930. package/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid +17 -3
  931. package/editions/tw5.com/tiddlers/widgets/LetWidget.tid +57 -0
  932. package/editions/tw5.com/tiddlers/widgets/LinkCatcherWidget.tid +3 -2
  933. package/editions/tw5.com/tiddlers/widgets/ListWidget.tid +34 -1
  934. package/editions/tw5.com/tiddlers/widgets/ListopsData.tid +1 -0
  935. package/editions/tw5.com/tiddlers/widgets/MacroCallWidget.tid +3 -1
  936. package/editions/tw5.com/tiddlers/widgets/MessageCatcherWidget.tid +46 -0
  937. package/editions/tw5.com/tiddlers/widgets/MessageHandlerWidgets.tid +13 -0
  938. package/editions/tw5.com/tiddlers/widgets/NavigatorWidget.tid +5 -2
  939. package/editions/tw5.com/tiddlers/widgets/QualifyWidget.tid +39 -0
  940. package/editions/tw5.com/tiddlers/widgets/RadioWidget Example.tid +14 -11
  941. package/editions/tw5.com/tiddlers/widgets/RadioWidget.tid +9 -9
  942. package/editions/tw5.com/tiddlers/widgets/RangeWidget Example.tid +4 -5
  943. package/editions/tw5.com/tiddlers/widgets/RangeWidget.tid +5 -5
  944. package/editions/tw5.com/tiddlers/widgets/SelectWidget.tid +27 -3
  945. package/editions/tw5.com/tiddlers/widgets/SetMultipleVariablesWidget.tid +33 -0
  946. package/editions/tw5.com/tiddlers/widgets/SetWidget.tid +62 -35
  947. package/editions/tw5.com/tiddlers/widgets/The Extended Listops Filters.tid +2 -1
  948. package/editions/tw5.com/tiddlers/widgets/TranscludeWidget.tid +7 -6
  949. package/editions/tw5.com/tiddlers/widgets/TriggeringWidgets.tid +13 -0
  950. package/editions/tw5.com/tiddlers/widgets/VarsWidget.tid +7 -5
  951. package/editions/tw5.com/tiddlers/widgets/ViewWidget.tid +27 -8
  952. package/editions/tw5.com/tiddlers/widgets/WikifyWidget.tid +2 -2
  953. package/editions/tw5.com/tiddlers/wikitext/HTML in WikiText.tid +48 -5
  954. package/editions/tw5.com/tiddlers/wikitext/Images in WikiText.tid +5 -3
  955. package/editions/tw5.com/tiddlers/wikitext/Linking in WikiText.tid +44 -1
  956. package/editions/tw5.com/tiddlers/wikitext/Macro Calls in WikiText.tid +3 -3
  957. package/editions/tw5.com/tiddlers/wikitext/Transclusion and Substitution.tid +3 -2
  958. package/editions/tw5.com/tiddlers/wikitext/Transclusion in WikiText.tid +2 -1
  959. package/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid +3 -3
  960. package/editions/tw5.com/tiddlers/wikitext/parser/Block Mode WikiText (Examples).tid +51 -0
  961. package/editions/tw5.com/tiddlers/wikitext/parser/Block Mode WikiText.tid +35 -0
  962. package/editions/tw5.com/tiddlers/wikitext/parser/Inline Mode WikiText.tid +26 -0
  963. package/editions/tw5.com/tiddlers/wikitext/parser/Places where the parser ignores WikiText.tid +14 -0
  964. package/editions/tw5.com/tiddlers/wikitext/parser/WikiText Parser Modes.tid +16 -0
  965. package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode transitions.tid +59 -0
  966. package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ HTML examples.tid +72 -0
  967. package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ macro examples.tid +55 -0
  968. package/editions/tw5.com/tiddlers/wikitext/parser/WikiText parser mode_ transclusion examples.tid +56 -0
  969. package/editions/tw5.com/tiddlers/wikitext/parser/table-example.tid +8 -0
  970. package/editions/tw5.com/tiddlers/workingwithtw/Sharing your tiddlers with others.tid +2 -1
  971. package/editions/tw5.com/tiddlywiki.info +2 -2
  972. package/editions/xlsx-utils/tiddlers/samples/Presidents and Justices.xlsx and b/package/editions/xlsx-utils/tiddlers/samples/Presidents → Justices.xlsx +0 -0
  973. package/languages/ar-PS/Misc.multids +1 -2
  974. package/languages/ca-ES/ControlPanel.multids +4 -1
  975. package/languages/ca-ES/EditTemplate.multids +4 -0
  976. package/languages/ca-ES/Help/notfound.tid +1 -1
  977. package/languages/ca-ES/Import.multids +11 -0
  978. package/languages/ca-ES/Misc.multids +20 -2
  979. package/languages/cs-CZ/Misc.multids +0 -1
  980. package/languages/da-DK/Misc.multids +0 -1
  981. package/languages/de-DE/ControlPanel.multids +22 -1
  982. package/languages/de-DE/Docs/ModuleTypes.multids +1 -0
  983. package/languages/de-DE/EditTemplate.multids +2 -0
  984. package/languages/de-DE/Fields.multids +6 -5
  985. package/languages/de-DE/Help/listen.tid +3 -2
  986. package/languages/de-DE/Help/render.tid +2 -1
  987. package/languages/de-DE/Import.multids +6 -0
  988. package/languages/de-DE/Misc.multids +10 -2
  989. package/languages/de-DE/SideBar.multids +1 -0
  990. package/languages/de-DE/ThemeTweaks.multids +2 -2
  991. package/languages/de-DE/TiddlerInfo.multids +1 -1
  992. package/languages/el-GR/Misc.multids +1 -2
  993. package/languages/es-ES/Buttons.multids +29 -6
  994. package/languages/es-ES/ControlPanel.multids +97 -37
  995. package/languages/es-ES/Dates.multids +11 -1
  996. package/languages/es-ES/Docs/ModuleTypes.multids +8 -0
  997. package/languages/es-ES/Docs/PaletteColours.multids +109 -0
  998. package/languages/es-ES/EditTemplate.multids +18 -11
  999. package/languages/es-ES/Exporters.multids +2 -2
  1000. package/languages/es-ES/Fields.multids +7 -4
  1001. package/languages/es-ES/Filters.multids +9 -7
  1002. package/languages/es-ES/GettingStarted.tid +1 -0
  1003. package/languages/es-ES/Help/deletetiddlers.tid +8 -0
  1004. package/languages/es-ES/Help/fetch.tid +38 -0
  1005. package/languages/es-ES/Help/import.tid +24 -0
  1006. package/languages/es-ES/Help/init.tid +1 -7
  1007. package/languages/es-ES/Help/listen.tid +35 -0
  1008. package/languages/es-ES/Help/load.tid +5 -2
  1009. package/languages/es-ES/Help/makelibrary.tid +1 -3
  1010. package/languages/es-ES/Help/password.tid +2 -1
  1011. package/languages/es-ES/Help/render.tid +35 -0
  1012. package/languages/es-ES/Help/rendertiddler.tid +14 -3
  1013. package/languages/es-ES/Help/rendertiddlers.tid +6 -6
  1014. package/languages/es-ES/Help/save.tid +25 -0
  1015. package/languages/es-ES/Help/savetiddler.tid +3 -2
  1016. package/languages/es-ES/Help/savetiddlers.tid +6 -3
  1017. package/languages/es-ES/Help/savewikifolder.tid +19 -0
  1018. package/languages/es-ES/Help/server.tid +12 -8
  1019. package/languages/es-ES/Import.multids +23 -4
  1020. package/languages/es-ES/Misc.multids +68 -22
  1021. package/languages/es-ES/NewJournalTags.tid +3 -0
  1022. package/languages/es-ES/Notifications.multids +3 -1
  1023. package/languages/es-ES/Search.multids +1 -0
  1024. package/languages/es-ES/SideBar.multids +1 -0
  1025. package/languages/es-ES/ThemeTweaks.multids +42 -0
  1026. package/languages/es-ES/TiddlerInfo.multids +2 -2
  1027. package/languages/es-ES/Types/{application%2Fjavascript.tid → application_javascript.tid} +1 -0
  1028. package/languages/es-ES/Types/{application%2Fjson.tid → application_json.tid} +1 -0
  1029. package/languages/es-ES/Types/{application%2Fx-tiddler-dictionary.tid → application_x_tiddler_dictionary.tid} +1 -0
  1030. package/languages/es-ES/Types/{image%2Fgif.tid → image_gif.tid} +1 -0
  1031. package/languages/es-ES/Types/{image%2Fjpeg.tid → image_jpeg.tid} +1 -0
  1032. package/languages/es-ES/Types/{image%2Fpng.tid → image_png.tid} +1 -0
  1033. package/languages/es-ES/Types/{image%2Fsvg%2Bxml.tid → image_svg_xml.tid} +1 -0
  1034. package/languages/es-ES/Types/{image%2Fx-icon.tid → image_x-icon.tid} +1 -0
  1035. package/languages/es-ES/Types/{text%2Fcss.tid → text_css.tid} +1 -0
  1036. package/languages/es-ES/Types/{text%2Fhtml.tid → text_html.tid} +1 -0
  1037. package/languages/es-ES/Types/{text%2Fplain.tid → text_plain.tid} +1 -0
  1038. package/languages/es-ES/Types/{text%2Fvnd.tiddlywiki.tid → text_vnd.tiddlywiki.tid} +1 -0
  1039. package/languages/es-ES/Types/{text%2Fx-tiddlywiki.tid → text_x-tiddlywiki.tid} +1 -0
  1040. package/languages/es-ES/plugin.info +3 -3
  1041. package/languages/fa-IR/Misc.multids +1 -2
  1042. package/languages/fr-FR/ControlPanel.multids +5 -1
  1043. package/languages/fr-FR/Docs/ModuleTypes.multids +2 -1
  1044. package/languages/fr-FR/EditTemplate.multids +4 -0
  1045. package/languages/fr-FR/Filters.multids +3 -2
  1046. package/languages/fr-FR/Help/listen.tid +2 -0
  1047. package/languages/fr-FR/Help/render.tid +5 -4
  1048. package/languages/fr-FR/Import.multids +17 -11
  1049. package/languages/fr-FR/Misc.multids +11 -2
  1050. package/languages/fr-FR/TiddlerInfo.multids +2 -2
  1051. package/languages/he-IL/Misc.multids +0 -1
  1052. package/languages/hi-IN/Misc.multids +0 -1
  1053. package/languages/ia-IA/Misc.multids +0 -1
  1054. package/languages/it-IT/Misc.multids +0 -1
  1055. package/languages/ja-JP/Misc.multids +0 -1
  1056. package/languages/ko-KR/Misc.multids +0 -1
  1057. package/languages/nl-NL/Misc.multids +1 -2
  1058. package/languages/pa-IN/Misc.multids +0 -1
  1059. package/languages/pl-PL/Buttons.multids +189 -0
  1060. package/languages/pl-PL/ControlPanel.multids +229 -0
  1061. package/languages/pl-PL/Dates.multids +88 -0
  1062. package/languages/pl-PL/Docs/ModuleTypes.multids +30 -0
  1063. package/languages/pl-PL/Docs/PaletteColours.multids +109 -0
  1064. package/languages/pl-PL/EditTemplate.multids +38 -0
  1065. package/languages/pl-PL/Exporters.multids +7 -0
  1066. package/languages/pl-PL/Fields.multids +39 -0
  1067. package/languages/pl-PL/Filters.multids +16 -0
  1068. package/languages/pl-PL/GettingStarted.tid +17 -0
  1069. package/languages/pl-PL/Help/build.tid +12 -0
  1070. package/languages/pl-PL/Help/clearpassword.tid +8 -0
  1071. package/languages/pl-PL/Help/default.tid +22 -0
  1072. package/languages/pl-PL/Help/deletetiddlers.tid +8 -0
  1073. package/languages/pl-PL/Help/editions.tid +8 -0
  1074. package/languages/pl-PL/Help/fetch.tid +40 -0
  1075. package/languages/pl-PL/Help/help.tid +10 -0
  1076. package/languages/pl-PL/Help/import.tid +24 -0
  1077. package/languages/pl-PL/Help/init.tid +23 -0
  1078. package/languages/pl-PL/Help/listen.tid +35 -0
  1079. package/languages/pl-PL/Help/load.tid +19 -0
  1080. package/languages/pl-PL/Help/makelibrary.tid +14 -0
  1081. package/languages/pl-PL/Help/notfound.tid +3 -0
  1082. package/languages/pl-PL/Help/output.tid +11 -0
  1083. package/languages/pl-PL/Help/password.tid +10 -0
  1084. package/languages/pl-PL/Help/render.tid +35 -0
  1085. package/languages/pl-PL/Help/rendertiddler.tid +24 -0
  1086. package/languages/pl-PL/Help/rendertiddlers.tid +20 -0
  1087. package/languages/pl-PL/Help/save.tid +25 -0
  1088. package/languages/pl-PL/Help/savetiddler.tid +14 -0
  1089. package/languages/pl-PL/Help/savetiddlers.tid +16 -0
  1090. package/languages/pl-PL/Help/savewikifolder.tid +19 -0
  1091. package/languages/pl-PL/Help/server.tid +42 -0
  1092. package/languages/pl-PL/Help/setfield.tid +17 -0
  1093. package/languages/pl-PL/Help/unpackplugin.tid +8 -0
  1094. package/languages/pl-PL/Help/verbose.tid +8 -0
  1095. package/languages/pl-PL/Help/version.tid +8 -0
  1096. package/languages/pl-PL/Import.multids +35 -0
  1097. package/languages/pl-PL/Misc.multids +95 -0
  1098. package/languages/pl-PL/Modals/Download.tid +12 -0
  1099. package/languages/pl-PL/Modals/SaveInstructions.tid +21 -0
  1100. package/languages/pl-PL/NewJournal.multids +4 -0
  1101. package/languages/pl-PL/NewJournalTags.tid +3 -0
  1102. package/languages/pl-PL/Notifications.multids +6 -0
  1103. package/languages/pl-PL/Search.multids +21 -0
  1104. package/languages/pl-PL/SideBar.multids +18 -0
  1105. package/languages/pl-PL/SiteSubtitle.tid +3 -0
  1106. package/languages/pl-PL/SiteTitle.tid +3 -0
  1107. package/languages/pl-PL/Snippets/ListByTag.tid +5 -0
  1108. package/languages/pl-PL/Snippets/MacroDefinition.tid +7 -0
  1109. package/languages/pl-PL/Snippets/Table 4x3.tid +8 -0
  1110. package/languages/pl-PL/Snippets/TableOfContents.tid +9 -0
  1111. package/languages/pl-PL/ThemeTweaks.multids +42 -0
  1112. package/languages/pl-PL/TiddlerInfo.multids +22 -0
  1113. package/languages/pl-PL/Types/application_javascript.tid +5 -0
  1114. package/languages/pl-PL/Types/application_json.tid +5 -0
  1115. package/languages/pl-PL/Types/application_x_tiddler_dictionary.tid +5 -0
  1116. package/languages/pl-PL/Types/image_gif.tid +5 -0
  1117. package/languages/pl-PL/Types/image_jpeg.tid +5 -0
  1118. package/languages/pl-PL/Types/image_png.tid +5 -0
  1119. package/languages/pl-PL/Types/image_svg_xml.tid +5 -0
  1120. package/languages/pl-PL/Types/image_x-icon.tid +5 -0
  1121. package/languages/pl-PL/Types/text_css.tid +5 -0
  1122. package/languages/pl-PL/Types/text_html.tid +5 -0
  1123. package/languages/pl-PL/Types/text_plain.tid +5 -0
  1124. package/languages/pl-PL/Types/text_vnd.tiddlywiki.tid +5 -0
  1125. package/languages/pl-PL/Types/text_x-tiddlywiki.tid +5 -0
  1126. package/languages/pl-PL/icon.tid +7 -0
  1127. package/languages/pl-PL/plugin.info +8 -0
  1128. package/languages/pl-PL/readme.md +1 -0
  1129. package/languages/pt-BR/Misc.multids +0 -1
  1130. package/languages/pt-PT/Misc.multids +1 -2
  1131. package/languages/ru-RU/Misc.multids +0 -1
  1132. package/languages/sk-SK/Misc.multids +0 -1
  1133. package/languages/sl-SI/Misc.multids +1 -2
  1134. package/languages/sv-SE/Misc.multids +0 -1
  1135. package/languages/zh-Hans/Buttons.multids +1 -1
  1136. package/languages/zh-Hans/ControlPanel.multids +19 -4
  1137. package/languages/zh-Hans/Docs/ModuleTypes.multids +2 -1
  1138. package/languages/zh-Hans/EditTemplate.multids +2 -0
  1139. package/languages/zh-Hans/Fields.multids +4 -2
  1140. package/languages/zh-Hans/Help/listen.tid +4 -2
  1141. package/languages/zh-Hans/Help/render.tid +2 -2
  1142. package/languages/zh-Hans/Help/save.tid +1 -1
  1143. package/languages/zh-Hans/Import.multids +6 -0
  1144. package/languages/zh-Hans/Misc.multids +4 -3
  1145. package/languages/zh-Hant/Buttons.multids +1 -1
  1146. package/languages/zh-Hant/ControlPanel.multids +19 -2
  1147. package/languages/zh-Hant/Docs/ModuleTypes.multids +2 -1
  1148. package/languages/zh-Hant/EditTemplate.multids +2 -0
  1149. package/languages/zh-Hant/Fields.multids +4 -2
  1150. package/languages/zh-Hant/Help/listen.tid +5 -3
  1151. package/languages/zh-Hant/Help/render.tid +2 -2
  1152. package/languages/zh-Hant/Help/save.tid +1 -1
  1153. package/languages/zh-Hant/Import.multids +6 -0
  1154. package/languages/zh-Hant/Misc.multids +4 -3
  1155. package/license +1 -1
  1156. package/licenses/cla-individual.md +67 -1
  1157. package/package.json +5 -3
  1158. package/plugins/tiddlywiki/bibtex/deserializer.js +3 -2
  1159. package/plugins/tiddlywiki/codemirror/engine.js +86 -3
  1160. package/plugins/tiddlywiki/dynannotate/examples/viewtemplate.tid +3 -4
  1161. package/plugins/tiddlywiki/filesystem/filesystemadaptor.js +25 -21
  1162. package/plugins/tiddlywiki/freelinks/settings.tid +2 -0
  1163. package/plugins/tiddlywiki/freelinks/text.js +8 -3
  1164. package/plugins/tiddlywiki/highlight/files/default.min.css +9 -0
  1165. package/plugins/tiddlywiki/highlight/files/highlight.min.js +1401 -0
  1166. package/plugins/tiddlywiki/highlight/files/tiddlywiki.files +2 -2
  1167. package/plugins/tiddlywiki/highlight/highlightblock.js +27 -21
  1168. package/plugins/tiddlywiki/highlight/plugin.info +1 -1
  1169. package/plugins/tiddlywiki/highlight/readme.tid +18 -47
  1170. package/plugins/tiddlywiki/highlight/styles.tid +10 -5
  1171. package/plugins/tiddlywiki/highlight/usage.tid +48 -1
  1172. package/plugins/tiddlywiki/highlight-legacy/TypeMappings.multids +8 -0
  1173. package/plugins/tiddlywiki/{highlight → highlight-legacy}/files/default.css +0 -0
  1174. package/plugins/tiddlywiki/{highlight → highlight-legacy}/files/highlight.pack.js +0 -0
  1175. package/plugins/tiddlywiki/highlight-legacy/files/tiddlywiki.files +22 -0
  1176. package/plugins/tiddlywiki/highlight-legacy/highlightblock.js +44 -0
  1177. package/plugins/tiddlywiki/highlight-legacy/license.tid +27 -0
  1178. package/plugins/tiddlywiki/highlight-legacy/plugin.info +7 -0
  1179. package/plugins/tiddlywiki/highlight-legacy/readme.tid +65 -0
  1180. package/plugins/tiddlywiki/highlight-legacy/styles.tid +82 -0
  1181. package/plugins/tiddlywiki/highlight-legacy/usage.tid +28 -0
  1182. package/plugins/tiddlywiki/innerwiki/template.tid +0 -4
  1183. package/plugins/tiddlywiki/internals/editpreviews/raw.tid +1 -0
  1184. package/plugins/tiddlywiki/katex/config.tid +17 -0
  1185. package/plugins/tiddlywiki/katex/files/README.md +79 -100
  1186. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.ttf +0 -0
  1187. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff +0 -0
  1188. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  1189. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  1190. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  1191. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  1192. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  1193. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  1194. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  1195. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  1196. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  1197. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  1198. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  1199. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  1200. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  1201. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.ttf +0 -0
  1202. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff +0 -0
  1203. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Bold.woff2 +0 -0
  1204. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  1205. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  1206. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  1207. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.ttf +0 -0
  1208. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff +0 -0
  1209. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Italic.woff2 +0 -0
  1210. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.ttf +0 -0
  1211. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff +0 -0
  1212. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Main-Regular.woff2 +0 -0
  1213. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  1214. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  1215. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  1216. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.ttf +0 -0
  1217. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff +0 -0
  1218. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Math-Italic.woff2 +0 -0
  1219. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  1220. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  1221. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  1222. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  1223. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  1224. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  1225. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  1226. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  1227. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  1228. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.ttf +0 -0
  1229. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff +0 -0
  1230. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Script-Regular.woff2 +0 -0
  1231. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.ttf +0 -0
  1232. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff +0 -0
  1233. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  1234. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.ttf +0 -0
  1235. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff +0 -0
  1236. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  1237. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.ttf +0 -0
  1238. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff +0 -0
  1239. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  1240. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.ttf +0 -0
  1241. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff +0 -0
  1242. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  1243. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  1244. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  1245. package/plugins/tiddlywiki/katex/files/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  1246. package/plugins/tiddlywiki/katex/files/katex.css +1079 -0
  1247. package/plugins/tiddlywiki/katex/files/katex.js +4917 -3543
  1248. package/plugins/tiddlywiki/katex/files/katex.min.css +1 -1
  1249. package/plugins/tiddlywiki/katex/files/katex.min.js +1 -1
  1250. package/plugins/tiddlywiki/katex/files/katex.without-font-face.min.css +1 -1
  1251. package/plugins/tiddlywiki/katex/files/mhchem.min.js +1 -1683
  1252. package/plugins/tiddlywiki/katex/files/tiddlywiki.files +3 -1
  1253. package/plugins/tiddlywiki/katex/plugin.info +2 -2
  1254. package/plugins/tiddlywiki/katex/readme.tid +1 -1
  1255. package/plugins/tiddlywiki/katex/styles.tid +7 -1
  1256. package/plugins/tiddlywiki/katex/ui/config/macro.tid +137 -0
  1257. package/plugins/tiddlywiki/katex/wrapper.js +19 -13
  1258. package/plugins/tiddlywiki/markdown/config_renderWikiTextPragma.tid +1 -1
  1259. package/plugins/tiddlywiki/markdown/files/remarkable-katex-license.txt +21 -0
  1260. package/plugins/tiddlywiki/markdown/files/remarkable-katex.js +137 -0
  1261. package/plugins/tiddlywiki/markdown/files/remarkable-katex.min.js +20 -0
  1262. package/plugins/tiddlywiki/markdown/files/remarkable-license.txt +22 -0
  1263. package/plugins/tiddlywiki/markdown/files/tiddlywiki.files +24 -0
  1264. package/plugins/tiddlywiki/markdown/plugin.info +2 -2
  1265. package/plugins/tiddlywiki/markdown/readme.tid +1 -1
  1266. package/plugins/tiddlywiki/markdown/wrapper.js +50 -16
  1267. package/plugins/tiddlywiki/menubar/menu.tid +1 -1
  1268. package/plugins/tiddlywiki/menubar/readme.tid +1 -0
  1269. package/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid +1 -2
  1270. package/plugins/tiddlywiki/savetrail/savetrail.js +4 -4
  1271. package/plugins/tiddlywiki/share/rawmarkup.js +1 -1
  1272. package/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid +1 -1
  1273. package/plugins/tiddlywiki/tiddlyweb/html-div-tiddler.tid +1 -1
  1274. package/plugins/tiddlywiki/tiddlyweb/html-json-skinny-tiddler.tid +4 -0
  1275. package/plugins/tiddlywiki/tiddlyweb/html-json-tiddler.tid +4 -0
  1276. package/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid +1 -1
  1277. package/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +26 -13
  1278. package/plugins/tiddlywiki/xlsx-utils/deserializer.js +2 -1
  1279. package/readme.md +3 -3
  1280. package/themes/tiddlywiki/snowwhite/base.tid +2 -1
  1281. package/themes/tiddlywiki/starlight/styles.tid +6 -6
  1282. package/themes/tiddlywiki/tight/base.tid +5 -5
  1283. package/themes/tiddlywiki/vanilla/ThemeTweaks.tid +7 -3
  1284. package/themes/tiddlywiki/vanilla/base.tid +202 -87
  1285. package/themes/tiddlywiki/vanilla/reset.tid +1 -1
  1286. package/themes/tiddlywiki/vanilla/settings.multids +1 -1
  1287. package/themes/tiddlywiki/vanilla/sticky.tid +1 -0
  1288. package/core/ui/ViewTemplate/plugin.tid +0 -15
  1289. package/editions/fr-FR/tiddlers/$__core_ui_ViewTemplate_title.tid +0 -46
  1290. package/editions/fr-FR/tiddlers/Images_in_WikiText.tid +0 -48
  1291. package/editions/fr-FR/tiddlers/ImportTiddlers.tid +0 -14
  1292. package/editions/fr-FR/tiddlers/Sharing_your_tiddlers_with_others.tid +0 -16
  1293. package/editions/tw5.com/tiddlers/community/Resources.tid +0 -25
  1294. package/editions/tw5.com/tiddlers/community/examples/Obadiah.tid +0 -10
  1295. package/editions/tw5.com/tiddlers/community/resources/Hosting TiddlyWiki5 on GoogleDrive.tid +0 -13
  1296. package/editions/tw5.com/tiddlers/community/resources/How Does Twederation Work by Jed Carty.tid +0 -14
  1297. package/editions/tw5.com/tiddlers/community/resources/Plugins by Uwe Stuehler.tid +0 -13
  1298. package/editions/tw5.com/tiddlers/community/resources/TiddlyClip by buggyjay.tid +0 -14
  1299. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Jingle by Mans Martensson.tid +0 -18
  1300. package/editions/tw5.com/tiddlers/community/resources/TiddlyWiki5 Coding.tid +0 -18
  1301. package/editions/tw5.com/tiddlers/customising/Page and tiddler layout customisation.tid +0 -63
  1302. package/editions/tw5.com/tiddlers/demonstrations/SampleAlert.tid +0 -9
  1303. package/plugins/tiddlywiki/highlight/howto.tid +0 -10
@@ -1,1683 +1 @@
1
- /* eslint-disable */
2
- /* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
3
- /* vim: set ts=2 et sw=2 tw=80: */
4
-
5
- /*************************************************************
6
- *
7
- * KaTeX mhchem.js
8
- *
9
- * This file implements a KaTeX version of mhchem version 3.3.0.
10
- * It is adapted from MathJax/extensions/TeX/mhchem.js
11
- * It differs from the MathJax version as follows:
12
- * 1. The interface is changed so that it can be called from KaTeX, not MathJax.
13
- * 2. \rlap and \llap are replaced with \mathrlap and \mathllap.
14
- * 3. Four lines of code are edited in order to use \raisebox instead of \raise.
15
- * 4. The reaction arrow code is simplified. All reaction arrows are rendered
16
- * using KaTeX extensible arrows instead of building non-extensible arrows.
17
- * 5. \tripledash vertical alignment is slightly adjusted.
18
- *
19
- * This code, as other KaTeX code, is released under the MIT license.
20
- *
21
- * /*************************************************************
22
- *
23
- * MathJax/extensions/TeX/mhchem.js
24
- *
25
- * Implements the \ce command for handling chemical formulas
26
- * from the mhchem LaTeX package.
27
- *
28
- * ---------------------------------------------------------------------
29
- *
30
- * Copyright (c) 2011-2015 The MathJax Consortium
31
- * Copyright (c) 2015-2018 Martin Hensel
32
- *
33
- * Licensed under the Apache License, Version 2.0 (the "License");
34
- * you may not use this file except in compliance with the License.
35
- * You may obtain a copy of the License at
36
- *
37
- * http://www.apache.org/licenses/LICENSE-2.0
38
- *
39
- * Unless required by applicable law or agreed to in writing, software
40
- * distributed under the License is distributed on an "AS IS" BASIS,
41
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
42
- * See the License for the specific language governing permissions and
43
- * limitations under the License.
44
- */
45
-
46
- //
47
- // Coding Style
48
- // - use '' for identifiers that can by minified/uglified
49
- // - use "" for strings that need to stay untouched
50
-
51
- // version: "3.3.0" for MathJax and KaTeX
52
-
53
- /****************************************
54
- *****************************************
55
- * TiddlyWiki: moved the katex-module definitions to wrapper.js
56
- *****************************************
57
- *****************************************/
58
-
59
- //
60
- // This is the main function for handing the \ce and \pu commands.
61
- // It takes the argument to \ce or \pu and returns the corresponding TeX string.
62
- //
63
-
64
- // TiddlyWiki: replaced `var chemParse =` with `module.exports =` ... no more modifications in this file
65
- module.exports = function (tokens, stateMachine) {
66
- // Recreate the argument string from KaTeX's array of tokens.
67
- var str = "";
68
- var expectedLoc = tokens[tokens.length - 1].loc.start
69
- for (var i = tokens.length - 1; i >= 0; i--) {
70
- if(tokens[i].loc.start > expectedLoc) {
71
- // context.consumeArgs has eaten a space.
72
- str += " ";
73
- expectedLoc = tokens[i].loc.start;
74
- }
75
- str += tokens[i].text;
76
- expectedLoc += tokens[i].text.length;
77
- }
78
- var tex = texify.go(mhchemParser.go(str, stateMachine));
79
- return tex;
80
- };
81
-
82
- //
83
- // Core parser for mhchem syntax (recursive)
84
- //
85
- /** @type {MhchemParser} */
86
- var mhchemParser = {
87
- //
88
- // Parses mchem \ce syntax
89
- //
90
- // Call like
91
- // go("H2O");
92
- //
93
- go: function (input, stateMachine) {
94
- if (!input) { return []; }
95
- if (stateMachine === undefined) { stateMachine = 'ce'; }
96
- var state = '0';
97
-
98
- //
99
- // String buffers for parsing:
100
- //
101
- // buffer.a == amount
102
- // buffer.o == element
103
- // buffer.b == left-side superscript
104
- // buffer.p == left-side subscript
105
- // buffer.q == right-side subscript
106
- // buffer.d == right-side superscript
107
- //
108
- // buffer.r == arrow
109
- // buffer.rdt == arrow, script above, type
110
- // buffer.rd == arrow, script above, content
111
- // buffer.rqt == arrow, script below, type
112
- // buffer.rq == arrow, script below, content
113
- //
114
- // buffer.text_
115
- // buffer.rm
116
- // etc.
117
- //
118
- // buffer.parenthesisLevel == int, starting at 0
119
- // buffer.sb == bool, space before
120
- // buffer.beginsWithBond == bool
121
- //
122
- // These letters are also used as state names.
123
- //
124
- // Other states:
125
- // 0 == begin of main part (arrow/operator unlikely)
126
- // 1 == next entity
127
- // 2 == next entity (arrow/operator unlikely)
128
- // 3 == next atom
129
- // c == macro
130
- //
131
- /** @type {Buffer} */
132
- var buffer = {};
133
- buffer['parenthesisLevel'] = 0;
134
-
135
- input = input.replace(/\n/g, " ");
136
- input = input.replace(/[\u2212\u2013\u2014\u2010]/g, "-");
137
- input = input.replace(/[\u2026]/g, "...");
138
-
139
- //
140
- // Looks through mhchemParser.transitions, to execute a matching action
141
- // (recursive)
142
- //
143
- var lastInput;
144
- var watchdog = 10;
145
- /** @type {ParserOutput[]} */
146
- var output = [];
147
- while (true) {
148
- if (lastInput !== input) {
149
- watchdog = 10;
150
- lastInput = input;
151
- } else {
152
- watchdog--;
153
- }
154
- //
155
- // Find actions in transition table
156
- //
157
- var machine = mhchemParser.stateMachines[stateMachine];
158
- var t = machine.transitions[state] || machine.transitions['*'];
159
- iterateTransitions:
160
- for (var i=0; i<t.length; i++) {
161
- var matches = mhchemParser.patterns.match_(t[i].pattern, input);
162
- if (matches) {
163
- //
164
- // Execute actions
165
- //
166
- var task = t[i].task;
167
- for (var iA=0; iA<task.action_.length; iA++) {
168
- var o;
169
- //
170
- // Find and execute action
171
- //
172
- if (machine.actions[task.action_[iA].type_]) {
173
- o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);
174
- } else if (mhchemParser.actions[task.action_[iA].type_]) {
175
- o = mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);
176
- } else {
177
- throw ["MhchemBugA", "mhchem bug A. Please report. (" + task.action_[iA].type_ + ")"]; // Trying to use non-existing action
178
- }
179
- //
180
- // Add output
181
- //
182
- mhchemParser.concatArray(output, o);
183
- }
184
- //
185
- // Set next state,
186
- // Shorten input,
187
- // Continue with next character
188
- // (= apply only one transition per position)
189
- //
190
- state = task.nextState || state;
191
- if (input.length > 0) {
192
- if (!task.revisit) {
193
- input = matches.remainder;
194
- }
195
- if (!task.toContinue) {
196
- break iterateTransitions;
197
- }
198
- } else {
199
- return output;
200
- }
201
- }
202
- }
203
- //
204
- // Prevent infinite loop
205
- //
206
- if (watchdog <= 0) {
207
- throw ["MhchemBugU", "mhchem bug U. Please report."]; // Unexpected character
208
- }
209
- }
210
- },
211
- concatArray: function (a, b) {
212
- if (b) {
213
- if (Array.isArray(b)) {
214
- for (var iB=0; iB<b.length; iB++) {
215
- a.push(b[iB]);
216
- }
217
- } else {
218
- a.push(b);
219
- }
220
- }
221
- },
222
-
223
- patterns: {
224
- //
225
- // Matching patterns
226
- // either regexps or function that return null or {match_:"a", remainder:"bc"}
227
- //
228
- patterns: {
229
- // property names must not look like integers ("2") for correct property traversal order, later on
230
- 'empty': /^$/,
231
- 'else': /^./,
232
- 'else2': /^./,
233
- 'space': /^\s/,
234
- 'space A': /^\s(?=[A-Z\\$])/,
235
- 'space$': /^\s$/,
236
- 'a-z': /^[a-z]/,
237
- 'x': /^x/,
238
- 'x$': /^x$/,
239
- 'i$': /^i$/,
240
- 'letters': /^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/,
241
- '\\greek': /^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/,
242
- 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/,
243
- '$one lowercase latin letter$ $': /^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/,
244
- 'one lowercase greek letter $': /^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/,
245
- 'digits': /^[0-9]+/,
246
- '-9.,9': /^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/,
247
- '-9.,9 no missing 0': /^[+\-]?[0-9]+(?:[.,][0-9]+)?/,
248
- '(-)(9.,9)(e)(99)': function (input) {
249
- var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/);
250
- if (m && m[0]) {
251
- return { match_: m.splice(1), remainder: input.substr(m[0].length) };
252
- }
253
- return null;
254
- },
255
- '(-)(9)^(-9)': function (input) {
256
- var m = input.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/);
257
- if (m && m[0]) {
258
- return { match_: m.splice(1), remainder: input.substr(m[0].length) };
259
- }
260
- return null;
261
- },
262
- 'state of aggregation $': function (input) { // ... or crystal system
263
- var a = mhchemParser.patterns.findObserveGroups(input, "", /^\([a-z]{1,3}(?=[\),])/, ")", ""); // (aq), (aq,$\infty$), (aq, sat)
264
- if (a && a.remainder.match(/^($|[\s,;\)\]\}])/)) { return a; } // AND end of 'phrase'
265
- var m = input.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/); // OR crystal system ($o$) (\ca$c$)
266
- if (m) {
267
- return { match_: m[0], remainder: input.substr(m[0].length) };
268
- }
269
- return null;
270
- },
271
- '_{(state of aggregation)}$': /^_\{(\([a-z]{1,3}\))\}/,
272
- '{[(': /^(?:\\\{|\[|\()/,
273
- ')]}': /^(?:\)|\]|\\\})/,
274
- ', ': /^[,;]\s*/,
275
- ',': /^[,;]/,
276
- '.': /^[.]/,
277
- '. ': /^([.\u22C5\u00B7\u2022])\s*/,
278
- '...': /^\.\.\.(?=$|[^.])/,
279
- '* ': /^([*])\s*/,
280
- '^{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "^{", "", "", "}"); },
281
- '^($...$)': function (input) { return mhchemParser.patterns.findObserveGroups(input, "^", "$", "$", ""); },
282
- '^a': /^\^([0-9]+|[^\\_])/,
283
- '^\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); },
284
- '^\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "^", /^\\[a-zA-Z]+\{/, "}", ""); },
285
- '^\\x': /^\^(\\[a-zA-Z]+)\s*/,
286
- '^(-1)': /^\^(-?\d+)/,
287
- '\'': /^'/,
288
- '_{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "_{", "", "", "}"); },
289
- '_($...$)': function (input) { return mhchemParser.patterns.findObserveGroups(input, "_", "$", "$", ""); },
290
- '_9': /^_([+\-]?[0-9]+|[^\\])/,
291
- '_\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); },
292
- '_\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "_", /^\\[a-zA-Z]+\{/, "}", ""); },
293
- '_\\x': /^_(\\[a-zA-Z]+)\s*/,
294
- '^_': /^(?:\^(?=_)|\_(?=\^)|[\^_]$)/,
295
- '{}': /^\{\}/,
296
- '{...}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "", "{", "}", ""); },
297
- '{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "{", "", "", "}"); },
298
- '$...$': function (input) { return mhchemParser.patterns.findObserveGroups(input, "", "$", "$", ""); },
299
- '${(...)}$': function (input) { return mhchemParser.patterns.findObserveGroups(input, "${", "", "", "}$"); },
300
- '$(...)$': function (input) { return mhchemParser.patterns.findObserveGroups(input, "$", "", "", "$"); },
301
- '=<>': /^[=<>]/,
302
- '#': /^[#\u2261]/,
303
- '+': /^\+/,
304
- '-$': /^-(?=[\s_},;\]/]|$|\([a-z]+\))/, // -space -, -; -] -/ -$ -state-of-aggregation
305
- '-9': /^-(?=[0-9])/,
306
- '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,
307
- '-': /^-/,
308
- 'pm-operator': /^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,
309
- 'operator': /^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,
310
- 'arrowUpDown': /^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,
311
- '\\bond{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\bond{", "", "", "}"); },
312
- '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,
313
- 'CMT': /^[CMT](?=\[)/,
314
- '[(...)]': function (input) { return mhchemParser.patterns.findObserveGroups(input, "[", "", "", "]"); },
315
- '1st-level escape': /^(&|\\\\|\\hline)\s*/,
316
- '\\,': /^(?:\\[,\ ;:])/, // \\x - but output no space before
317
- '\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", "", "", "{", "}", "", true); },
318
- '\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "", /^\\[a-zA-Z]+\{/, "}", ""); },
319
- '\\ca': /^\\ca(?:\s+|(?![a-zA-Z]))/,
320
- '\\x': /^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,
321
- 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, // only those with numbers in front, because the others will be formatted correctly anyway
322
- 'others': /^[\/~|]/,
323
- '\\frac{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\frac{", "", "", "}", "{", "", "", "}"); },
324
- '\\overset{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\overset{", "", "", "}", "{", "", "", "}"); },
325
- '\\underset{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\underset{", "", "", "}", "{", "", "", "}"); },
326
- '\\underbrace{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\underbrace{", "", "", "}_", "{", "", "", "}"); },
327
- '\\color{(...)}0': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}"); },
328
- '\\color{(...)}{(...)}1': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\color{", "", "", "}", "{", "", "", "}"); },
329
- '\\color(...){(...)}2': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\color", "\\", "", /^(?=\{)/, "{", "", "", "}"); },
330
- '\\ce{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, "\\ce{", "", "", "}"); },
331
- 'oxidation$': /^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,
332
- 'd-oxidation$': /^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/, // 0 could be oxidation or charge
333
- 'roman numeral': /^[IVX]+/,
334
- '1/2$': /^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,
335
- 'amount': function (input) {
336
- var match;
337
- // e.g. 2, 0.5, 1/2, -2, n/2, +; $a$ could be added later in parsing
338
- match = input.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/);
339
- if (match) {
340
- return { match_: match[0], remainder: input.substr(match[0].length) };
341
- }
342
- var a = mhchemParser.patterns.findObserveGroups(input, "", "$", "$", "");
343
- if (a) { // e.g. $2n-1$, $-$
344
- match = a.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/);
345
- if (match) {
346
- return { match_: match[0], remainder: input.substr(match[0].length) };
347
- }
348
- }
349
- return null;
350
- },
351
- 'amount2': function (input) { return this['amount'](input); },
352
- '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/,
353
- 'formula$': function (input) {
354
- if (input.match(/^\([a-z]+\)$/)) { return null; } // state of aggregation = no formula
355
- var match = input.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);
356
- if (match) {
357
- return { match_: match[0], remainder: input.substr(match[0].length) };
358
- }
359
- return null;
360
- },
361
- 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,
362
- '/': /^\s*(\/)\s*/,
363
- '//': /^\s*(\/\/)\s*/,
364
- '*': /^\s*[*.]\s*/
365
- },
366
- findObserveGroups: function (input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) {
367
- /** @type {{(input: string, pattern: string | RegExp): string | string[] | null;}} */
368
- var _match = function (input, pattern) {
369
- if (typeof pattern === "string") {
370
- if (input.indexOf(pattern) !== 0) { return null; }
371
- return pattern;
372
- } else {
373
- var match = input.match(pattern);
374
- if (!match) { return null; }
375
- return match[0];
376
- }
377
- };
378
- /** @type {{(input: string, i: number, endChars: string | RegExp): {endMatchBegin: number, endMatchEnd: number} | null;}} */
379
- var _findObserveGroups = function (input, i, endChars) {
380
- var braces = 0;
381
- while (i < input.length) {
382
- var a = input.charAt(i);
383
- var match = _match(input.substr(i), endChars);
384
- if (match !== null && braces === 0) {
385
- return { endMatchBegin: i, endMatchEnd: i + match.length };
386
- } else if (a === "{") {
387
- braces++;
388
- } else if (a === "}") {
389
- if (braces === 0) {
390
- throw ["ExtraCloseMissingOpen", "Extra close brace or missing open brace"];
391
- } else {
392
- braces--;
393
- }
394
- }
395
- i++;
396
- }
397
- if (braces > 0) {
398
- return null;
399
- }
400
- return null;
401
- };
402
- var match = _match(input, begExcl);
403
- if (match === null) { return null; }
404
- input = input.substr(match.length);
405
- match = _match(input, begIncl);
406
- if (match === null) { return null; }
407
- var e = _findObserveGroups(input, match.length, endIncl || endExcl);
408
- if (e === null) { return null; }
409
- var match1 = input.substring(0, (endIncl ? e.endMatchEnd : e.endMatchBegin));
410
- if (!(beg2Excl || beg2Incl)) {
411
- return {
412
- match_: match1,
413
- remainder: input.substr(e.endMatchEnd)
414
- };
415
- } else {
416
- var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl);
417
- if (group2 === null) { return null; }
418
- /** @type {string[]} */
419
- var matchRet = [match1, group2.match_];
420
- return {
421
- match_: (combine ? matchRet.join("") : matchRet),
422
- remainder: group2.remainder
423
- };
424
- }
425
- },
426
-
427
- //
428
- // Matching function
429
- // e.g. match("a", input) will look for the regexp called "a" and see if it matches
430
- // returns null or {match_:"a", remainder:"bc"}
431
- //
432
- match_: function (m, input) {
433
- var pattern = mhchemParser.patterns.patterns[m];
434
- if (pattern === undefined) {
435
- throw ["MhchemBugP", "mhchem bug P. Please report. (" + m + ")"]; // Trying to use non-existing pattern
436
- } else if (typeof pattern === "function") {
437
- return mhchemParser.patterns.patterns[m](input); // cannot use cached var pattern here, because some pattern functions need this===mhchemParser
438
- } else { // RegExp
439
- var match = input.match(pattern);
440
- if (match) {
441
- var mm;
442
- if (match[2]) {
443
- mm = [ match[1], match[2] ];
444
- } else if (match[1]) {
445
- mm = match[1];
446
- } else {
447
- mm = match[0];
448
- }
449
- return { match_: mm, remainder: input.substr(match[0].length) };
450
- }
451
- return null;
452
- }
453
- }
454
- },
455
-
456
- //
457
- // Generic state machine actions
458
- //
459
- actions: {
460
- 'a=': function (buffer, m) { buffer.a = (buffer.a || "") + m; },
461
- 'b=': function (buffer, m) { buffer.b = (buffer.b || "") + m; },
462
- 'p=': function (buffer, m) { buffer.p = (buffer.p || "") + m; },
463
- 'o=': function (buffer, m) { buffer.o = (buffer.o || "") + m; },
464
- 'q=': function (buffer, m) { buffer.q = (buffer.q || "") + m; },
465
- 'd=': function (buffer, m) { buffer.d = (buffer.d || "") + m; },
466
- 'rm=': function (buffer, m) { buffer.rm = (buffer.rm || "") + m; },
467
- 'text=': function (buffer, m) { buffer.text_ = (buffer.text_ || "") + m; },
468
- 'insert': function (buffer, m, a) { return { type_: a }; },
469
- 'insert+p1': function (buffer, m, a) { return { type_: a, p1: m }; },
470
- 'insert+p1+p2': function (buffer, m, a) { return { type_: a, p1: m[0], p2: m[1] }; },
471
- 'copy': function (buffer, m) { return m; },
472
- 'rm': function (buffer, m) { return { type_: 'rm', p1: m || ""}; },
473
- 'text': function (buffer, m) { return mhchemParser.go(m, 'text'); },
474
- '{text}': function (buffer, m) {
475
- var ret = [ "{" ];
476
- mhchemParser.concatArray(ret, mhchemParser.go(m, 'text'));
477
- ret.push("}");
478
- return ret;
479
- },
480
- 'tex-math': function (buffer, m) { return mhchemParser.go(m, 'tex-math'); },
481
- 'tex-math tight': function (buffer, m) { return mhchemParser.go(m, 'tex-math tight'); },
482
- 'bond': function (buffer, m, k) { return { type_: 'bond', kind_: k || m }; },
483
- 'color0-output': function (buffer, m) { return { type_: 'color0', color: m[0] }; },
484
- 'ce': function (buffer, m) { return mhchemParser.go(m); },
485
- '1/2': function (buffer, m) {
486
- /** @type {ParserOutput[]} */
487
- var ret = [];
488
- if (m.match(/^[+\-]/)) {
489
- ret.push(m.substr(0, 1));
490
- m = m.substr(1);
491
- }
492
- var n = m.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/);
493
- n[1] = n[1].replace(/\$/g, "");
494
- ret.push({ type_: 'frac', p1: n[1], p2: n[2] });
495
- if (n[3]) {
496
- n[3] = n[3].replace(/\$/g, "");
497
- ret.push({ type_: 'tex-math', p1: n[3] });
498
- }
499
- return ret;
500
- },
501
- '9,9': function (buffer, m) { return mhchemParser.go(m, '9,9'); }
502
- },
503
- //
504
- // createTransitions
505
- // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] }
506
- // with expansion of 'a|b' to 'a' and 'b' (at 2 places)
507
- //
508
- createTransitions: function (o) {
509
- var pattern, state;
510
- /** @type {string[]} */
511
- var stateArray;
512
- var i;
513
- //
514
- // 1. Collect all states
515
- //
516
- /** @type {Transitions} */
517
- var transitions = {};
518
- for (pattern in o) {
519
- for (state in o[pattern]) {
520
- stateArray = state.split("|");
521
- o[pattern][state].stateArray = stateArray;
522
- for (i=0; i<stateArray.length; i++) {
523
- transitions[stateArray[i]] = [];
524
- }
525
- }
526
- }
527
- //
528
- // 2. Fill states
529
- //
530
- for (pattern in o) {
531
- for (state in o[pattern]) {
532
- stateArray = o[pattern][state].stateArray || [];
533
- for (i=0; i<stateArray.length; i++) {
534
- //
535
- // 2a. Normalize actions into array: 'text=' ==> [{type_:'text='}]
536
- // (Note to myself: Resolving the function here would be problematic. It would need .bind (for *this*) and currying (for *option*).)
537
- //
538
- /** @type {any} */
539
- var p = o[pattern][state];
540
- if (p.action_) {
541
- p.action_ = [].concat(p.action_);
542
- for (var k=0; k<p.action_.length; k++) {
543
- if (typeof p.action_[k] === "string") {
544
- p.action_[k] = { type_: p.action_[k] };
545
- }
546
- }
547
- } else {
548
- p.action_ = [];
549
- }
550
- //
551
- // 2.b Multi-insert
552
- //
553
- var patternArray = pattern.split("|");
554
- for (var j=0; j<patternArray.length; j++) {
555
- if (stateArray[i] === '*') { // insert into all
556
- for (var t in transitions) {
557
- transitions[t].push({ pattern: patternArray[j], task: p });
558
- }
559
- } else {
560
- transitions[stateArray[i]].push({ pattern: patternArray[j], task: p });
561
- }
562
- }
563
- }
564
- }
565
- }
566
- return transitions;
567
- },
568
- stateMachines: {}
569
- };
570
-
571
- //
572
- // Definition of state machines
573
- //
574
- mhchemParser.stateMachines = {
575
- //
576
- // \ce state machines
577
- //
578
- //#region ce
579
- 'ce': { // main parser
580
- transitions: mhchemParser.createTransitions({
581
- 'empty': {
582
- '*': { action_: 'output' } },
583
- 'else': {
584
- '0|1|2': { action_: 'beginsWithBond=false', revisit: true, toContinue: true } },
585
- 'oxidation$': {
586
- '0': { action_: 'oxidation-output' } },
587
- 'CMT': {
588
- 'r': { action_: 'rdt=', nextState: 'rt' },
589
- 'rd': { action_: 'rqt=', nextState: 'rdt' } },
590
- 'arrowUpDown': {
591
- '0|1|2|as': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '1' } },
592
- 'uprightEntities': {
593
- '0|1|2': { action_: [ 'o=', 'output' ], nextState: '1' } },
594
- 'orbital': {
595
- '0|1|2|3': { action_: 'o=', nextState: 'o' } },
596
- '->': {
597
- '0|1|2|3': { action_: 'r=', nextState: 'r' },
598
- 'a|as': { action_: [ 'output', 'r=' ], nextState: 'r' },
599
- '*': { action_: [ 'output', 'r=' ], nextState: 'r' } },
600
- '+': {
601
- 'o': { action_: 'd= kv', nextState: 'd' },
602
- 'd|D': { action_: 'd=', nextState: 'd' },
603
- 'q': { action_: 'd=', nextState: 'qd' },
604
- 'qd|qD': { action_: 'd=', nextState: 'qd' },
605
- 'dq': { action_: [ 'output', 'd=' ], nextState: 'd' },
606
- '3': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '0' } },
607
- 'amount': {
608
- '0|2': { action_: 'a=', nextState: 'a' } },
609
- 'pm-operator': {
610
- '0|1|2|a|as': { action_: [ 'sb=false', 'output', { type_: 'operator', option: '\\pm' } ], nextState: '0' } },
611
- 'operator': {
612
- '0|1|2|a|as': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '0' } },
613
- '-$': {
614
- 'o|q': { action_: [ 'charge or bond', 'output' ], nextState: 'qd' },
615
- 'd': { action_: 'd=', nextState: 'd' },
616
- 'D': { action_: [ 'output', { type_: 'bond', option: "-" } ], nextState: '3' },
617
- 'q': { action_: 'd=', nextState: 'qd' },
618
- 'qd': { action_: 'd=', nextState: 'qd' },
619
- 'qD|dq': { action_: [ 'output', { type_: 'bond', option: "-" } ], nextState: '3' } },
620
- '-9': {
621
- '3|o': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '3' } },
622
- '- orbital overlap': {
623
- 'o': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' },
624
- 'd': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' } },
625
- '-': {
626
- '0|1|2': { action_: [ { type_: 'output', option: 1 }, 'beginsWithBond=true', { type_: 'bond', option: "-" } ], nextState: '3' },
627
- '3': { action_: { type_: 'bond', option: "-" } },
628
- 'a': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' },
629
- 'as': { action_: [ { type_: 'output', option: 2 }, { type_: 'bond', option: "-" } ], nextState: '3' },
630
- 'b': { action_: 'b=' },
631
- 'o': { action_: { type_: '- after o/d', option: false }, nextState: '2' },
632
- 'q': { action_: { type_: '- after o/d', option: false }, nextState: '2' },
633
- 'd|qd|dq': { action_: { type_: '- after o/d', option: true }, nextState: '2' },
634
- 'D|qD|p': { action_: [ 'output', { type_: 'bond', option: "-" } ], nextState: '3' } },
635
- 'amount2': {
636
- '1|3': { action_: 'a=', nextState: 'a' } },
637
- 'letters': {
638
- '0|1|2|3|a|as|b|p|bp|o': { action_: 'o=', nextState: 'o' },
639
- 'q|dq': { action_: ['output', 'o='], nextState: 'o' },
640
- 'd|D|qd|qD': { action_: 'o after d', nextState: 'o' } },
641
- 'digits': {
642
- 'o': { action_: 'q=', nextState: 'q' },
643
- 'd|D': { action_: 'q=', nextState: 'dq' },
644
- 'q': { action_: [ 'output', 'o=' ], nextState: 'o' },
645
- 'a': { action_: 'o=', nextState: 'o' } },
646
- 'space A': {
647
- 'b|p|bp': {} },
648
- 'space': {
649
- 'a': { nextState: 'as' },
650
- '0': { action_: 'sb=false' },
651
- '1|2': { action_: 'sb=true' },
652
- 'r|rt|rd|rdt|rdq': { action_: 'output', nextState: '0' },
653
- '*': { action_: [ 'output', 'sb=true' ], nextState: '1'} },
654
- '1st-level escape': {
655
- '1|2': { action_: [ 'output', { type_: 'insert+p1', option: '1st-level escape' } ] },
656
- '*': { action_: [ 'output', { type_: 'insert+p1', option: '1st-level escape' } ], nextState: '0' } },
657
- '[(...)]': {
658
- 'r|rt': { action_: 'rd=', nextState: 'rd' },
659
- 'rd|rdt': { action_: 'rq=', nextState: 'rdq' } },
660
- '...': {
661
- 'o|d|D|dq|qd|qD': { action_: [ 'output', { type_: 'bond', option: "..." } ], nextState: '3' },
662
- '*': { action_: [ { type_: 'output', option: 1 }, { type_: 'insert', option: 'ellipsis' } ], nextState: '1' } },
663
- '. |* ': {
664
- '*': { action_: [ 'output', { type_: 'insert', option: 'addition compound' } ], nextState: '1' } },
665
- 'state of aggregation $': {
666
- '*': { action_: [ 'output', 'state of aggregation' ], nextState: '1' } },
667
- '{[(': {
668
- 'a|as|o': { action_: [ 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' },
669
- '0|1|2|3': { action_: [ 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' },
670
- '*': { action_: [ 'output', 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' } },
671
- ')]}': {
672
- '0|1|2|3|b|p|bp|o': { action_: [ 'o=', 'parenthesisLevel--' ], nextState: 'o' },
673
- 'a|as|d|D|q|qd|qD|dq': { action_: [ 'output', 'o=', 'parenthesisLevel--' ], nextState: 'o' } },
674
- ', ': {
675
- '*': { action_: [ 'output', 'comma' ], nextState: '0' } },
676
- '^_': { // ^ and _ without a sensible argument
677
- '*': { } },
678
- '^{(...)}|^($...$)': {
679
- '0|1|2|as': { action_: 'b=', nextState: 'b' },
680
- 'p': { action_: 'b=', nextState: 'bp' },
681
- '3|o': { action_: 'd= kv', nextState: 'D' },
682
- 'q': { action_: 'd=', nextState: 'qD' },
683
- 'd|D|qd|qD|dq': { action_: [ 'output', 'd=' ], nextState: 'D' } },
684
- '^a|^\\x{}{}|^\\x{}|^\\x|\'': {
685
- '0|1|2|as': { action_: 'b=', nextState: 'b' },
686
- 'p': { action_: 'b=', nextState: 'bp' },
687
- '3|o': { action_: 'd= kv', nextState: 'd' },
688
- 'q': { action_: 'd=', nextState: 'qd' },
689
- 'd|qd|D|qD': { action_: 'd=' },
690
- 'dq': { action_: [ 'output', 'd=' ], nextState: 'd' } },
691
- '_{(state of aggregation)}$': {
692
- 'd|D|q|qd|qD|dq': { action_: [ 'output', 'q=' ], nextState: 'q' } },
693
- '_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x': {
694
- '0|1|2|as': { action_: 'p=', nextState: 'p' },
695
- 'b': { action_: 'p=', nextState: 'bp' },
696
- '3|o': { action_: 'q=', nextState: 'q' },
697
- 'd|D': { action_: 'q=', nextState: 'dq' },
698
- 'q|qd|qD|dq': { action_: [ 'output', 'q=' ], nextState: 'q' } },
699
- '=<>': {
700
- '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': { action_: [ { type_: 'output', option: 2 }, 'bond' ], nextState: '3' } },
701
- '#': {
702
- '0|1|2|3|a|as|o': { action_: [ { type_: 'output', option: 2 }, { type_: 'bond', option: "#" } ], nextState: '3' } },
703
- '{}': {
704
- '*': { action_: { type_: 'output', option: 1 }, nextState: '1' } },
705
- '{...}': {
706
- '0|1|2|3|a|as|b|p|bp': { action_: 'o=', nextState: 'o' },
707
- 'o|d|D|q|qd|qD|dq': { action_: [ 'output', 'o=' ], nextState: 'o' } },
708
- '$...$': {
709
- 'a': { action_: 'a=' }, // 2$n$
710
- '0|1|2|3|as|b|p|bp|o': { action_: 'o=', nextState: 'o' }, // not 'amount'
711
- 'as|o': { action_: 'o=' },
712
- 'q|d|D|qd|qD|dq': { action_: [ 'output', 'o=' ], nextState: 'o' } },
713
- '\\bond{(...)}': {
714
- '*': { action_: [ { type_: 'output', option: 2 }, 'bond' ], nextState: "3" } },
715
- '\\frac{(...)}': {
716
- '*': { action_: [ { type_: 'output', option: 1 }, 'frac-output' ], nextState: '3' } },
717
- '\\overset{(...)}': {
718
- '*': { action_: [ { type_: 'output', option: 2 }, 'overset-output' ], nextState: '3' } },
719
- '\\underset{(...)}': {
720
- '*': { action_: [ { type_: 'output', option: 2 }, 'underset-output' ], nextState: '3' } },
721
- '\\underbrace{(...)}': {
722
- '*': { action_: [ { type_: 'output', option: 2 }, 'underbrace-output' ], nextState: '3' } },
723
- '\\color{(...)}{(...)}1|\\color(...){(...)}2': {
724
- '*': { action_: [ { type_: 'output', option: 2 }, 'color-output' ], nextState: '3' } },
725
- '\\color{(...)}0': {
726
- '*': { action_: [ { type_: 'output', option: 2 }, 'color0-output' ] } },
727
- '\\ce{(...)}': {
728
- '*': { action_: [ { type_: 'output', option: 2 }, 'ce' ], nextState: '3' } },
729
- '\\,': {
730
- '*': { action_: [ { type_: 'output', option: 1 }, 'copy' ], nextState: '1' } },
731
- '\\x{}{}|\\x{}|\\x': {
732
- '0|1|2|3|a|as|b|p|bp|o|c0': { action_: [ 'o=', 'output' ], nextState: '3' },
733
- '*': { action_: ['output', 'o=', 'output' ], nextState: '3' } },
734
- 'others': {
735
- '*': { action_: [ { type_: 'output', option: 1 }, 'copy' ], nextState: '3' } },
736
- 'else2': {
737
- 'a': { action_: 'a to o', nextState: 'o', revisit: true },
738
- 'as': { action_: [ 'output', 'sb=true' ], nextState: '1', revisit: true },
739
- 'r|rt|rd|rdt|rdq': { action_: [ 'output' ], nextState: '0', revisit: true },
740
- '*': { action_: [ 'output', 'copy' ], nextState: '3' } }
741
- }),
742
- actions: {
743
- 'o after d': function (buffer, m) {
744
- var ret;
745
- if ((buffer.d || "").match(/^[0-9]+$/)) {
746
- var tmp = buffer.d;
747
- buffer.d = undefined;
748
- ret = this['output'](buffer);
749
- buffer.b = tmp;
750
- } else {
751
- ret = this['output'](buffer);
752
- }
753
- mhchemParser.actions['o='](buffer, m);
754
- return ret;
755
- },
756
- 'd= kv': function (buffer, m) {
757
- buffer.d = m;
758
- buffer.dType = 'kv';
759
- },
760
- 'charge or bond': function (buffer, m) {
761
- if (buffer['beginsWithBond']) {
762
- /** @type {ParserOutput[]} */
763
- var ret = [];
764
- mhchemParser.concatArray(ret, this['output'](buffer));
765
- mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-"));
766
- return ret;
767
- } else {
768
- buffer.d = m;
769
- }
770
- },
771
- '- after o/d': function (buffer, m, isAfterD) {
772
- var c1 = mhchemParser.patterns.match_('orbital', buffer.o || "");
773
- var c2 = mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || "");
774
- var c3 = mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || "");
775
- var c4 = mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || "");
776
- var hyphenFollows = m==="-" && ( c1 && c1.remainder==="" || c2 || c3 || c4 );
777
- if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) {
778
- buffer.o = '$' + buffer.o + '$';
779
- }
780
- /** @type {ParserOutput[]} */
781
- var ret = [];
782
- if (hyphenFollows) {
783
- mhchemParser.concatArray(ret, this['output'](buffer));
784
- ret.push({ type_: 'hyphen' });
785
- } else {
786
- c1 = mhchemParser.patterns.match_('digits', buffer.d || "");
787
- if (isAfterD && c1 && c1.remainder==='') {
788
- mhchemParser.concatArray(ret, mhchemParser.actions['d='](buffer, m));
789
- mhchemParser.concatArray(ret, this['output'](buffer));
790
- } else {
791
- mhchemParser.concatArray(ret, this['output'](buffer));
792
- mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, "-"));
793
- }
794
- }
795
- return ret;
796
- },
797
- 'a to o': function (buffer) {
798
- buffer.o = buffer.a;
799
- buffer.a = undefined;
800
- },
801
- 'sb=true': function (buffer) { buffer.sb = true; },
802
- 'sb=false': function (buffer) { buffer.sb = false; },
803
- 'beginsWithBond=true': function (buffer) { buffer['beginsWithBond'] = true; },
804
- 'beginsWithBond=false': function (buffer) { buffer['beginsWithBond'] = false; },
805
- 'parenthesisLevel++': function (buffer) { buffer['parenthesisLevel']++; },
806
- 'parenthesisLevel--': function (buffer) { buffer['parenthesisLevel']--; },
807
- 'state of aggregation': function (buffer, m) {
808
- return { type_: 'state of aggregation', p1: mhchemParser.go(m, 'o') };
809
- },
810
- 'comma': function (buffer, m) {
811
- var a = m.replace(/\s*$/, '');
812
- var withSpace = (a !== m);
813
- if (withSpace && buffer['parenthesisLevel'] === 0) {
814
- return { type_: 'comma enumeration L', p1: a };
815
- } else {
816
- return { type_: 'comma enumeration M', p1: a };
817
- }
818
- },
819
- 'output': function (buffer, m, entityFollows) {
820
- // entityFollows:
821
- // undefined = if we have nothing else to output, also ignore the just read space (buffer.sb)
822
- // 1 = an entity follows, never omit the space if there was one just read before (can only apply to state 1)
823
- // 2 = 1 + the entity can have an amount, so output a\, instead of converting it to o (can only apply to states a|as)
824
- /** @type {ParserOutput | ParserOutput[]} */
825
- var ret;
826
- if (!buffer.r) {
827
- ret = [];
828
- if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) {
829
- //ret = [];
830
- } else {
831
- if (buffer.sb) {
832
- ret.push({ type_: 'entitySkip' });
833
- }
834
- if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows!==2) {
835
- buffer.o = buffer.a;
836
- buffer.a = undefined;
837
- } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) {
838
- buffer.o = buffer.a;
839
- buffer.d = buffer.b;
840
- buffer.q = buffer.p;
841
- buffer.a = buffer.b = buffer.p = undefined;
842
- } else {
843
- if (buffer.o && buffer.dType==='kv' && mhchemParser.patterns.match_('d-oxidation$', buffer.d || "")) {
844
- buffer.dType = 'oxidation';
845
- } else if (buffer.o && buffer.dType==='kv' && !buffer.q) {
846
- buffer.dType = undefined;
847
- }
848
- }
849
- ret.push({
850
- type_: 'chemfive',
851
- a: mhchemParser.go(buffer.a, 'a'),
852
- b: mhchemParser.go(buffer.b, 'bd'),
853
- p: mhchemParser.go(buffer.p, 'pq'),
854
- o: mhchemParser.go(buffer.o, 'o'),
855
- q: mhchemParser.go(buffer.q, 'pq'),
856
- d: mhchemParser.go(buffer.d, (buffer.dType === 'oxidation' ? 'oxidation' : 'bd')),
857
- dType: buffer.dType
858
- });
859
- }
860
- } else { // r
861
- /** @type {ParserOutput[]} */
862
- var rd;
863
- if (buffer.rdt === 'M') {
864
- rd = mhchemParser.go(buffer.rd, 'tex-math');
865
- } else if (buffer.rdt === 'T') {
866
- rd = [ { type_: 'text', p1: buffer.rd || "" } ];
867
- } else {
868
- rd = mhchemParser.go(buffer.rd);
869
- }
870
- /** @type {ParserOutput[]} */
871
- var rq;
872
- if (buffer.rqt === 'M') {
873
- rq = mhchemParser.go(buffer.rq, 'tex-math');
874
- } else if (buffer.rqt === 'T') {
875
- rq = [ { type_: 'text', p1: buffer.rq || ""} ];
876
- } else {
877
- rq = mhchemParser.go(buffer.rq);
878
- }
879
- ret = {
880
- type_: 'arrow',
881
- r: buffer.r,
882
- rd: rd,
883
- rq: rq
884
- };
885
- }
886
- for (var p in buffer) {
887
- if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') {
888
- delete buffer[p];
889
- }
890
- }
891
- return ret;
892
- },
893
- 'oxidation-output': function (buffer, m) {
894
- var ret = [ "{" ];
895
- mhchemParser.concatArray(ret, mhchemParser.go(m, 'oxidation'));
896
- ret.push("}");
897
- return ret;
898
- },
899
- 'frac-output': function (buffer, m) {
900
- return { type_: 'frac-ce', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };
901
- },
902
- 'overset-output': function (buffer, m) {
903
- return { type_: 'overset', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };
904
- },
905
- 'underset-output': function (buffer, m) {
906
- return { type_: 'underset', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };
907
- },
908
- 'underbrace-output': function (buffer, m) {
909
- return { type_: 'underbrace', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };
910
- },
911
- 'color-output': function (buffer, m) {
912
- return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1]) };
913
- },
914
- 'r=': function (buffer, m) { buffer.r = m; },
915
- 'rdt=': function (buffer, m) { buffer.rdt = m; },
916
- 'rd=': function (buffer, m) { buffer.rd = m; },
917
- 'rqt=': function (buffer, m) { buffer.rqt = m; },
918
- 'rq=': function (buffer, m) { buffer.rq = m; },
919
- 'operator': function (buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; }
920
- }
921
- },
922
- 'a': {
923
- transitions: mhchemParser.createTransitions({
924
- 'empty': {
925
- '*': {} },
926
- '1/2$': {
927
- '0': { action_: '1/2' } },
928
- 'else': {
929
- '0': { nextState: '1', revisit: true } },
930
- '$(...)$': {
931
- '*': { action_: 'tex-math tight', nextState: '1' } },
932
- ',': {
933
- '*': { action_: { type_: 'insert', option: 'commaDecimal' } } },
934
- 'else2': {
935
- '*': { action_: 'copy' } }
936
- }),
937
- actions: {}
938
- },
939
- 'o': {
940
- transitions: mhchemParser.createTransitions({
941
- 'empty': {
942
- '*': {} },
943
- '1/2$': {
944
- '0': { action_: '1/2' } },
945
- 'else': {
946
- '0': { nextState: '1', revisit: true } },
947
- 'letters': {
948
- '*': { action_: 'rm' } },
949
- '\\ca': {
950
- '*': { action_: { type_: 'insert', option: 'circa' } } },
951
- '\\x{}{}|\\x{}|\\x': {
952
- '*': { action_: 'copy' } },
953
- '${(...)}$|$(...)$': {
954
- '*': { action_: 'tex-math' } },
955
- '{(...)}': {
956
- '*': { action_: '{text}' } },
957
- 'else2': {
958
- '*': { action_: 'copy' } }
959
- }),
960
- actions: {}
961
- },
962
- 'text': {
963
- transitions: mhchemParser.createTransitions({
964
- 'empty': {
965
- '*': { action_: 'output' } },
966
- '{...}': {
967
- '*': { action_: 'text=' } },
968
- '${(...)}$|$(...)$': {
969
- '*': { action_: 'tex-math' } },
970
- '\\greek': {
971
- '*': { action_: [ 'output', 'rm' ] } },
972
- '\\,|\\x{}{}|\\x{}|\\x': {
973
- '*': { action_: [ 'output', 'copy' ] } },
974
- 'else': {
975
- '*': { action_: 'text=' } }
976
- }),
977
- actions: {
978
- 'output': function (buffer) {
979
- if (buffer.text_) {
980
- /** @type {ParserOutput} */
981
- var ret = { type_: 'text', p1: buffer.text_ };
982
- for (var p in buffer) { delete buffer[p]; }
983
- return ret;
984
- }
985
- }
986
- }
987
- },
988
- 'pq': {
989
- transitions: mhchemParser.createTransitions({
990
- 'empty': {
991
- '*': {} },
992
- 'state of aggregation $': {
993
- '*': { action_: 'state of aggregation' } },
994
- 'i$': {
995
- '0': { nextState: '!f', revisit: true } },
996
- '(KV letters),': {
997
- '0': { action_: 'rm', nextState: '0' } },
998
- 'formula$': {
999
- '0': { nextState: 'f', revisit: true } },
1000
- '1/2$': {
1001
- '0': { action_: '1/2' } },
1002
- 'else': {
1003
- '0': { nextState: '!f', revisit: true } },
1004
- '${(...)}$|$(...)$': {
1005
- '*': { action_: 'tex-math' } },
1006
- '{(...)}': {
1007
- '*': { action_: 'text' } },
1008
- 'a-z': {
1009
- 'f': { action_: 'tex-math' } },
1010
- 'letters': {
1011
- '*': { action_: 'rm' } },
1012
- '-9.,9': {
1013
- '*': { action_: '9,9' } },
1014
- ',': {
1015
- '*': { action_: { type_: 'insert+p1', option: 'comma enumeration S' } } },
1016
- '\\color{(...)}{(...)}1|\\color(...){(...)}2': {
1017
- '*': { action_: 'color-output' } },
1018
- '\\color{(...)}0': {
1019
- '*': { action_: 'color0-output' } },
1020
- '\\ce{(...)}': {
1021
- '*': { action_: 'ce' } },
1022
- '\\,|\\x{}{}|\\x{}|\\x': {
1023
- '*': { action_: 'copy' } },
1024
- 'else2': {
1025
- '*': { action_: 'copy' } }
1026
- }),
1027
- actions: {
1028
- 'state of aggregation': function (buffer, m) {
1029
- return { type_: 'state of aggregation subscript', p1: mhchemParser.go(m, 'o') };
1030
- },
1031
- 'color-output': function (buffer, m) {
1032
- return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1], 'pq') };
1033
- }
1034
- }
1035
- },
1036
- 'bd': {
1037
- transitions: mhchemParser.createTransitions({
1038
- 'empty': {
1039
- '*': {} },
1040
- 'x$': {
1041
- '0': { nextState: '!f', revisit: true } },
1042
- 'formula$': {
1043
- '0': { nextState: 'f', revisit: true } },
1044
- 'else': {
1045
- '0': { nextState: '!f', revisit: true } },
1046
- '-9.,9 no missing 0': {
1047
- '*': { action_: '9,9' } },
1048
- '.': {
1049
- '*': { action_: { type_: 'insert', option: 'electron dot' } } },
1050
- 'a-z': {
1051
- 'f': { action_: 'tex-math' } },
1052
- 'x': {
1053
- '*': { action_: { type_: 'insert', option: 'KV x' } } },
1054
- 'letters': {
1055
- '*': { action_: 'rm' } },
1056
- '\'': {
1057
- '*': { action_: { type_: 'insert', option: 'prime' } } },
1058
- '${(...)}$|$(...)$': {
1059
- '*': { action_: 'tex-math' } },
1060
- '{(...)}': {
1061
- '*': { action_: 'text' } },
1062
- '\\color{(...)}{(...)}1|\\color(...){(...)}2': {
1063
- '*': { action_: 'color-output' } },
1064
- '\\color{(...)}0': {
1065
- '*': { action_: 'color0-output' } },
1066
- '\\ce{(...)}': {
1067
- '*': { action_: 'ce' } },
1068
- '\\,|\\x{}{}|\\x{}|\\x': {
1069
- '*': { action_: 'copy' } },
1070
- 'else2': {
1071
- '*': { action_: 'copy' } }
1072
- }),
1073
- actions: {
1074
- 'color-output': function (buffer, m) {
1075
- return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1], 'bd') };
1076
- }
1077
- }
1078
- },
1079
- 'oxidation': {
1080
- transitions: mhchemParser.createTransitions({
1081
- 'empty': {
1082
- '*': {} },
1083
- 'roman numeral': {
1084
- '*': { action_: 'roman-numeral' } },
1085
- '${(...)}$|$(...)$': {
1086
- '*': { action_: 'tex-math' } },
1087
- 'else': {
1088
- '*': { action_: 'copy' } }
1089
- }),
1090
- actions: {
1091
- 'roman-numeral': function (buffer, m) { return { type_: 'roman numeral', p1: m || "" }; }
1092
- }
1093
- },
1094
- 'tex-math': {
1095
- transitions: mhchemParser.createTransitions({
1096
- 'empty': {
1097
- '*': { action_: 'output' } },
1098
- '\\ce{(...)}': {
1099
- '*': { action_: [ 'output', 'ce' ] } },
1100
- '{...}|\\,|\\x{}{}|\\x{}|\\x': {
1101
- '*': { action_: 'o=' } },
1102
- 'else': {
1103
- '*': { action_: 'o=' } }
1104
- }),
1105
- actions: {
1106
- 'output': function (buffer) {
1107
- if (buffer.o) {
1108
- /** @type {ParserOutput} */
1109
- var ret = { type_: 'tex-math', p1: buffer.o };
1110
- for (var p in buffer) { delete buffer[p]; }
1111
- return ret;
1112
- }
1113
- }
1114
- }
1115
- },
1116
- 'tex-math tight': {
1117
- transitions: mhchemParser.createTransitions({
1118
- 'empty': {
1119
- '*': { action_: 'output' } },
1120
- '\\ce{(...)}': {
1121
- '*': { action_: [ 'output', 'ce' ] } },
1122
- '{...}|\\,|\\x{}{}|\\x{}|\\x': {
1123
- '*': { action_: 'o=' } },
1124
- '-|+': {
1125
- '*': { action_: 'tight operator' } },
1126
- 'else': {
1127
- '*': { action_: 'o=' } }
1128
- }),
1129
- actions: {
1130
- 'tight operator': function (buffer, m) { buffer.o = (buffer.o || "") + "{"+m+"}"; },
1131
- 'output': function (buffer) {
1132
- if (buffer.o) {
1133
- /** @type {ParserOutput} */
1134
- var ret = { type_: 'tex-math', p1: buffer.o };
1135
- for (var p in buffer) { delete buffer[p]; }
1136
- return ret;
1137
- }
1138
- }
1139
- }
1140
- },
1141
- '9,9': {
1142
- transitions: mhchemParser.createTransitions({
1143
- 'empty': {
1144
- '*': {} },
1145
- ',': {
1146
- '*': { action_: 'comma' } },
1147
- 'else': {
1148
- '*': { action_: 'copy' } }
1149
- }),
1150
- actions: {
1151
- 'comma': function () { return { type_: 'commaDecimal' }; }
1152
- }
1153
- },
1154
- //#endregion
1155
- //
1156
- // \pu state machines
1157
- //
1158
- //#region pu
1159
- 'pu': {
1160
- transitions: mhchemParser.createTransitions({
1161
- 'empty': {
1162
- '*': { action_: 'output' } },
1163
- 'space$': {
1164
- '*': { action_: [ 'output', 'space' ] } },
1165
- '{[(|)]}': {
1166
- '0|a': { action_: 'copy' } },
1167
- '(-)(9)^(-9)': {
1168
- '0': { action_: 'number^', nextState: 'a' } },
1169
- '(-)(9.,9)(e)(99)': {
1170
- '0': { action_: 'enumber', nextState: 'a' } },
1171
- 'space': {
1172
- '0|a': {} },
1173
- 'pm-operator': {
1174
- '0|a': { action_: { type_: 'operator', option: '\\pm' }, nextState: '0' } },
1175
- 'operator': {
1176
- '0|a': { action_: 'copy', nextState: '0' } },
1177
- '//': {
1178
- 'd': { action_: 'o=', nextState: '/' } },
1179
- '/': {
1180
- 'd': { action_: 'o=', nextState: '/' } },
1181
- '{...}|else': {
1182
- '0|d': { action_: 'd=', nextState: 'd' },
1183
- 'a': { action_: [ 'space', 'd=' ], nextState: 'd' },
1184
- '/|q': { action_: 'q=', nextState: 'q' } }
1185
- }),
1186
- actions: {
1187
- 'enumber': function (buffer, m) {
1188
- /** @type {ParserOutput[]} */
1189
- var ret = [];
1190
- if (m[0] === "+-" || m[0] === "+/-") {
1191
- ret.push("\\pm ");
1192
- } else if (m[0]) {
1193
- ret.push(m[0]);
1194
- }
1195
- if (m[1]) {
1196
- mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9'));
1197
- if (m[2]) {
1198
- if (m[2].match(/[,.]/)) {
1199
- mhchemParser.concatArray(ret, mhchemParser.go(m[2], 'pu-9,9'));
1200
- } else {
1201
- ret.push(m[2]);
1202
- }
1203
- }
1204
- m[3] = m[4] || m[3];
1205
- if (m[3]) {
1206
- m[3] = m[3].trim();
1207
- if (m[3] === "e" || m[3].substr(0, 1) === "*") {
1208
- ret.push({ type_: 'cdot' });
1209
- } else {
1210
- ret.push({ type_: 'times' });
1211
- }
1212
- }
1213
- }
1214
- if (m[3]) {
1215
- ret.push("10^{"+m[5]+"}");
1216
- }
1217
- return ret;
1218
- },
1219
- 'number^': function (buffer, m) {
1220
- /** @type {ParserOutput[]} */
1221
- var ret = [];
1222
- if (m[0] === "+-" || m[0] === "+/-") {
1223
- ret.push("\\pm ");
1224
- } else if (m[0]) {
1225
- ret.push(m[0]);
1226
- }
1227
- mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9'));
1228
- ret.push("^{"+m[2]+"}");
1229
- return ret;
1230
- },
1231
- 'operator': function (buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; },
1232
- 'space': function () { return { type_: 'pu-space-1' }; },
1233
- 'output': function (buffer) {
1234
- /** @type {ParserOutput | ParserOutput[]} */
1235
- var ret;
1236
- var md = mhchemParser.patterns.match_('{(...)}', buffer.d || "");
1237
- if (md && md.remainder === '') { buffer.d = md.match_; }
1238
- var mq = mhchemParser.patterns.match_('{(...)}', buffer.q || "");
1239
- if (mq && mq.remainder === '') { buffer.q = mq.match_; }
1240
- if (buffer.d) {
1241
- buffer.d = buffer.d.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C");
1242
- buffer.d = buffer.d.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F");
1243
- }
1244
- if (buffer.q) { // fraction
1245
- buffer.q = buffer.q.replace(/\u00B0C|\^oC|\^{o}C/g, "{}^{\\circ}C");
1246
- buffer.q = buffer.q.replace(/\u00B0F|\^oF|\^{o}F/g, "{}^{\\circ}F");
1247
- var b5 = {
1248
- d: mhchemParser.go(buffer.d, 'pu'),
1249
- q: mhchemParser.go(buffer.q, 'pu')
1250
- };
1251
- if (buffer.o === '//') {
1252
- ret = { type_: 'pu-frac', p1: b5.d, p2: b5.q };
1253
- } else {
1254
- ret = b5.d;
1255
- if (b5.d.length > 1 || b5.q.length > 1) {
1256
- ret.push({ type_: ' / ' });
1257
- } else {
1258
- ret.push({ type_: '/' });
1259
- }
1260
- mhchemParser.concatArray(ret, b5.q);
1261
- }
1262
- } else { // no fraction
1263
- ret = mhchemParser.go(buffer.d, 'pu-2');
1264
- }
1265
- for (var p in buffer) { delete buffer[p]; }
1266
- return ret;
1267
- }
1268
- }
1269
- },
1270
- 'pu-2': {
1271
- transitions: mhchemParser.createTransitions({
1272
- 'empty': {
1273
- '*': { action_: 'output' } },
1274
- '*': {
1275
- '*': { action_: [ 'output', 'cdot' ], nextState: '0' } },
1276
- '\\x': {
1277
- '*': { action_: 'rm=' } },
1278
- 'space': {
1279
- '*': { action_: [ 'output', 'space' ], nextState: '0' } },
1280
- '^{(...)}|^(-1)': {
1281
- '1': { action_: '^(-1)' } },
1282
- '-9.,9': {
1283
- '0': { action_: 'rm=', nextState: '0' },
1284
- '1': { action_: '^(-1)', nextState: '0' } },
1285
- '{...}|else': {
1286
- '*': { action_: 'rm=', nextState: '1' } }
1287
- }),
1288
- actions: {
1289
- 'cdot': function () { return { type_: 'tight cdot' }; },
1290
- '^(-1)': function (buffer, m) { buffer.rm += "^{"+m+"}"; },
1291
- 'space': function () { return { type_: 'pu-space-2' }; },
1292
- 'output': function (buffer) {
1293
- /** @type {ParserOutput | ParserOutput[]} */
1294
- var ret = [];
1295
- if (buffer.rm) {
1296
- var mrm = mhchemParser.patterns.match_('{(...)}', buffer.rm || "");
1297
- if (mrm && mrm.remainder === '') {
1298
- ret = mhchemParser.go(mrm.match_, 'pu');
1299
- } else {
1300
- ret = { type_: 'rm', p1: buffer.rm };
1301
- }
1302
- }
1303
- for (var p in buffer) { delete buffer[p]; }
1304
- return ret;
1305
- }
1306
- }
1307
- },
1308
- 'pu-9,9': {
1309
- transitions: mhchemParser.createTransitions({
1310
- 'empty': {
1311
- '0': { action_: 'output-0' },
1312
- 'o': { action_: 'output-o' } },
1313
- ',': {
1314
- '0': { action_: [ 'output-0', 'comma' ], nextState: 'o' } },
1315
- '.': {
1316
- '0': { action_: [ 'output-0', 'copy' ], nextState: 'o' } },
1317
- 'else': {
1318
- '*': { action_: 'text=' } }
1319
- }),
1320
- actions: {
1321
- 'comma': function () { return { type_: 'commaDecimal' }; },
1322
- 'output-0': function (buffer) {
1323
- /** @type {ParserOutput[]} */
1324
- var ret = [];
1325
- buffer.text_ = buffer.text_ || "";
1326
- if (buffer.text_.length > 4) {
1327
- var a = buffer.text_.length % 3;
1328
- if (a === 0) { a = 3; }
1329
- for (var i=buffer.text_.length-3; i>0; i-=3) {
1330
- ret.push(buffer.text_.substr(i, 3));
1331
- ret.push({ type_: '1000 separator' });
1332
- }
1333
- ret.push(buffer.text_.substr(0, a));
1334
- ret.reverse();
1335
- } else {
1336
- ret.push(buffer.text_);
1337
- }
1338
- for (var p in buffer) { delete buffer[p]; }
1339
- return ret;
1340
- },
1341
- 'output-o': function (buffer) {
1342
- /** @type {ParserOutput[]} */
1343
- var ret = [];
1344
- buffer.text_ = buffer.text_ || "";
1345
- if (buffer.text_.length > 4) {
1346
- var a = buffer.text_.length - 3;
1347
- for (var i=0; i<a; i+=3) {
1348
- ret.push(buffer.text_.substr(i, 3));
1349
- ret.push({ type_: '1000 separator' });
1350
- }
1351
- ret.push(buffer.text_.substr(i));
1352
- } else {
1353
- ret.push(buffer.text_);
1354
- }
1355
- for (var p in buffer) { delete buffer[p]; }
1356
- return ret;
1357
- }
1358
- }
1359
- }
1360
- //#endregion
1361
- };
1362
-
1363
- //
1364
- // texify: Take MhchemParser output and convert it to TeX
1365
- //
1366
- /** @type {Texify} */
1367
- var texify = {
1368
- go: function (input, isInner) { // (recursive, max 4 levels)
1369
- if (!input) { return ""; }
1370
- var res = "";
1371
- var cee = false;
1372
- for (var i=0; i < input.length; i++) {
1373
- var inputi = input[i];
1374
- if (typeof inputi === "string") {
1375
- res += inputi;
1376
- } else {
1377
- res += texify._go2(inputi);
1378
- if (inputi.type_ === '1st-level escape') { cee = true; }
1379
- }
1380
- }
1381
- if (!isInner && !cee && res) {
1382
- res = "{" + res + "}";
1383
- }
1384
- return res;
1385
- },
1386
- _goInner: function (input) {
1387
- if (!input) { return input; }
1388
- return texify.go(input, true);
1389
- },
1390
- _go2: function (buf) {
1391
- /** @type {undefined | string} */
1392
- var res;
1393
- switch (buf.type_) {
1394
- case 'chemfive':
1395
- res = "";
1396
- var b5 = {
1397
- a: texify._goInner(buf.a),
1398
- b: texify._goInner(buf.b),
1399
- p: texify._goInner(buf.p),
1400
- o: texify._goInner(buf.o),
1401
- q: texify._goInner(buf.q),
1402
- d: texify._goInner(buf.d)
1403
- };
1404
- //
1405
- // a
1406
- //
1407
- if (b5.a) {
1408
- if (b5.a.match(/^[+\-]/)) { b5.a = "{"+b5.a+"}"; }
1409
- res += b5.a + "\\,";
1410
- }
1411
- //
1412
- // b and p
1413
- //
1414
- if (b5.b || b5.p) {
1415
- res += "{\\vphantom{X}}";
1416
- res += "^{\\hphantom{"+(b5.b||"")+"}}_{\\hphantom{"+(b5.p||"")+"}}";
1417
- res += "{\\vphantom{X}}";
1418
- res += "^{\\smash[t]{\\vphantom{2}}\\mathllap{"+(b5.b||"")+"}}";
1419
- res += "_{\\vphantom{2}\\mathllap{\\smash[t]{"+(b5.p||"")+"}}}";
1420
- }
1421
- //
1422
- // o
1423
- //
1424
- if (b5.o) {
1425
- if (b5.o.match(/^[+\-]/)) { b5.o = "{"+b5.o+"}"; }
1426
- res += b5.o;
1427
- }
1428
- //
1429
- // q and d
1430
- //
1431
- if (buf.dType === 'kv') {
1432
- if (b5.d || b5.q) {
1433
- res += "{\\vphantom{X}}";
1434
- }
1435
- if (b5.d) {
1436
- res += "^{"+b5.d+"}";
1437
- }
1438
- if (b5.q) {
1439
- res += "_{\\smash[t]{"+b5.q+"}}";
1440
- }
1441
- } else if (buf.dType === 'oxidation') {
1442
- if (b5.d) {
1443
- res += "{\\vphantom{X}}";
1444
- res += "^{"+b5.d+"}";
1445
- }
1446
- if (b5.q) {
1447
- res += "{\\vphantom{X}}";
1448
- res += "_{\\smash[t]{"+b5.q+"}}";
1449
- }
1450
- } else {
1451
- if (b5.q) {
1452
- res += "{\\vphantom{X}}";
1453
- res += "_{\\smash[t]{"+b5.q+"}}";
1454
- }
1455
- if (b5.d) {
1456
- res += "{\\vphantom{X}}";
1457
- res += "^{"+b5.d+"}";
1458
- }
1459
- }
1460
- break;
1461
- case 'rm':
1462
- res = "\\mathrm{"+buf.p1+"}";
1463
- break;
1464
- case 'text':
1465
- if (buf.p1.match(/[\^_]/)) {
1466
- buf.p1 = buf.p1.replace(" ", "~").replace("-", "\\text{-}");
1467
- res = "\\mathrm{"+buf.p1+"}";
1468
- } else {
1469
- res = "\\text{"+buf.p1+"}";
1470
- }
1471
- break;
1472
- case 'roman numeral':
1473
- res = "\\mathrm{"+buf.p1+"}";
1474
- break;
1475
- case 'state of aggregation':
1476
- res = "\\mskip2mu "+texify._goInner(buf.p1);
1477
- break;
1478
- case 'state of aggregation subscript':
1479
- res = "\\mskip1mu "+texify._goInner(buf.p1);
1480
- break;
1481
- case 'bond':
1482
- res = texify._getBond(buf.kind_);
1483
- if (!res) {
1484
- throw ["MhchemErrorBond", "mhchem Error. Unknown bond type (" + buf.kind_ + ")"];
1485
- }
1486
- break;
1487
- case 'frac':
1488
- var c = "\\frac{" + buf.p1 + "}{" + buf.p2 + "}";
1489
- res = "\\mathchoice{\\textstyle"+c+"}{"+c+"}{"+c+"}{"+c+"}";
1490
- break;
1491
- case 'pu-frac':
1492
- var d = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}";
1493
- res = "\\mathchoice{\\textstyle"+d+"}{"+d+"}{"+d+"}{"+d+"}";
1494
- break;
1495
- case 'tex-math':
1496
- res = buf.p1 + " ";
1497
- break;
1498
- case 'frac-ce':
1499
- res = "\\frac{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}";
1500
- break;
1501
- case 'overset':
1502
- res = "\\overset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}";
1503
- break;
1504
- case 'underset':
1505
- res = "\\underset{" + texify._goInner(buf.p1) + "}{" + texify._goInner(buf.p2) + "}";
1506
- break;
1507
- case 'underbrace':
1508
- res = "\\underbrace{" + texify._goInner(buf.p1) + "}_{" + texify._goInner(buf.p2) + "}";
1509
- break;
1510
- case 'color':
1511
- res = "{\\color{" + buf.color1 + "}{" + texify._goInner(buf.color2) + "}}";
1512
- break;
1513
- case 'color0':
1514
- res = "\\color{" + buf.color + "}";
1515
- break;
1516
- case 'arrow':
1517
- var b6 = {
1518
- rd: texify._goInner(buf.rd),
1519
- rq: texify._goInner(buf.rq)
1520
- };
1521
- var arrow = "\\x" + texify._getArrow(buf.r);
1522
- if (b6.rq) { arrow += "[{" + b6.rq + "}]"; }
1523
- if (b6.rd) {
1524
- arrow += "{" + b6.rd + "}";
1525
- } else {
1526
- arrow += "{}";
1527
- }
1528
- res = arrow;
1529
- break;
1530
- case 'operator':
1531
- res = texify._getOperator(buf.kind_);
1532
- break;
1533
- case '1st-level escape':
1534
- res = buf.p1+" "; // &, \\\\, \\hlin
1535
- break;
1536
- case 'space':
1537
- res = " ";
1538
- break;
1539
- case 'entitySkip':
1540
- res = "~";
1541
- break;
1542
- case 'pu-space-1':
1543
- res = "~";
1544
- break;
1545
- case 'pu-space-2':
1546
- res = "\\mkern3mu ";
1547
- break;
1548
- case '1000 separator':
1549
- res = "\\mkern2mu ";
1550
- break;
1551
- case 'commaDecimal':
1552
- res = "{,}";
1553
- break;
1554
- case 'comma enumeration L':
1555
- res = "{"+buf.p1+"}\\mkern6mu ";
1556
- break;
1557
- case 'comma enumeration M':
1558
- res = "{"+buf.p1+"}\\mkern3mu ";
1559
- break;
1560
- case 'comma enumeration S':
1561
- res = "{"+buf.p1+"}\\mkern1mu ";
1562
- break;
1563
- case 'hyphen':
1564
- res = "\\text{-}";
1565
- break;
1566
- case 'addition compound':
1567
- res = "\\,{\\cdot}\\,";
1568
- break;
1569
- case 'electron dot':
1570
- res = "\\mkern1mu \\bullet\\mkern1mu ";
1571
- break;
1572
- case 'KV x':
1573
- res = "{\\times}";
1574
- break;
1575
- case 'prime':
1576
- res = "\\prime ";
1577
- break;
1578
- case 'cdot':
1579
- res = "\\cdot ";
1580
- break;
1581
- case 'tight cdot':
1582
- res = "\\mkern1mu{\\cdot}\\mkern1mu ";
1583
- break;
1584
- case 'times':
1585
- res = "\\times ";
1586
- break;
1587
- case 'circa':
1588
- res = "{\\sim}";
1589
- break;
1590
- case '^':
1591
- res = "uparrow";
1592
- break;
1593
- case 'v':
1594
- res = "downarrow";
1595
- break;
1596
- case 'ellipsis':
1597
- res = "\\ldots ";
1598
- break;
1599
- case '/':
1600
- res = "/";
1601
- break;
1602
- case ' / ':
1603
- res = "\\,/\\,";
1604
- break;
1605
- default:
1606
- assertNever(buf);
1607
- throw ["MhchemBugT", "mhchem bug T. Please report."]; // Missing texify rule or unknown MhchemParser output
1608
- }
1609
- assertString(res);
1610
- return res;
1611
- },
1612
- _getArrow: function (a) {
1613
- switch (a) {
1614
- case "->": return "rightarrow";
1615
- case "\u2192": return "rightarrow";
1616
- case "\u27F6": return "rightarrow";
1617
- case "<-": return "leftarrow";
1618
- case "<->": return "leftrightarrow";
1619
- case "<-->": return "rightleftarrows";
1620
- case "<=>": return "rightleftharpoons";
1621
- case "\u21CC": return "rightleftharpoons";
1622
- case "<=>>": return "rightequilibrium";
1623
- case "<<=>": return "leftequilibrium";
1624
- default:
1625
- assertNever(a);
1626
- throw ["MhchemBugT", "mhchem bug T. Please report."];
1627
- }
1628
- },
1629
- _getBond: function (a) {
1630
- switch (a) {
1631
- case "-": return "{-}";
1632
- case "1": return "{-}";
1633
- case "=": return "{=}";
1634
- case "2": return "{=}";
1635
- case "#": return "{\\equiv}";
1636
- case "3": return "{\\equiv}";
1637
- case "~": return "{\\tripledash}";
1638
- case "~-": return "{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";
1639
- case "~=": return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";
1640
- case "~--": return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";
1641
- case "-~-": return "{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";
1642
- case "...": return "{{\\cdot}{\\cdot}{\\cdot}}";
1643
- case "....": return "{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";
1644
- case "->": return "{\\rightarrow}";
1645
- case "<-": return "{\\leftarrow}";
1646
- case "<": return "{<}";
1647
- case ">": return "{>}";
1648
- default:
1649
- assertNever(a);
1650
- throw ["MhchemBugT", "mhchem bug T. Please report."];
1651
- }
1652
- },
1653
- _getOperator: function (a) {
1654
- switch (a) {
1655
- case "+": return " {}+{} ";
1656
- case "-": return " {}-{} ";
1657
- case "=": return " {}={} ";
1658
- case "<": return " {}<{} ";
1659
- case ">": return " {}>{} ";
1660
- case "<<": return " {}\\ll{} ";
1661
- case ">>": return " {}\\gg{} ";
1662
- case "\\pm": return " {}\\pm{} ";
1663
- case "\\approx": return " {}\\approx{} ";
1664
- case "$\\approx$": return " {}\\approx{} ";
1665
- case "v": return " \\downarrow{} ";
1666
- case "(v)": return " \\downarrow{} ";
1667
- case "^": return " \\uparrow{} ";
1668
- case "(^)": return " \\uparrow{} ";
1669
- default:
1670
- assertNever(a);
1671
- throw ["MhchemBugT", "mhchem bug T. Please report."];
1672
- }
1673
- }
1674
- };
1675
-
1676
- //
1677
- // Helpers for code anaylsis
1678
- // Will show type error at calling position
1679
- //
1680
- /** @param {number} a */
1681
- function assertNever(a) {}
1682
- /** @param {string} a */
1683
- function assertString(a) {}
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],e);else{var n="object"==typeof exports?e(require("katex")):e(t.katex);for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}("undefined"!=typeof self?self:this,function(t){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var a=e[o]={i:o,l:!1,exports:{}};return t[o].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(o,a,function(e){return t[e]}.bind(null,a));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){"use strict";n.r(e);var o=n(0),a=n.n(o);a.a.__defineMacro("\\ce",function(t){return r(t.consumeArgs(1)[0],"ce")}),a.a.__defineMacro("\\pu",function(t){return r(t.consumeArgs(1)[0],"pu")}),a.a.__defineMacro("\\tripledash","{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2mu\\tiny\\text{-}\\mkern1mu\\text{-}\\mkern1mu\\text{-}\\mkern2mu$}}");var r=function(t,e){for(var n="",o=t[t.length-1].loc.start,a=t.length-1;a>=0;a--)t[a].loc.start>o&&(n+=" ",o=t[a].loc.start),n+=t[a].text,o+=t[a].text.length;return c.go(i.go(n,e))},i={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",a={};a.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var r=10,c=[];;){n!==t?(r=10,n=t):r--;var u=i.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s<p.length;s++){var _=i.patterns.match_(p[s].pattern,t);if(_){for(var d=p[s].task,m=0;m<d.action_.length;m++){var l;if(u.actions[d.action_[m].type_])l=u.actions[d.action_[m].type_](a,_.match_,d.action_[m].option);else{if(!i.actions[d.action_[m].type_])throw["MhchemBugA","mhchem bug A. Please report. ("+d.action_[m].type_+")"];l=i.actions[d.action_[m].type_](a,_.match_,d.action_[m].option)}i.concatArray(c,l)}if(o=d.nextState||o,!(t.length>0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(r<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n<e.length;n++)t.push(e[n]);else t.push(e)},patterns:{patterns:{empty:/^$/,else:/^./,else2:/^./,space:/^\s/,"space A":/^\s(?=[A-Z\\$])/,space$:/^\s$/,"a-z":/^[a-z]/,x:/^x/,x$:/^x$/,i$:/^i$/,letters:/^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/,"\\greek":/^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/,"one lowercase latin letter $":/^(?:([a-z])(?:$|[^a-zA-Z]))$/,"$one lowercase latin letter$ $":/^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/,"one lowercase greek letter $":/^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/,digits:/^[0-9]+/,"-9.,9":/^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/,"-9.,9 no missing 0":/^[+\-]?[0-9]+(?:[.,][0-9]+)?/,"(-)(9.,9)(e)(99)":function(t){var e=t.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))?(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/);return e&&e[0]?{match_:e.splice(1),remainder:t.substr(e[0].length)}:null},"(-)(9)^(-9)":function(t){var e=t.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/);return e&&e[0]?{match_:e.splice(1),remainder:t.substr(e[0].length)}:null},"state of aggregation $":function(t){var e=i.patterns.findObserveGroups(t,"",/^\([a-z]{1,3}(?=[\),])/,")","");if(e&&e.remainder.match(/^($|[\s,;\)\]\}])/))return e;var n=t.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/);return n?{match_:n[0],remainder:t.substr(n[0].length)}:null},"_{(state of aggregation)}$":/^_\{(\([a-z]{1,3}\))\}/,"{[(":/^(?:\\\{|\[|\()/,")]}":/^(?:\)|\]|\\\})/,", ":/^[,;]\s*/,",":/^[,;]/,".":/^[.]/,". ":/^([.\u22C5\u00B7\u2022])\s*/,"...":/^\.\.\.(?=$|[^.])/,"* ":/^([*])\s*/,"^{(...)}":function(t){return i.patterns.findObserveGroups(t,"^{","","","}")},"^($...$)":function(t){return i.patterns.findObserveGroups(t,"^","$","$","")},"^a":/^\^([0-9]+|[^\\_])/,"^\\x{}{}":function(t){return i.patterns.findObserveGroups(t,"^",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"^\\x{}":function(t){return i.patterns.findObserveGroups(t,"^",/^\\[a-zA-Z]+\{/,"}","")},"^\\x":/^\^(\\[a-zA-Z]+)\s*/,"^(-1)":/^\^(-?\d+)/,"'":/^'/,"_{(...)}":function(t){return i.patterns.findObserveGroups(t,"_{","","","}")},"_($...$)":function(t){return i.patterns.findObserveGroups(t,"_","$","$","")},_9:/^_([+\-]?[0-9]+|[^\\])/,"_\\x{}{}":function(t){return i.patterns.findObserveGroups(t,"_",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"_\\x{}":function(t){return i.patterns.findObserveGroups(t,"_",/^\\[a-zA-Z]+\{/,"}","")},"_\\x":/^_(\\[a-zA-Z]+)\s*/,"^_":/^(?:\^(?=_)|\_(?=\^)|[\^_]$)/,"{}":/^\{\}/,"{...}":function(t){return i.patterns.findObserveGroups(t,"","{","}","")},"{(...)}":function(t){return i.patterns.findObserveGroups(t,"{","","","}")},"$...$":function(t){return i.patterns.findObserveGroups(t,"","$","$","")},"${(...)}$":function(t){return i.patterns.findObserveGroups(t,"${","","","}$")},"$(...)$":function(t){return i.patterns.findObserveGroups(t,"$","","","$")},"=<>":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return i.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return i.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return i.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return i.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return i.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return i.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return i.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=i.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e<t.length;){var a=t.charAt(e),r=s(t.substr(e),n);if(null!==r&&0===o)return{endMatchBegin:e,endMatchEnd:e+r.length};if("{"===a)o++;else if("}"===a){if(0===o)throw["ExtraCloseMissingOpen","Extra close brace or missing open brace"];o--}e++}return null}(t,_.length,o||a);if(null===d)return null;var m=t.substring(0,o?d.endMatchEnd:d.endMatchBegin);if(r||i){var l=this.findObserveGroups(t.substr(d.endMatchEnd),r,i,c,u);if(null===l)return null;var f=[m,l.match_];return{match_:p?f.join(""):f,remainder:l.remainder}}return{match_:m,remainder:t.substr(d.endMatchEnd)}},match_:function(t,e){var n=i.patterns.patterns[t];if(void 0===n)throw["MhchemBugP","mhchem bug P. Please report. ("+t+")"];if("function"==typeof n)return i.patterns.patterns[t](e);var o=e.match(n);return o?{match_:o[2]?[o[1],o[2]]:o[1]?o[1]:o[0],remainder:e.substr(o[0].length)}:null}},actions:{"a=":function(t,e){t.a=(t.a||"")+e},"b=":function(t,e){t.b=(t.b||"")+e},"p=":function(t,e){t.p=(t.p||"")+e},"o=":function(t,e){t.o=(t.o||"")+e},"q=":function(t,e){t.q=(t.q||"")+e},"d=":function(t,e){t.d=(t.d||"")+e},"rm=":function(t,e){t.rm=(t.rm||"")+e},"text=":function(t,e){t.text_=(t.text_||"")+e},insert:function(t,e,n){return{type_:n}},"insert+p1":function(t,e,n){return{type_:n,p1:e}},"insert+p1+p2":function(t,e,n){return{type_:n,p1:e[0],p2:e[1]}},copy:function(t,e){return e},rm:function(t,e){return{type_:"rm",p1:e||""}},text:function(t,e){return i.go(e,"text")},"{text}":function(t,e){var n=["{"];return i.concatArray(n,i.go(e,"text")),n.push("}"),n},"tex-math":function(t,e){return i.go(e,"tex-math")},"tex-math tight":function(t,e){return i.go(e,"tex-math tight")},bond:function(t,e,n){return{type_:"bond",kind_:n||e}},"color0-output":function(t,e){return{type_:"color0",color:e[0]}},ce:function(t,e){return i.go(e)},"1/2":function(t,e){var n=[];e.match(/^[+\-]/)&&(n.push(e.substr(0,1)),e=e.substr(1));var o=e.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/);return o[1]=o[1].replace(/\$/g,""),n.push({type_:"frac",p1:o[1],p2:o[2]}),o[3]&&(o[3]=o[3].replace(/\$/g,""),n.push({type_:"tex-math",p1:o[3]})),n},"9,9":function(t,e){return i.go(e,"9,9")}},createTransitions:function(t){var e,n,o,a,r={};for(e in t)for(n in t[e])for(o=n.split("|"),t[e][n].stateArray=o,a=0;a<o.length;a++)r[o[a]]=[];for(e in t)for(n in t[e])for(o=t[e][n].stateArray||[],a=0;a<o.length;a++){var i=t[e][n];if(i.action_){i.action_=[].concat(i.action_);for(var c=0;c<i.action_.length;c++)"string"==typeof i.action_[c]&&(i.action_[c]={type_:i.action_[c]})}else i.action_=[];for(var u=e.split("|"),p=0;p<u.length;p++)if("*"===o[a])for(var s in r)r[s].push({pattern:u[p],task:i});else r[o[a]].push({pattern:u[p],task:i})}return r},stateMachines:{}};i.stateMachines={ce:{transitions:i.createTransitions({empty:{"*":{action_:"output"}},else:{"0|1|2":{action_:"beginsWithBond=false",revisit:!0,toContinue:!0}},oxidation$:{0:{action_:"oxidation-output"}},CMT:{r:{action_:"rdt=",nextState:"rt"},rd:{action_:"rqt=",nextState:"rdt"}},arrowUpDown:{"0|1|2|as":{action_:["sb=false","output","operator"],nextState:"1"}},uprightEntities:{"0|1|2":{action_:["o=","output"],nextState:"1"}},orbital:{"0|1|2|3":{action_:"o=",nextState:"o"}},"->":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return i.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return i.concatArray(n,this.output(t)),i.concatArray(n,i.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=i.patterns.match_("orbital",t.o||""),a=i.patterns.match_("one lowercase greek letter $",t.o||""),r=i.patterns.match_("one lowercase latin letter $",t.o||""),c=i.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||a||r||c);!u||t.a||t.b||t.p||t.d||t.q||o||!r||(t.o="$"+t.o+"$");var p=[];return u?(i.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=i.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(i.concatArray(p,i.actions["d="](t,e)),i.concatArray(p,this.output(t))):(i.concatArray(p,this.output(t)),i.concatArray(p,i.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:i.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,a,r;t.r?(a="M"===t.rdt?i.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:i.go(t.rd),r="M"===t.rqt?i.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:i.go(t.rq),o={type_:"arrow",r:t.r,rd:a,rq:r}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&i.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:i.go(t.a,"a"),b:i.go(t.b,"bd"),p:i.go(t.p,"pq"),o:i.go(t.o,"o"),q:i.go(t.q,"pq"),d:i.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return i.concatArray(n,i.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:i.go(e[0]),p2:i.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:i.go(e[0]),p2:i.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:i.go(e[0]),p2:i.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:i.go(e[0]),p2:i.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:i.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:i.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:i.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:i.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1],"pq")}}}},bd:{transitions:i.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:i.go(e[1],"bd")}}}},oxidation:{transitions:i.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:i.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:i.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(i.concatArray(n,i.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?i.concatArray(n,i.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),i.concatArray(n,i.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=i.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=i.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var a={d:i.go(t.d,"pu"),q:i.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:a.d,p2:a.q}:(e=a.d,a.d.length>1||a.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),i.concatArray(e,a.q))}else e=i.go(t.d,"pu-2");for(var r in t)delete t[r];return e}}},"pu-2":{transitions:i.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=i.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?i.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:i.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o<n;o+=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(o))}else e.push(t.text_);for(var a in t)delete t[a];return e}}}};var c={go:function(t,e){if(!t)return"";for(var n="",o=!1,a=0;a<t.length;a++){var r=t[a];"string"==typeof r?n+=r:(n+=c._go2(r),"1st-level escape"===r.type_&&(o=!0))}return e||o||!n||(n="{"+n+"}"),n},_goInner:function(t){return t?c.go(t,!0):t},_go2:function(t){var e;switch(t.type_){case"chemfive":e="";var n={a:c._goInner(t.a),b:c._goInner(t.b),p:c._goInner(t.p),o:c._goInner(t.o),q:c._goInner(t.q),d:c._goInner(t.d)};n.a&&(n.a.match(/^[+\-]/)&&(n.a="{"+n.a+"}"),e+=n.a+"\\,"),(n.b||n.p)&&(e+="{\\vphantom{X}}",e+="^{\\hphantom{"+(n.b||"")+"}}_{\\hphantom{"+(n.p||"")+"}}",e+="{\\vphantom{X}}",e+="^{\\smash[t]{\\vphantom{2}}\\mathllap{"+(n.b||"")+"}}",e+="_{\\vphantom{2}\\mathllap{\\smash[t]{"+(n.p||"")+"}}}"),n.o&&(n.o.match(/^[+\-]/)&&(n.o="{"+n.o+"}"),e+=n.o),"kv"===t.dType?((n.d||n.q)&&(e+="{\\vphantom{X}}"),n.d&&(e+="^{"+n.d+"}"),n.q&&(e+="_{\\smash[t]{"+n.q+"}}")):"oxidation"===t.dType?(n.d&&(e+="{\\vphantom{X}}",e+="^{"+n.d+"}"),n.q&&(e+="{\\vphantom{X}}",e+="_{\\smash[t]{"+n.q+"}}")):(n.q&&(e+="{\\vphantom{X}}",e+="_{\\smash[t]{"+n.q+"}}"),n.d&&(e+="{\\vphantom{X}}",e+="^{"+n.d+"}"));break;case"rm":e="\\mathrm{"+t.p1+"}";break;case"text":t.p1.match(/[\^_]/)?(t.p1=t.p1.replace(" ","~").replace("-","\\text{-}"),e="\\mathrm{"+t.p1+"}"):e="\\text{"+t.p1+"}";break;case"roman numeral":e="\\mathrm{"+t.p1+"}";break;case"state of aggregation":e="\\mskip2mu "+c._goInner(t.p1);break;case"state of aggregation subscript":e="\\mskip1mu "+c._goInner(t.p1);break;case"bond":if(!(e=c._getBond(t.kind_)))throw["MhchemErrorBond","mhchem Error. Unknown bond type ("+t.kind_+")"];break;case"frac":var o="\\frac{"+t.p1+"}{"+t.p2+"}";e="\\mathchoice{\\textstyle"+o+"}{"+o+"}{"+o+"}{"+o+"}";break;case"pu-frac":var a="\\frac{"+c._goInner(t.p1)+"}{"+c._goInner(t.p2)+"}";e="\\mathchoice{\\textstyle"+a+"}{"+a+"}{"+a+"}{"+a+"}";break;case"tex-math":e=t.p1+" ";break;case"frac-ce":e="\\frac{"+c._goInner(t.p1)+"}{"+c._goInner(t.p2)+"}";break;case"overset":e="\\overset{"+c._goInner(t.p1)+"}{"+c._goInner(t.p2)+"}";break;case"underset":e="\\underset{"+c._goInner(t.p1)+"}{"+c._goInner(t.p2)+"}";break;case"underbrace":e="\\underbrace{"+c._goInner(t.p1)+"}_{"+c._goInner(t.p2)+"}";break;case"color":e="{\\color{"+t.color1+"}{"+c._goInner(t.color2)+"}}";break;case"color0":e="\\color{"+t.color+"}";break;case"arrow":var r={rd:c._goInner(t.rd),rq:c._goInner(t.rq)},i="\\x"+c._getArrow(t.r);r.rq&&(i+="[{"+r.rq+"}]"),e=i+=r.rd?"{"+r.rd+"}":"{}";break;case"operator":e=c._getOperator(t.kind_);break;case"1st-level escape":e=t.p1+" ";break;case"space":e=" ";break;case"entitySkip":case"pu-space-1":e="~";break;case"pu-space-2":e="\\mkern3mu ";break;case"1000 separator":e="\\mkern2mu ";break;case"commaDecimal":e="{,}";break;case"comma enumeration L":e="{"+t.p1+"}\\mkern6mu ";break;case"comma enumeration M":e="{"+t.p1+"}\\mkern3mu ";break;case"comma enumeration S":e="{"+t.p1+"}\\mkern1mu ";break;case"hyphen":e="\\text{-}";break;case"addition compound":e="\\,{\\cdot}\\,";break;case"electron dot":e="\\mkern1mu \\bullet\\mkern1mu ";break;case"KV x":e="{\\times}";break;case"prime":e="\\prime ";break;case"cdot":e="\\cdot ";break;case"tight cdot":e="\\mkern1mu{\\cdot}\\mkern1mu ";break;case"times":e="\\times ";break;case"circa":e="{\\sim}";break;case"^":e="uparrow";break;case"v":e="downarrow";break;case"ellipsis":e="\\ldots ";break;case"/":e="/";break;case" / ":e="\\,/\\,";break;default:throw["MhchemBugT","mhchem bug T. Please report."]}return e},_getArrow:function(t){switch(t){case"->":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}]).default});