@expressive-code/core

中文文档
0.44.3发布于 2026/10/21MITTypeScriptES Module构建来源已验证近 30 天下载 824.4万

在网络上显示源代码的文本标记和注释引擎 .

中文使用文档
文档目录4 节
  1. 文档
  2. 我什么时候用这个?
  3. 安装
  4. 用法实例

@ 表达式- 代码/ 核心

核心一揽子措施 表达式代码,用于在网络上显示源代码的引擎.

文档

读取表达式代码文件 了解更多关于表达码提供的特点.

我什么时候用这个?

直接使用此核心软件包 仅建议预先使用。 。 。 .

除非您是插件或集成作者, 您可能应该使用更高层次的软件包, 如 astro-expressive-code 或者说 rehype-expressive-code 而不是这个.

安装

npm install @expressive-code/core

用法实例

// File: generate-html-core.mjs

import { ExpressiveCodeEngine } from '@expressive-code/core'
import { toHtml } from '@expressive-code/core/hast'
import fs from 'fs'

const ec = new ExpressiveCodeEngine({
  plugins: [
    // Add your plugins here
  ],
})

// Get base styles that should be included on the page
// (they are independent of the rendered code blocks)
const baseStyles = await ec.getBaseStyles()
const themeStyles = await ec.getThemeStyles()
const jsModules = await ec.getJsModules()

const renderResult = await ec.render({
  code: 'console.log("Hello world!")',
  language: 'js',
  meta: '',
})

// Output results to the console
console.dir({
  baseStyles,
  themeStyles,
  blockStyles: renderResult.styles,
  htmlContent: toHtml(renderResult.renderedGroupAst),
})

// Convert the rendered AST to HTML
let htmlContent = toHtml(renderResult.renderedGroupAst)

// Collect styles and add them before the HTML content
const stylesToPrepend = []
stylesToPrepend.push(baseStyles)
stylesToPrepend.push(themeStyles)
stylesToPrepend.push(...renderResult.styles)

const styleContent = `<style> ${[...stylesToPrepend].join('')} </style>`
const jsContent = `<script type="module"> ${[...jsModules].join('')} </script>`

const htmlDocument = `
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    ${styleContent}

    ${jsContent}
</head>
<body>
    ${htmlContent}
</body>
</html>
`

// Output HTML to the console
console.log(htmlDocument)

// Run `node generate-html.mjs` to generate the HTML file
// and open it in the browser
fs.writeFileSync('index.html', htmlDocument)

版本与发布记录

@expressive-code/core 共发布 94 个版本,首次发布于 2023/05/10;过去 12 个月发布了 11 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.44.3latest2026/10/2123 天前
0.44.22026/09/012 个月前
0.44.12026/07/213 个月前
0.44.02026/06/254 个月前
0.43.12026/06/095 个月前
0.43.02026/06/085 个月前

关于 @expressive-code/core 的常见问题

@expressive-code/core 是什么?

在网络上显示源代码的文本标记和注释引擎 .

如何安装 @expressive-code/core?

在项目目录运行 npm install @expressive-code/core,或使用 pnpm add / yarn add / bun add。

@expressive-code/core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@expressive-code/core 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@expressive-code/core 可以商用吗?

@expressive-code/core 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@expressive-code/core 的下载量有多少?

根据 npm 官方下载统计,@expressive-code/core 在 2026/10/14 – 2026/11/12 这 30 天内被下载 8,243,636 次,日均约 274,788 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@expressive-code/core 还在维护吗?

最新版本 0.44.3 发布于 2026/10/21(23 天前);至今共发布 94 个版本,其中过去 12 个月发布了 11 个;首次发布于 2023/05/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。