The documentation is a work in progress, and English edition is just an empty shell for now. I will translate it when Chinese edition has done.
因为链接语法是 Markdown 引用文件的关键,它是 v-no 主要进行扩展的目标。
一个标准 Markdown 链接语法由三个部分组成:
!
:标记它是一个文字链接还是图像链接。[text]
:- 对于文字链接,它被渲染成元素的
innerHTML
。 - 对于图像链接,它是元素的
alt
属性。
- 对于文字链接,它被渲染成元素的
(path "title")
:path
:- 对于文字链接,它是元素的
href
属性。 - 对于图像链接,它是元素的
src
属性。
- 对于文字链接,它是元素的
title
:元素的title
属性。
你可以发现,只有 title
的含义不会随链接的类型发生变化,而且似乎写 Markdown 时很少会用到它,这真是一个值得动刀子的好地方。
v-no 会截取 title
中最后出现的 #
符号和它后面的部分作为识别标记,而在它之前的部分会成为新的 title
(如果它为空,链接不会有 title
属性)。对于不同类型的链接,标记也有不同的工作方式:
- 文字链接:如果
path
以/
开头,并且指向.md
文件(可以省略index.md
),则将它转换为以#
开头的 Hash 地址。- 如果
#
之后还有更多内容,以?
作为分隔,在它之前的部分会组成锚点,之后的部分则是查询字符串。 - 如果
text
为空,用path
指向文件的标题填充它。如果它还单独位于一个<li>
中,则将这个<li>
转换为一个展示文件部分元数据的特殊列表项。
- 如果
- 图像链接:
#
之后的部分用于控制它的样式。- 如果它是数字,则作为图像的宽度。
- 如果它以
.
开头,将它加到class
属性,你可以用.
分隔多个值。有几个特殊的class
值:hidden
:隐藏图像。left
、right
:将图像浮动在左右两侧。- 如果它是以
w
开头的一组数字,则将数字部分作为图像的宽度。
- 其它情况都会直接把它填进
style
属性。
title
写多了还是有点麻烦。v-no 还有几个会替换 / 移除原链接的标记,它们选择对 text
进行扩展,并且都需要单独占据一行使用。
- 嵌入链接:用于引入嵌入文件。
text
需要以+
开头,它可以跟一个#
,在它之后的部分会被解析成参数对象。各个参数项之间要用|
分隔,它们会依序得到一个从 0 开始的序号。你也可以用赋值语句(a=1
)标记一个命名参数,让它除了序号还拥有一个字符串别名。 - 自定义脚本链接:
path
要以.js
结尾,text
只能包含$
,不过不限个数。使用多于一个$
会将它标记为一个驻留脚本。 - 自定义样式链接:除了要以
.css
结尾、使用*
作为标记,其它地方和自定义脚本类似。
- This page is open source, improve it