Skip to content

Commit 1d57970

Browse files
committed
Merge branch 'main' of github.com:comarkdown/comark
2 parents 7e9c5da + 6ed799b commit 1d57970

17 files changed

Lines changed: 138 additions & 154 deletions

File tree

docs/content/3.rendering/2.html.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,13 @@ See [ComarkPlugin](/plugins) for available plugins.
9595
```typescript
9696
import { renderHtml } from '@comark/html'
9797
import highlight from '@comark/html/plugins/highlight'
98+
import githubLight from '@shikijs/themes/github-light'
99+
import githubDark from '@shikijs/themes/github-dark'
98100

99101
const html = await renderHtml('```js\nconsole.log("hi")\n```', {
100102
plugins: [
101103
highlight({
102-
themes: { light: 'github-light', dark: 'github-dark' }
104+
themes: { light: githubLight, dark: githubDark }
103105
})
104106
],
105107
})

docs/content/3.rendering/3.vue.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,14 @@ See [ComarkPlugin](/plugins) for available plugins.
145145
<script setup lang="ts">
146146
import { Markdown } from '@comark/vue'
147147
import highlight from '@comark/vue/plugins/highlight'
148+
import githubLight from '@shikijs/themes/github-light'
149+
import githubDark from '@shikijs/themes/github-dark'
148150
149151
const plugins = [
150152
highlight({
151153
themes: {
152-
light: 'github-light',
153-
dark: 'github-dark'
154+
light: githubLight,
155+
dark: githubDark
154156
}
155157
})
156158
]
@@ -296,6 +298,8 @@ import { defineMarkdownComponent } from '@comark/vue'
296298
import highlight from '@comark/vue/plugins/highlight'
297299
import math, { Math } from '@comark/vue/plugins/math'
298300
import mermaid, { Mermaid } from '@comark/vue/plugins/mermaid'
301+
import githubLight from '@shikijs/themes/github-light'
302+
import githubDark from '@shikijs/themes/github-dark'
299303
import CustomAlert from './components/CustomAlert.vue'
300304

301305
export const AppMarkdown = defineMarkdownComponent({
@@ -306,8 +310,8 @@ export const AppMarkdown = defineMarkdownComponent({
306310
mermaid(),
307311
highlight({
308312
themes: {
309-
light: 'github-light',
310-
dark: 'github-dark'
313+
light: githubLight,
314+
dark: githubDark
311315
},
312316
}),
313317
],
@@ -359,6 +363,8 @@ Inherit plugins and components from another component, then layer your own on to
359363
```typescript [markdown.ts]
360364
import { defineMarkdownComponent } from '@comark/vue'
361365
import highlight from '@comark/vue/plugins/highlight'
366+
import githubLight from '@shikijs/themes/github-light'
367+
import githubDark from '@shikijs/themes/github-dark'
362368
import toc from '@comark/vue/plugins/toc'
363369
import math, { Math } from '@comark/vue/plugins/math'
364370
import ProsePre from './components/ProsePre.vue'
@@ -367,7 +373,7 @@ import ProsePre from './components/ProsePre.vue'
367373
export const BaseMarkdown = defineMarkdownComponent({
368374
name: 'BaseMarkdown',
369375
plugins: [
370-
highlight({ themes: { light: 'github-light', dark: 'github-dark' } }),
376+
highlight({ themes: { light: githubLight, dark: githubDark } }),
371377
],
372378
components: { ProsePre },
373379
})

docs/content/3.rendering/4.nuxt.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,12 @@ See [ComarkPlugin](/plugins) for available plugins.
125125
```vue [app.vue]
126126
<script setup lang="ts">
127127
import highlight from '@comark/nuxt/plugins/highlight'
128+
import githubLight from '@shikijs/themes/github-light'
129+
import githubDark from '@shikijs/themes/github-dark'
128130
129131
const plugins = [
130132
highlight({
131-
themes: { light: 'github-light', dark: 'github-dark' }
133+
themes: { light: githubLight, dark: githubDark }
132134
})
133135
]
134136
</script>

docs/content/3.rendering/5.react.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,12 @@ See [ComarkPlugin](/plugins) for available plugins.
123123
```tsx [App.tsx]
124124
import { Markdown } from '@comark/react'
125125
import highlight from '@comark/react/plugins/highlight'
126+
import githubLight from '@shikijs/themes/github-light'
127+
import githubDark from '@shikijs/themes/github-dark'
126128

127129
const plugins = [
128130
highlight({
129-
themes: { light: 'github-light', dark: 'github-dark' }
131+
themes: { light: githubLight, dark: githubDark }
130132
})
131133
]
132134

@@ -251,6 +253,8 @@ import { defineMarkdownComponent } from '@comark/react'
251253
import highlight from '@comark/react/plugins/highlight'
252254
import math, { Math } from '@comark/react/plugins/math'
253255
import mermaid, { Mermaid } from '@comark/react/plugins/mermaid'
256+
import githubLight from '@shikijs/themes/github-light'
257+
import githubDark from '@shikijs/themes/github-dark'
254258
import CustomAlert from './components/CustomAlert'
255259

256260
export const AppMarkdown = defineMarkdownComponent({
@@ -261,8 +265,8 @@ export const AppMarkdown = defineMarkdownComponent({
261265
mermaid(),
262266
highlight({
263267
themes: {
264-
light: 'github-light',
265-
dark: 'github-dark'
268+
light: githubLight,
269+
dark: githubDark
266270
},
267271
}),
268272
],
@@ -318,14 +322,16 @@ Inherit plugins and components from another component, then layer your own on to
318322
```typescript [markdown/index.ts]
319323
import { defineMarkdownComponent } from '@comark/react'
320324
import highlight from '@comark/react/plugins/highlight'
325+
import githubLight from '@shikijs/themes/github-light'
326+
import githubDark from '@shikijs/themes/github-dark'
321327
import toc from '@comark/react/plugins/toc'
322328
import math, { Math } from '@comark/react/plugins/math'
323329
import CodeBlock from './components/CodeBlock'
324330

325331
// Base: highlight + shared prose overrides, used everywhere
326332
const BaseMarkdown = defineMarkdownComponent({
327333
name: 'BaseMarkdown',
328-
plugins: [highlight({ themes: { light: 'github-light', dark: 'github-dark' } })],
334+
plugins: [highlight({ themes: { light: githubLight, dark: githubDark } })],
329335
components: { pre: CodeBlock },
330336
})
331337

docs/content/3.rendering/6.svelte.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,10 @@ See [ComarkPlugin](/plugins) for available plugins.
112112
<script lang="ts">
113113
import { Markdown } from '@comark/svelte'
114114
import highlight from '@comark/svelte/plugins/highlight'
115+
import githubLight from '@shikijs/themes/github-light'
115116
116117
const plugins = [
117-
highlight({
118-
themes: { light: 'github-light', dark: 'github-dark' },
119-
}),
118+
highlight({ theme: githubLight }),
120119
]
121120
</script>
122121

docs/content/3.rendering/7.angular.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ See [ComarkPlugin](/plugins) for available plugins.
110110
import { Component } from '@angular/core'
111111
import { Markdown } from '@comark/angular'
112112
import highlight from '@comark/angular/plugins/highlight'
113+
import githubLight from '@shikijs/themes/github-light'
114+
import githubDark from '@shikijs/themes/github-dark'
113115

114116
@Component({
115117
selector: 'app-root',
@@ -121,7 +123,7 @@ export class AppComponent {
121123
content = '```js\nconsole.log("hello")\n```'
122124
plugins = [
123125
highlight({
124-
themes: { light: 'github-light', dark: 'github-dark' },
126+
themes: { light: githubLight, dark: githubDark },
125127
}),
126128
]
127129
}

docs/content/4.plugins/1.built-in/syntax-highlight.md

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,20 @@ npm install shiki
2828

2929
## Usage
3030

31-
Pass [bundled theme names](https://shiki.style/themes) as strings — no extra imports needed:
31+
Import themes from `@shikijs/themes` for type safety and tree-shaking:
3232

3333
```typescript
3434
import { parseMarkdown } from 'comark'
3535
import highlight from 'comark/plugins/highlight'
36+
import githubLight from '@shikijs/themes/github-light'
37+
import githubDark from '@shikijs/themes/github-dark'
3638

3739
const result = await parseMarkdown(content, {
3840
plugins: [
3941
highlight({
4042
themes: {
41-
light: 'github-light',
42-
dark: 'github-dark'
43+
light: githubLight,
44+
dark: githubDark
4345
}
4446
})
4547
]
@@ -54,10 +56,12 @@ With framework components:
5456
<script setup lang="ts">
5557
import { Markdown } from '@comark/vue'
5658
import highlight from '@comark/vue/plugins/highlight'
59+
import githubLight from '@shikijs/themes/github-light'
60+
import githubDark from '@shikijs/themes/github-dark'
5761
5862
const plugins = [
5963
highlight({
60-
themes: { light: 'github-light', dark: 'github-dark' }
64+
themes: { light: githubLight, dark: githubDark }
6165
})
6266
]
6367
</script>
@@ -82,9 +86,11 @@ html.dark .shiki :deep(span) {
8286
```tsx [React]
8387
import { Markdown } from '@comark/react'
8488
import highlight from '@comark/react/plugins/highlight'
89+
import githubLight from '@shikijs/themes/github-light'
90+
import githubDark from '@shikijs/themes/github-dark'
8591

8692
<Markdown
87-
plugins={[highlight({ themes: { light: 'github-light', dark: 'github-dark' } })]}
93+
plugins={[highlight({ themes: { light: githubLight, dark: githubDark } })]}
8894
>
8995
{content}
9096
</Markdown>
@@ -101,20 +107,6 @@ import highlight from '@comark/react/plugins/highlight'
101107
Highlight code with different themes for light and dark modes. Both palettes are embedded as CSS custom properties, so there is no flash on theme switch. See all [available themes →](https://shiki.style/themes)
102108

103109
```typescript
104-
highlight({
105-
themes: {
106-
light: 'github-light',
107-
dark: 'github-dark'
108-
}
109-
})
110-
```
111-
112-
You can also pass theme registration objects (for example from `@shikijs/themes`) when you want explicit control over what gets bundled:
113-
114-
```typescript
115-
import githubLight from '@shikijs/themes/github-light'
116-
import githubDark from '@shikijs/themes/github-dark'
117-
118110
highlight({
119111
themes: {
120112
light: githubLight,
@@ -186,7 +178,7 @@ Pass any [Shiki transformer](https://shiki.style/guide/transformers) via `transf
186178
import { transformerNotationDiff } from '@shikijs/transformers'
187179

188180
highlight({
189-
themes: { light: 'github-light', dark: 'github-dark' },
181+
themes: { light: githubLight, dark: githubDark },
190182
transformers: [transformerNotationDiff()]
191183
})
192184
```
@@ -217,7 +209,7 @@ Returns a `ComarkPlugin` that enables Shiki syntax highlighting.
217209

218210
| Option | Type | Default | Description |
219211
|---|---|---|---|
220-
| [`themes`](#options-themes) | `object` | Material themes | Light and dark theme names or registrations |
212+
| [`themes`](#options-themes) | `object` | Material themes | Light and dark theme registrations |
221213
| [`languages`](#options-languages) | `LanguageRegistration[]` | `undefined` | Languages to preload |
222214
| [`transformers`](#options-transformers) | `ShikiTransformer[]` | `undefined` | Shiki transformers applied to every block |
223215
| [`preStyles`](#options-prestyles) | `boolean` | `false` | Add inline background/foreground styles to `<pre>` |
@@ -226,18 +218,21 @@ Returns a `ComarkPlugin` that enables Shiki syntax highlighting.
226218

227219
### `themes`
228220

229-
Theme configuration for light and dark modes. Each value can be a [bundled theme name](https://shiki.style/themes) string (resolved from `shiki`) or a theme registration object.
221+
Theme configuration for light and dark modes. Import from `@shikijs/themes`.
230222

231223
```typescript
224+
import githubLight from '@shikijs/themes/github-light'
225+
import githubDark from '@shikijs/themes/github-dark'
226+
232227
highlight({
233228
themes: {
234-
light: 'github-light',
235-
dark: 'github-dark'
229+
light: githubLight,
230+
dark: githubDark
236231
}
237232
})
238233
```
239234

240-
**Default:** `{ light: 'material-theme-lighter', dark: 'material-theme-palenight' }`
235+
**Default:** `{ light: materialThemeLighter, dark: materialThemePalenight }`
241236

242237
### `languages`
243238

@@ -301,7 +296,7 @@ When `true`, `material-theme-lighter` (light) and `material-theme-palenight` (da
301296
```typescript
302297
highlight({
303298
registerDefaultThemes: false,
304-
themes: { light: 'github-light', dark: 'github-dark' }
299+
themes: { light: githubLight, dark: githubDark }
305300
})
306301
```
307302

@@ -316,15 +311,17 @@ highlight({
316311
```typescript
317312
import { parseMarkdown } from 'comark'
318313
import highlight from 'comark/plugins/highlight'
314+
import githubLight from '@shikijs/themes/github-light'
315+
import githubDark from '@shikijs/themes/github-dark'
319316

320317
const result = await parseMarkdown(content, {
321-
plugins: [highlight({ themes: { light: 'github-light', dark: 'github-dark' } })]
318+
plugins: [highlight({ themes: { light: githubLight, dark: githubDark } })]
322319
})
323320
```
324321

325322
### Minimal Bundle
326323

327-
Disable defaults and import only what you need. Prefer theme registration objects here so unused bundled themes are tree-shaken:
324+
Disable defaults and import only what you need:
328325

329326
```typescript
330327
import javascript from '@shikijs/langs/javascript'
@@ -349,7 +346,7 @@ import {
349346
} from '@shikijs/transformers'
350347

351348
highlight({
352-
themes: { light: 'github-light', dark: 'github-dark' },
349+
themes: { light: githubLight, dark: githubDark },
353350
transformers: [
354351
transformerNotationDiff(), // [!code ++] / [!code --]
355352
transformerNotationHighlight(), // [!code highlight]

docs/content/5.api/1.parse.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ Creates a reusable parser function with pre-configured options. Unlike `parseMar
218218
```typescript [parse.ts]
219219
import { createMarkdownParser } from 'comark'
220220
import highlight from 'comark/plugins/highlight'
221+
import githubLight from '@shikijs/themes/github-light'
222+
import githubDark from '@shikijs/themes/github-dark'
221223
import emoji from 'comark/plugins/emoji'
222224
import toc from 'comark/plugins/toc'
223225

@@ -227,7 +229,7 @@ const parse = createMarkdownParser({
227229
autoClose: true,
228230
plugins: [
229231
highlight({
230-
themes: { light: 'github-light', dark: 'github-dark' }
232+
themes: { light: githubLight, dark: githubDark }
231233
}),
232234
emoji(),
233235
toc()
@@ -254,6 +256,8 @@ import { readdir, readFile, writeFile } from 'node:fs/promises'
254256
import { join } from 'node:path'
255257
import { renderHtmlFromDocument } from '@comark/html'
256258
import highlight from 'comark/plugins/highlight'
259+
import githubLight from '@shikijs/themes/github-light'
260+
import githubDark from '@shikijs/themes/github-dark'
257261
import toc from 'comark/plugins/toc'
258262
import emoji from 'comark/plugins/emoji'
259263

@@ -262,7 +266,7 @@ async function buildSite(contentDir: string, outDir: string) {
262266
const parse = createMarkdownParser({
263267
plugins: [
264268
highlight({
265-
themes: { light: 'github-light', dark: 'github-dark' }
269+
themes: { light: githubLight, dark: githubDark }
266270
}),
267271
toc({ depth: 3 }),
268272
emoji()

docs/content/7.kb/2.migration-from-mdc.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,13 @@ const parser = await createMarkdownParser({
249249
```typescript [After]
250250
import { createMarkdownParser } from 'comark'
251251
import highlight from 'comark/plugins/highlight'
252+
import githubLight from '@shikijs/themes/github-light'
253+
import githubDark from '@shikijs/themes/github-dark'
252254

253255
const parse = createMarkdownParser({
254256
plugins: [
255257
highlight({
256-
themes: { light: 'github-light', dark: 'github-dark' }
258+
themes: { light: githubLight, dark: githubDark }
257259
})
258260
]
259261
})
@@ -417,6 +419,8 @@ A typical app needs at least two configurations: a full one for articles (highli
417419
```typescript [composables/markdown.ts]
418420
import { defineMarkdownComponent, defineMarkdownDocumentComponent } from '@comark/vue'
419421
import highlight from 'comark/plugins/highlight'
422+
import githubLight from '@shikijs/themes/github-light'
423+
import githubDark from '@shikijs/themes/github-dark'
420424
import toc from 'comark/plugins/toc'
421425
import emoji from 'comark/plugins/emoji'
422426
import CustomAlert from '~/components/Alert.vue'
@@ -426,7 +430,7 @@ import ProsePre from '~/components/ProsePre.vue'
426430
export const ArticleMarkdown = defineMarkdownComponent({
427431
name: 'ArticleMarkdown',
428432
plugins: [
429-
highlight({ themes: { light: 'github-light', dark: 'github-dark' } }),
433+
highlight({ themes: { light: githubLight, dark: githubDark } }),
430434
toc({ depth: 3 }),
431435
emoji(),
432436
],

0 commit comments

Comments
 (0)