CINXE.COM

Shiki

<!DOCTYPE html> <html lang="en-US" dir="ltr"> <head> <meta charset="utf-8"> <title>Shiki</title> <meta name="description" content="A beautiful and powerful syntax highlighter"> <meta name="generator" content="VitePress v2.0.0-alpha.4"> <link rel="preload stylesheet" href="/assets/style.muwq5nx1.css" as="style"> <link rel="preload stylesheet" href="/vp-icons.css" as="style"> <script type="module" src="/assets/app.BjJn41Z-.js"></script> <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin=""> <link rel="modulepreload" href="/assets/chunks/framework.C9QlBRP0.js"> <link rel="modulepreload" href="/assets/chunks/theme.CK-dMiV6.js"> <link rel="modulepreload" href="/assets/chunks/katex.CfZphoad.js"> <link rel="modulepreload" href="/assets/chunks/dagre-4EVJKHTY.DAUdbyZO.js"> <link rel="modulepreload" href="/assets/chunks/c4Diagram-6F5ED5ID.Db9jw0V1.js"> <link rel="modulepreload" href="/assets/chunks/flowDiagram-7ASYPVHJ.BJilIv3i.js"> <link rel="modulepreload" href="/assets/chunks/erDiagram-6RL3IURR.DVIAcA0v.js"> <link rel="modulepreload" href="/assets/chunks/gitGraphDiagram-NRZ2UAAF.su5kpQPV.js"> <link rel="modulepreload" href="/assets/chunks/ganttDiagram-NTVNEXSI.D7WdFkNk.js"> <link rel="modulepreload" href="/assets/chunks/infoDiagram-A4XQUW5V.D7vGzBxP.js"> <link rel="modulepreload" href="/assets/chunks/pieDiagram-YF2LJOPJ.B-VDM7dH.js"> <link rel="modulepreload" href="/assets/chunks/quadrantDiagram-OS5C2QUG.ZlQCtoyY.js"> <link rel="modulepreload" href="/assets/chunks/xychartDiagram-6QU3TZC5.8fxVHAW-.js"> <link rel="modulepreload" href="/assets/chunks/requirementDiagram-MIRIMTAZ.DYl1nxsO.js"> <link rel="modulepreload" href="/assets/chunks/sequenceDiagram-G6AWOVSC.BCIlezxi.js"> <link rel="modulepreload" href="/assets/chunks/classDiagram-LNE6IOMH.CCajQOOT.js"> <link rel="modulepreload" href="/assets/chunks/classDiagram-v2-MQ7JQ4JX.CCajQOOT.js"> <link rel="modulepreload" href="/assets/chunks/stateDiagram-MAYHULR4.Bs8JSFap.js"> <link rel="modulepreload" href="/assets/chunks/stateDiagram-v2-4JROLMXI.q3zTZzI9.js"> <link rel="modulepreload" href="/assets/chunks/journeyDiagram-G5WM74LC.CxNtmScs.js"> <link rel="modulepreload" href="/assets/chunks/timeline-definition-U7ZMHBDA.V1uMR_Nx.js"> <link rel="modulepreload" href="/assets/chunks/mindmap-definition-GWI6TPTV.TRz4ojBK.js"> <link rel="modulepreload" href="/assets/chunks/kanban-definition-QRCXZQQD.BpkKxIhC.js"> <link rel="modulepreload" href="/assets/chunks/sankeyDiagram-Y46BX6SQ.DHtI1RMX.js"> <link rel="modulepreload" href="/assets/chunks/diagram-QW4FP2JN.BzVhx0fv.js"> <link rel="modulepreload" href="/assets/chunks/blockDiagram-ZHA2E4KO.CQ5-wvol.js"> <link rel="modulepreload" href="/assets/chunks/architectureDiagram-UYN6MBPD.BmIuFtnA.js"> <link rel="modulepreload" href="/assets/chunks/virtual_mermaid-config.DDnGl6nM.js"> <link rel="modulepreload" href="/assets/chunks/ShikiMiniPlayground.vue_vue_type_style_index_0_lang.CyqwCfMe.js"> <link rel="modulepreload" href="/assets/index.md.DHHrLZZf.lean.js"> <meta name="theme-color" content="#ffffff"> <link rel="icon" href="/logo.svg" type="image/svg+xml"> <meta name="author" content="Pine Wu, Anthony Fu"> <meta property="og:title" content="Shiki"> <meta property="og:image" content="https://shiki.style/og.png"> <meta property="og:description" content="A beautiful yet powerful syntax highlighter"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://shiki.style/og.png"> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"> <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script> <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script> </head> <body> <div id="app"><div class="Layout" data-v-9adb62ad><!--[--><!--]--><!--[--><span tabindex="-1" data-v-06965d54></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-06965d54>Skip to content</a><!--]--><!----><header class="VPNav" data-v-9adb62ad data-v-eb5e20e9><div class="VPNavBar" data-v-eb5e20e9 data-v-9fdfa580><div class="wrapper" data-v-9fdfa580><div class="container" data-v-9fdfa580><div class="title" data-v-9fdfa580><div class="VPNavBarTitle" data-v-9fdfa580 data-v-fbe0cc80><a class="title" href="/" data-v-fbe0cc80><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.svg" alt data-v-79923a14><!--]--><span data-v-fbe0cc80>Shiki</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fdfa580><div class="content-body" data-v-9fdfa580><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fdfa580><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fdfa580 data-v-51affd40><span id="main-nav-aria-label" class="visually-hidden" data-v-51affd40> Main Navigation </span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-51affd40 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-685f5375><span class="text" data-v-685f5375><!----><span data-v-685f5375>Guide</span><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><div class="items" data-v-d52725e9><!--[--><!--[--><div class="VPMenuGroup" data-v-d52725e9 data-v-1f802fa5><!----><!--[--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Getting Started</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/install" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Installation & Usage</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/bundles" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Bundles</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/dual-themes" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Dual Themes</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/shorthands" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Shorthands</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/best-performance" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Best Performance Practices</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/decorations" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Decorations</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/transformers" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Transformers</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/theme-colors" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Theme Colors Manipulation</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/regex-engines" data-v-46c2b53d><!--[--><span data-v-46c2b53d>RegExp Engines</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/sync-usage" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Synchronous Usage</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/grammar-state" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Grammar State</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/load-theme" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Custom Themes</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/load-lang" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Custom Languages</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/migrate" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Migration</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/compat" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Compatibility Build</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-51affd40 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-685f5375><span class="text" data-v-685f5375><!----><span data-v-685f5375>Integrations</span><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><div class="items" data-v-d52725e9><!--[--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/twoslash" data-v-46c2b53d><!--[--><span data-v-46c2b53d>TypeScript Twoslash</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/markdown-it" data-v-46c2b53d><!--[--><span data-v-46c2b53d>markdown-it</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/rehype" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Rehype</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/monaco" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Monaco Editor</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/vitepress" data-v-46c2b53d><!--[--><span data-v-46c2b53d>VitePress</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/nuxt" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Nuxt</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/next" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Next</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/astro" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Astro</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/transformers" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Common Transformers</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/colorized-brackets" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Colorized Brackets</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/codegen" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Codegen</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/packages/cli" data-v-46c2b53d><!--[--><span data-v-46c2b53d>CLI</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-51affd40 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-685f5375><span class="text" data-v-685f5375><!----><span data-v-685f5375>References</span><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><div class="items" data-v-d52725e9><!--[--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/themes" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Themes</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/languages" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Languages</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/references/engine-js-compat" data-v-46c2b53d><!--[--><span data-v-46c2b53d>JavaScript Engine Compatibility</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-51affd40 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-685f5375><span class="text" data-v-685f5375><!----><span data-v-685f5375>Blog</span><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><div class="items" data-v-d52725e9><!--[--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/blog/v3" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Shiki v3.0</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link" href="/blog/v2" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Shiki v2.0</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link vp-external-link-icon" href="https://nuxt.com/blog/shiki-v1" target="_blank" rel="noreferrer" data-v-46c2b53d><!--[--><span data-v-46c2b53d>The Evolution of Shiki v1.0</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup active" data-v-51affd40 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-685f5375><span class="text" data-v-685f5375><!----><span data-v-685f5375>v3.2.1</span><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><div class="items" data-v-d52725e9><!--[--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link active" href="/" data-v-46c2b53d><!--[--><span data-v-46c2b53d>v3.2.1 (current)</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link vp-external-link-icon" href="https://github.com/shikijs/shiki/releases" target="_blank" rel="noreferrer" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Release Notes</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-d52725e9 data-v-46c2b53d><a class="VPLink link vp-external-link-icon" href="https://github.com/shikijs/shiki/blob/main/CONTRIBUTING.md" target="_blank" rel="noreferrer" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Contributing</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuGroup" data-v-d52725e9 data-v-1f802fa5><!----><!--[--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/blog/v2" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Migration from v1.0</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/migrate#migrate-from-v0-14" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Migration from v0.14</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-1f802fa5 data-v-46c2b53d><a class="VPLink link" href="/guide/migrate#migrate-from-shikiji" data-v-46c2b53d><!--[--><span data-v-46c2b53d>Migration from Shikiji</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-9fdfa580 data-v-4e597fbe data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-685f5375><span class="text" data-v-685f5375><span class="vpi-languages option-icon" data-v-685f5375></span><!----><span class="vpi-chevron-down text-icon" data-v-685f5375></span></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><!----><!--[--><!--[--><div class="items" data-v-4e597fbe><p class="title" data-v-4e597fbe>English</p><!--[--><div class="VPMenuLink" data-v-4e597fbe data-v-46c2b53d><a class="VPLink link vp-external-link-icon" href="https://shiki.tmrs.site/" target="_blank" rel="noreferrer" data-v-46c2b53d><!--[--><span data-v-46c2b53d>简体中文 (Community)</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-9fdfa580 data-v-11c320be><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-11c320be data-v-bbe8d0f1 data-v-d87d0bda><span class="check" data-v-d87d0bda><span class="icon" data-v-d87d0bda><!--[--><span class="vpi-sun sun" data-v-bbe8d0f1></span><span class="vpi-moon moon" data-v-bbe8d0f1></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fdfa580 data-v-d5e90f7e data-v-a422e4e2><!--[--><a class="VPSocialLink no-icon" href="https://bsky.app/profile/shiki.style" aria-label="bluesky" target="_blank" rel="noopener" data-v-a422e4e2 data-v-b75300d0><span class="vpi-social-bluesky"></span></a><a class="VPSocialLink no-icon" href="https://github.com/shikijs/shiki" aria-label="github" target="_blank" rel="noopener" data-v-a422e4e2 data-v-b75300d0><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fdfa580 data-v-94b33032 data-v-685f5375><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-685f5375><span class="vpi-more-horizontal icon" data-v-685f5375></span></button><div class="menu" data-v-685f5375><div class="VPMenu" data-v-685f5375 data-v-d52725e9><!----><!--[--><!--[--><div class="group translations" data-v-94b33032><p class="trans-title" data-v-94b33032>English</p><!--[--><div class="VPMenuLink" data-v-94b33032 data-v-46c2b53d><a class="VPLink link vp-external-link-icon" href="https://shiki.tmrs.site/" target="_blank" rel="noreferrer" data-v-46c2b53d><!--[--><span data-v-46c2b53d>简体中文 (Community)</span><!--]--></a></div><!--]--></div><div class="group" data-v-94b33032><div class="item appearance" data-v-94b33032><p class="label" data-v-94b33032>Appearance</p><div class="appearance-action" data-v-94b33032><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-94b33032 data-v-bbe8d0f1 data-v-d87d0bda><span class="check" data-v-d87d0bda><span class="icon" data-v-d87d0bda><!--[--><span class="vpi-sun sun" data-v-bbe8d0f1></span><span class="vpi-moon moon" data-v-bbe8d0f1></span><!--]--></span></span></button></div></div></div><div class="group" data-v-94b33032><div class="item social-links" data-v-94b33032><div class="VPSocialLinks social-links-list" data-v-94b33032 data-v-a422e4e2><!--[--><a class="VPSocialLink no-icon" href="https://bsky.app/profile/shiki.style" aria-label="bluesky" target="_blank" rel="noopener" data-v-a422e4e2 data-v-b75300d0><span class="vpi-social-bluesky"></span></a><a class="VPSocialLink no-icon" href="https://github.com/shikijs/shiki" aria-label="github" target="_blank" rel="noopener" data-v-a422e4e2 data-v-b75300d0><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fdfa580 data-v-64503717><span class="container" data-v-64503717><span class="top" data-v-64503717></span><span class="middle" data-v-64503717></span><span class="bottom" data-v-64503717></span></span></button></div></div></div></div><div class="divider" data-v-9fdfa580><div class="divider-line" data-v-9fdfa580></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-9adb62ad data-v-71ac8805><div class="VPHome" data-v-71ac8805 data-v-ae87fbf0><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-ae87fbf0 data-v-a82d5d30><div class="container" data-v-a82d5d30><div class="main" data-v-a82d5d30><!--[--><!--]--><!--[--><h1 class="heading" data-v-a82d5d30><span class="name clip" data-v-a82d5d30>Shiki 式 </span><span class="text" data-v-a82d5d30>Syntax highlighter</span></h1><p class="tagline" data-v-a82d5d30>A beautiful yet powerful syntax highlighter</p><!--]--><!--[--><!--]--><div class="actions" data-v-a82d5d30><!--[--><div class="action" data-v-a82d5d30><a class="VPButton medium brand" href="/guide/" data-v-a82d5d30 data-v-2461e932>Get Started</a></div><div class="action" data-v-a82d5d30><a class="VPButton medium alt" href="/guide/install/" data-v-a82d5d30 data-v-2461e932>Installation</a></div><!--]--></div><!--[--><!--[--><!--[--><!--[--><!--[--><div class="mt-10 mb--4 vp-doc"><a href="https://nuxt.com/blog/shiki-v1" target="_blank" class="no-underline! flex-inline gap-1 items-center"><div class="i-ph-books-duotone text-2xl"></div>The Evolution of Shiki v1.0<div class="i-ph-arrow-up-right mt--3 ml--1"></div></a></div><!--]--><!--]--><!--]--><!--]--><!--]--></div><div class="image" data-v-a82d5d30><div class="image-container" data-v-a82d5d30><div class="image-bg" data-v-a82d5d30></div><!--[--><!--[--><img class="VPImage image-src" src="/logo.svg" alt="Shiki Logo" data-v-79923a14><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-ae87fbf0 data-v-b91022f0><div class="container" data-v-b91022f0><div class="items" data-v-b91022f0><!--[--><div class="grid-4 item" data-v-b91022f0><div class="VPLink no-icon VPFeature" data-v-b91022f0 data-v-927936d4><!--[--><article class="box" data-v-927936d4><div class="icon" data-v-927936d4>🌈</div><h2 class="title" data-v-927936d4>Accurate & Beautiful</h2><p class="details" data-v-927936d4>TextMate grammar powered, same engine as your VS Code. Improves with VS Code.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-b91022f0><div class="VPLink no-icon VPFeature" data-v-b91022f0 data-v-927936d4><!--[--><article class="box" data-v-927936d4><div class="icon" data-v-927936d4>⏱️</div><h2 class="title" data-v-927936d4>Zero Runtime</h2><p class="details" data-v-927936d4>Runs ahead of time, ship zero JavaScript while getting the perfect syntax highlighting.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-b91022f0><div class="VPLink no-icon VPFeature" data-v-b91022f0 data-v-927936d4><!--[--><article class="box" data-v-927936d4><div class="icon" data-v-927936d4>🧩</div><h2 class="title" data-v-927936d4>Customizable</h2><p class="details" data-v-927936d4>HAST based. Addons, transformations, highly customizable.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-b91022f0><div class="VPLink no-icon VPFeature" data-v-b91022f0 data-v-927936d4><!--[--><article class="box" data-v-927936d4><div class="icon" data-v-927936d4>🎄</div><h2 class="title" data-v-927936d4>ESM & Universal</h2><p class="details" data-v-927936d4>Fully tree-shakable ESM, runs on any JavaScript runtime, Browser, Node.js, Cloudflare Workers, etc.</p><!----></article><!--]--></div></div><!--]--></div></div></div><!--[--><!--]--><div class="vp-doc container" style="" data-v-ae87fbf0 data-v-5af0f3d8><!--[--><div style="position:relative;" data-v-ae87fbf0><div><div class="container max-w-250 mx-a my-10 min-h-250 vp-doc p4" of-hidden><div class="language-ts vp-adaptive-theme transition-none! mini-playground" shadow style="color-scheme:dark;"><div sticky z-12 p2 px3 pl5 flex="~ gap-1 items-center" left-0 top-0 right-0 border="b-solid gray/5" bg-inherit><div i-carbon:chevron-down op50></div><select font-mono style=""><!--[--><option value="typescript" selected>TypeScript</option><!--]--></select><div i-carbon:chevron-down op50></div><select font-mono style=""><!--[--><!--]--><option disabled> ────────── </option><!--[--><option value="vitesse-dark" selected>Vitesse Dark</option><!--]--></select><div flex-auto></div><div i-svg-spinners-3-dots-fade class="op100" flex-none transition-opacity></div><a op50 text-xs mx-2 hover="op75" href="https://textmate-grammars-themes.netlify.app/" target="_blank" title="Full Playground" class="decoration-none! text-inherit!"> Playground </a><button title="Randomize" hover="bg-gray/10" p1 rounded><div i-carbon:shuffle op50></div></button></div><div relative min-h-100 float-left min-w-full><span><pre></pre></span><textarea whitespace-pre overflow-auto w-full h-full font-mono bg-transparent absolute inset-0 py-20px px-24px text-transparent caret-gray tab-4 resize-none z-10 class="line-height-$vp-code-line-height font-$vp-font-family-mono text-size-$vp-code-font-size" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea></div></div></div></div></div><!--]--></div></div></div><footer class="VPFooter" data-v-9adb62ad data-v-c46f5e8f><div class="container" data-v-c46f5e8f><p class="message" data-v-c46f5e8f>Released under the MIT License.</p><p class="copyright" data-v-c46f5e8f>Copyright © 2021 Pine Wu, 2023-PRESENT Anthony Fu.</p></div></footer><!--[--><!--]--></div></div> <script>window.__VP_HASH_MAP__=JSON.parse("{\"api.md\":\"aPiLxZ4T\",\"blog_v2.md\":\"2z4o0uyD\",\"blog_v3.md\":\"DmeUCYkD\",\"guide_best-performance.md\":\"DPiy9iTS\",\"guide_bundles.md\":\"QXzvsFPd\",\"guide_compat.md\":\"BX1mLbfV\",\"guide_decorations.md\":\"C1Zkx9j9\",\"guide_dual-themes.md\":\"C30BSgD9\",\"guide_grammar-state.md\":\"CE5r0Pqd\",\"guide_index.md\":\"QlqCLfCJ\",\"guide_install.md\":\"Dx2s0zWh\",\"guide_load-lang.md\":\"C6fE20cr\",\"guide_load-theme.md\":\"DRMZRw3n\",\"guide_migrate.md\":\"DFrA1p-b\",\"guide_regex-engines.md\":\"BbROypdo\",\"guide_shorthands.md\":\"SYW-s2xy\",\"guide_sync-usage.md\":\"CirM-sI-\",\"guide_theme-colors.md\":\"Bdw_oxrc\",\"guide_transformers.md\":\"k094TWDe\",\"index.md\":\"DHHrLZZf\",\"languages.md\":\"DQYBLXf6\",\"packages_astro.md\":\"Uw4PAziI\",\"packages_cli.md\":\"CATZNGpx\",\"packages_codegen.md\":\"j17jVxZR\",\"packages_colorized-brackets.md\":\"_-EdTMHO\",\"packages_markdown-it.md\":\"DI1VpMlp\",\"packages_monaco.md\":\"DLI8NcNr\",\"packages_next.md\":\"KWJPwo0m\",\"packages_nuxt.md\":\"CuiZeQEy\",\"packages_rehype.md\":\"QoVxDIBE\",\"packages_transformers.md\":\"CqI8rPNW\",\"packages_twoslash.md\":\"Bz__67Tm\",\"packages_vitepress.md\":\"FOB0mwPm\",\"play.md\":\"OkVc1SvM\",\"references_engine-js-compat.md\":\"BI-f3SMQ\",\"themes.md\":\"BJfzaDui\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Shiki\",\"description\":\"A beautiful and powerful syntax highlighter\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"items\":[{\"items\":[{\"text\":\"Getting Started\",\"link\":\"/guide/\"},{\"text\":\"Installation & Usage\",\"link\":\"/guide/install\"},{\"text\":\"Bundles\",\"link\":\"/guide/bundles\"},{\"text\":\"Dual Themes\",\"link\":\"/guide/dual-themes\"},{\"text\":\"Shorthands\",\"link\":\"/guide/shorthands\"},{\"text\":\"Best Performance Practices\",\"link\":\"/guide/best-performance\"},{\"text\":\"Decorations\",\"link\":\"/guide/decorations\"},{\"text\":\"Transformers\",\"link\":\"/guide/transformers\"},{\"text\":\"Theme Colors Manipulation\",\"link\":\"/guide/theme-colors\"},{\"text\":\"RegExp Engines\",\"link\":\"/guide/regex-engines\"},{\"text\":\"Synchronous Usage\",\"link\":\"/guide/sync-usage\"},{\"text\":\"Grammar State\",\"link\":\"/guide/grammar-state\"},{\"text\":\"Custom Themes\",\"link\":\"/guide/load-theme\"},{\"text\":\"Custom Languages\",\"link\":\"/guide/load-lang\"},{\"text\":\"Migration\",\"link\":\"/guide/migrate\"},{\"text\":\"Compatibility Build\",\"link\":\"/guide/compat\"}]}]},{\"text\":\"Integrations\",\"items\":[{\"text\":\"TypeScript Twoslash\",\"link\":\"/packages/twoslash\"},{\"text\":\"markdown-it\",\"link\":\"/packages/markdown-it\"},{\"text\":\"Rehype\",\"link\":\"/packages/rehype\"},{\"text\":\"Monaco Editor\",\"link\":\"/packages/monaco\"},{\"text\":\"VitePress\",\"link\":\"/packages/vitepress\"},{\"text\":\"Nuxt\",\"link\":\"/packages/nuxt\"},{\"text\":\"Next\",\"link\":\"/packages/next\"},{\"text\":\"Astro\",\"link\":\"/packages/astro\"},{\"text\":\"Common Transformers\",\"link\":\"/packages/transformers\"},{\"text\":\"Colorized Brackets\",\"link\":\"/packages/colorized-brackets\"},{\"text\":\"Codegen\",\"link\":\"/packages/codegen\"},{\"text\":\"CLI\",\"link\":\"/packages/cli\"}]},{\"text\":\"References\",\"items\":[{\"text\":\"Themes\",\"link\":\"/themes\"},{\"text\":\"Languages\",\"link\":\"/languages\"},{\"text\":\"JavaScript Engine Compatibility\",\"link\":\"/references/engine-js-compat\"}]},{\"text\":\"Blog\",\"items\":[{\"text\":\"Shiki v3.0\",\"link\":\"/blog/v3\"},{\"text\":\"Shiki v2.0\",\"link\":\"/blog/v2\"},{\"text\":\"The Evolution of Shiki v1.0\",\"link\":\"https://nuxt.com/blog/shiki-v1\"}]},{\"text\":\"v3.2.1\",\"items\":[{\"text\":\"v3.2.1 (current)\",\"link\":\"/\"},{\"text\":\"Release Notes\",\"link\":\"https://github.com/shikijs/shiki/releases\"},{\"text\":\"Contributing\",\"link\":\"https://github.com/shikijs/shiki/blob/main/CONTRIBUTING.md\"},{\"items\":[{\"text\":\"Migration from v1.0\",\"link\":\"/blog/v2\"},{\"text\":\"Migration from v0.14\",\"link\":\"/guide/migrate#migrate-from-v0-14\"},{\"text\":\"Migration from Shikiji\",\"link\":\"/guide/migrate#migrate-from-shikiji\"}]}]}],\"sidebar\":{\"/\":[{\"text\":\"Guide\",\"items\":[{\"text\":\"Getting Started\",\"link\":\"/guide/\"},{\"text\":\"Installation & Usage\",\"link\":\"/guide/install\"},{\"text\":\"Bundles\",\"link\":\"/guide/bundles\"},{\"text\":\"Dual Themes\",\"link\":\"/guide/dual-themes\"},{\"text\":\"Shorthands\",\"link\":\"/guide/shorthands\"},{\"text\":\"Best Performance Practices\",\"link\":\"/guide/best-performance\"},{\"text\":\"Decorations\",\"link\":\"/guide/decorations\"},{\"text\":\"Transformers\",\"link\":\"/guide/transformers\"},{\"text\":\"Theme Colors Manipulation\",\"link\":\"/guide/theme-colors\"},{\"text\":\"RegExp Engines\",\"link\":\"/guide/regex-engines\"},{\"text\":\"Synchronous Usage\",\"link\":\"/guide/sync-usage\"},{\"text\":\"Grammar State\",\"link\":\"/guide/grammar-state\"},{\"text\":\"Custom Themes\",\"link\":\"/guide/load-theme\"},{\"text\":\"Custom Languages\",\"link\":\"/guide/load-lang\"},{\"text\":\"Migration\",\"link\":\"/guide/migrate\"},{\"text\":\"Compatibility Build\",\"link\":\"/guide/compat\"}]},{\"text\":\"Integrations\",\"items\":[{\"text\":\"TypeScript Twoslash\",\"link\":\"/packages/twoslash\"},{\"text\":\"markdown-it\",\"link\":\"/packages/markdown-it\"},{\"text\":\"Rehype\",\"link\":\"/packages/rehype\"},{\"text\":\"Monaco Editor\",\"link\":\"/packages/monaco\"},{\"text\":\"VitePress\",\"link\":\"/packages/vitepress\"},{\"text\":\"Nuxt\",\"link\":\"/packages/nuxt\"},{\"text\":\"Next\",\"link\":\"/packages/next\"},{\"text\":\"Astro\",\"link\":\"/packages/astro\"},{\"text\":\"Common Transformers\",\"link\":\"/packages/transformers\"},{\"text\":\"Colorized Brackets\",\"link\":\"/packages/colorized-brackets\"},{\"text\":\"Codegen\",\"link\":\"/packages/codegen\"},{\"text\":\"CLI\",\"link\":\"/packages/cli\"}]},{\"text\":\"References\",\"items\":[{\"text\":\"Themes\",\"link\":\"/themes\"},{\"text\":\"Languages\",\"link\":\"/languages\"},{\"text\":\"JavaScript Engine Compatibility\",\"link\":\"/references/engine-js-compat\"}]}]},\"editLink\":{\"pattern\":\"https://github.com/shikijs/shiki/edit/main/docs/:path\",\"text\":\"Suggest changes to this page\"},\"search\":{\"provider\":\"local\"},\"socialLinks\":[{\"icon\":\"bluesky\",\"link\":\"https://bsky.app/profile/shiki.style\"},{\"icon\":\"github\",\"link\":\"https://github.com/shikijs/shiki\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2021 Pine Wu, 2023-PRESENT Anthony Fu.\"}},\"locales\":{\"root\":{\"label\":\"English\"},\"zh\":{\"label\":\"简体中文 (Community)\",\"link\":\"https://shiki.tmrs.site\"}},\"scrollOffset\":134,\"cleanUrls\":true}");</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10