如何用 Highlight 实现代码语法高亮?2024 超详细教程 🚀
Highlight 是一款功能强大的源代码语法高亮工具,能够将代码转换为 HTML、LaTeX、SVG 等多种格式,并支持自定义主题和语言规则。无论是开发者撰写技术文档、博客分享代码片段,还是团队协作展示项目源码,Highlight 都能让代码呈现更清晰、更专业的视觉效果。
📋 核心功能一览
✨ 多格式输出,满足多样化需求
Highlight 支持 15+ 种输出格式,包括:
- 网页格式:HTML5、XHTML、SVG
- 文档格式:LaTeX、RTF、ODT
- 终端格式:ANSI 转义序列、XTerm 256 色
- 其他格式:BBCode、Pango 标记
例如,生成带行号的 HTML 代码只需一行命令:
highlight -i main.cpp -o main.html --line-numbers --style github
🎨 自定义主题,打造专属风格
项目内置 80+ 种语法主题,从简约的 github.theme 到绚丽的 neon.theme,覆盖不同场景需求。主题文件位于 themes/ 目录,你也可以通过修改 Lua 脚本创建个性化主题。
🌐 多语言支持,覆盖主流技术栈
Highlight 内置 200+ 种编程语言的语法定义,包括:
- 主流语言:C/C++、Python、Java、JavaScript
- 脚本语言:Bash、Lua、Perl、Ruby
- 标记语言:HTML、CSS、Markdown、XML
- 配置文件:JSON、YAML、INI、CMake
语言定义文件存放于 langDefs/,例如 Python 对应 langDefs/python.lang。
🔌 插件扩展,增强功能灵活性
通过 plugins/ 目录下的 Lua 插件,可实现代码折叠、关键词匹配、自动生成链接等高级功能。例如:
outhtml_codefold.lua:为 HTML 输出添加代码折叠功能cpp_ref_cplusplus_com.lua:自动为 C++ 关键词添加 cppreference 链接
📥 快速安装指南
🍧 从源码编译(Linux/macOS)
- 克隆仓库:
git clone https://link.gitcode.com/i/faec13285ba5266659ba89723ecb418b
cd highlight
- 编译并安装:
cd src
make
sudo make install
📦 预编译包(Windows)
访问项目官网下载 Windows 安装包,或通过 Chocolatey 安装:
choco install highlight
🚀 实用命令示例
1. 生成带行号和主题的 HTML
highlight example.py -O html --style solarized-dark --line-numbers --include-style
--include-style:将 CSS 样式嵌入 HTML,无需额外引用--style solarized-dark:使用深色主题,适合夜间阅读
2. 批量转换目录下所有代码文件
highlight --batch-recursive '*.js' --outdir ./html_output --style github
--batch-recursive:递归处理子目录中的.js文件--outdir:指定输出目录,避免覆盖源文件
3. 在终端中实时预览高亮效果
highlight main.cpp --out-format=xterm256 | less -R
xterm256格式支持 256 色显示,配合less -R实现终端内滚动查看
⚙️ 高级配置技巧
🎯 自定义语言规则
若需添加新语言支持,可参考 langDefs/c.lang 创建语法定义文件,主要配置:
- 关键词:通过
Keywords数组定义关键字列表 - 注释格式:通过
Comments配置单行/块注释分隔符 - 字符串规则:通过
Strings定义字符串定界符和转义字符
🎨 主题定制
修改主题文件(如 themes/github.theme)可调整代码颜色、字体样式:
-- 示例:设置关键词颜色为蓝色
Keyword = { Color = "#0033b3" }
-- 设置注释为灰色斜体
Comment = { Color = "#6e7781", Italic = true }
📝 集成到自动化工作流
通过 extras/ 目录下的脚本,可将 Highlight 集成到 Pandoc、WordPress 等工具中:
- Pandoc 插件:extras/pandoc/
- WordPress 插件:extras/web_plugins/wordpress/
📚 官方资源
- 用户手册:项目根目录 README
- 语言定义:langDefs/
- 主题文件:themes/
- 插件开发:README_PLUGINS
💡 常见问题解答
Q:如何解决中文乱码问题?
A:指定输出编码:
highlight -u UTF-8 -i code.cpp -o code.html
Q:能否集成到 VS Code?
A:可以通过自定义任务调用 Highlight,或安装基于 Highlight 的语法高亮插件。
Q:支持哪些代码格式化风格?
A:通过 --reformat 参数选择,如 gnu、kr(K&R 风格)、google 等:
highlight code.cpp --reformat google -o formatted.html
🎉 总结
Highlight 凭借其丰富的格式支持、高度的可定制性和跨平台特性,成为开发者必备的代码美化工具。无论是个人博客、技术文档还是项目演示,它都能让你的代码脱颖而出。立即尝试,让代码展示更专业、更易读!
项目源码地址:gh_mirrors/highli/highlight
最后更新时间:2024 年 10 月,基于 Highlight v3.43 版本
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



