codecamp

第03节 Markdown中文格式符

为啥要支持中文格式符?

  Markdown 使用一些简单的字符表示某种需要转译为 html 标签的格式定义。标准 Markdown 的格式格式标志字符都是英文的。

  但由于我主要用以编辑中文文档,每次输入这些标签时都需要切换到英文状态,有些繁琐且易错。

  例如:

> 引用块

  上面这行文本编辑成 html 会是这样的效果:

引用块

  但我希望在中文状态下也能快速输入,当在中文输入状态下时,按Shift+>会输入右双书名号,这时可以这样子输入:

》 引用块

  转译成 html 后效果与上面相同:

引用块

  通常情况下,Markdown 要求在某行文本的开头用一个英文(半角)大于号字符(即右尖括号)后面加上一个半角空格才能定义一个文本块。——也就是以开头的行才算引用块。

  但我觉得不方便,于是去除了对半角空格的要求——只要某行以>开头,都算文本块。

  在去除了对这个空格的要求后,格式化 Markdown 文本时往往会造成当前插入点光标位置变动——这是因为格式化时自动添加了空格。

  实际上,即使不格式化,也照样编译为 Html ——结果一样。

支持哪些中文格式字符?

  Markdown 本身较为复杂,而且还支持直接嵌入 Html 标签,所以几乎不可能做到中英文格式字符一一对应。

  在制作这个程序时,仅仅是根据使用中最常见的几种情况来提供了中文(全角)格式字符的支持:

  • 》 (右双书名号加半角空格)或》 (右双书名号加全角空格)开头,相当于以开头。

  • 用以划分表格行中各单元格的竖线。全角的字符和半角的|字符在编译为html时等效。

  但是如果你想在正文引用块中呈现这两个字符本身(而不是解释为表格单元格分隔符),你需要输入这两个字符的 Unicode 编码。全角竖线的   Unicode 编码是|,半角竖线则是|

注意:代码块列表项中的竖线字符(无论全角、半角)均会被解释为本身而不是表格单元格分隔线。
  • 以分号开头的行是注释行,不会被编译到 Html 文档中。以中文全角分号开头或者以半角英文分号;开头效果是一样的。

  • 以冒号开头的行也是注释行,但是会被编译到 Html 文档中。全角冒号、半角冒号作用相同。

  例如:

:注释文本01
:注释文本02

  编译为 Html 后会呈现为:


第02节 Markdown任务列表
第05节 Markdown删除线
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }