Tuesday, November 25, 2014

支持 Markdown 的网页 slides 工具总结

支持 Markdown 的网页 slides 工具总结

在注重效率的今天,很多人都不喜欢制作 PPT,特别是技术人员。流行的 PPT 制作工具往往需要用户关注太多内容无关的细节。而像 TeX 这样强大的系统又似乎太过于重量级了。
现在越来越流行制作网页格式的 slides,并通过浏览器来播放和发布。 这样做有很多优点:包括跨平台(特别在移动端)、无需特殊软件支持、分享方便、轻量级等。
可惜并不是所有人都精通网页编程技术,即便是最常见的 html 和 css,也常常造成 slides 编写人员的困扰。
一款最理想的 slides 制作工具,应该做到让用户只需要关心内容,其它的包括布局、风格等都交由软件来完成。
随着 HTML5 的流行,现在已经出现了不少这方面的工具,允许用户用 Markdown 等文本标记语言来编写好内容。它们能自动转化为网页形式,添加合适的主题,获得不亚于 PPT 软件的播放效果,甚至更为强大。
在这里介绍几种支持 Markdown 来编写内容的网页 slides 生成工具。
对于 Markdown 不熟悉的读者,推荐先花个五分钟,简单看下 Markdown 的简单语法:http://daringfireball.net/projects/Markdown。顺便说下,本文就是使用 Markdown 编写的。

slidedown

比较早期的一个利用 Markdown 生成网页 slides 的工具。
它功能比较单一,特色是支持语法高亮。后面出现的不少工具都参考了它,功能要更加丰富。
  • 官方网站:https://github.com/nakajima/slidedown
  • 推荐指数:3.5

Remarkjs

remarkjs 是一个简单的基于 Markdown 的网页 slides 生成工具。
remarkjs 生成的网页 slides 支持语法高亮、响应式设计。

Reveal.js

Reveal.js 是基于 Node.js 实现的一个网页 slides 编写框架。
它支持自定义快捷键、嵌套 slides、在网页中直接嵌入 Markdown 语法、导出 pdf、备注和 JavaScript 等强大功能。
它需要用户对 HTML 和 CSS 相关技术比较熟悉一些。支持的很多参数可以直接在模板中进行配置,比如自动翻页、快捷键等。

slidify

slidify 支持 RMarkdown 语言,可以利用 RMarkdown 文件生成效果惊艳的 HTML5 页面,并且支持发布到 GitHub、RPub、DropBox 等,当然这就需要用户熟悉 Markdown,R、LaTex 等多种语言的语法。
R Markdown 语言是 RStudio 支持的一种专门为编写 HTML 5 的 slides 而提出的混合型语言,它可以很好的混合利用 Markdown,R、LaTex 等多种语言来生成十分复杂的页面。

KeyDown

KeyDown 与 Showoff, Slidedown, HTML5 Rocks 等类似,也是专注生成单页的网页 slides。 它基于 Ruby 语言编写,利用 deck.js 转化 Markdown 为网页 slides。支持语法高亮、背景图片、快捷键等。用户要自定义一些风格可以修改 css 文件。
其使用过程十分简单,需要 Ruby、Rubygems 环境。
$ gem install keydown
$ keydown generate my_presentation
然后编写 Markdown 文件,并可以调整 css,之后进行转换。
$ keydown slides

Showoff

Showoff 是一个成熟的网页 slides 生成工具,基于 Ruby 语言编写。它借鉴了 S5 (http://meyerweb.com/eric/tools/s5/)。设计了基于 Markdown 的 DSL,因此,用户只需要懂 Markdown 语法即可。
举一个例子。
!SLIDE

# My Presentation #!

SLIDE bullets incremental transition=fade

# Bullet Points #

* first point
* second point
* third point
所生成的网页 slides 功能十分全面,可以说,能想到的功能都实现了,包括语法高亮、菜单、JavaScript、效果、备注等等。
安装和使用。
$ gem install showoff
$ git clone (showoff-repo)
$ cd (showoff-repo)
$ showoff serve
showoff 唯一的问题可能是它已经有数年没有更新了,不然完全可以打 5 分。

cleaver

cleaver 可以将 Markdown 文档转化为网页格式,基于 Ruby 语言编写,同样支持基于 Markdown 的 DSL。它的整体设计风格也是十分简约,作者还有其它几个很 cute 的小工具。
下面给出一个 clever 支持的文件的例子。
title: Basic Example
author:
  name: Jordan Scales
  twitter: jdan
  url: http://jordanscales.com
output: basic.html
controls: true

--

# Cleaver 101
## A first look at quick HTML presentations

--

### A textual example

Content can be written in **Markdown!** New lines no longer need two angle brackets.

This will be in a separate paragraph

--

### A list of things

* Item 1
* Item B
* Item gamma

No need for multiple templates!
安装和使用:
npm install -g cleaver
cleaver path/to/something.md
它支持多种主题和语法高亮等功能,
  • 官方网站:http://jdan.github.io/cleaver/
  • 项目维护:https://github.com/jdan/cleaver
  • 推荐指数:4.5

Landslide

Landslide 可以利用 markdown、ReST 或 textile 格式文件生成 HTML5 的网页 slides,参考了 Google 的 html5slides。
Landslide 基于 Python 开发,最大的优点就是简洁,从安装到编写,到生成的 slides 风格都十分简洁。整个过程,用户只需要懂 Markdown 语法就可以。
此外,它的配置文件(.cfg)使用了类似 ini 文件的语法,也很容易理解。
安装:
pip install landslide
运行
landslide slides.md
默认会生成 html 格式的 slides。
是不是很简单?
此外,它还支持生成 pdf、快捷键、备注、自定义主题、CSS、JavaScript、注册新的语法宏等高级功能。

其它

HTML5 Rocks 是一个基于 HTML5 的强大的网页 slides 展示系统。它生成的网页可以支持多种风格,但需要用户掌握一定的网页编程技术。
另外,可能有人会推荐 Prezi(http://prezi.com),我也为 Prezi 的动态效果所惊讶。但对于关注内容的人员(特别是工程师)来说,并不十分推荐 Prezi,Prezi 往往更适合于设计或市场营销人员。