markstream-vue 0.0.4-beta.0 → 0.0.4-beta.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.
package/README.md CHANGED
@@ -104,6 +104,38 @@ enableMermaid()
104
104
  enableKatex()
105
105
  ```
106
106
 
107
+ If you load KaTeX via CDN and want KaTeX rendering in a Web Worker (no bundler / optional peer not installed), inject a CDN-backed worker:
108
+
109
+ ```ts
110
+ import { createKaTeXWorkerFromCDN, setKaTeXWorker } from 'markstream-vue'
111
+
112
+ const { worker } = createKaTeXWorkerFromCDN({
113
+ mode: 'classic',
114
+ // UMD builds used by importScripts() inside the worker
115
+ katexUrl: 'https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.js',
116
+ mhchemUrl: 'https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/contrib/mhchem.min.js',
117
+ })
118
+
119
+ if (worker)
120
+ setKaTeXWorker(worker)
121
+ ```
122
+
123
+ If you load Mermaid via CDN and want off-main-thread parsing (used by progressive Mermaid rendering), inject a Mermaid parser worker:
124
+
125
+ ```ts
126
+ import { createMermaidWorkerFromCDN, setMermaidWorker } from 'markstream-vue'
127
+
128
+ const { worker } = createMermaidWorkerFromCDN({
129
+ // Mermaid CDN builds are commonly ESM; module worker is recommended.
130
+ mode: 'module',
131
+ workerOptions: { type: 'module' },
132
+ mermaidUrl: 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs',
133
+ })
134
+
135
+ if (worker)
136
+ setMermaidWorker(worker)
137
+ ```
138
+
107
139
  ### Nuxt quick drop-in
108
140
 
109
141
  ```ts
@@ -274,7 +306,8 @@ Parse hooks example (match server + client):
274
306
 
275
307
  ## ❓ FAQ (quick answers)
276
308
 
277
- - Mermaid/KaTeX not rendering? Install the peer (`mermaid` / `katex`) and pass `:enable-mermaid="true"` / `:enable-katex="true"` or call the loader setters.
309
+ - Mermaid/KaTeX not rendering? Install the peer (`mermaid` / `katex`) and pass `:enable-mermaid="true"` / `:enable-katex="true"` or call the loader setters. If you load them via CDN script tags, the library will also pick up `window.mermaid` / `window.katex`.
310
+ - CDN + KaTeX worker: if you don't bundle `katex` but still want off-main-thread rendering, create and inject a worker that loads KaTeX via CDN (UMD) using `createKaTeXWorkerFromCDN()` + `setKaTeXWorker()`.
278
311
  - Bundle size: peers are optional and not bundled; import only `markstream-vue/index.css` once. Use Shiki (`MarkdownCodeBlockNode`) when Monaco is too heavy.
279
312
  - Custom UI: register components via `setCustomComponents` (global) or `custom-components` prop, then emit markers/placeholders in Markdown and map them to Vue components.
280
313
 
package/README.zh-CN.md CHANGED
@@ -103,6 +103,38 @@ enableMermaid()
103
103
  enableKatex()
104
104
  ```
105
105
 
106
+ 如果你是用 CDN 引入 KaTeX,并且希望公式在 Web Worker 中渲染(不打包 / 不安装可选 peer),可以注入一个“CDN 加载 KaTeX”的 worker:
107
+
108
+ ```ts
109
+ import { createKaTeXWorkerFromCDN, setKaTeXWorker } from 'markstream-vue'
110
+
111
+ const { worker } = createKaTeXWorkerFromCDN({
112
+ mode: 'classic',
113
+ // worker 内通过 importScripts() 加载的 UMD 构建
114
+ katexUrl: 'https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/katex.min.js',
115
+ mhchemUrl: 'https://cdn.jsdelivr.net/npm/katex@0.16.22/dist/contrib/mhchem.min.js',
116
+ })
117
+
118
+ if (worker)
119
+ setKaTeXWorker(worker)
120
+ ```
121
+
122
+ 如果你是用 CDN 引入 Mermaid,并且希望 Mermaid 的解析在 worker 中进行(用于渐进式 Mermaid 渲染的后台解析),可以注入 Mermaid parser worker:
123
+
124
+ ```ts
125
+ import { createMermaidWorkerFromCDN, setMermaidWorker } from 'markstream-vue'
126
+
127
+ const { worker } = createMermaidWorkerFromCDN({
128
+ // Mermaid CDN 构建通常是 ESM,推荐 module worker。
129
+ mode: 'module',
130
+ workerOptions: { type: 'module' },
131
+ mermaidUrl: 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs',
132
+ })
133
+
134
+ if (worker)
135
+ setMermaidWorker(worker)
136
+ ```
137
+
106
138
  ### Nuxt 快速接入
107
139
 
108
140
  ```ts
@@ -273,7 +305,8 @@ setCustomComponents({
273
305
 
274
306
  ## ❓ 快问快答
275
307
 
276
- - Mermaid / KaTeX 不显示?安装对应 peer(`mermaid` / `katex`),并传入 `:enable-mermaid="true"` / `:enable-katex="true"` 或调用 loader 设置函数。
308
+ - Mermaid / KaTeX 不显示?安装对应 peer(`mermaid` / `katex`),并传入 `:enable-mermaid="true"` / `:enable-katex="true"` 或调用 loader 设置函数。如果你是用 CDN `<script>` 引入,库也会自动读取 `window.mermaid` / `window.katex`。
309
+ - CDN + KaTeX worker:如果你不打包 `katex` 但仍希望公式在 worker 中渲染(不占主线程),可以用 `createKaTeXWorkerFromCDN()` 创建一个“CDN 加载 KaTeX”的 worker,然后通过 `setKaTeXWorker()` 注入。
277
310
  - 体积问题:可选 peer 不会被打包,CSS 只需导入一次;对代码块可用 Shiki(`MarkdownCodeBlockNode`)替代 Monaco 以减轻体积。
278
311
  - 自定义 UI:通过 `setCustomComponents`(全局)或 `custom-components` prop 注册组件,在 Markdown 中放置占位标记并映射到 Vue 组件。
279
312