Wiz写Blog? 不会再爱了,全面拥抱Markdown+Pandoc
Wiz写Blog? 不会再爱了,全面拥抱Markdown+Pandoc
我们为什么写作?
自从人们开始写作,写作便是记录、抒发、批判、反省的好工具。从石板上的刻印到笔墨纸砚,再到如今的信息时代。从静态的个人主页到托管博客,从个人博客到微博,从wordpress到jekyll。无数投入写作中的人们写作的目的大同,写作的方式越简单越好,这样才能让我们专注于写作而不是为其他格式所困扰。另外现在智能终端快速普及,文件格式的多平台使用也成为了写作的一大问题。
为了更好的写作,今天介绍的 Markdown & Pandoc 便能提供完美的辅助。
Markdown的用法
1 .Markdown是什么?
Markdown 是一种轻量级标记语言,创始人为John Gruber和Aaron Swartz。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。 [1]
2 .为什么要用Markdown?
windows下常用的编辑工具是word,mac上常用的编辑工具是page,linux上常用的编辑工具就是vim了,一份文章编辑完后为了要在不同平台中保存完整的模样时就必需同时准备多种文本格式的文件,这是多么痛苦的一件事。我们写作的初衷是为了写作呀,反而被这些格式烦恼。所以我们要用Markdown,它让你关注内容,格式怎么显示不是要你在写得时候关注的。而在写Markdown时你只需要用一个纯文本的方式进行,不用担心平台与格式的困扰。
3 .Markdown的语法
Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。
最常用格式
空一行(两个回车)分段 行末加两个或多个空格才是真正的换行,否则正常的一个回车就像在 HTML 代码中一样,被当作空格处理 插入链接: [链接文字](url) 图片跟链接很像,在前面加个叹号:列表
* 无序(没有编号的)列表中的一项* 一个子项,要以一个制表符或者4个空格缩进* 无序列表中的另一个项1. 有序(排好序,有编号的)列表中的一项2. 有序列表中的另一个项标题
# 一级标题#### 四级标题一级标题===================二级标题--------------------代码
代码可以采取两种方法:
一是用(`)将代码包起来
夹杂着`一些代码`的文字内容,二是在代码块前面加上4个空格或者一个TAB
import random class CardGame(object): """ a sample python class """ NB_CARDS = 32 def __init__(self, cards=5): self.cards = random.sample(range(self.NB_CARDS), 5) print 'ready to play'代码高亮可以由github提供的js实现
分割线
要生成水平分割线,可以在单独一行里输入3个或以上的短横线、星号或者下划线实现。短横线和星号之间可以输入任意空格。以下每一行都产生一条水平分割线。
===========************_ _ _ _ _Markdown的常用语法差不多就是这些了,详细的介绍请参考Markdowm 语法说明
4 .Markdown的常用编辑工具
- Mac等平台下推荐Mou
- Windows平台推荐MarkdownPad【左边是Markdown源文件,右边是相应的html文件,所见即所得】
- Sublime Text编辑器是我的最爱,并且它是跨平台的,结合Markdown preview插件能更好的编辑,【使用Package Control安装,用Ctrl+B编译,即可得到Markdown源文件相应的html文件】;
- Sublime上安装Markdown Editing后,就可以直接使编辑器在编辑时所见即所得,只是灰色背景看着有点眼。
- markdown-here借助Chrome插件,将gmail、Evernote、Hotmail等写作窗口变为Markdown在线写作窗口【比如,gmail写邮件过程中,运用markdown语法,再右键选择markdown Toggle 即可装换为相应的html形式的结果】
- web版推荐国人草依山写的MaHua,支持vim快捷键和多种主题。
Markdown越来越流行,不是因为它复杂,而是因为它足够简单。尝试过MD后就能体会到单纯的写作带来的快乐,一般Markdown文件保存格式都是以md、mdownx现实。为了文档的分享,多平台的使用,需要对MD进行格式转化。这是就更体现了它的方便之处,它是本身是一个结构标记语言,能对多种格式文档进行转换,这里介绍一款强大的格式转换工具 Pandoc 。
Pandoc 格式转换的瑞士军刀
1 .Pandoc的介绍
Pandoc是一个用于从一种标记格式转换为另一种的Haskell库,它的功能是在多种常见的标记语言进行相互转换。
其中包括 Markdown, reStructuredText, Textilte, HTML, PDF,LaTeX 等。利用它,你可以用简单的 Markdown 语法生成pdf文档,还可以写 Beamer 演示文稿。更强大的是,它还能将以上提到的这些语言所写文件转换成 xdoc 文档。下面这张图展示了 Pandoc 让人吃惊 的功能集,不愧为文件转换中的瑞士军刀:

2 .Pandoc的用法
2.1 Web版Pandoc
首先我们可以看下Pandoc的官网 http://johnmacfarlane.net/pandoc/
在介绍中我们知道Pandoc支持linux,Mac OS,Win多平台,还有简易的web版提供我们在线转换格式。打开web版 http://johnmacfarlane.net/pandoc/try,便可以进行简单的格式转换了。不过网页版的反应速度不是很快,不适合大型文件的格式转换,一两篇文章还是可以的。

2.2 Linux版Pandoc
就我自己用的ubuntu下安装Pandoc,还算是非常简单的。以下是ubuntu下的使用步骤:
sudo apt-get install pandoc如果apt-get安装的pandoc功能不齐全,可以如官网上一样先安装cable,再安装pandoc:
sudo apt-get install cabal-installcabal updatecabal install pandoc然后就可以尝试着用一下了:
pandoc demo.md -o demo.html这样便可以简单的将demo的markdown文件转换成html文档了。另外还可以强制格式转换如下:
pandoc demo.txt -o demo.html -f markdown -t html上面的代码便是将demo.txt中的文档以markdown的格式转换成html并存入demo.html中了。
最关键的 PDF文件 到了,PDF文档能在不同平台保持一致的表现,是许多文档传输的首选。在转换PDF之前,还需要安装一个texlive的包:
sodu apt-get install texlive然后便可以自如的转换PDF文件了:
pandoc demo.md -o demo.pdf英文文件转换状况良好,中文字体问题请参考Pandoc 用命令行转换标记语言
Markdown与Pandoc的用法也就说到这了,无疑它们搭配起来会让写作变得更加简单专注,这也就是我们的初衷。另外在写作中多结合Git,将文档推到GitHub上会是很好的尝试。
参考文档
- Markdown写作浅谈 , 阳志平
- 黑魔法利器pandoc , 雁起平沙
- Pandoc 用命令行转换标记语言 , 林雪凡
- Pandoc 官网 , John MacFarlane
- Markdown 语法说明 , riku
Wiz写Blog? 不会再爱了,全面拥抱Markdown+Pandoc的更多相关文章
- livewriter写Blog 神秘失踪?
现在习惯用livewriter来总结/记录一些知识并发布为Blog 与同行交流,但是今天发生了一个怪事,上午我整理了两篇文档当时就用livewriter发送到了Blog上,但是晚上来看的时候之前发送的 ...
- 我为什么鼓励程序员写blog
工程师该怎样才能突破自己的能力瓶颈?写 blog! 工程师该怎样精进自己在职涯上所需要的能力?写 blog! 工程师该怎样才能保持学习与成长的动能?写 blog! 工程师该怎样才能证明自己的潜力与特质 ...
- 我为什么鼓励工程师写blog
文/JoeyChen 工程师该怎样才能突破自己的能力瓶颈?写 blog! 工程师该怎样精进自己在职涯上所需要的能力?写 blog! 工程师该怎样才能保持学习与成长的动能?写 blog! 工程师该怎样才 ...
- netty系列之:请netty再爱UDT一次
目录 简介 netty对UDT的支持 搭建一个支持UDT的netty服务 异常来袭 TypeUDT和KindUDT 构建ChannelFactory SelectorProviderUDT 使用UDT ...
- 为什么要写blog????
写 blog 文章,是种与自我的对话,也是种与外界的联系,也是获得 level up 或 skill learned 的契机. 借口:我不太会写文章,不太会表达,没有东西好写,没人会看我的文章 你想让 ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- 使用hexo在github上写blog
使用hexo在github上写blog 安装nodejs http://nodejs.org/ 安装hexo npm install -g hexo 创建bolg文件夹 安装完成后在自己的工作目录创建 ...
- 关于写blog这件事
事实上一直是挺喜欢写blog的.可是近期在写blog这件事上遇到或者開始思考一些问题了. 首先,写blog的动机.对于这个问题,我从自己的理解上得出下面几个原因: 写blog是对自己学到知识的一种总 ...
- 写Blog的准备工作Window Live Writer
以下是博客园的帮助博客: Windows Live Writer配置步骤 感觉里面的几篇推荐文档都可以看一下,至于代码高亮插件,个人选择的还是SyntaxHighlighter. 一. 关于写blog ...
随机推荐
- python 深拷贝
from copy import deepcopy #create a tuple tuplex = (, [], True) print(tuplex) #make a copy of a tupl ...
- JavaMai——邮箱验证用户注册
这篇文章简单的模拟了网上利用邮箱激活用户注册这样的一个功能 1. 呈现给用户的注册界面:(为了简单起见,就剩下两个输入域,邮箱和昵称) <%@ page language="java& ...
- jQuery.extend()意义及用途
一.意义 用于将一个或多个对象的内容合并到目标对象 二.用法: $.extend( [deep ], target, object1 [, objectN ] ) 注意: 1. 如果只为$.exten ...
- 解决SVN图标不显示问题
Windows最多只允许15个覆盖图标,它自己又用了几个,结果给用户用的就11个左右了,如果你安装了其他网盘,那可用的就更少了. 解决方法: 1.在运行里输入regedit进入注册表 2.依次打开HK ...
- 读CSV文件
/// <summary> /// 读取csv文件 /// </summary> /// <param name="csvPath">strin ...
- English trip -- VC(情景课)8 C
MP review: 音标(Phonetic symbol) [ɪ] lit adj. 照亮的,点着的(light的过去式及过去分词)n. (Lit)人名:(瑞典)利特:(老)李 [ʊ] g ...
- 清除mac出现的.DS_Store文件
一.什么是.DS_Store文件 在 Mac OS X 系统下,大部分文件夹中都包含 .DS_Store 隐藏文件,这里保存着针对这个目录的特殊信息和设置配置,例如查看方式.图标大小以及这个目录的一些 ...
- Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题
使用vue+vue-cli+axios+element-ui开发后台管理系统时,遇到一个问题,后台给了一个接口,我这边用axios请求数据,控制台总是报405错误和跨域错误 错误 405? 没见过!! ...
- POJ 2057 The Lost Home 树形dp 难度:2
The Lost House Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 2203 Accepted: 906 Des ...
- 【转载】oracle之rowid详解
原文URL:http://www.2cto.com/database/201109/104961.html 本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(exte ...