@dskripchenko/syntax

中文文档
0.6.0发布于 2026/11/04MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3689

以零运行时间依赖性突出显示语法:17个编程语言(JavaScript, TypeScript, Python, Go, Rust, Java, Kotlin, C#, Swift, C, C++, PHP, Ruby, Lua, Shell, PowerShell, SQL) 和数据格式,标记和代码周围的文件(JSON, YAML)

中文使用文档
文档目录4 节
  1. 它的承诺
  2. 文档
  3. 安装
  4. 许可证

@dskripchenko/语法

CI npm license

用于编程语言、数据格式和文件的语法突出显示 环绕代码——与 无运行时间依赖关系 财务报告和审定财务报表 没有DOM字符串 中, HTML(或令牌)出自:在浏览器中,在服务器侧渲染中,在 节点脚本.

import { foldRanges, highlight, highlightLines, IncrementalHighlighter, languageOf, LineHighlighter, logEntries, THEME_CSS, validate } from '@dskripchenko/syntax'

const language = languageOf('server.rs') ?? 'text' // by name, extension or `#!` line
element.innerHTML = highlight(code, language) // <span class="sx-keyword">fn</span> …

// Line by line: for line numbers, or for drawing only the lines in view.
const lines = highlightLines(code, language)

// The colours: CSS custom properties, light and dark.
style.textContent = THEME_CSS

// What is wrong with a data file, and what can be folded.
validate('{"a": 1,}', 'json') // [{ line: 1, column: 9, message: 'expected a string key', severity: 'error' }]
foldRanges(code, language) // [{ start: 3, end: 10 }, …]

// A 100 MB log: only the lines in view are highlighted.
new LineHighlighter(text, 'log').html(1000, 1040)

// Text being edited: after an edit, tokenized again only until the state is back as it was.
const h = new IncrementalHighlighter(lines, language) // lines: { lineCount, lineText(i) }
h.edit(10, 12, 15) // lines 10–12 are now 10–15
h.tokens(0, 40)
logEntries(text) // [{ start: 2, end: 9, level: 'error' }, …]

编程语言 : JavaScript, TypeScript, Python, Go, Rust, Java, , , , , , , , Kotlin, C#, Swift, C, C++, PHP, Ruby, Lua, 壳牌, PowerShell, SQL.

格式和围绕代码的文件 : JSON(附评论,JSON线路), YAML, XML( SVG, plists, project 文件), HTML( 及其脚本和样式),, CSS(SCSS, 减), TOML, INI, .env, CSV/TSV, LaTeX, Markdown (栅栏区块位于 他们的语言,TeX数学, ==highlights==),diff,日志(级别,时间,堆栈痕迹),多克文件,Make文件, 图QL,协议缓冲,HTTP.

验证 和 JSON 的行、 列和信件( 收缩, 有 注释, JSON 线条), YAML, XML, TOML, CSV/TSV, INI 和 .env· ; 折叠 由括号、标记、缩进或标题; 大文件 突出显示a 一次窗口; 正在编辑的文本 仅以 编辑修改; 日志 读取为与其级别相关的条目.

它的承诺

  • 文字如实回向. 信使的文本加入 提供了输入, 字节的字节, 不管输入是什么.
  • 线性时间. 没有结束,没有巢穴,任何模式都无法回溯 无约束:测试套房投放病理输入(千人) 引用,鞭打,开括号)每种语言. 在真实的代码上运行 约20 MB/s.
  • 逃出输出. highlight() 避开文本的每块; HTML 在 代码显示为文本.
  • 小一点. 一个大约32 KB gziped (在您的捆绑器缩小前) 模块 包括每种语言和检查器.

对于代码,它是一个亮点,而不是一个编译器:它读取代码的形状 ——文字,字符串,评论,数字,名字——足够读取,以及 中不报告语法错误; 数据格式被验证.

文档

开始:API、语言、主题、自己的语法内吕页:1日语

安装

npm install @dskripchenko/syntax

许可证

麻省理工学院

版本与发布记录

@dskripchenko/syntax 共发布 12 个版本,首次发布于 2026/11/02;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.0latest2026/11/049 天前
0.5.02026/11/039 天前
0.4.12026/11/0310 天前
0.4.02026/11/0210 天前
0.3.42026/11/0211 天前
0.3.32026/11/0211 天前

关于 @dskripchenko/syntax 的常见问题

@dskripchenko/syntax 是什么?

以零运行时间依赖性突出显示语法:17个编程语言(JavaScript, TypeScript, Python, Go, Rust, Java, Kotlin, C#, Swift, C, C++, PHP, Ruby, Lua, Shell, PowerShell, SQL) 和数据格式,标记和代码周围的文件(JSON, YAML)

如何安装 @dskripchenko/syntax?

在项目目录运行 npm install @dskripchenko/syntax,或使用 pnpm add / yarn add / bun add。

@dskripchenko/syntax 支持 TypeScript 吗?

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

@dskripchenko/syntax 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dskripchenko/syntax 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dskripchenko/syntax 可以商用吗?

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

@dskripchenko/syntax 的下载量有多少?

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

@dskripchenko/syntax 还在维护吗?

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