Comark代码高亮实战:Shiki插件为Markdown代码块加上多主题
【免费下载链接】comarkComark is an open-source Markdown parser and renderer with components, attributes and plugins. It streams AI output to React, Vue, Svelte, Angular, HTML and the terminal.项目地址https://gitcode.com/gh_mirrors/com/comark点击查看免费下载Comark 是一款开源的 Markdown 解析器与渲染器能把 Markdown 流式渲染到 React、Vue、Svelte、Angular、HTML 和终端。本文将带你用 Comark 代码高亮能力快速上手只需内置的 Shiki 插件几行配置就能为 Markdown 代码块加上多主题、多语言、行高亮等能力无需手写任何高亮逻辑。 为什么选 Comark 的 Shiki 代码高亮Comark 把 ShikiVite 同款高亮引擎封装成开箱即用的插件comark/plugins/shiki核心能力包括能力说明多主题同时指定light/dark两套配色切换主题零闪烁180 语言从代码围栏的语言标记自动识别并高亮行高亮支持{2-3,5}语法高亮指定行文件名片头用[server.js]在代码块上方显示文件名行内代码高亮行内代码声明lang后同样支持高亮按需打包core入口只加载你指定的主题和语言插件源码位于 packages/comark/src/plugins/shiki.ts最小化的核心入口在 packages/comark/src/plugins/shiki/core.ts完整的选项定义与说明可阅读 docs/content/4.plugins/1.built-in/shiki.md。⚠️ 注意comark/plugins/highlight是shiki的废弃别名见 packages/comark/src/plugins/highlight.ts新版本请统一使用comark/plugins/shiki。 一键安装步骤shiki是 peer 依赖安装命令如下npm install shiki如果要从shikijs/themes/shikijs/langs显式导入主题和语言推荐利于 tree-shakingnpm install shikijs/themes shikijs/langs只装shiki也可以直接用标准入口——它自带 Material 亮/暗两套主题以及vue、tsx、svelte、astro、typescript、javascript、bash、json、yaml等常用语言见 packages/comark/src/plugins/shiki.ts。 零配置快速开始import { parseMarkdown } from comark import shiki from comark/plugins/shiki const result await parseMarkdown(content, { plugins: [shiki()] })一行shiki()完成全部配置。在框架组件里同样简单以 Vue 为例template Suspense Markdown :plugins[shiki()]{{ content }}/Markdown /Suspense /template 双主题light/dark配置方法多主题是 Shiki 插件的招牌能力两套配色会以 CSS 变量形式内嵌到每个span上切换深浅模式时不会出现颜色闪烁。import shiki from comark/plugins/shiki import githubLight from shikijs/themes/github-light import githubDark from shikijs/themes/github-dark const plugins [ shiki({ themes: { light: githubLight, dark: githubDark } }) ]配合官方示例项目 examples/3.plugins/vue-vite-highlight还能一键切换主题、加载 Python、Rust、Go、SQL 等语言配置写法参见 App.vue完整说明见 examples/3.plugins/vue-vite-highlight/README.md。✨ 行高亮与文件名片头Comark 在代码围栏上扩展了两个实用语法行高亮——被标记的行会加上.highlight类javascript {2-3,5} function example() { const a 1 // 高亮 const b 2 // 高亮 const c 3 return a b c // 高亮 } 文件名片头——在代码块顶部显示文件名标签javascript [server.js] const app express() 对应的样式只需少量 CSSVue 作用域样式记得用:deep()html.dark .shiki span { color: var(--shiki-dark) !important; background-color: var(--shiki-dark-bg) !important; } 最小打包core 入口标准入口会打包 Material 主题和默认语言。如果你的页面只需要两三种语言可以改用comark/plugins/shiki/core——此时themes和languages为必填项只加载你导入的内容import shiki from comark/plugins/shiki/core import javascript from shikijs/langs/javascript import githubDark from shikijs/themes/github-dark const plugins [ shiki({ languages: [javascript], themes: { dark: githubDark } }) ]框架包也提供同样的嵌套入口例如comark/vue/plugins/shiki/core、comark/react/plugins/shiki/core。 进阶玩法Transformers传入任意 Shiki transformer即可实现 diff 标注[!code ]/[!code --]、聚焦行、自定义类名等transformers选项定义见 packages/comark/src/internal/shiki.ts。行内代码高亮RefHTMLInputElement | null{langts-type}这样声明语言的行内代码也会被高亮内置ts-type、vue-html两种片段语言可用inlineCode: false关闭。preStyles设为true时按当前主题为pre添加内联背景/前景色。✅ 总结场景推荐做法快速上手shiki()零配置标准入口官网级双主题themes: { light, dark } 少量 CSS控制包体积core入口 精确导入语言/主题教程/博客排版行高亮{2-3} 文件名片头用 Comark 的 Shiki 插件从「一行配置」到「多主题 行高亮 文件名片头」都是一站式完成非常适合文档站、博客和 AI 流式输出场景。更多细节请查阅官方文档 docs/content/4.plugins/1.built-in/shiki.md动手练习可参考 examples/3.plugins/vue-vite-highlight 示例项目。赞分享【免费下载链接】comarkComark is an open-source Markdown parser and renderer with components, attributes and plugins. It streams AI output to React, Vue, Svelte, Angular, HTML and the terminal.项目地址https://gitcode.com/gh_mirrors/com/comark点击查看免费下载相关推荐Varlet UI 代码块组件 Code 与 Shiki 高亮集成实战指南Varlet UI 代码块组件 Code 与 Shiki 高亮集成实战指南 导读 Code 是 Varlet UI 中用于在页面内展示带语法着色代码高亮代UI组件前端Defuddle 代码块标准化实战从 Mintlify / Shiki 高亮页面提取干净的 Markdown 围栏Defuddle 代码块标准化实战从 Mintlify / Shiki 高亮页面提取干净的 Markdown 围栏 导读 本文以 tests/expected后端TypeDoc 语法高亮实战用 Shiki 让文档中的代码块亮起来TypeDoc 语法高亮实战用 Shiki 让文档中的代码块亮起来 TypeDoc 在渲染 Markdown 文档和文档注释时会通过内置的 Shiki开发工具文档上一篇Ray 文档示例 Notebook 编写指南基于 MyST 模板 template.md 的完整实战下一篇chezmoi 的 promptString 模板函数在 chezmoi init 中交互式采集配置数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

单片机实验.zip高效使用:从Keil配置到中断调试

单片机实验.zip高效使用:从Keil配置到中断调试

简介:单片机实验.zip是面向51单片机初学者的实践资源包,解决汇编语言与C语言上机时缺少可运行示例、不知从何入手的问题。内容围绕8051芯片展开,涵盖LED点亮、按键控制继电器、数码管静态与动态显示、定时器、外部中断、串行通信等典型实验&a…

2026/10/18 22:16:31 阅读更多 →
基于 Swift 与 Flutter 平台通道(Platform Channel)调用 iOS 原生服务的完整实战指南

基于 Swift 与 Flutter 平台通道(Platform Channel)调用 iOS 原生服务的完整实战指南

跨平台移动开发前端UI组件OpenHarmony图形学 【免费下载链接】flutter_flutter 本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适…

2026/10/18 21:42:26 阅读更多 →
元器件降额通用性准则:电压/温度/电流三维协同设计方法

元器件降额通用性准则:电压/温度/电流三维协同设计方法

简介:本资源是面向电子硬件工程师、可靠性设计人员及嵌入式系统开发者的专业技术文档,聚焦元器件降额设计这一保障设备长期稳定与安全运行的核心实践。文档系统梳理了降额的基本定义(如应力比、额定值)、五类关键依据(…

2026/10/18 17:16:18 阅读更多 →

最新新闻

2.42GHz宽带低相噪LC压控振荡器:调谐与噪声的平衡设计

2.42GHz宽带低相噪LC压控振荡器:调谐与噪声的平衡设计

简介:一份围绕2.42 GHz宽带低相噪LC压控振荡器的设计文档,面向射频集成电路设计人员、通信系统工程师及学习频率合成技术的高年级学生。方案采用开关电容阵列(SCA)与电压、电流滤波相结合的互补交叉耦合型LC VCO结构,先…

2026/10/18 22:16:34 阅读更多 →
baseflight飞控源码入门:从裸机主循环到混控输出的完整链路解析

baseflight飞控源码入门:从裸机主循环到混控输出的完整链路解析

简介:baseflight-master 是一套面向无人机飞控算法研究者的开源源码包,适合具备一定嵌入式与C语言基础的开发者学习或定制飞控特性。包内代码清晰展示飞控系统的核心运行逻辑:硬件初始化、传感器数据融合、PID姿态控制、命令解析、故障检测与…

2026/10/18 22:16:34 阅读更多 →
LLM填槽实战:从规则模板到结构化生成,打造高准确率对话系统

LLM填槽实战:从规则模板到结构化生成,打造高准确率对话系统

直接从从业者的角度切入,聊聊“LLM填槽”这件事。做了几年对话系统,从早期的规则模板一路折腾到大模型落地,我对填槽这件事的理解是:它本质上不是“解析字符串”,而是“从对话里复刻用户脑子里的完整需求”。这篇文章不…

2026/10/18 22:16:34 阅读更多 →
Python美食数据全链路实战:爬取清洗分析可视化闭环

Python美食数据全链路实战:爬取清洗分析可视化闭环

简介:本资源是一套完整的Python数据科学实战项目,面向数据分析初学者与爬虫爱好者,聚焦美食领域从数据获取到可视化呈现的全流程实践。项目涵盖网络爬虫(requestsBeautifulSoup)、数据清洗分析(pandasNumPy…

2026/10/18 22:16:34 阅读更多 →
如何用工作手机管理微信聊天?品牌推荐与选型参考(技术选型篇)

如何用工作手机管理微信聊天?品牌推荐与选型参考(技术选型篇)

摘要:本文从企业微信管理的真实痛点出发,拆解工作手机的核心能力要求,并对无极、云客、先发三款方案做横向对比,最后给出一套可直接落地的选型 CheckList,供销售团队管理员和 IT 负责人参考。一、管理需求:…

2026/10/18 22:16:34 阅读更多 →
SPACE沙箱生命周期完全指南:Running/Paused/Suspended三种状态如何选?附pause/suspend/wake实战

SPACE沙箱生命周期完全指南:Running/Paused/Suspended三种状态如何选?附pause/suspend/wake实战

【免费下载链接】SPACE Sandboxed Platform for Agentic Code Execution: pluggable-runtime sandboxes for running agent and user code in isolation. 项目地址: https://gitcode.com/gh_mirrors/space34/SPACE 点击查看 免费下载 SPACE 是一款面向 AI Agent 的…

2026/10/18 22:15:33 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →