很喜欢 Markdown,但实际使用时却不得不用看起来不太优雅的 MediaWiki 的语法,因为 Markdown 对较多涉及图表、公式这些接近学术文档的支持并不是很好。因此就想着自己也可以设计一种轻量级标记语言,构思了一段时间,基本想好了,但还没有全部写出来,先发要点发出来看看大家的反馈:
**着重强调**
这样的方式,而是使用一个标记符号加一系列用方括号对界定的被标记内容,如 *[着重强调]
、^[上标]
。方括号对也可以有多对,如链接 @[V2EX][https://www.v2ex.com/]
就是两对按特定顺序接连出现的方括号对。""""[[
我们要坚持人民至上、生命至上,统筹资源,团结合作,尽最大努力保护人民生命安全和身体健康,最大限度降低疫情负面影响。
我们要坚定不移携手抗击疫情;我们要坚定不移推进中非合作;我们要坚定不移践行多边主义;我们要坚定不移推进中非友好。
]]
多级无符号列表:
*[[列表项 1]]
*[[列表项 2]]
**[[列表项 21]]
**[[列表项 22]]
单个或多个标记符号 + 单个或多个水平空白 + 不带方括号的内容
。如块级引用: " 我们要坚持人民至上、生命至上,统筹资源,团结合作,尽最大努力保护人民生命安全和身体健康,最大限度降低疫情负面影响。
多级无符号列表:
* 列表项 1
* 列表项 2
** 列表项 21
** 列表项 22
插入代码可能不像 Markdown 那么优雅,单行代码的插入方式只能是:
` package main
.
,只不过大部分时间省略了而已。但有时用句点放在其他块级标记符号后面,表示在该块级标记符号内部强制使用嵌套的段落标记,如:*. 列表项 1
*. 列表项 2
其中各个列表项将被渲染为 <li><p>......</p></li>
的形式。
#[.编号类型#编号 ID][编号内容]
(如果不再引用该编号,其编号 ID 可以省略),如图的题注可以使用 #[.图#具体的图像 ID][具体的图像标题]
这样的形式,其显示的文本形如 图 1 具体的图像标题
。可以通过链接的形式引用该图像编号,如 @[.图#具体的图像 ID][具体的图像标题]
。如果没有显式指定 ID,则默认的 ID 是“编号类型-编号内容”(需要将编号内容里面的水平空白转换为下划线)。"[我们要坚定不移携手抗击疫情][.领导讲话#xi]
。@[V2EX][https://www.v2ex.com/][title="创意工作者们的社区"]
。[*addr][地址文本]
、 [*地址][地址文本]
将都被渲染为 <addr>地址文本</addr>
。=
标记。实际渲染时,在单个文档以 ==
标记的二级标题可能并不总是被渲染为二级标题,而是根据上下文的情况进行渲染。这种方式特别有利于各个文档独立书写,将来组成书或总报告。+++++[[
-| 第 1 行第 1 列 | 第 1 行第 2 列 | 第 1 行第 3 列
-| 第 2 行第 1 列 | 第 2 行第 2 列 | 第 2 行第 3 列
-| 第 3 行第 1 列 | 第 3 行第 2 列 | 第 3 行第 3 列
-| 表格尾注
]]
或
+++++[[
= #[.表格][表格标题]
-| 第 1 行第 1 列
| 第 1 行第 2 列
| 第 1 行第 3 列
-| 第 2 行第 1 列
| 第 2 行第 2 列
| 第 2 行第 3 列
-| 第 3 行第 1 列
| 第 3 行第 2 列
| 第 3 行第 3 列
]]
上面的 =
开头的一行表示表格带编号的标题。
如果某个单元格内有很多行,就使用标记块级元素的标准标记方式(加双方括号),如
|[[
单元格内的第一行文本。
单元格内的第二行文本。
]]
以上只是介绍了关键的几点,还有很多很多功能和细节。总的来说,这种标记方法可以用少量标记符号写出类似 Markdown 这样易读的文本,但当对文档标记的需求很高时,也能写出几乎相当于 HTML 标记功能的文本。当然,解析器实现也不容易,需要许多依据上下文判断的智能化功能。
你或者仍然称其为轻量级标记语言,但其实很重的轻量级标记语言。
虽然想了几个月了,但我不确定大家是否能接受这样的标记语言,以及该怎么改进。欢迎鼓励或拍砖!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.