Shiki 项目教程

Shiki 项目教程

shikiA beautiful Syntax Highlighter.项目地址:https://gitcode.com/gh_mirrors/sh/shiki

项目介绍

Shiki 是一个美观且强大的语法高亮工具,它基于 TextMate 语法定义,能够为多种编程语言生成精确的语法高亮。Shiki 支持多种主题,并且可以轻松集成到各种编辑器和文档生成工具中。

项目快速启动

安装 Shiki

首先,你需要通过 npm 安装 Shiki:

npm install shiki

基本使用

以下是一个简单的示例,展示如何使用 Shiki 进行语法高亮:

const shiki = require('shiki');

shiki.getHighlighter({
  theme: 'nord'
}).then(highlighter => {
  const code = `console.log('Hello, world!')`;
  const highlightedCode = highlighter.codeToHtml(code, { lang: 'js' });
  console.log(highlightedCode);
});

应用案例和最佳实践

集成到 Markdown 渲染器

Shiki 可以轻松集成到 Markdown 渲染器中,为代码块提供语法高亮。以下是一个示例:

const shiki = require('shiki');
const marked = require('marked');

shiki.getHighlighter({
  theme: 'dark-plus'
}).then(highlighter => {
  marked.setOptions({
    highlight: (code, lang) => {
      return highlighter.codeToHtml(code, { lang });
    }
  });

  const markdown = `
  # Hello, Shiki!

  \`\`\`javascript
  console.log('Hello, world!');
  \`\`\`
  `;

  const html = marked(markdown);
  console.log(html);
});

自定义主题

Shiki 支持自定义主题,你可以根据需要创建自己的主题文件,并加载它:

const shiki = require('shiki');

shiki.getHighlighter({
  themes: ['nord', './my-theme.json']
}).then(highlighter => {
  const code = `console.log('Hello, world!')`;
  const highlightedCode = highlighter.codeToHtml(code, { lang: 'js' });
  console.log(highlightedCode);
});

典型生态项目

VS Code 插件

Shiki 可以作为 VS Code 插件的一部分,提供语法高亮功能。以下是一个简单的插件示例:

const vscode = require('vscode');
const shiki = require('shiki');

function activate(context) {
  shiki.getHighlighter({
    theme: 'material-theme-palenight'
  }).then(highlighter => {
    vscode.languages.registerDocumentRangeFormattingEditProvider('javascript', {
      provideDocumentRangeFormattingEdits(document, range) {
        const code = document.getText(range);
        const highlightedCode = highlighter.codeToHtml(code, { lang: 'js' });
        return [vscode.TextEdit.replace(range, highlightedCode)];
      }
    });
  });
}

exports.activate = activate;

静态站点生成器

Shiki 可以集成到静态站点生成器(如 Gatsby 或 Next.js)中,为代码块提供语法高亮。以下是一个 Gatsby 插件示例:

const shiki = require('shiki');

exports.onPreBootstrap = async () => {
  const highlighter = await shiki.getHighlighter({
    theme: 'one-dark-pro'
  });

  exports.highlight = (code, lang) => {
    return highlighter.codeToHtml(code, { lang });
  };
};

通过这些示例,你可以看到 Shiki 在不同场景下的应用和最佳实践,帮助你更好地理解和使用这个强大的语法高亮工具。

shikiA beautiful Syntax Highlighter.项目地址:https://gitcode.com/gh_mirrors/sh/shiki

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓禄嘉Ernestine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值