Markdown 是一种轻量级标记语言,它吸收了很多(外国)人们在纯文本电子邮件中常用的标记,跟其他流行的标记语言(MediaWiki 等)比较起来更加容易阅读和学习,同时也支持内嵌 HTML 以实现更复杂的展示效果;

同时纯文本还具有以下好处:

  • 使作者关心内容/结构多于形式
  • 跨平台

作为一个广受欢迎的标记语言,Markdown 能够非常容易地转换为重量级标记语言(HTML)。下面介绍几种在将来可能有用的工具:

可以用 Markdown 做到的

博客:Jekyll(中文官网

Jekyll 是一个静态网站生成程序。它使用 Ruby 编写,使用 gem install jekyll 后即可使用:

jekyll new my-awesome-blog
cd my-awesome-blog
jekyll serve

在本地 4000 端口运行你的博客站点。

Jekyll 的博文使用 yyyy-MM-dd-what-ever-post-name.md 形式的文件名存储在 _post 文件夹下,使用 YAML 在文件头设置博文属性,其他请参见官方文档。

API 文档:Slate(GitHub

Slate 同样生成静态网站,也使用 Ruby 编写,但它并没有发布到 gem,只能从源码运行。

git clone Slate 项目到本地后,运行:

bundle install
bundle exec middleman server

就可以把 Slate 生成的静态网站运行在本地的 4567 端口上。

如何书写请参见项目的代码示例。另外随意更新 Slate 到 github 的开发版本可能会导致样式变形。

Wiki:Gollum(GitHub

GitHub 和 GitLab 的内置 Wiki 均使用 Gollum,你猜对了它还是用 Ruby 编写的,支持多种标记语言,但从 GitLab Web 界面只能创建 Markdown 形式的文件。

如果要使用 MediaWiki 语言,使用 git clone Wiki 仓库新建文件,并将扩展名命名为 .wiki 即可。

Gollum 的一点好处是可以看到“所有页面”,减轻了一点页面组织的工作。

Slide:RemarkJS(用 RemarkJS 展示 RemarkJS 语法

Slide 就是 PPT,不过只有 PowerPoint 做出来的 PPT 才能叫 PPT……

终于,这次不是 Ruby,让我们欢迎 JavaScript!(不要理我)

看了网页源码就会发现,RemarkJS 只需要一个 textarea 输出 Markdown 文本……因此我们可以对 Jekyll 稍作更改支持 Slide:

RemarkSlideConverter.rb 放在 _plugins 文件夹下

module Jekyll
  class RemarkSlideConverter < Converter
    safe true
    priority :low

    def matches(ext)
      ext =~ /^\.remark$/i
    end

    def output_ext(ext)
      ".html"
    end

    def convert(content)
      content
    end
  end
end

slide.html 放在 _layouts 文件夹下

<!DOCTYPE html>
<html>
  <head>
    <title>Markdown Everywhere</title>
    <meta charset="utf-8">
    <style>
      @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
      @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
      @import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);

      body { font-family: 'Droid Serif'; }
      h1, h2, h3 {
        font-family: 'Yanone Kaffeesatz';
        font-weight: normal;
      }
      .remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
    </style>
  </head>
  <body>
    <textarea id="source">

    </textarea>
    <script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
    </script>
    <script>
      var slideshow = remark.create();
    </script>
  </body>
</html>

最后 Markdown 文件使用 .remark 结尾,YAML 头属性里使用 layout: slide 即可。

Markdown 添加图片是永远的痛,但我们还有 JS

“为何这么执着于纯文本?”

“因为又穷又懒(诚实脸)。”

如何在 GitHub 上查找可视化 JS 组件:

  1. 找到你想要的图的英文名;
  2. 在 GitHub 上搜索;
  3. 选择语言为 JavaScript;
  4. 哪个顺眼用哪个;

当然还是要看一眼对方使用的协议。