markdown--一种适合IT人的document editor style

     以前曾和51CTO的官方人员沟经过,建议在社区全面逐步开始试用markdown来支持博客和论坛等的发布。他们曾承诺会考虑实施。markdown作一种标记语言的应用场景愈来愈普遍,现在也不是什么新鲜事物了,若是还有一些人不是很熟悉的话,那么正好,请听我一一道来。
html

     首先让咱们从IT类文档编写谈起。抛除正式的行政公文,IT类的文档书写通常比较随意,不像毕业或学术论文,不会刻意去要求格式排版。此外该类文档表现形式一般比较丰富,除了标准文字,图片还会有一系列的图、表等,甚至针对一些软件层说明书和文档还会截取部分只有少部分才能看懂的计算机语言(代码)。在这种状况下,传统的文档编辑以下git

一、基于无格式的txt文档 这种文档最大的优势是小巧,便捷,很适合编写一些软件的说明文档如readme。但缺点也是很是明显,没法设置格式,若是要进行排版,很是困难。github

wKioL1li8CvSmA5tAAGztPLa1bg455.png-wh_50

这是一份某网站的软件下载说明,从格式上说排版已经至关精美,可是要知道若是要修改这份文档是至关困难的,由于你要考虑对齐的问题,并且最大的问题是这种文档在WEB上无法展现。浏览器

二、基于大型办公软件word之流的高级文档。优势不用说了,格式编辑强大,支持功能众多。。。 缺点也是很明显的:排版时间长,WEB展现困难。二进制格式损坏修复困难。。。。markdown

三、相似博客这种UEditor-WEB富文本编辑工具。虽然已经很丰富了,最大的问题仍是排版困难,文档移植麻烦网络


说来讲去,那边有没有一种方法可以自动排版,且各处通用呢?app


答案天然就是markdown.编辑器


那markdown到底是什么?Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。也就是说markdown有点相似HTML,也是一种标记语言,也是用纯文本形式编写文档。只不过html文件后缀为.html或.htm,而markdown文件后缀默认为.mdide

wKioL1li9VDSglIEAAHdqbQhh-4444.png-wh_50

关于markdown的历史请参考文献3工具


这里要谈一下markdown基本语法和扩展语法

因为Aaron SwartzJohn Gruber两位大神建立了这种语法后,若是没有高级需求,按理说也就足够了(参见文献2)。可是喜好的用户多了后需求就愈来愈大了,并且有些设计其实不符合咱们的习惯,好比在标准Markdown语法中,要想换行必须在一行的最后加两个空格才行,不然即便你在一行的末尾插入硬回车,这些文本仍然会被合并为一行,这个特性会致使大量非预期的格式化错误。而咱们常常会用到表格、脚注、想要自动生成文章目录等,如果涉及代码的技术文章,咱们还但愿代码支持高亮以提高阅读体验。这就须要用到Markdown的扩展语法了。而其中最流行的当属Github Flavored Markdown 了。参见参考文献4


最后谈一下目前乱像的markdown编辑工具。因为markdown的流行,愈来愈多的网站都开始支持,如github、Stack Overflow 国内的如简书,做业部落等。而不少编辑器、网络笔记也不甘落后,纷纷推出了本身的插件以便支持。可是markdown的效果大部分是须要解释引擎进行渲染完成(特别是使用了第三方扩展插件)由于解释效果不尽相同,因此致使一份原始的md文件在A工具编写完成后,在B工具导入浏览产生轻者错行错位,重者没法解析排版反而更混乱的怪现象。特别是一些软件做者植入第三方扩展插件,而后从新封装后,虽然利用按钮简化了书写,可是不公布插件列表,不开发源码从而形成文档移植性变差,并且多数编辑工具呈收费的商业软件,而原做者(在世的创始人之一)又极不同意统一标准,最后致使像当今多种浏览器访问同一个网站显示页面错乱和部分功能不可用等问题

最后,仍是让咱们感觉一下markdown的魅力吧


左边为原始格式,右边为浏览格式

wKioL1li_qDhClRaAAE0lS8H6NQ699.png-wh_50


wKiom1li_qHw1MtGAAFn91OgpNI412.png-wh_50


wKioL1li_qKQvQPuAAJOvt75SIE268.png-wh_50

以上来自做业部落WEB端


参考文献:

一、我为何要使用markdown?http://7681901.blog.51cto.com/7671901/1942946


二、markdown语法说明

http://markdown.cn/


三、Markdown 前世此生

https://github.com/younghz/Markdown


四、Mastering Markdown

https://guides.github.com/features/mastering-markdown/



扩展阅读:Aaron Swartz 平生

https://aarons-law.org/aaronswartzaccomplishments/