MarkDown语法二
MarkDown高级进化
Table of contents
Open Table of contents
在阅读此篇博文时,你应该已经掌握了MarkDown的基础语法和基本使用,如果还没有掌握,请先阅读我之前写的博文MarkDown语法一,本篇博文将教授大家MarkDown的高级使用,比如用 flowchart.js 描述流程图,图片大小的调整,图片链接等
声明
MarkDown的高级使用,有些功能属于拓展语法,可能存在某些平台的编译器无法识别的情况
MarkDown图片大小
可使用 Kramdown 属性列表 {:width="100" height="100"} 或 HTML 控制图片大小。属性列表不是通用 Markdown 语法;只设置一个尺寸时,浏览器会按图片比例缩放另一个尺寸。

<img src="/img/cannondale_twitter.png" width="50" height="100"/>
{:width="100"}
{:height="150"}
显示效果:




参考式链接
如果在一篇博文中有多处需要引用同一个链接,可以使用参考式链接来减少重复内容。
定义:[id]: 链接地址 “提示文本” 提示文本可以不要
使用:[文本][id]
//使用
[Alee的博客][Alee]
//定义
[Alee]: http://www.aleej.com "Alee Blog"
显示效果:
自动链接
通过<url>定义
<http://www.aleej.com>
显示效果:
图片链接
图片链接就是把图片和链接嵌套
格式:[](图片链接地址 “提示文本”) 提示文本可以不要
[](http://www.aleej.com "点击访问Alee Blog")
显示效果:
在新标签页打开链接
在链接后加上 Kramdown 属性列表 {:target="_blank" rel="noopener"},或者使用 HTML 属性。属性列表不是通用 Markdown 语法;rel="noopener" 可避免新标签页访问原页面的 window.opener。
[Alee Blog][Alee]{:target="_blank" rel="noopener"}
[Alee](http://www.aleej.com/about){:target="_blank" rel="noopener"}
<http://www.aleej.com>{:target="_blank" rel="noopener"}
[{:width="50"}](http://www.aleej.com "点击访问Alee Blog"){:target="_blank" rel="noopener"}
<a href="http://www.baidu.com" target="_blank" rel="noopener">新窗口打开百度</a>
显示效果:
流程图
下面的示例使用 flowchart.js 的 DSL。flow 只是代码围栏的语言标记;本项目没有加载 flowchart.js,因此页面只会显示代码块,不会绘制流程图。
st=>start: 点击登录:>http://www.aleej.com
op1=>operation: 判断用户名和密码是否填写
op2=>operation: 校验用户名和密码是否规范填写
op3=>operation: 请求服务器判断用户名和密码是否正确
sub1=>subroutine: 提示用户名密码未填写
sub2=>subroutine: 提示用户名密码填写不规范
sub3=>subroutine: 提示用户名密码填写不正确
con1=>condition: 是否填写
con2=>condition: 是否规范
con3=>condition: 是否正确
io=>inputoutput: 重新输入
en=>end: 结束 登录成功
st->op1->con1
con1(yes,right)->op2->con2
con1(no)->sub1->io->op1
con2(yes,right)->op3->con3
con2(no)->sub2->io->op1
con3(yes,right)->en
con3(no)->sub3->io->op1
声明元素
格式:tag=>type: content[|flowstate][:>url]
规则:
- tag 设置元素名称。
- => 是元素定义符。
- type 可取
start、end、operation、subroutine、condition、inputoutput、input、output或parallel。 - content 设置元素显示内容,中英均可;
|flowstate和:>url是可选项,分别设置样式状态和链接。
注意:
=>前后不能加空格,type:后要有空格,:>中间不能有空格;链接后加[blank]可在新标签页打开。
定义流程
格式:tag1(branch[, direction])->tag2
规则:
- -> 是流程定义符,用来连接元素。
- branch 为条件节点的
yes或no分支;并行节点使用path1、path2或path3。 - direction 可选,设置这条连接从当前节点的哪个方向离开,可用
left、right、top或bottom;终点没有出线方向。
条件节点需要分别定义两个分支,例如:
st->op1->c2
c2(yes)->io->e
c2(no)->op2->e
-> 两侧不要加空格。
LaTeX
LaTeX 数学块是 Kramdown 扩展语法,不属于通用 Markdown。Kramdown 会输出 MathJax 定界符;本项目没有加载 MathJax,因此页面不会排版公式。需要在页面模板中加载 MathJax 才能显示排版结果。
格式:在独立的行上使用 $$ 开始和结束:
$$
y= \begin{cases}
-x,\quad x\leq 0 \\
x,\quad x>0
\end{cases}
$$
输出效果(本页面未加载 MathJax,浏览器不会排版):
\[y= \begin{cases} -x,\quad x\leq 0 \\ x,\quad x>0 \end{cases}\]