crossnote 0.9.20 → 0.9.21

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 (139) hide show
  1. package/README.md +52 -2
  2. package/out/cjs/index.cjs +265 -250
  3. package/out/dependencies/README.md +2 -2
  4. package/out/dependencies/font-awesome/webfonts/fa-brands-400.ttf +0 -0
  5. package/out/dependencies/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
  6. package/out/dependencies/font-awesome/webfonts/fa-regular-400.ttf +0 -0
  7. package/out/dependencies/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
  8. package/out/dependencies/font-awesome/webfonts/fa-solid-900.ttf +0 -0
  9. package/out/dependencies/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
  10. package/out/dependencies/font-awesome/webfonts/fa-v4compatibility.ttf +0 -0
  11. package/out/dependencies/font-awesome/webfonts/fa-v4compatibility.woff2 +0 -0
  12. package/out/dependencies/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  13. package/out/dependencies/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  14. package/out/dependencies/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  15. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  16. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  17. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  18. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  19. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  20. package/out/dependencies/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  21. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  22. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  23. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  24. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  25. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  26. package/out/dependencies/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  27. package/out/dependencies/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  28. package/out/dependencies/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  29. package/out/dependencies/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  30. package/out/dependencies/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  31. package/out/dependencies/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  32. package/out/dependencies/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  33. package/out/dependencies/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  34. package/out/dependencies/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  35. package/out/dependencies/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  36. package/out/dependencies/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  37. package/out/dependencies/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  38. package/out/dependencies/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  39. package/out/dependencies/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  40. package/out/dependencies/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  41. package/out/dependencies/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  42. package/out/dependencies/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  43. package/out/dependencies/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  44. package/out/dependencies/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  45. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  46. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  47. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  48. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  49. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  50. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  51. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  52. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  53. package/out/dependencies/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  54. package/out/dependencies/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  55. package/out/dependencies/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  56. package/out/dependencies/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  57. package/out/dependencies/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  58. package/out/dependencies/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  59. package/out/dependencies/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  60. package/out/dependencies/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  61. package/out/dependencies/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  62. package/out/dependencies/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  63. package/out/dependencies/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  64. package/out/dependencies/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  65. package/out/dependencies/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  66. package/out/dependencies/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  67. package/out/dependencies/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  68. package/out/dependencies/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  69. package/out/dependencies/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  70. package/out/dependencies/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  71. package/out/dependencies/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  72. package/out/dependencies/katex/katex-swap.min.css +1 -1
  73. package/out/dependencies/katex/katex.min.css +1 -1
  74. package/out/dependencies/mermaid/mermaid.min.js +813 -537
  75. package/out/dependencies/reveal/lib/font/league-gothic/league-gothic.eot +0 -0
  76. package/out/dependencies/reveal/lib/font/league-gothic/league-gothic.ttf +0 -0
  77. package/out/dependencies/reveal/lib/font/league-gothic/league-gothic.woff +0 -0
  78. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
  79. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-italic.ttf +0 -0
  80. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
  81. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
  82. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-regular.ttf +0 -0
  83. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
  84. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
  85. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibold.ttf +0 -0
  86. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
  87. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot +0 -0
  88. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf +0 -0
  89. package/out/dependencies/reveal/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff +0 -0
  90. package/out/esm/index.mjs +281 -266
  91. package/out/styles/preview_theme/gothic.css +1 -1
  92. package/out/styles/preview_theme/vue.css +1 -1
  93. package/out/styles/prism_theme/vue.css +1 -1
  94. package/out/types/src/converters/ebook-convert.d.ts +1 -1
  95. package/out/types/src/converters/markdown-convert.d.ts +2 -2
  96. package/out/types/src/converters/pandoc-convert.d.ts +2 -2
  97. package/out/types/src/converters/prince-convert.d.ts +1 -1
  98. package/out/types/src/custom-markdown-it-features/code-fences.d.ts +2 -0
  99. package/out/types/src/custom-markdown-it-features/colon-fenced-code-blocks.d.ts +3 -0
  100. package/out/types/src/markdown-engine/extension-helper.d.ts +1 -1
  101. package/out/types/src/markdown-engine/index.d.ts +23 -18
  102. package/out/types/src/markdown-engine/sanitize.d.ts +2 -1
  103. package/out/types/src/markdown-engine/transformer.d.ts +3 -2
  104. package/out/types/src/notebook/index.d.ts +17 -1
  105. package/out/types/src/notebook/note.d.ts +1 -1
  106. package/out/types/src/notebook/slash.d.ts +1 -1
  107. package/out/types/src/notebook/types.d.ts +8 -2
  108. package/out/types/src/prism/iele.d.ts +4 -1
  109. package/out/types/src/prism/k.d.ts +4 -1
  110. package/out/types/src/render-enhancers/code-block-styling.d.ts +2 -1
  111. package/out/types/src/render-enhancers/embedded-local-images.d.ts +2 -1
  112. package/out/types/src/render-enhancers/embedded-svgs.d.ts +2 -1
  113. package/out/types/src/render-enhancers/extended-table-syntax.d.ts +2 -1
  114. package/out/types/src/render-enhancers/fenced-code-chunks.d.ts +4 -2
  115. package/out/types/src/render-enhancers/fenced-diagrams.d.ts +7 -2
  116. package/out/types/src/render-enhancers/fenced-math.d.ts +2 -1
  117. package/out/types/src/render-enhancers/resolved-image-paths.d.ts +2 -1
  118. package/out/types/src/renderers/bitfield.d.ts +1 -1
  119. package/out/types/src/renderers/d2.d.ts +8 -0
  120. package/out/types/src/renderers/tikz.d.ts +10 -0
  121. package/out/types/src/renderers/vega-lite.d.ts +1 -1
  122. package/out/types/src/tools/image-uploader.d.ts +3 -3
  123. package/out/types/src/tools/mermaid.d.ts +1 -1
  124. package/out/types/src/utility.d.ts +5 -4
  125. package/out/types/src/webview/components/GraphViewComponent.d.ts +2 -0
  126. package/out/types/src/webview/containers/preview.d.ts +1 -1
  127. package/out/types/src/webview/graph-view.d.ts +1 -0
  128. package/out/types/src/webview/lib/utility.d.ts +1 -1
  129. package/out/types/test/notebook.test.d.ts +1 -0
  130. package/out/types/test/tikz-fenced.test.d.ts +1 -0
  131. package/out/types/test/tikz.test.d.ts +1 -0
  132. package/out/types/tsconfig.tsbuildinfo +1 -1
  133. package/out/webview/backlinks.css +1 -1
  134. package/out/webview/backlinks.js +5 -5
  135. package/out/webview/graph-view.css +1 -0
  136. package/out/webview/graph-view.js +43 -0
  137. package/out/webview/preview.css +1 -1
  138. package/out/webview/preview.js +212 -212
  139. package/package.json +43 -22
package/README.md CHANGED
@@ -92,8 +92,20 @@ const config = {
92
92
  // This is useful for adding custom styles or scripts.
93
93
  includeInHeader: "",
94
94
 
95
- // Enable this option will render markdown by pandoc instead of markdown-it.
96
- usePandocParser: false,
95
+ // Markdown parser to use for rendering.
96
+ // Options: 'markdown-it' (default), 'pandoc', 'markdown_yo'
97
+ // - 'markdown-it': built-in markdown-it renderer
98
+ // - 'pandoc': render via Pandoc (requires Pandoc installed)
99
+ // - 'markdown_yo': high-performance renderer (see below); markdown-it is
100
+ // still used for token-based operations (backlink extraction, etc.)
101
+ markdownParser: 'markdown-it',
102
+
103
+ // Path to the markdown_yo native binary.
104
+ // When set and markdownParser is 'markdown_yo', crossnote invokes this binary
105
+ // (via stdin/stdout) instead of the bundled WASM module.
106
+ // See the "markdown_yo" section below for performance guidance.
107
+ // Supports $HOME and ~ variable substitution. Default: '' (use WASM).
108
+ markdownYoBinaryPath: '',
97
109
 
98
110
  // In Markdown, a single newline character doesn't cause a line break in the generated HTML. In GitHub Flavored Markdown, that is not true. Enable this config option to insert line breaks in rendered HTML for single newlines in Markdown source.
99
111
  breakOnSingleNewLine: true,
@@ -300,6 +312,44 @@ If your notebook has `.crossnote` directory, then when you run `await Notebook.i
300
312
  └── style.less
301
313
  ```
302
314
 
315
+ ## markdown_yo (Experimental)
316
+
317
+ Crossnote supports an optional high-performance markdown renderer called [markdown_yo](https://github.com/shd101wyy/markdown_yo), written in the [Yo programming language](https://github.com/shd101wyy/Yo) and compiled to WebAssembly. When enabled, it replaces markdown-it for HTML rendering while markdown-it is still used for token-based operations (backlink extraction, note mention processing, etc.).
318
+
319
+ To enable it, set `markdownParser: 'markdown_yo'` in your notebook config.
320
+
321
+ ### Performance
322
+
323
+ By default, crossnote uses the **WASM** build of markdown_yo. The WASM module is initialized once per notebook and reused for all subsequent renders. The table below shows steady-state render times (WASM module already loaded) measured on an x86_64 Linux machine, compared to the native binary invoked as a subprocess:
324
+
325
+ | Input Size | markdown-it | WASM (pre-init) | Native binary (spawn) |
326
+ | ---------- | ----------- | --------------- | --------------------- |
327
+ | 60 KB | ~1.6 ms | ~1 ms | ~2 ms |
328
+ | 256 KB | ~6.7 ms | ~4 ms | ~3 ms |
329
+ | 1 MB | ~28.8 ms | ~83 ms | ~64 ms |
330
+ | 18 MB | ~722 ms | ~344 ms | ~246 ms |
331
+
332
+ _WASM times are measured in-process with a pre-initialized renderer (typical crossnote usage). Native binary times include process spawn + stdin/stdout I/O overhead._
333
+
334
+ For very large files (≥1 MB), the native binary is ~1.3× faster than WASM because WASM's memory overhead grows with document size. For small files (<256 KB), WASM is comparable or slightly faster since there is no subprocess overhead.
335
+
336
+ ### Native Binary
337
+
338
+ Pre-built binaries for Linux, macOS, and Windows are available at [github.com/shd101wyy/markdown_yo/releases](https://github.com/shd101wyy/markdown_yo/releases).
339
+
340
+ To use a native binary instead of WASM, set `markdownYoBinaryPath`:
341
+
342
+ ```yaml
343
+ markdownParser: markdown_yo
344
+ markdownYoBinaryPath: /path/to/markdown_yo
345
+ ```
346
+
347
+ Supports `$HOME` and `~` variable substitution. The `breakOnSingleNewLine` option is not supported by the native binary CLI and is silently ignored when this path is set.
348
+
349
+ ### Supported Features
350
+
351
+ markdown_yo supports CommonMark, GFM tables, strikethrough, and these extensions: subscript, superscript, mark/highlight, math ($..$ / $$..$$), emoji shortcodes, wikilinks, CriticMarkup, abbreviations, definition lists, admonitions, callouts, footnotes, source maps, and line breaks.
352
+
303
353
  ## Development
304
354
 
305
355
  1. Clone this project.