Markor 中文文档 下载 App

编程语言纯文本高亮——v2.4 起给代码文件加独立颜色主题

为什么在文本编辑器里做代码高亮

Markor 的设计理念是「纯文本瑞士军刀」——而代码文件(.py, .java, .js, .c 等)也是纯文本。所以给代码文件加语法高亮,对 Markor 来说是水到渠成的事。

v2.4 起 Markor 引入了一个关键的架构变化:所有格式的语法高亮器统一成一套组件——MarkdownHighlighter、ZimWIKIHighlighter、AsciiDocHighlighter 等都是从同一个基类继承。这样要加一个新格式(比如某种编程语言),只需要实现对应的高亮规则就行。

支持哪些编程语言

截至 v2.11,Markor 的编程语言高亮覆盖了:

分类语言
系统语言C、C++、C#、Java、Kotlin
脚本语言Python、Ruby、Perl、Lua、Shell (Bash)
前端JavaScript、TypeScript、HTML、CSS、Vue
数据格式JSON、YAML、TOML、INI、XML
其他PHP、Go、Rust、SQL

新增语言持续进行中,社区 PR 贡献很活跃。

高亮效果

编辑器模式下,代码文件的高亮覆盖:

Markor 用的是和 Markdown 相同的主题色板——所以同一个编辑器里,Markdown 标题和 Python def 函数定义会用类似的视觉权重(粗体 + 主题色),保持整体一致感。

为什么 Markor 不做 IDE

Markor 的开发者明确表态过:Markor 是编辑器,不是 IDE。所以它 不做:

Markor 在代码场景下的定位是:阅读 + 轻量编辑。比如:

v2.1 的 Key-Value 高亮

v2.1 新增的 Key-Value 高亮专门针对 JSON、YAML、INI、CSV 这类 键值对格式:

{
  "name": "Markor",      ← key 用颜色 A
  "version": "2.15.0",   ← key 用颜色 A,value 用颜色 B
  "permissions": [       ← key 用颜色 A
    "STORAGE",
    "INTERNET"           ← value 用颜色 B
  ]
}

INI 文件:

[section]           ← section 标头用颜色 C
key=value           ← key 颜色 A,value 颜色 B

YAML 文件:

name: Markor        ← key 颜色 A,value 颜色 B
version: 2.15.0

这个功能让配置文件在手机上比 Excel 表格还清晰——哪部分是 section 标头、哪部分是配置项名、哪部分是值,一眼就能分辨。

文件类型自动识别

Markor 自动识别文件类型的优先级:

  1. 显式格式选择:底部操作栏手动切到某种格式
  2. 扩展名:.py → Python,.java → Java,.js → JavaScript
  3. 内容检测:扩展名是 .txt 但内容里有 #!/bin/bash → 自动识别为 Shell
  4. 兜底:Plaintext(无高亮)

如果扩展名是 .txt 但你希望 Markor 按 Python 语法高亮打开,手动切一下格式即可。

和 Markdown 代码块的关系

当你在 Markdown 里写:

def hello(): print("Hello World")

Markor 的 Markdown 高亮器会在 代码块内部 自动套用 Python 语法高亮——所以整段 Markdown 里:

这是一个很贴心的小细节——在其他 Markdown 编辑器里,代码块内部的高亮常常被简化或忽略。

代码场景下的同步

纯文本代码文件和 Markdown 笔记文件在 Syncthing 等同步客户端里 完全同等对待:

代码修改后两边的冲突合并和纯文本文件一样——按行合并。