一种高兼容度的通用文档解决方案

你是否经常遇到这种情况:辛苦调好格式写好的 word 文档到其他人电脑上格式就莫名其妙的乱了;word 和 wps 处理的 docx 文档,不同的软件之间打开就是会出现一些很细微的差异。不得不说,就连微软自己将 office 系列软件的定位就是指一款 文字处理软件,在这样的软件之上可以完成几乎所有的格式调整工作,但并不保证不同的设备、软件之间可以互相通用;此外如果是记录笔记或是进行文字创作,等格式调整完毕或许创作热情早就燃烧殆尽,word 在此时就不是一个很好的选择了。

2020-01-09-14-02-53-.png

本人一直在寻找这样一种解决方案,可以让我记录下的文字保证最大限度的兼容性,不至于从一个平台到另外一个平台发布就需要进行繁琐的格式调整工作,此外最好能够有工具支持直接转换到我需要的格式(如docx,html)。

“众里寻她千百度,蓦然回首那人却在灯火阑珊处!”

经过许久的探索,终于发现了一种目前看来最完美的解决方案——Markdown.

Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。甚至Markdown能被使用来撰写电子书。(来源:维基百科)

此前一直有使用 Markdown,如果你是一位程序员或是对此有一些了解,相信你对它就不会陌生,全球最大的代码托管平台 GitHub 默认使用 .md 格式的 README 文件做项目自述的,可以说 README.md 是开源项目必不可少的一份文件,GitHub 会将使用 Markdown 进行格式标记并命名为 README.md 的文件渲染后让在代码仓库首页,以便大家快速了解这个项目。

2020-01-09-14-34-26-.png

Markdown 快速入门

Markdown 的使用非常简单,可以让作者专心于内容本身而不需要过多的考虑格式,它将最经典常用的几种格式使用特定符号标注,在这里提供一个最简单的 Markdown 示例文本:

# 一级标题
## 二级标题
### 三级标题

> 引用

`行内代码`

\```
多行代码(去掉'\')
\```

**强调**

*斜体*

~~删除线~~

- [ ] 清单

[超链接文本](https://frytea.com)
---

将以上代码复制进入一个新的 test.md 文件中,使用 Typora 打开,就可以看到渲染好的包括 分级标题、引用字块、行内代码、多行代码、超链接等效果了;或是在 GitHub 新建一个仓库在 README.md 文件中写入以上内容也可以看到效果。

使用这些格式就已经可以实现大部分的文档撰写需求了,更多的 Markdown 语法可以在 GitHub 的 younghz/Markdown 仓库中查看,除此之外扩展的语法还可以实现甘特图、数学公式等特殊格式,如果还不能满足需求还可以使用 html 原生地排版语法直接撰写,markdown 没有提供过多复杂的格式,使用这些有限的语法就可以给人一种简单愉悦的写作感受。

2020-01-09-15-03-52-.png

许多平台都是支持 Markdown 渲染的,市面上也有很多的可用于渲染 Markdown 的编辑器,搜索 Markdown 在线编辑 就可以找到许多可以实现 Markwown 渲染的工具,直接复制渲染好的内容就可以粘贴到富文本编辑器(如微信公众平台),一些博客平台例如 简书 都是支持 Markdown 编辑器的,自建博客大都是使用 Markdown 进行内容编辑及渲染,此外 bear、为之笔记、蚂蚁笔记、有道云笔记 等笔记本都是支持 Markdown 内容笔记的,另外语雀等知识库平台也是支持 Markdown 的。因此,使用 Markdown 撰写的内容是可以做到完全的格式兼容的,只要使用规范的语法撰写就不用的担心自己的格式会有多大的偏差。如果这些还是不能满足需求,Markdown 还能玩一个大变身。

MarkDown 变身

上文提到,Markdown 在任何支持其语法的平台都是可以做到格式兼容的,真正做到了一处撰写处处渲染,可是有时候写好的东西需要在特定的环境下以特定的格式提交,这时怎么处理呢?此时就要用到文档界的瑞士军刀——Pandoc了。

Pandoc是由John MacFarlane开发的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。Pandoc使用Haskell语言编写,以命令行形式实现与用户的交互,可支持多种操作系统;Pandoc采用GNU GPL授权协议发布,属于自由软件。(来源:维基百科)

Pandoc 可以实现许多文档格式之间的互转,详细可以在 Pandoc 官网了解。今天主要使用 Pandoc 由 .md.docx 的功能将 Markdown 文件转换为 word 等软件可直接使用的文档格式。

pandoc-diagram.jpg

首先安装 Pandoc,这个不同的版本安装方法不同,烹茶室 使用的基于 Ubuntu 的 Linux 发行版只需要使用下列命令即可完成安装:

$ sudo apt-get install pandoc

至于 WindowsOS X 可以在这里下载对应的安装包安装:https://github.com/jgm/pandoc/releases/latest

安传完毕,打开命令行,就可以畅游这款神器,使用下列命令就可以将 Markdown 文档转换为 docx,还可以直接生成 html等格式:

$ pandoc test.md -o test.docx

$ pandoc test.md -o test.html

需要注意的是,使用 Pandoc 直接生成 PDF 文件时,需要安装 LaTeX。并且,Pandoc 自带的 PDF 引擎不支持中文,必须为中文配置额外的引擎和模板。因此中文的 markdown 文档是无法直接生成 pdf 的,但可以通过先生成 html 再通过系统自带的打印输出 pdf。

2020-01-09-16-13-32-.png

使用 markdown 作为种子,就可以生成多种文档格式,是不是还挺神奇的。

最后,本人一直在寻找一种比较好的记录笔记的方式,曾经是印象笔记的重度用户,但是由于印象笔记使用的是富文本编辑器,兼容性不好,和兼容性强大的 markdown 比起来就有些捉衿见肘。但不得不说的是,印象笔记的云端同步以及共享、跨平台还是很不错的。如果 markdown 来记录笔记,可以使用 github, coding, gitea,gitee 等作为托管平台,还附带版本控制,可以任意的回到任何版本的笔记,可保证笔记万无一失,再也不害怕误操作。

至此,本文主要介绍了一种高兼容性的文本标记语言 makrdown 及文档格式转换的瑞士军刀 pandoc,二者结合使用即实现一种高兼容度的通用文档解决方案,可以使用 markdown 完成大多数文档撰写工作,作为程序员更是在多数情况下都要使用 markdown 进行文档撰写,特别是在开源项目上。此外本文还提出可使用github等代码托管平台作markdown文档托管,并附带版本控制,提出一种几乎完美的笔记留存同步解决方案,本人一直在使用这种方案记录笔记,等时机成熟再撰文推荐。

使用markdown撰写源文档,可直接发布到博客平台,使用 pandoc 转换为docx格式就可以直接导入秀米进行排版,使用markdown甚至还可以直接撰写ppt(nodeppt),写代码也可以干得过写ppt的。本文若有疏漏或是不严谨之出敬请留言指出,若有好灵感好点子也欢迎留言交流,让我们共同发掘让工作生活更美好的方式。

拓展阅读

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容