美文网首页
写一个 Markdown 预览脚本

写一个 Markdown 预览脚本

作者: 明夷 | 来源:发表于2021-02-16 00:31 被阅读0次

Markdown 是一套轻量化标记语言,适用于撰写对排版不甚讲究的的文档。文档的写作者掌握 Markdown 标记的用法后,便可以使用任何一种纯文本编辑器撰写文档。这个过程不同于使用某种字处理或排版软件撰写文档。

如果暂时让时光倒退到计算机还没有参与排版印刷工作的时代,用 Markdown 标记写文章,得到的结果相当于文章的底稿,需要将其交给工人排版印刷,方能得到适合提供他人阅读的文章。如果使用某种字处理软件写文章,相当于写文章的人自己同时也肩负了排版印刷工作。虽说殊途同归,但是显然写底稿的时候不必在意排版印刷的事情,可以令人更能在写作上集中注意力 [1]

现在是计算机参与排版印刷工作的时代,谁负责将使用 Markdown 底稿变成适合提供他人阅读的文章呢?通常是由一个程序,将 Markdown 底稿转化成 HTML 文档——网页。我们上网,看到的一切,都是网页。

我在用 Emacs 编辑 Markdown 文档时,用 C-c C-c p 命令便可将 Markdown 文档转化为 HTML 文档,并自动打开网页浏览器将后者呈现出来,这个过程可称为 Markdown 文档预览。我用的能够将 Markdown 文档转化为 HTML 文档的程序是 pandoc,我的 Emacs 调用了这个程序。

Emacs 是如何调用的 pandoc,我不怎么关心。我考虑的问题是,用 bash 语言写一个脚本,调用 pandoc,将 Markdown 文档转化为临时的 HTML 文件,方便我随时查看 Markdown 文档对应的排版结果。

这个脚本的名字叫 yue,内容很简单 [2]

#!/bin/bash
NAME=${1%.md}
TMP_HTML=/tmp/${NAME}.html
pandoc -s --mathjax --metadata title="$NAME" $1 -o $TMP_HTML 
firefox $TMP_HTML

用法也很简单。假设用 yue 处理 foo.md,只需执行

$ yue foo.md

便可调用 firefox 打开 /tmp/foo.html 文件 [3]

yue 在调用 pandoc 时,考虑了对 Markdown 文档中的 LaTeX 数学公式的支持。

我执行

$ yue 用无.md

产生的网页如下图所示:

Markdown 预览示例

后来,我在 Emacs 的配置文件里定义了一个函数,它也叫 yue

;; markdown 预览
(defun yue ()
  (interactive)
  (start-process-shell-command "" nil (concat "yue " (buffer-name)))
)

于是,每当我在 Emacs 里执行 M-x yue 时,就会调用上述的 yue 脚本。由于我能够在 yue 脚本里对 pandoc 命令按我的需要予以定制,所以我觉得我的 yue 函数要比 Emacs 的 Markdown 模式提供的预览功能好很多。


  1. 除 Markdown 标记语言之外,还有许多其他标记语言可令人在写作时不需要考虑排版印刷工作,例如我一直都很喜欢的 TeX(LaTeX、ConTeXt 等)。

  2. 真正的 yue,要比文中的复杂一些,以后可能会更复杂,但图难于其易,为大于其细。

  3. 我是 firefox 浏览器的老用户。其他浏览器用户,可根据实际情况写这个脚本。此外,我用的系统是 Linux,每次重启系统时,/tmp 目录里的文件会自动被清除。其他系统用户也需要根据自己实际情况去构造临时的 HTML 文件。

相关文章

  • 写一个 Markdown 预览脚本

    Markdown 是一套轻量化标记语言,适用于撰写对排版不甚讲究的的文档。文档的写作者掌握 Markdown 标记...

  • sed 小魔法

    在写 Markdown 预览脚本时 [1][#fn1],遇到了一个小问题,如何将一段文本里的短横线替换成空格。例如...

  • 用Vim写markdown

    如何使用vim插件实时预览markdown文件 主要是使用一个叫markdown-preview的插件来实现预览,...

  • 如何实现将markdown文件实时转换为html文档

      在简书里写文章时,有个预览模式,左边用markdown语法写,右边能实时预览到最终效果,今天看到一个实现类似功...

  • 奇怪的按钮增加了

    最近在写关于 Markdown 的油猴脚本,需要做一个“复制 Markdown 链接”按钮。由于对任何 DOM 元...

  • 关于OmniMarkupPreviewer 404

    一直用Sublime Text 写Markdown,在前几天用OmniMarkupPreviewer 来预览文本...

  • markdown

    # my markdown 到底怎么预览

  • 简书如何切换到markdown写作模式

    步骤 1.在设置中选择markdown模式 2.新建文章,切换右上角到预览模式 附上markdown使用教程献给写...

  • 2018-08-08

    Sublime 配置markdown Sublime Text3 + Markdown + 实时预览 Markdo...

  • markdown

    vs code编辑markdown 实时预览

网友评论

      本文标题:写一个 Markdown 预览脚本

      本文链接:https://www.haomeiwen.com/subject/yaamxltx.html