c0ckp1t 1.0.0

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 (676) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +5 -0
  3. package/c0ckp1t-demo/Constants.mjs +125 -0
  4. package/c0ckp1t-demo/components/sidebar.vue +82 -0
  5. package/c0ckp1t-demo/main.vue +39 -0
  6. package/c0ckp1t-demo/pages/devices.vue +63 -0
  7. package/c0ckp1t-demo/pages/homepage.vue +63 -0
  8. package/c0ckp1t-demo/pages/report.vue +63 -0
  9. package/c0ckp1t-demo/store.mjs +133 -0
  10. package/components/ExecButton.vue +62 -0
  11. package/components/FsTree.vue +550 -0
  12. package/components/Markdown.mjs +274 -0
  13. package/components/MarkdownUtils.mjs +180 -0
  14. package/components/Tree.mjs +175 -0
  15. package/components/code-mirror.vue +445 -0
  16. package/components/vue3-ace-editor.vue +331 -0
  17. package/components/xbutton.vue +45 -0
  18. package/components/xcard-h.vue +175 -0
  19. package/components/xcard.vue +76 -0
  20. package/components/xcheck.vue +35 -0
  21. package/components/xcheckbox.vue +52 -0
  22. package/components/xcode.vue +139 -0
  23. package/components/xcollapse.vue +52 -0
  24. package/components/xcolor.vue +84 -0
  25. package/components/xdropdown.vue +104 -0
  26. package/components/xdropdown2.vue +140 -0
  27. package/components/xhidden.vue +30 -0
  28. package/components/xinput.vue +101 -0
  29. package/components/xinput2.vue +101 -0
  30. package/components/xjson.vue +95 -0
  31. package/components/xkv.vue +41 -0
  32. package/components/xlabel.vue +56 -0
  33. package/components/xlist.vue +83 -0
  34. package/components/xmap.vue +106 -0
  35. package/components/xmarkdown.vue +269 -0
  36. package/components/xnav.vue +98 -0
  37. package/components/xsection.vue +164 -0
  38. package/components/xsound.vue +251 -0
  39. package/components/xtable-open.vue +179 -0
  40. package/components/xtabs.vue +72 -0
  41. package/components/xterminal.vue +456 -0
  42. package/components/xtextarea.vue +83 -0
  43. package/components/xtoggle.vue +68 -0
  44. package/components/xtoggle3.vue +67 -0
  45. package/components/xtree.vue +140 -0
  46. package/components/xupload.vue +129 -0
  47. package/core/Content.mjs +92 -0
  48. package/core/DocUtils.mjs +189 -0
  49. package/core/GlobalStore.mjs +329 -0
  50. package/core/Island.mjs +429 -0
  51. package/core/IslandDefault.mjs +229 -0
  52. package/core/JsUtils.mjs +483 -0
  53. package/core/Logging.mjs +59 -0
  54. package/core/Page404.vue +152 -0
  55. package/core/PageFallback.vue +168 -0
  56. package/core/PageMain.vue +181 -0
  57. package/core/Theme.mjs +1759 -0
  58. package/core/VueUtils.mjs +200 -0
  59. package/core/WsUtils.mjs +274 -0
  60. package/core/img/Flag_of_the_United_States.svg +25 -0
  61. package/core/img/logo_v1.svg +98 -0
  62. package/core/img/logo_v2.svg +98 -0
  63. package/core/img/state-uniqueId-8k.wav +0 -0
  64. package/core/main-offcanvas.vue +99 -0
  65. package/core/nodes/_api.vue +82 -0
  66. package/core/nodes/node-container.vue +103 -0
  67. package/core/nodes/node.vue +246 -0
  68. package/core/nodes/place-holder.vue +47 -0
  69. package/core/nodes/root.vue +52 -0
  70. package/core/notify/NotifyUtils.mjs +150 -0
  71. package/core/notify/toast.vue +150 -0
  72. package/core/pages/About.vue +57 -0
  73. package/core/pages/Cache.vue +155 -0
  74. package/core/pages/Connection.vue +192 -0
  75. package/core/pages/Connections.vue +102 -0
  76. package/core/pages/Documentation.vue +263 -0
  77. package/core/pages/Notifies.vue +156 -0
  78. package/core/pages/Traffic.vue +152 -0
  79. package/core/pages/connections/connection-header-details.vue +80 -0
  80. package/core/pages/connections/page-connection-default.vue +92 -0
  81. package/core/pages/connections/page-connection.vue +176 -0
  82. package/core/pages/connections/ws-connection.vue +146 -0
  83. package/core/pages/frontend/Bootstrap.vue +1140 -0
  84. package/core/pages/frontend/Components.vue +56 -0
  85. package/core/pages/frontend/ComponentsAdv.vue +203 -0
  86. package/core/pages/frontend/ComponentsBasic.vue +336 -0
  87. package/core/pages/frontend/Theme.vue +473 -0
  88. package/core/pages/frontend/component-view.vue +65 -0
  89. package/core/pages/traffic/WsLogUtils.mjs +91 -0
  90. package/core/pages/traffic/log-ws-exec.vue +124 -0
  91. package/core/pages/traffic/log-ws-exec2.vue +129 -0
  92. package/core/sfc/code-item.vue +169 -0
  93. package/core/sfc/connection-header.vue +62 -0
  94. package/core/sfc/info-api.vue +158 -0
  95. package/core/sfc/md-toc.vue +346 -0
  96. package/core/sfc/scroll-to-top.vue +69 -0
  97. package/core/sfc/task.vue +98 -0
  98. package/core/sfc/text-to-md.vue +25 -0
  99. package/core/sfc/toc-list.vue +175 -0
  100. package/core/ws-client/AuthNState.mjs +84 -0
  101. package/core/ws-client/Connection.mjs +580 -0
  102. package/core/ws-client/Session.mjs +72 -0
  103. package/core/ws-client/WsClient.mjs +230 -0
  104. package/core/ws-client/WsLogUtils.mjs +91 -0
  105. package/core/ws-client/ws-connection.vue +144 -0
  106. package/css/Changa-Medium.ttf +0 -0
  107. package/css/Makefile +10 -0
  108. package/css/README.md +25 -0
  109. package/css/bootstrap-c0ckp1t.css +11861 -0
  110. package/css/bootstrap.min.css +6 -0
  111. package/css/fontawesome/brands.min.css +6 -0
  112. package/css/fontawesome/fontawesome.min.css +8 -0
  113. package/css/fontawesome/regular.min.css +6 -0
  114. package/css/fontawesome/solid.min.css +6 -0
  115. package/css/webfonts/fa-brands-400.woff2 +0 -0
  116. package/css/webfonts/fa-regular-400.woff2 +0 -0
  117. package/css/webfonts/fa-solid-900.woff2 +0 -0
  118. package/docs/Introduction.md +3 -0
  119. package/favicon-192x192.png +0 -0
  120. package/favicon-32x32.png +0 -0
  121. package/favicon-64x64.png +0 -0
  122. package/favicon.ico +0 -0
  123. package/index-cdn.html +66 -0
  124. package/js_ext/Makefile +26 -0
  125. package/js_ext/ace-editor/ace.js +22037 -0
  126. package/js_ext/ace-editor/ext-beautify.js +343 -0
  127. package/js_ext/ace-editor/ext-code_lens.js +204 -0
  128. package/js_ext/ace-editor/ext-command_bar.js +469 -0
  129. package/js_ext/ace-editor/ext-diff.js +4265 -0
  130. package/js_ext/ace-editor/ext-elastic_tabstops_lite.js +238 -0
  131. package/js_ext/ace-editor/ext-emmet.js +1303 -0
  132. package/js_ext/ace-editor/ext-error_marker.js +9 -0
  133. package/js_ext/ace-editor/ext-hardwrap.js +127 -0
  134. package/js_ext/ace-editor/ext-inline_autocomplete.js +3547 -0
  135. package/js_ext/ace-editor/ext-keybinding_menu.js +185 -0
  136. package/js_ext/ace-editor/ext-language_tools.js +2724 -0
  137. package/js_ext/ace-editor/ext-linking.js +66 -0
  138. package/js_ext/ace-editor/ext-modelist.js +276 -0
  139. package/js_ext/ace-editor/ext-options.js +859 -0
  140. package/js_ext/ace-editor/ext-prompt.js +3161 -0
  141. package/js_ext/ace-editor/ext-rtl.js +146 -0
  142. package/js_ext/ace-editor/ext-searchbox.js +385 -0
  143. package/js_ext/ace-editor/ext-settings_menu.js +859 -0
  144. package/js_ext/ace-editor/ext-simple_tokenizer.js +137 -0
  145. package/js_ext/ace-editor/ext-spellcheck.js +79 -0
  146. package/js_ext/ace-editor/ext-split.js +203 -0
  147. package/js_ext/ace-editor/ext-static_highlight.js +194 -0
  148. package/js_ext/ace-editor/ext-statusbar.js +63 -0
  149. package/js_ext/ace-editor/ext-textarea.js +400 -0
  150. package/js_ext/ace-editor/ext-themelist.js +80 -0
  151. package/js_ext/ace-editor/ext-whitespace.js +201 -0
  152. package/js_ext/ace-editor/keybinding-emacs.js +1067 -0
  153. package/js_ext/ace-editor/keybinding-sublime.js +409 -0
  154. package/js_ext/ace-editor/keybinding-vim.js +7101 -0
  155. package/js_ext/ace-editor/keybinding-vscode.js +255 -0
  156. package/js_ext/ace-editor/mode-abap.js +200 -0
  157. package/js_ext/ace-editor/mode-abc.js +243 -0
  158. package/js_ext/ace-editor/mode-actionscript.js +234 -0
  159. package/js_ext/ace-editor/mode-ada.js +108 -0
  160. package/js_ext/ace-editor/mode-alda.js +279 -0
  161. package/js_ext/ace-editor/mode-apache_conf.js +318 -0
  162. package/js_ext/ace-editor/mode-apex.js +402 -0
  163. package/js_ext/ace-editor/mode-applescript.js +232 -0
  164. package/js_ext/ace-editor/mode-aql.js +92 -0
  165. package/js_ext/ace-editor/mode-asciidoc.js +311 -0
  166. package/js_ext/ace-editor/mode-asl.js +357 -0
  167. package/js_ext/ace-editor/mode-assembly_arm32.js +185 -0
  168. package/js_ext/ace-editor/mode-assembly_x86.js +170 -0
  169. package/js_ext/ace-editor/mode-astro.js +2474 -0
  170. package/js_ext/ace-editor/mode-autohotkey.js +208 -0
  171. package/js_ext/ace-editor/mode-basic.js +201 -0
  172. package/js_ext/ace-editor/mode-batchfile.js +199 -0
  173. package/js_ext/ace-editor/mode-bibtex.js +318 -0
  174. package/js_ext/ace-editor/mode-c9search.js +250 -0
  175. package/js_ext/ace-editor/mode-c_cpp.js +417 -0
  176. package/js_ext/ace-editor/mode-cirru.js +192 -0
  177. package/js_ext/ace-editor/mode-clojure.js +322 -0
  178. package/js_ext/ace-editor/mode-clue.js +361 -0
  179. package/js_ext/ace-editor/mode-cobol.js +82 -0
  180. package/js_ext/ace-editor/mode-coffee.js +335 -0
  181. package/js_ext/ace-editor/mode-coldfusion.js +2409 -0
  182. package/js_ext/ace-editor/mode-crystal.js +586 -0
  183. package/js_ext/ace-editor/mode-csharp.js +413 -0
  184. package/js_ext/ace-editor/mode-csound_document.js +4072 -0
  185. package/js_ext/ace-editor/mode-csound_orchestra.js +2923 -0
  186. package/js_ext/ace-editor/mode-csound_score.js +409 -0
  187. package/js_ext/ace-editor/mode-csp.js +59 -0
  188. package/js_ext/ace-editor/mode-css.js +632 -0
  189. package/js_ext/ace-editor/mode-csv.js +97 -0
  190. package/js_ext/ace-editor/mode-curly.js +2381 -0
  191. package/js_ext/ace-editor/mode-cuttlefish.js +56 -0
  192. package/js_ext/ace-editor/mode-d.js +450 -0
  193. package/js_ext/ace-editor/mode-dart.js +618 -0
  194. package/js_ext/ace-editor/mode-diff.js +129 -0
  195. package/js_ext/ace-editor/mode-django.js +2422 -0
  196. package/js_ext/ace-editor/mode-dockerfile.js +427 -0
  197. package/js_ext/ace-editor/mode-dot.js +348 -0
  198. package/js_ext/ace-editor/mode-drools.js +607 -0
  199. package/js_ext/ace-editor/mode-edifact.js +130 -0
  200. package/js_ext/ace-editor/mode-eiffel.js +120 -0
  201. package/js_ext/ace-editor/mode-ejs.js +3277 -0
  202. package/js_ext/ace-editor/mode-elixir.js +443 -0
  203. package/js_ext/ace-editor/mode-elm.js +274 -0
  204. package/js_ext/ace-editor/mode-erlang.js +836 -0
  205. package/js_ext/ace-editor/mode-flix.js +164 -0
  206. package/js_ext/ace-editor/mode-forth.js +253 -0
  207. package/js_ext/ace-editor/mode-fortran.js +361 -0
  208. package/js_ext/ace-editor/mode-fsharp.js +277 -0
  209. package/js_ext/ace-editor/mode-fsl.js +226 -0
  210. package/js_ext/ace-editor/mode-ftl.js +1255 -0
  211. package/js_ext/ace-editor/mode-gcode.js +74 -0
  212. package/js_ext/ace-editor/mode-gherkin.js +154 -0
  213. package/js_ext/ace-editor/mode-gitignore.js +49 -0
  214. package/js_ext/ace-editor/mode-glsl.js +475 -0
  215. package/js_ext/ace-editor/mode-gobstones.js +1459 -0
  216. package/js_ext/ace-editor/mode-golang.js +341 -0
  217. package/js_ext/ace-editor/mode-graphqlschema.js +174 -0
  218. package/js_ext/ace-editor/mode-groovy.js +1401 -0
  219. package/js_ext/ace-editor/mode-haml.js +1906 -0
  220. package/js_ext/ace-editor/mode-handlebars.js +2438 -0
  221. package/js_ext/ace-editor/mode-haskell.js +324 -0
  222. package/js_ext/ace-editor/mode-haskell_cabal.js +135 -0
  223. package/js_ext/ace-editor/mode-haxe.js +313 -0
  224. package/js_ext/ace-editor/mode-hjson.js +318 -0
  225. package/js_ext/ace-editor/mode-html.js +2339 -0
  226. package/js_ext/ace-editor/mode-html_elixir.js +2845 -0
  227. package/js_ext/ace-editor/mode-html_ruby.js +3294 -0
  228. package/js_ext/ace-editor/mode-ini.js +138 -0
  229. package/js_ext/ace-editor/mode-io.js +210 -0
  230. package/js_ext/ace-editor/mode-ion.js +477 -0
  231. package/js_ext/ace-editor/mode-jack.js +293 -0
  232. package/js_ext/ace-editor/mode-jade.js +2017 -0
  233. package/js_ext/ace-editor/mode-java.js +1565 -0
  234. package/js_ext/ace-editor/mode-javascript.js +1191 -0
  235. package/js_ext/ace-editor/mode-jexl.js +270 -0
  236. package/js_ext/ace-editor/mode-json.js +275 -0
  237. package/js_ext/ace-editor/mode-json5.js +308 -0
  238. package/js_ext/ace-editor/mode-jsoniq.js +2577 -0
  239. package/js_ext/ace-editor/mode-jsp.js +1618 -0
  240. package/js_ext/ace-editor/mode-jssm.js +293 -0
  241. package/js_ext/ace-editor/mode-jsx.js +1209 -0
  242. package/js_ext/ace-editor/mode-julia.js +254 -0
  243. package/js_ext/ace-editor/mode-kotlin.js +445 -0
  244. package/js_ext/ace-editor/mode-latex.js +252 -0
  245. package/js_ext/ace-editor/mode-latte.js +2522 -0
  246. package/js_ext/ace-editor/mode-less.js +742 -0
  247. package/js_ext/ace-editor/mode-liquid.js +2741 -0
  248. package/js_ext/ace-editor/mode-lisp.js +104 -0
  249. package/js_ext/ace-editor/mode-livescript.js +272 -0
  250. package/js_ext/ace-editor/mode-logiql.js +272 -0
  251. package/js_ext/ace-editor/mode-logtalk.js +309 -0
  252. package/js_ext/ace-editor/mode-lsl.js +287 -0
  253. package/js_ext/ace-editor/mode-lua.js +393 -0
  254. package/js_ext/ace-editor/mode-luapage.js +2785 -0
  255. package/js_ext/ace-editor/mode-lucene.js +145 -0
  256. package/js_ext/ace-editor/mode-makefile.js +374 -0
  257. package/js_ext/ace-editor/mode-markdown.js +2935 -0
  258. package/js_ext/ace-editor/mode-mask.js +1757 -0
  259. package/js_ext/ace-editor/mode-matlab.js +239 -0
  260. package/js_ext/ace-editor/mode-maze.js +256 -0
  261. package/js_ext/ace-editor/mode-mediawiki.js +580 -0
  262. package/js_ext/ace-editor/mode-mel.js +213 -0
  263. package/js_ext/ace-editor/mode-mips.js +231 -0
  264. package/js_ext/ace-editor/mode-mixal.js +110 -0
  265. package/js_ext/ace-editor/mode-mushcode.js +642 -0
  266. package/js_ext/ace-editor/mode-mysql.js +150 -0
  267. package/js_ext/ace-editor/mode-nasal.js +513 -0
  268. package/js_ext/ace-editor/mode-nginx.js +262 -0
  269. package/js_ext/ace-editor/mode-nim.js +325 -0
  270. package/js_ext/ace-editor/mode-nix.js +555 -0
  271. package/js_ext/ace-editor/mode-nsis.js +279 -0
  272. package/js_ext/ace-editor/mode-nunjucks.js +2677 -0
  273. package/js_ext/ace-editor/mode-objectivec.js +626 -0
  274. package/js_ext/ace-editor/mode-ocaml.js +378 -0
  275. package/js_ext/ace-editor/mode-odin.js +449 -0
  276. package/js_ext/ace-editor/mode-partiql.js +750 -0
  277. package/js_ext/ace-editor/mode-pascal.js +204 -0
  278. package/js_ext/ace-editor/mode-perl.js +318 -0
  279. package/js_ext/ace-editor/mode-pgsql.js +1860 -0
  280. package/js_ext/ace-editor/mode-php.js +14072 -0
  281. package/js_ext/ace-editor/mode-php_laravel_blade.js +14260 -0
  282. package/js_ext/ace-editor/mode-pig.js +278 -0
  283. package/js_ext/ace-editor/mode-plain_text.js +27 -0
  284. package/js_ext/ace-editor/mode-plsql.js +268 -0
  285. package/js_ext/ace-editor/mode-powershell.js +567 -0
  286. package/js_ext/ace-editor/mode-praat.js +412 -0
  287. package/js_ext/ace-editor/mode-prisma.js +457 -0
  288. package/js_ext/ace-editor/mode-prolog.js +305 -0
  289. package/js_ext/ace-editor/mode-properties.js +69 -0
  290. package/js_ext/ace-editor/mode-protobuf.js +498 -0
  291. package/js_ext/ace-editor/mode-prql.js +323 -0
  292. package/js_ext/ace-editor/mode-puppet.js +316 -0
  293. package/js_ext/ace-editor/mode-python.js +476 -0
  294. package/js_ext/ace-editor/mode-qml.js +346 -0
  295. package/js_ext/ace-editor/mode-r.js +387 -0
  296. package/js_ext/ace-editor/mode-raku.js +516 -0
  297. package/js_ext/ace-editor/mode-razor.js +2697 -0
  298. package/js_ext/ace-editor/mode-rdoc.js +286 -0
  299. package/js_ext/ace-editor/mode-red.js +388 -0
  300. package/js_ext/ace-editor/mode-redshift.js +321 -0
  301. package/js_ext/ace-editor/mode-rhtml.js +2750 -0
  302. package/js_ext/ace-editor/mode-robot.js +168 -0
  303. package/js_ext/ace-editor/mode-rst.js +245 -0
  304. package/js_ext/ace-editor/mode-ruby.js +921 -0
  305. package/js_ext/ace-editor/mode-rust.js +393 -0
  306. package/js_ext/ace-editor/mode-sac.js +349 -0
  307. package/js_ext/ace-editor/mode-sass.js +480 -0
  308. package/js_ext/ace-editor/mode-scad.js +350 -0
  309. package/js_ext/ace-editor/mode-scala.js +1395 -0
  310. package/js_ext/ace-editor/mode-scheme.js +210 -0
  311. package/js_ext/ace-editor/mode-scrypt.js +317 -0
  312. package/js_ext/ace-editor/mode-scss.js +768 -0
  313. package/js_ext/ace-editor/mode-sh.js +387 -0
  314. package/js_ext/ace-editor/mode-sjs.js +1393 -0
  315. package/js_ext/ace-editor/mode-slim.js +4770 -0
  316. package/js_ext/ace-editor/mode-smarty.js +2436 -0
  317. package/js_ext/ace-editor/mode-smithy.js +456 -0
  318. package/js_ext/ace-editor/mode-snippets.js +183 -0
  319. package/js_ext/ace-editor/mode-soy_template.js +2611 -0
  320. package/js_ext/ace-editor/mode-space.js +151 -0
  321. package/js_ext/ace-editor/mode-sparql.js +288 -0
  322. package/js_ext/ace-editor/mode-sql.js +221 -0
  323. package/js_ext/ace-editor/mode-sqlserver.js +391 -0
  324. package/js_ext/ace-editor/mode-stylus.js +443 -0
  325. package/js_ext/ace-editor/mode-svg.js +1487 -0
  326. package/js_ext/ace-editor/mode-swift.js +342 -0
  327. package/js_ext/ace-editor/mode-tcl.js +338 -0
  328. package/js_ext/ace-editor/mode-terraform.js +346 -0
  329. package/js_ext/ace-editor/mode-tex.js +212 -0
  330. package/js_ext/ace-editor/mode-text.js +9 -0
  331. package/js_ext/ace-editor/mode-textile.js +125 -0
  332. package/js_ext/ace-editor/mode-toml.js +129 -0
  333. package/js_ext/ace-editor/mode-tsv.js +124 -0
  334. package/js_ext/ace-editor/mode-tsx.js +1276 -0
  335. package/js_ext/ace-editor/mode-turtle.js +264 -0
  336. package/js_ext/ace-editor/mode-twig.js +2502 -0
  337. package/js_ext/ace-editor/mode-typescript.js +1254 -0
  338. package/js_ext/ace-editor/mode-vala.js +554 -0
  339. package/js_ext/ace-editor/mode-vbscript.js +731 -0
  340. package/js_ext/ace-editor/mode-velocity.js +2580 -0
  341. package/js_ext/ace-editor/mode-verilog.js +98 -0
  342. package/js_ext/ace-editor/mode-vhdl.js +94 -0
  343. package/js_ext/ace-editor/mode-visualforce.js +2454 -0
  344. package/js_ext/ace-editor/mode-vue.js +3834 -0
  345. package/js_ext/ace-editor/mode-wollok.js +1329 -0
  346. package/js_ext/ace-editor/mode-xml.js +477 -0
  347. package/js_ext/ace-editor/mode-xquery.js +2589 -0
  348. package/js_ext/ace-editor/mode-yaml.js +395 -0
  349. package/js_ext/ace-editor/mode-zeek.js +502 -0
  350. package/js_ext/ace-editor/mode-zig.js +585 -0
  351. package/js_ext/ace-editor/snippets/abap.js +9 -0
  352. package/js_ext/ace-editor/snippets/abc.js +16 -0
  353. package/js_ext/ace-editor/snippets/actionscript.js +16 -0
  354. package/js_ext/ace-editor/snippets/ada.js +9 -0
  355. package/js_ext/ace-editor/snippets/alda.js +9 -0
  356. package/js_ext/ace-editor/snippets/apache_conf.js +9 -0
  357. package/js_ext/ace-editor/snippets/apex.js +9 -0
  358. package/js_ext/ace-editor/snippets/applescript.js +9 -0
  359. package/js_ext/ace-editor/snippets/aql.js +9 -0
  360. package/js_ext/ace-editor/snippets/asciidoc.js +9 -0
  361. package/js_ext/ace-editor/snippets/asl.js +9 -0
  362. package/js_ext/ace-editor/snippets/assembly_arm32.js +9 -0
  363. package/js_ext/ace-editor/snippets/assembly_x86.js +9 -0
  364. package/js_ext/ace-editor/snippets/astro.js +9 -0
  365. package/js_ext/ace-editor/snippets/autohotkey.js +9 -0
  366. package/js_ext/ace-editor/snippets/basic.js +9 -0
  367. package/js_ext/ace-editor/snippets/batchfile.js +9 -0
  368. package/js_ext/ace-editor/snippets/bibtex.js +9 -0
  369. package/js_ext/ace-editor/snippets/c9search.js +9 -0
  370. package/js_ext/ace-editor/snippets/c_cpp.js +16 -0
  371. package/js_ext/ace-editor/snippets/cirru.js +9 -0
  372. package/js_ext/ace-editor/snippets/clojure.js +16 -0
  373. package/js_ext/ace-editor/snippets/clue.js +9 -0
  374. package/js_ext/ace-editor/snippets/cobol.js +9 -0
  375. package/js_ext/ace-editor/snippets/coffee.js +16 -0
  376. package/js_ext/ace-editor/snippets/coldfusion.js +9 -0
  377. package/js_ext/ace-editor/snippets/crystal.js +9 -0
  378. package/js_ext/ace-editor/snippets/csharp.js +9 -0
  379. package/js_ext/ace-editor/snippets/csound_document.js +16 -0
  380. package/js_ext/ace-editor/snippets/csound_orchestra.js +16 -0
  381. package/js_ext/ace-editor/snippets/csound_score.js +9 -0
  382. package/js_ext/ace-editor/snippets/csp.js +9 -0
  383. package/js_ext/ace-editor/snippets/css.js +16 -0
  384. package/js_ext/ace-editor/snippets/csv.js +9 -0
  385. package/js_ext/ace-editor/snippets/curly.js +9 -0
  386. package/js_ext/ace-editor/snippets/cuttlefish.js +9 -0
  387. package/js_ext/ace-editor/snippets/d.js +9 -0
  388. package/js_ext/ace-editor/snippets/dart.js +16 -0
  389. package/js_ext/ace-editor/snippets/diff.js +16 -0
  390. package/js_ext/ace-editor/snippets/django.js +16 -0
  391. package/js_ext/ace-editor/snippets/dockerfile.js +9 -0
  392. package/js_ext/ace-editor/snippets/dot.js +9 -0
  393. package/js_ext/ace-editor/snippets/drools.js +16 -0
  394. package/js_ext/ace-editor/snippets/edifact.js +16 -0
  395. package/js_ext/ace-editor/snippets/eiffel.js +9 -0
  396. package/js_ext/ace-editor/snippets/ejs.js +9 -0
  397. package/js_ext/ace-editor/snippets/elixir.js +9 -0
  398. package/js_ext/ace-editor/snippets/elm.js +9 -0
  399. package/js_ext/ace-editor/snippets/erlang.js +16 -0
  400. package/js_ext/ace-editor/snippets/flix.js +9 -0
  401. package/js_ext/ace-editor/snippets/forth.js +9 -0
  402. package/js_ext/ace-editor/snippets/fortran.js +9 -0
  403. package/js_ext/ace-editor/snippets/fsharp.js +9 -0
  404. package/js_ext/ace-editor/snippets/fsl.js +16 -0
  405. package/js_ext/ace-editor/snippets/ftl.js +9 -0
  406. package/js_ext/ace-editor/snippets/gcode.js +9 -0
  407. package/js_ext/ace-editor/snippets/gherkin.js +9 -0
  408. package/js_ext/ace-editor/snippets/gitignore.js +9 -0
  409. package/js_ext/ace-editor/snippets/glsl.js +9 -0
  410. package/js_ext/ace-editor/snippets/gobstones.js +16 -0
  411. package/js_ext/ace-editor/snippets/golang.js +9 -0
  412. package/js_ext/ace-editor/snippets/graphqlschema.js +16 -0
  413. package/js_ext/ace-editor/snippets/groovy.js +9 -0
  414. package/js_ext/ace-editor/snippets/haml.js +16 -0
  415. package/js_ext/ace-editor/snippets/handlebars.js +9 -0
  416. package/js_ext/ace-editor/snippets/haskell.js +16 -0
  417. package/js_ext/ace-editor/snippets/haskell_cabal.js +9 -0
  418. package/js_ext/ace-editor/snippets/haxe.js +9 -0
  419. package/js_ext/ace-editor/snippets/hjson.js +9 -0
  420. package/js_ext/ace-editor/snippets/html.js +16 -0
  421. package/js_ext/ace-editor/snippets/html_elixir.js +9 -0
  422. package/js_ext/ace-editor/snippets/html_ruby.js +9 -0
  423. package/js_ext/ace-editor/snippets/ini.js +9 -0
  424. package/js_ext/ace-editor/snippets/io.js +74 -0
  425. package/js_ext/ace-editor/snippets/ion.js +9 -0
  426. package/js_ext/ace-editor/snippets/jack.js +9 -0
  427. package/js_ext/ace-editor/snippets/jade.js +9 -0
  428. package/js_ext/ace-editor/snippets/java.js +16 -0
  429. package/js_ext/ace-editor/snippets/javascript.js +16 -0
  430. package/js_ext/ace-editor/snippets/jexl.js +9 -0
  431. package/js_ext/ace-editor/snippets/json.js +9 -0
  432. package/js_ext/ace-editor/snippets/json5.js +9 -0
  433. package/js_ext/ace-editor/snippets/jsoniq.js +78 -0
  434. package/js_ext/ace-editor/snippets/jsp.js +16 -0
  435. package/js_ext/ace-editor/snippets/jssm.js +9 -0
  436. package/js_ext/ace-editor/snippets/jsx.js +9 -0
  437. package/js_ext/ace-editor/snippets/julia.js +9 -0
  438. package/js_ext/ace-editor/snippets/kotlin.js +9 -0
  439. package/js_ext/ace-editor/snippets/latex.js +9 -0
  440. package/js_ext/ace-editor/snippets/latte.js +9 -0
  441. package/js_ext/ace-editor/snippets/less.js +9 -0
  442. package/js_ext/ace-editor/snippets/liquid.js +16 -0
  443. package/js_ext/ace-editor/snippets/lisp.js +9 -0
  444. package/js_ext/ace-editor/snippets/livescript.js +9 -0
  445. package/js_ext/ace-editor/snippets/logiql.js +9 -0
  446. package/js_ext/ace-editor/snippets/logtalk.js +9 -0
  447. package/js_ext/ace-editor/snippets/lsl.js +16 -0
  448. package/js_ext/ace-editor/snippets/lua.js +16 -0
  449. package/js_ext/ace-editor/snippets/luapage.js +9 -0
  450. package/js_ext/ace-editor/snippets/lucene.js +9 -0
  451. package/js_ext/ace-editor/snippets/makefile.js +16 -0
  452. package/js_ext/ace-editor/snippets/markdown.js +16 -0
  453. package/js_ext/ace-editor/snippets/mask.js +9 -0
  454. package/js_ext/ace-editor/snippets/matlab.js +9 -0
  455. package/js_ext/ace-editor/snippets/maze.js +16 -0
  456. package/js_ext/ace-editor/snippets/mediawiki.js +9 -0
  457. package/js_ext/ace-editor/snippets/mel.js +9 -0
  458. package/js_ext/ace-editor/snippets/mips.js +9 -0
  459. package/js_ext/ace-editor/snippets/mixal.js +9 -0
  460. package/js_ext/ace-editor/snippets/mushcode.js +9 -0
  461. package/js_ext/ace-editor/snippets/mysql.js +9 -0
  462. package/js_ext/ace-editor/snippets/nasal.js +9 -0
  463. package/js_ext/ace-editor/snippets/nginx.js +9 -0
  464. package/js_ext/ace-editor/snippets/nim.js +9 -0
  465. package/js_ext/ace-editor/snippets/nix.js +9 -0
  466. package/js_ext/ace-editor/snippets/nsis.js +9 -0
  467. package/js_ext/ace-editor/snippets/nunjucks.js +9 -0
  468. package/js_ext/ace-editor/snippets/objectivec.js +9 -0
  469. package/js_ext/ace-editor/snippets/ocaml.js +9 -0
  470. package/js_ext/ace-editor/snippets/odin.js +9 -0
  471. package/js_ext/ace-editor/snippets/partiql.js +9 -0
  472. package/js_ext/ace-editor/snippets/pascal.js +9 -0
  473. package/js_ext/ace-editor/snippets/perl.js +16 -0
  474. package/js_ext/ace-editor/snippets/pgsql.js +9 -0
  475. package/js_ext/ace-editor/snippets/php.js +16 -0
  476. package/js_ext/ace-editor/snippets/php_laravel_blade.js +9 -0
  477. package/js_ext/ace-editor/snippets/pig.js +9 -0
  478. package/js_ext/ace-editor/snippets/plain_text.js +9 -0
  479. package/js_ext/ace-editor/snippets/plsql.js +9 -0
  480. package/js_ext/ace-editor/snippets/powershell.js +9 -0
  481. package/js_ext/ace-editor/snippets/praat.js +9 -0
  482. package/js_ext/ace-editor/snippets/prisma.js +9 -0
  483. package/js_ext/ace-editor/snippets/prolog.js +9 -0
  484. package/js_ext/ace-editor/snippets/properties.js +9 -0
  485. package/js_ext/ace-editor/snippets/protobuf.js +9 -0
  486. package/js_ext/ace-editor/snippets/prql.js +9 -0
  487. package/js_ext/ace-editor/snippets/puppet.js +9 -0
  488. package/js_ext/ace-editor/snippets/python.js +16 -0
  489. package/js_ext/ace-editor/snippets/qml.js +9 -0
  490. package/js_ext/ace-editor/snippets/r.js +16 -0
  491. package/js_ext/ace-editor/snippets/raku.js +9 -0
  492. package/js_ext/ace-editor/snippets/razor.js +16 -0
  493. package/js_ext/ace-editor/snippets/rdoc.js +9 -0
  494. package/js_ext/ace-editor/snippets/red.js +9 -0
  495. package/js_ext/ace-editor/snippets/redshift.js +9 -0
  496. package/js_ext/ace-editor/snippets/rhtml.js +9 -0
  497. package/js_ext/ace-editor/snippets/robot.js +16 -0
  498. package/js_ext/ace-editor/snippets/rst.js +16 -0
  499. package/js_ext/ace-editor/snippets/ruby.js +16 -0
  500. package/js_ext/ace-editor/snippets/rust.js +9 -0
  501. package/js_ext/ace-editor/snippets/sac.js +9 -0
  502. package/js_ext/ace-editor/snippets/sass.js +9 -0
  503. package/js_ext/ace-editor/snippets/scad.js +9 -0
  504. package/js_ext/ace-editor/snippets/scala.js +9 -0
  505. package/js_ext/ace-editor/snippets/scheme.js +9 -0
  506. package/js_ext/ace-editor/snippets/scrypt.js +9 -0
  507. package/js_ext/ace-editor/snippets/scss.js +9 -0
  508. package/js_ext/ace-editor/snippets/sh.js +16 -0
  509. package/js_ext/ace-editor/snippets/sjs.js +9 -0
  510. package/js_ext/ace-editor/snippets/slim.js +9 -0
  511. package/js_ext/ace-editor/snippets/smarty.js +9 -0
  512. package/js_ext/ace-editor/snippets/smithy.js +9 -0
  513. package/js_ext/ace-editor/snippets/snippets.js +16 -0
  514. package/js_ext/ace-editor/snippets/soy_template.js +9 -0
  515. package/js_ext/ace-editor/snippets/space.js +9 -0
  516. package/js_ext/ace-editor/snippets/sparql.js +9 -0
  517. package/js_ext/ace-editor/snippets/sql.js +16 -0
  518. package/js_ext/ace-editor/snippets/sqlserver.js +16 -0
  519. package/js_ext/ace-editor/snippets/stylus.js +9 -0
  520. package/js_ext/ace-editor/snippets/svg.js +9 -0
  521. package/js_ext/ace-editor/snippets/swift.js +9 -0
  522. package/js_ext/ace-editor/snippets/tcl.js +16 -0
  523. package/js_ext/ace-editor/snippets/terraform.js +9 -0
  524. package/js_ext/ace-editor/snippets/tex.js +16 -0
  525. package/js_ext/ace-editor/snippets/text.js +9 -0
  526. package/js_ext/ace-editor/snippets/textile.js +16 -0
  527. package/js_ext/ace-editor/snippets/toml.js +9 -0
  528. package/js_ext/ace-editor/snippets/tsv.js +9 -0
  529. package/js_ext/ace-editor/snippets/tsx.js +9 -0
  530. package/js_ext/ace-editor/snippets/turtle.js +9 -0
  531. package/js_ext/ace-editor/snippets/twig.js +9 -0
  532. package/js_ext/ace-editor/snippets/typescript.js +9 -0
  533. package/js_ext/ace-editor/snippets/vala.js +199 -0
  534. package/js_ext/ace-editor/snippets/vbscript.js +9 -0
  535. package/js_ext/ace-editor/snippets/velocity.js +17 -0
  536. package/js_ext/ace-editor/snippets/verilog.js +9 -0
  537. package/js_ext/ace-editor/snippets/vhdl.js +9 -0
  538. package/js_ext/ace-editor/snippets/visualforce.js +9 -0
  539. package/js_ext/ace-editor/snippets/vue.js +9 -0
  540. package/js_ext/ace-editor/snippets/wollok.js +16 -0
  541. package/js_ext/ace-editor/snippets/xml.js +9 -0
  542. package/js_ext/ace-editor/snippets/xquery.js +78 -0
  543. package/js_ext/ace-editor/snippets/yaml.js +9 -0
  544. package/js_ext/ace-editor/snippets/zeek.js +9 -0
  545. package/js_ext/ace-editor/snippets/zig.js +9 -0
  546. package/js_ext/ace-editor/theme-ambiance.js +18 -0
  547. package/js_ext/ace-editor/theme-chaos.js +18 -0
  548. package/js_ext/ace-editor/theme-chrome.js +18 -0
  549. package/js_ext/ace-editor/theme-cloud9_day.js +19 -0
  550. package/js_ext/ace-editor/theme-cloud9_night.js +18 -0
  551. package/js_ext/ace-editor/theme-cloud9_night_low_color.js +18 -0
  552. package/js_ext/ace-editor/theme-cloud_editor.js +19 -0
  553. package/js_ext/ace-editor/theme-cloud_editor_dark.js +19 -0
  554. package/js_ext/ace-editor/theme-clouds.js +18 -0
  555. package/js_ext/ace-editor/theme-clouds_midnight.js +18 -0
  556. package/js_ext/ace-editor/theme-cobalt.js +18 -0
  557. package/js_ext/ace-editor/theme-crimson_editor.js +18 -0
  558. package/js_ext/ace-editor/theme-dawn.js +18 -0
  559. package/js_ext/ace-editor/theme-dracula.js +19 -0
  560. package/js_ext/ace-editor/theme-dreamweaver.js +18 -0
  561. package/js_ext/ace-editor/theme-eclipse.js +19 -0
  562. package/js_ext/ace-editor/theme-github.js +18 -0
  563. package/js_ext/ace-editor/theme-github_dark.js +18 -0
  564. package/js_ext/ace-editor/theme-github_light_default.js +18 -0
  565. package/js_ext/ace-editor/theme-gob.js +18 -0
  566. package/js_ext/ace-editor/theme-gruvbox.js +18 -0
  567. package/js_ext/ace-editor/theme-gruvbox_dark_hard.js +18 -0
  568. package/js_ext/ace-editor/theme-gruvbox_light_hard.js +18 -0
  569. package/js_ext/ace-editor/theme-idle_fingers.js +18 -0
  570. package/js_ext/ace-editor/theme-iplastic.js +18 -0
  571. package/js_ext/ace-editor/theme-katzenmilch.js +18 -0
  572. package/js_ext/ace-editor/theme-kr_theme.js +18 -0
  573. package/js_ext/ace-editor/theme-kuroir.js +18 -0
  574. package/js_ext/ace-editor/theme-merbivore.js +18 -0
  575. package/js_ext/ace-editor/theme-merbivore_soft.js +18 -0
  576. package/js_ext/ace-editor/theme-mono_industrial.js +18 -0
  577. package/js_ext/ace-editor/theme-monokai.js +18 -0
  578. package/js_ext/ace-editor/theme-nord_dark.js +19 -0
  579. package/js_ext/ace-editor/theme-one_dark.js +18 -0
  580. package/js_ext/ace-editor/theme-pastel_on_dark.js +18 -0
  581. package/js_ext/ace-editor/theme-solarized_dark.js +18 -0
  582. package/js_ext/ace-editor/theme-solarized_light.js +18 -0
  583. package/js_ext/ace-editor/theme-sqlserver.js +18 -0
  584. package/js_ext/ace-editor/theme-terminal.js +18 -0
  585. package/js_ext/ace-editor/theme-textmate.js +16 -0
  586. package/js_ext/ace-editor/theme-tomorrow.js +18 -0
  587. package/js_ext/ace-editor/theme-tomorrow_night.js +18 -0
  588. package/js_ext/ace-editor/theme-tomorrow_night_blue.js +18 -0
  589. package/js_ext/ace-editor/theme-tomorrow_night_bright.js +18 -0
  590. package/js_ext/ace-editor/theme-tomorrow_night_eighties.js +18 -0
  591. package/js_ext/ace-editor/theme-twilight.js +18 -0
  592. package/js_ext/ace-editor/theme-vibrant_ink.js +18 -0
  593. package/js_ext/ace-editor/theme-xcode.js +18 -0
  594. package/js_ext/ace-editor/worker-base.js +1332 -0
  595. package/js_ext/ace-editor/worker-coffee.js +1381 -0
  596. package/js_ext/ace-editor/worker-css.js +8913 -0
  597. package/js_ext/ace-editor/worker-html.js +10843 -0
  598. package/js_ext/ace-editor/worker-javascript.js +15353 -0
  599. package/js_ext/ace-editor/worker-json.js +1626 -0
  600. package/js_ext/ace-editor/worker-lua.js +3519 -0
  601. package/js_ext/ace-editor/worker-php.js +3788 -0
  602. package/js_ext/ace-editor/worker-xml.js +3122 -0
  603. package/js_ext/ace-editor/worker-xquery.js +57579 -0
  604. package/js_ext/ace-editor/worker-yaml.js +5819 -0
  605. package/js_ext/bootstrap.bundle.min.js +7 -0
  606. package/js_ext/highlight/default.min.css +9 -0
  607. package/js_ext/highlight/go.min.js +14 -0
  608. package/js_ext/highlight/highlight.min.js +1207 -0
  609. package/js_ext/highlight/stackoverflow-dark.min.css +13 -0
  610. package/js_ext/idb-keyval-6.2.2.mjs +7 -0
  611. package/js_ext/json-viewer.bundle.js +52 -0
  612. package/js_ext/loglevel-plugin-prefix.min.js +1 -0
  613. package/js_ext/loglevel.min.js +2 -0
  614. package/js_ext/markdown/auto-render.min.js +1 -0
  615. package/js_ext/markdown/auto-render.mjs +245 -0
  616. package/js_ext/markdown/fonts/KaTeX_AMS-Regular.woff +0 -0
  617. package/js_ext/markdown/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  618. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  619. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  620. package/js_ext/markdown/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  621. package/js_ext/markdown/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  622. package/js_ext/markdown/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  623. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  624. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  625. package/js_ext/markdown/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  626. package/js_ext/markdown/fonts/KaTeX_Main-Bold.woff +0 -0
  627. package/js_ext/markdown/fonts/KaTeX_Main-Bold.woff2 +0 -0
  628. package/js_ext/markdown/fonts/KaTeX_Main-Italic.woff +0 -0
  629. package/js_ext/markdown/fonts/KaTeX_Main-Italic.woff2 +0 -0
  630. package/js_ext/markdown/fonts/KaTeX_Main-Regular.woff +0 -0
  631. package/js_ext/markdown/fonts/KaTeX_Main-Regular.woff2 +0 -0
  632. package/js_ext/markdown/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  633. package/js_ext/markdown/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  634. package/js_ext/markdown/fonts/KaTeX_Math-Italic.woff +0 -0
  635. package/js_ext/markdown/fonts/KaTeX_Math-Italic.woff2 +0 -0
  636. package/js_ext/markdown/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  637. package/js_ext/markdown/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  638. package/js_ext/markdown/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  639. package/js_ext/markdown/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  640. package/js_ext/markdown/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  641. package/js_ext/markdown/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  642. package/js_ext/markdown/fonts/KaTeX_Script-Regular.ttf +0 -0
  643. package/js_ext/markdown/fonts/KaTeX_Script-Regular.woff +0 -0
  644. package/js_ext/markdown/fonts/KaTeX_Script-Regular.woff2 +0 -0
  645. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.ttf +0 -0
  646. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.woff +0 -0
  647. package/js_ext/markdown/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  648. package/js_ext/markdown/fonts/KaTeX_Size2-Regular.woff +0 -0
  649. package/js_ext/markdown/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  650. package/js_ext/markdown/fonts/KaTeX_Size3-Regular.woff +0 -0
  651. package/js_ext/markdown/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  652. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.ttf +0 -0
  653. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.woff +0 -0
  654. package/js_ext/markdown/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  655. package/js_ext/markdown/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  656. package/js_ext/markdown/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  657. package/js_ext/markdown/katex.min.css +1 -0
  658. package/js_ext/markdown/katex.min.js +1 -0
  659. package/js_ext/markdown/katex.mjs +18416 -0
  660. package/js_ext/markdown/markdown-it.min.js +3 -0
  661. package/js_ext/markdown/markdownItAnchor.umd.js +2 -0
  662. package/js_ext/mitt.mjs +2 -0
  663. package/js_ext/moment.min.js +1 -0
  664. package/js_ext/msgpack.mjs +1612 -0
  665. package/js_ext/rxjs.umd.min.js +195 -0
  666. package/js_ext/rxjs.umd.min.js.map +1 -0
  667. package/js_ext/vue-router.esm-browser.prod.js +6 -0
  668. package/js_ext/vue.esm-browser.min.js +18 -0
  669. package/js_ext/vue.esm-browser.prod.min.js +3 -0
  670. package/js_ext/vue3-sfc-loader.esm.js +1840 -0
  671. package/js_ext/vue3-sfc-loader.esm.js.map +4 -0
  672. package/js_ext/vue3-sfc-loader.js +1839 -0
  673. package/js_ext/wavesurfer.esm.mjs +1 -0
  674. package/js_ext/xstate.web.mjs +15 -0
  675. package/package.json +50 -0
  676. package/style.css +31 -0
@@ -0,0 +1,274 @@
1
+ // ________________________________________________________________________________
2
+ // IMPORT
3
+ // ________________________________________________________________________________
4
+ import {getLogger} from "Logging";
5
+ import {slugify} from "./MarkdownUtils.mjs";
6
+
7
+ // ________________________________________________________________________________
8
+ // LOGGING
9
+ // ________________________________________________________________________________
10
+ const LOG_HEADER = 'Markdown.mjs'
11
+ const logger = getLogger(LOG_HEADER)
12
+ logger.debug("init")
13
+
14
+ if (window.MathJax) {
15
+ logger.debug(`Using MathJAX`)
16
+ } else if (window.katex) {
17
+ logger.debug(`Using Katex`)
18
+ } else {
19
+ logger.warn(`No Math rendering library found!`)
20
+ }
21
+
22
+ const md = window.markdownit()
23
+ .use(math_plugin)
24
+
25
+ // Add anchor plugin if loaded successfully
26
+ if (window.markdownItAnchor) {
27
+ md.use(window.markdownItAnchor, {
28
+ slugify: slugify // Use custom slugify to normalize special characters
29
+ })
30
+ logger.debug("markdown-it-anchor plugin enabled with custom slugify")
31
+ } else {
32
+ logger.warn("markdown-it-anchor not available - headers won't have IDs")
33
+ }
34
+
35
+ // ______________________________________________________________________________________
36
+ // Markdown Configuration
37
+ // https://github.com/markdown-it/markdown-it/issues/960
38
+ // https://spec.commonmark.org/dingus/?text=%60%60%60ruby%20code%20%60%60%60
39
+ // ______________________________________________________________________________________
40
+ md.options.html = true // Enable HTML tags in source
41
+ md.options.breaks = false // Convert '\n' in paragraphs into <br>
42
+ md.options.langPrefix = 'language-' // CSS language prefix for fenced blocks.
43
+ md.options.linkify = true // Autoconvert URL-like text to links
44
+ md.options.breaks = false // Convert '\n' in paragraphs into <br>
45
+ // // Highlighter function. Should return escaped HTML
46
+ md.options.highlight = (str, lang) => {
47
+ logger.debug(`highlight call lang=${lang}`)
48
+ logger.debug(str)
49
+ if (lang && hljs.getLanguage(lang)) {
50
+ try {
51
+ return '<pre class="hljs"><code>' +
52
+ hljs.highlight(str, {language: lang, ignoreIllegals: true}).value +
53
+ '</code></pre>';
54
+ } catch (__) {
55
+ }
56
+ }
57
+
58
+ return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
59
+ }
60
+
61
+
62
+ // ______________________________________________________________________________________
63
+ // Markdown It - Katex Plugin
64
+ // ______________________________________________________________________________________
65
+ function isValidDelim(state, pos) {
66
+ var prevChar, nextChar,
67
+ max = state.posMax,
68
+ can_open = true,
69
+ can_close = true;
70
+
71
+ prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;
72
+ nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;
73
+
74
+ // Check non-whitespace conditions for opening and closing, and
75
+ // check that closing delimeter isn't followed by a number
76
+ if (prevChar === 0x20/* " " */ || prevChar === 0x09/* \t */ ||
77
+ (nextChar >= 0x30/* "0" */ && nextChar <= 0x39/* "9" */)) {
78
+ can_close = false;
79
+ }
80
+ if (nextChar === 0x20/* " " */ || nextChar === 0x09/* \t */) {
81
+ can_open = false;
82
+ }
83
+
84
+ return {
85
+ can_open: can_open,
86
+ can_close: can_close
87
+ };
88
+ }
89
+
90
+ function math_inline(state, silent) {
91
+ var start, match, token, res, pos, esc_count;
92
+
93
+ if (state.src[state.pos] !== "$") {
94
+ return false;
95
+ }
96
+
97
+ res = isValidDelim(state, state.pos);
98
+ if (!res.can_open) {
99
+ if (!silent) {
100
+ state.pending += "$";
101
+ }
102
+ state.pos += 1;
103
+ return true;
104
+ }
105
+
106
+ // First check for and bypass all properly escaped delimieters
107
+ // This loop will assume that the first leading backtick can not
108
+ // be the first character in state.src, which is known since
109
+ // we have found an opening delimieter already.
110
+ start = state.pos + 1;
111
+ match = start;
112
+ while ((match = state.src.indexOf("$", match)) !== -1) {
113
+ // Found potential $, look for escapes, pos will point to
114
+ // first non escape when complete
115
+ pos = match - 1;
116
+ while (state.src[pos] === "\\") {
117
+ pos -= 1;
118
+ }
119
+
120
+ // Even number of escapes, potential closing delimiter found
121
+ if (((match - pos) % 2) == 1) {
122
+ break;
123
+ }
124
+ match += 1;
125
+ }
126
+
127
+ // No closing delimter found. Consume $ and continue.
128
+ if (match === -1) {
129
+ if (!silent) {
130
+ state.pending += "$";
131
+ }
132
+ state.pos = start;
133
+ return true;
134
+ }
135
+
136
+ // Check if we have empty content, ie: $$. Do not parse.
137
+ if (match - start === 0) {
138
+ if (!silent) {
139
+ state.pending += "$$";
140
+ }
141
+ state.pos = start + 1;
142
+ return true;
143
+ }
144
+
145
+ // Check for valid closing delimiter
146
+ res = isValidDelim(state, match);
147
+ if (!res.can_close) {
148
+ if (!silent) {
149
+ state.pending += "$";
150
+ }
151
+ state.pos = start;
152
+ return true;
153
+ }
154
+
155
+ if (!silent) {
156
+ token = state.push('math_inline', 'math', 0);
157
+ token.markup = "$";
158
+ token.content = state.src.slice(start, match);
159
+ }
160
+
161
+ state.pos = match + 1;
162
+ return true;
163
+ }
164
+
165
+ function math_block(state, start, end, silent) {
166
+ var firstLine, lastLine, next, lastPos, found = false, token,
167
+ pos = state.bMarks[start] + state.tShift[start],
168
+ max = state.eMarks[start]
169
+
170
+ if (pos + 2 > max) {
171
+ return false;
172
+ }
173
+ if (state.src.slice(pos, pos + 2) !== '$$') {
174
+ return false;
175
+ }
176
+
177
+ pos += 2;
178
+ firstLine = state.src.slice(pos, max);
179
+
180
+ if (silent) {
181
+ return true;
182
+ }
183
+ if (firstLine.trim().slice(-2) === '$$') {
184
+ // Single line expression
185
+ firstLine = firstLine.trim().slice(0, -2);
186
+ found = true;
187
+ }
188
+
189
+ for (next = start; !found;) {
190
+
191
+ next++;
192
+
193
+ if (next >= end) {
194
+ break;
195
+ }
196
+
197
+ pos = state.bMarks[next] + state.tShift[next];
198
+ max = state.eMarks[next];
199
+
200
+ if (pos < max && state.tShift[next] < state.blkIndent) {
201
+ // non-empty line with negative indent should stop the list:
202
+ break;
203
+ }
204
+
205
+ if (state.src.slice(pos, max).trim().slice(-2) === '$$') {
206
+ lastPos = state.src.slice(0, max).lastIndexOf('$$');
207
+ lastLine = state.src.slice(pos, lastPos);
208
+ found = true;
209
+ }
210
+
211
+ }
212
+
213
+ state.line = next + 1;
214
+
215
+ token = state.push('math_block', 'math', 0);
216
+ token.block = true;
217
+ token.content = (firstLine && firstLine.trim() ? firstLine + '\n' : '')
218
+ + state.getLines(start + 1, next, state.tShift[start], true)
219
+ + (lastLine && lastLine.trim() ? lastLine : '');
220
+ token.map = [start, state.line];
221
+ token.markup = '$$';
222
+ return true;
223
+ }
224
+
225
+ function math_plugin(md, options) {
226
+ // Default options
227
+
228
+ options = options || {};
229
+
230
+ // set KaTeX as the renderer for markdown-it-simplemath
231
+ var katexInline = function (latex) {
232
+ options.displayMode = false;
233
+ try {
234
+ return katex.renderToString(latex, options);
235
+ } catch (error) {
236
+ if (options.throwOnError) {
237
+ console.log(error);
238
+ }
239
+ return latex;
240
+ }
241
+ };
242
+
243
+ var inlineRenderer = function (tokens, idx) {
244
+ return katexInline(tokens[idx].content);
245
+ };
246
+
247
+ var katexBlock = function (latex) {
248
+ options.displayMode = true;
249
+ try {
250
+ return "<p>" + katex.renderToString(latex, options) + "</p>";
251
+ } catch (error) {
252
+ if (options.throwOnError) {
253
+ console.log(error);
254
+ }
255
+ return latex;
256
+ }
257
+ }
258
+
259
+ var blockRenderer = function (tokens, idx) {
260
+ return katexBlock(tokens[idx].content) + '\n';
261
+ }
262
+
263
+ md.inline.ruler.after('escape', 'math_inline', math_inline);
264
+ md.block.ruler.after('blockquote', 'math_block', math_block, {
265
+ alt: ['paragraph', 'reference', 'blockquote', 'list']
266
+ });
267
+ md.renderer.rules.math_inline = inlineRenderer;
268
+ md.renderer.rules.math_block = blockRenderer;
269
+ }
270
+
271
+
272
+ export {
273
+ md
274
+ }
@@ -0,0 +1,180 @@
1
+ // ________________________________________________________________________________
2
+ // IMPORTS
3
+ // ________________________________________________________________________________
4
+ import {getLogger} from "Logging"
5
+
6
+ // ________________________________________________________________________________
7
+ // LOGGING
8
+ // ________________________________________________________________________________
9
+ const LOG_HEADER = 'MarkdownUtils.mjs'
10
+ const logger = getLogger(LOG_HEADER)
11
+ logger.debug("[INIT]")
12
+
13
+ const remotePathPrefix = '/docs/';
14
+
15
+ // ________________________________________________________________________________
16
+ // EXPORTED UTILITY FUNCTIONS
17
+ // ________________________________________________________________________________
18
+ /**
19
+ * Replace table HTML to add Bootstrap classes
20
+ * <table class="table table-success table-striped">
21
+ * https://getbootstrap.com/docs/5.3/content/tables/
22
+ * @param {string} inputString - HTML string with table tags
23
+ * @returns {string} Modified HTML string
24
+ */
25
+ export function decorateTableHTML(inputString) {
26
+ return inputString.replace(
27
+ /<table([^>]*)>/gi,
28
+ (match, existingAttributes) => {
29
+ // Check if table already has a class attribute
30
+ if (existingAttributes.includes('class=')) {
31
+ // Append Bootstrap classes to existing class attribute
32
+ return match.replace(
33
+ /class="([^"]*)"/,
34
+ 'class="$1 table table-dark table-striped"'
35
+ );
36
+ }
37
+ // Add Bootstrap classes to tables without existing class
38
+ return `<table${existingAttributes} class="table table-sm table-dark table-striped-columns">`;
39
+ }
40
+ );
41
+ }
42
+
43
+ /**
44
+ * Replace href attributes in anchor tags based on link type
45
+ * - Anchor links (#section): Keep href, add scroll handler
46
+ * - HTTP/HTTPS links: Keep href, add styling
47
+ * - Relative/absolute document links: Convert to Vue click handler
48
+ *
49
+ * @param {string} inputString - HTML string with anchor tags
50
+ * @param adjustHrefPath Function To modify href paths if needed
51
+ * @returns {string} Modified HTML string
52
+ *
53
+ */
54
+ export function replaceHrefLinks(inputString, adjustHrefPath = (path) => path) {
55
+ return inputString.replace(
56
+ /a href="([^"]*)"/g,
57
+ (match, param) => {
58
+ logger.debug(`[REGEX_HREF] match=${match} param=${param}`)
59
+ // Check if it's an anchor link (starts with #)
60
+ if (param.startsWith('#')) {
61
+ // Keep href for anchor links - this is the FIX for the bug!
62
+ // Before: would convert to @click handler, losing anchor functionality
63
+ // After: preserves href so browser can scroll to target
64
+ return `a href="${param}" @click.prevent="scrollToAnchor('${param}')"`
65
+ }
66
+
67
+ // Check for HTTP/HTTPS links or already has class
68
+ if (match.toLowerCase().includes("http") || match.toLowerCase().includes("class")) {
69
+ return `${match} class="link-primary" target="_blank"`
70
+ }
71
+
72
+ // Relative/absolute document links - use Vue handler
73
+ return `a href="${param}" @click.prevent="href('${param}')"`
74
+
75
+ }
76
+ );
77
+ }
78
+
79
+ /**
80
+ * Extract size dimensions from alt text
81
+ * Matches format: =100x200 at the end of alt text
82
+ *
83
+ * @param {string} alt - Alt text that may contain size
84
+ * @returns {Object|null} {width, height} or null if no size found
85
+ */
86
+ export function extractSizeFromAlt(alt) {
87
+ const match = alt.match(/=(\d+)x(\d+)$/);
88
+ if (match) {
89
+ return { width: match[1], height: match[2] };
90
+ }
91
+ return null;
92
+ }
93
+
94
+ /**
95
+ * Replace img src attributes and handle size extraction from alt text
96
+ * Converts relative paths to absolute paths for documentation
97
+ *
98
+ * @param {string} inputString - HTML string with img tags
99
+ * @returns {string} Modified HTML string
100
+ */
101
+ export function replaceImgLinks(inputString) {
102
+ return inputString.replace(
103
+ /img src="([^"]*)" alt="([^"]*)"/g,
104
+ (match, src, alt) => {
105
+ logger.debug(`[REGEX_IMG] match=${match} src=${src} alt=${alt}`)
106
+ const size = extractSizeFromAlt(alt);
107
+ let sizeAttrs = '';
108
+ if (size) {
109
+ sizeAttrs = `width="${size.width}" `;
110
+ alt = alt.replace(/=(\d+)x(\d+)$/, ''); // Remove size from alt
111
+ }
112
+ const adjustedSrc = "" + src.replace(/^\.\//, remotePathPrefix);
113
+ logger.debug(`[IMG] - ${src} -> ${adjustedSrc}`)
114
+ return `img src="${adjustedSrc}" class="mk-img" ${sizeAttrs} alt="${alt.trim()}"`
115
+ }
116
+ );
117
+ }
118
+
119
+ /**
120
+ * Replace Vue template syntax to prevent interpretation
121
+ * Escapes {{ }} so they display literally in markdown
122
+ *
123
+ * @param {string} text - HTML/text with potential Vue syntax
124
+ * @returns {string} Text with escaped Vue syntax
125
+ */
126
+ export function replaceVueSpecial(text) {
127
+ const regex = /\{\{\s*(.+?)\s*\}\}/g;
128
+ const after = text.replace(regex, '&lbrace;&lbrace;$1&rbrace;&rbrace;');
129
+ return after
130
+ }
131
+
132
+ /**
133
+ * Remove YAML front matter from markdown text
134
+ * Front matter is enclosed in --- delimiters
135
+ *
136
+ * @param {string} markdownText - Markdown text that may have front matter
137
+ * @returns {string} Markdown text without front matter
138
+ */
139
+ export function removeMarkdownHeader(markdownText) {
140
+ let text = markdownText
141
+ if(text.startsWith("---")) {
142
+ const lines = text.split('\n');
143
+ for (let i = 1; i < lines.length; i++) {
144
+ const line = lines[i]
145
+ if(line.includes("---")) {
146
+ logger.debug(`${i} lines of header`)
147
+ return lines.slice(i+1).join("\n")
148
+ }
149
+ if(line.includes("#")) {
150
+ return text
151
+ }
152
+ }
153
+ }
154
+ return text
155
+ }
156
+
157
+
158
+ // ________________________________________________________________________________
159
+ // EXPORTED UTILITY FUNCTIONS
160
+ // ________________________________________________________________________________
161
+ /**
162
+ * Slugify a string for use as an anchor ID
163
+ * Matches markdown-it-anchor behavior with custom normalization
164
+ *
165
+ * Converts: "Common Example / Skeleton" -> "common-example-skeleton"
166
+ * Converts: "Test & Validation" -> "test-validation"
167
+ * Converts: "100% Coverage" -> "100-coverage"
168
+ *
169
+ * @param {string} str - String to slugify
170
+ * @returns {string} Slugified string
171
+ */
172
+ export function slugify(str) {
173
+ return str.toLowerCase()
174
+ .trim()
175
+ .replace(/\s+/g, '-') // spaces → hyphens
176
+ .replace(/[^\w\-]+/g, '-') // special chars → hyphens
177
+ .replace(/\-\-+/g, '-') // multiple hyphens → single hyphen
178
+ .replace(/^-+/, '') // trim leading hyphens
179
+ .replace(/-+$/, '') // trim trailing hyphens
180
+ }
@@ -0,0 +1,175 @@
1
+
2
+
3
+ export function buildNode(key, label, path = null, metadata = null, isDir = true, expanded = false) {
4
+ return {
5
+ key: key,
6
+ path: path,
7
+ label: label,
8
+ children: [],
9
+ expanded: expanded,
10
+ isDirectory: isDir,
11
+ metadata: metadata,
12
+ parent: null
13
+ }
14
+ }
15
+
16
+ /*
17
+ Given output of linux file command will return the symbolic link it points to.
18
+ input:
19
+ /opt/c0ckp1t/projects/terraform/sorsha-public-0: symbolic link to /home/ellis/github/c0ckp1t-content-private/wf-sorsha-deploy/data/terraform/sorsha-public-0
20
+ output:
21
+ /home/ellis/github/c0ckp1t-content-private/wf-sorsha-deploy/data/terraform/sorsha-public-0
22
+ */
23
+ export function extractSymbolicLinkTarget(inputString) {
24
+ const linkIndicator = "symbolic link to ";
25
+ const startIndex = inputString.indexOf(linkIndicator);
26
+ if (startIndex === -1) {
27
+ throw "[extractSymbolicLinkTarget] - link indicator not found"
28
+ }
29
+ return inputString.substring(startIndex + linkIndicator.length).trim();
30
+ }
31
+
32
+ export function pathToKeyArr(path) {
33
+ if(path === "" || path === null) return [""]
34
+ if(path === "/") return [""]
35
+ if(path.trim().endsWith('/')) throw Error("Path must not have a trailing slash ")
36
+ const dirs = path.split("/")
37
+ return dirs
38
+ }
39
+
40
+ export function lastKey(path) {
41
+ const arr = pathToKeyArr(path)
42
+ if(arr.length === 0) return ""
43
+ return arr.pop()
44
+ }
45
+
46
+ export function cleanAbsPath(absPath) {
47
+ if (absPath === '/') return '/'
48
+ if (absPath === null) throw Error("absPath cannot be null")
49
+ let absPathCleaned = absPath.trim()
50
+ if (absPathCleaned.at(-1) === '/') return absPathCleaned.slice(0, absPathCleaned.length - 1)
51
+ return absPathCleaned
52
+ }
53
+
54
+
55
+ export function Tree(rootKey, rootPath, rootLabel) {
56
+ this.root = [{
57
+ key: rootKey,
58
+ label: rootLabel,
59
+ path: rootPath,
60
+ parent: null,
61
+ metadata: null,
62
+ children: [],
63
+ expanded: true,
64
+ isDirectory: true
65
+ }]
66
+
67
+
68
+
69
+ this.insertByParent = function (parentNode, insertNode) {
70
+ if(!parentNode.hasOwnProperty('children')) throw Error("parentNode doesn't have children property")
71
+ if(!Array.isArray(parentNode.children)) throw Error("children property is not an array")
72
+ const index = parentNode.children.findIndex(node => node.key === insertNode.key)
73
+ if(index === -1) {
74
+ // not found so insert into back of array then sort
75
+ parentNode.children.push(insertNode)
76
+ parentNode.children = parentNode.children.slice().sort((a, b) => a.key.localeCompare(b.key))
77
+ } else {
78
+ // overwrite
79
+ parentNode.children[index] = insertNode
80
+ }
81
+
82
+ if(parentNode.path === '/') {
83
+ insertNode.path = `/${insertNode.key}`
84
+ } else {
85
+ insertNode.path = `${parentNode.path}/${insertNode.key}`
86
+ }
87
+ insertNode.parent = parentNode
88
+ return insertNode
89
+ }
90
+
91
+
92
+
93
+
94
+
95
+ this.findOrCreateParent = function(keyArr) {
96
+ if(!Array.isArray(keyArr)) throw Error("findOrCreateParent - keyArr parameter is not an array")
97
+ if(keyArr.length === 0) return this.root[0]
98
+ let currentNode = this.root[0]
99
+ if(currentNode.key !== keyArr[0]) throw Error(`findOrCreateParent - keyArr is not valid ${keyArr[0]}!=${currentNode.key}`)
100
+ // we expect the keyArr[0] to be the key of the root[0]
101
+ keyArr.shift()
102
+ for (let key of keyArr) {
103
+ const index = currentNode.children.findIndex(node => node.key === key)
104
+ if(index === -1) {
105
+ const newNode = buildNode(key, `${currentNode.path}/${key}`, key)
106
+ this.insertByParent(currentNode, newNode)
107
+ currentNode = newNode
108
+ } else {
109
+ currentNode = currentNode.children[index]
110
+ }
111
+ }
112
+ return currentNode
113
+ }
114
+
115
+ this.insertByKeyArr = function (insertArr, insertNode) {
116
+ if(!Array.isArray(insertArr)) throw Error("insertArr parameter is not an array")
117
+ const parent = this.findOrCreateParent(insertArr)
118
+ return this.insertByParent(parent, insertNode)
119
+ }
120
+
121
+ this.findNode = function(keyArr) {
122
+ let currentNode = this.root[0]
123
+ if(currentNode.key !== keyArr[0]) throw Error(`keyArr is not valid ${keyArr[0]}!=${currentNode.key}`)
124
+ // we expect the keyArr[0] to be the key of the root[0]
125
+ keyArr.shift()
126
+ for (let key of keyArr) {
127
+ const index = currentNode.children.findIndex(node => node.key === key)
128
+ if(index !== -1) {
129
+ currentNode = currentNode.children[index]
130
+ } else {
131
+ throw Error(`Parent not found using keyArr=${keyArr}`)
132
+ }
133
+ }
134
+ return currentNode
135
+ }
136
+
137
+ this.deleteByKeyArr = function (deleteArr) {
138
+ if(!Array.isArray(deleteArr)) throw Error("deleteArr parameter is not an array")
139
+ const parent = this.findNode(deleteArr).parent
140
+ const key = deleteArr[deleteArr.length - 1]
141
+ const index = parent.children.findIndex(node => node.key === key)
142
+ // console.log(`[deleteArr] - index=${index} - parent=${parent.label}`)
143
+ // returns the deleted item
144
+ return parent.children.splice(index, 1)[0]
145
+ }
146
+
147
+ this.deleteNode = function (node) {
148
+ if(node == this.root[0]) throw Error("cannot delete root")
149
+ const parent = node.parent
150
+ const index = parent.children.findIndex(child => child.key === node.key)
151
+ // console.log(`[deleteArr] - index=${index} - parent=${parent.label}`)
152
+ // returns the deleted item
153
+ return parent.children.splice(index, 1)[0]
154
+ }
155
+
156
+ this.nodeToString = function(node, indent = 0) {
157
+ let output = ' '.repeat(indent) + `${node.key} - ${node.path}\n`
158
+ return output + this.childrenToString(node.children, indent + 1)
159
+ }
160
+
161
+ this.childrenToString = function(children, indent = 0) {
162
+ // console.log(children)
163
+ if(!Array.isArray(children)) throw Error("children property is not an array")
164
+ let output = ""
165
+ for (let node of children) {
166
+ output += this.nodeToString(node, indent)
167
+ }
168
+ return output
169
+ }
170
+
171
+ this.toString = function() {
172
+ return this.childrenToString(this.root)
173
+ }
174
+ }
175
+