跳至主要内容

Markdown - Keep It Stupidly Simple

初识Markdown时,发现它的书写如此简单,解析出来如此简洁,很快就喜欢上了它。

最近一段时间,在Markdown上碰到不少问题,一一解决后发现自己却怎么也喜欢不起来了。

“Keep It Stupidly Simple”是取自连城的博客《Why I hate markdown (and prefer reST)》,刚接触Markdown时第一次读到这篇文章,认为自己只不过是简简单单书写用,根本用不到复杂的排版。现今碰到Markdown的各种问题时,便把此文又读一遍。
“在我看来,Markdown的应用范围应当限制在千字以内、仅包含少量格式、无复杂结构的文档撰写,典型应用如类Doxygen的代码文档注释和blog评论等。”
真是对Markdown一针见血的评价。

Markdown问题一、

程序员喜欢在博客中高亮语言,Markdown恰恰天生就支持,但是Markdown有多种实现版本,各版本之间互操作性差,导致了在Markdown语言高亮在Github上正常显示,在Jekyll中使用Pygments又出现问题。

比如下面一段包含代码的Markdown文字:
----------

1. 语言高亮测试1

  import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print('Please restart Sublime Text to finish installation')

2. 语言高亮测试2

 ```python
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print('Please restart Sublime Text to finish installation')
```

3. 语言高亮测试3

----------

在Github上预览是这样的:
Github语言高亮效果

而在JekyllBootstrap框架下(Pygments高亮)效果如下,测试2中竟然还把python这个单词输出了:
JekyllBootstrap语言高亮效果

Markdown问题二、

对纯中文列表支持的一塌糊涂。比如如下Markdown文字:
----------

1. 搭建GAE

 * 第一步

 * 第二步

2. 下载Goagent

 * 第一步

 * 第二步

3. 配置

 * 第一步

 * 第二步

4. 配置浏览器

 * 第一步

 * 第二步

----------
这次我们先去stackedit上预览,效果图如下,一切正常:
StackEdit效果图

在Github上预览,效果图如下,列表序号出错了:
Github效果图

在JekyllBootstrap框架下效果如下,第三、四条出现了问题:
JekyllBootstrap效果图

这里我们分析一下问题所在,因为Markdown对中文列表支持太差,猜测可能是第三、四条是纯中文,试着改成以英文结尾,效果如下,解析正确了。
JekyllBootstrap修改后效果
Markdown简洁易用,它的特长是纯文字写作,复杂的排版和长篇图文列表的文章效率就不比HMTL了。

最后分享几个Markdown的小窍门:

1.Markdown反引号中怎么转义反引号?
Tips:在最外层使用两个连续的反引号。
例如:要想预期显示`git archive master --format=zip > `git describe master`.zip`中的反引号,需要这样写:
``git archive master --format=zip > `git describe master`.zip``

2.如何在列表中缩进代码?
Tips:代码需要比列表多缩进一次。
例如本文的语言高亮测试1。

评论

此博客中的热门博文

网盘端到端加密 Cryptomator

1. Crytomator 是什么 Cryptomator 是一款开源的文件加密工具,它支持在本地硬盘上创建多个加密仓库,这些加密仓库以文件卷(硬盘卷)的形式挂载到系统目录中,存放到文件卷中的文件都会自动加密。 如果把加密仓库的目录放到网盘的同步目录下,配合如 iCloud、Dropbox、OneDrive、坚果云 等云盘使用,就能达到端到端加密同步的效果。 2. 同类工具对比 同类的文件加密工具除 Cryptomator 之外,还有 gocryptfs、encfs 等。其中 Cryptomator 使用 Java 开发,而且提供了 macOS、Windows、Linux、iOS 和 Android 上个 GUI 版本,从易用性上来说体验最佳。 gocryptfs v1.7 encfs v1.9.5 ecryptfs v4.19.0 cryptomator v1.4.6 securefs v0.8.3 CryFS v0.10.0 First release 2015 ( ref ) 2003 ( ref ) 2006 ( ref ) 2014 ( ref ) 2015 ( ref ) 2015 ( ref ) Language Go C++ C Java C++ C++ License MIT ( ref ) LGPLv3 / GPLv3 ( ref ) GPLv2 GPLv3 ( ref ) MIT ( ref ) LGPLv3 ( ref ) Development hotspot Austria USA USA (RedHat) Germany China Germany Lifecycle Active Maintenance Active ( ref ) Active Active Active File interface FUSE FUSE In-kernel filesystem FUSE/WebDAV FUSE FUSE Platforms Linux, macOS, 3rd-party Windows port,3rd-party Android port Linux, macOS, 3rd-par...

如何拥有一个漂亮的故事线

一、背景介绍 最初发现 TimelineJS 是在 2014 年。为了制造一个惊喜,用它做了一个与爱人从相识到结婚的时间线。 转眼 2020,TimelineJS 也有了第三个版本。 对于平时有记录习惯的人来说,拥有一个关于自己的易读美观的故事线是一件非常有成就感的事,我自己便属于这类人。另一方面,TimelineJS 仍然非常小众,而且国内几乎没有对它的介绍和使用说明。本文的目的是便是能够把它的使用方法描述清晰。 TimelineJS 能做什么 官网: https://timeline.knightlab.com/ TimelineJS 是 Northwestern University Knight Lab 社区的一个产品,它可以用来制作时间线(时间轴)的故事,元素支持文本、图片、音乐、视频、地图。官网罗列出的类型包括: Twitter, Flickr, YouTube, Vimeo, Vine, Dailymotion, Google Maps, Wikipedia, SoundCloud, Document Cloud and more! 在官网上能看到几个示例,比如对美国歌手惠特妮·休斯顿的生平介绍: https://timeline.knightlab.com/examples/houston/index.html 本文适用的读者 TimelineJS 虽然适用简单,但如果你能够: 懂点前端知识; 懂点网站托管知识; 最好熟悉 JSON 语法; 最好能科学上网(不会也没关系,一样可以本地使用); 那么,TimelineJS 对你来说毫无门槛。 二、几种使用方法 要想使用 TimelineJS 制作故事线,需要从以下两个方面考虑: 故事线的数据存放到哪里 故事线的网页运行在哪里 幸运的是,这两个方面官方都考虑到了,使用 Google docs 来存放故事线的数据,Knight Lab 提供页面托管。只要按照这里的 4 个步骤 https://timeline.knightlab.com/#make 就能生成 Knight Lab 给你的一个链接。对于想尝试一下的人来说,这样就足够了,简单么! 但是,它实际上是支持以下三种组合使用的: Knight Lab + ...

VMware Workstation 10安装Mac OS X Mountain Lion 10.8.5

关于原版OS X Mountain Lion 10.8.5 Mac OS X Mountain Lion 10.8.5作为Mountain Lion的最后一个稳定版本值得我们收藏。可能大家有所不知,10.8.5版本是分为两个Build的,一个是在2013年9月13日发布的 10.8.5 Build 12F37 ,另一个是2013年10月3日发布的 10.8.5 Build 12F45 。也就是说, 10.8.5 Build 12F45 才是Mountain Lion的最终版本。 OS X Mountain Lion的维基百科 不幸的是,网友们和论坛中分享的 OS X Mountain Lion 10.8.5 正式版 原版完整DMG安装镜像 大多数是Build 12F37版本(从发帖日期就可以看出来),网上搜索到的种子文件也是Build 12F37的种子。要想下载原版Build 12F45,可以搜索 OSX1085-12F45-ESD.dmg ,或者从这里下载: http://pan.baidu.com/s/1f68Vv 怎么知道下载了哪个版本? 通过文件的MD5等校验值来辨别。使用软件: Hash 或者 HashTab 。 OS X Mountain Lion 10.8.5 Build 12F37.dmg 信息如下: 大小: 4469250353 字节 MD5: 5568B4DDE00A64F765EF00858B538078 SHA1: ECF68C2119C71825839D2A58E0D619E9CCF7C026 CRC32: F4DFCE4D 从中提取出的InstallESD.dmg: MD5: 2C77151BE45C820B02A9ACE05434693D SHA1: 2919B519142E2119197BFFD678F15F603E84970F CRC32: A9DCAE18 OSX1085-12F45-ESD.dmg 信息如下: 大小: 4448808132 字节 MD5: 3FCEBFC81D00767D1ACEF1CB166F88CC SHA1: 98E52D0FC443940265780539A311833EE5814DDD CRC32: C82F14C1 从中提取出的InstallESD.dmg: 大小: 443...