【问题标题】:How can I convert Markdown documents to HTML en masse?如何将 Markdown 文档批量转换为 HTML?
【发布时间】:2008-08-20 20:33:28
【问题描述】:

我正在用 Markdown 编写一些文档,并为文档的每个部分创建一个单独的文件。我希望能够一次将所有文件转换为 HTML,但我找不到其他尝试过同样事情的人。我在 Mac 上,所以我认为一个简单的 bash 脚本应该能够处理它,但我从来没有在 bash 中做过任何事情,也没有任何运气。看起来写东西应该很简单,所以我可以运行:

markdown-batch ./*.markdown

有什么想法吗?

【问题讨论】:

    标签: bash markdown


    【解决方案1】:

    使用pandoc — 它是一个命令行工具,可让您从一种格式转换为另一种格式。此工具支持 Markdown 转 HTML 并返回。

    例如要从 Markdown 生成 HTML,请运行:

    pandoc -f markdown index.md > index.html
    

    【讨论】:

    • +1 for pandoc... 因为他是分段编写的,如果需要,请使用 pandoc 将必要的部分连接到一个 html 文件中。
    • for i in /some/directory/*.md; do pandoc -f markdown -t html -s "$i" > "$i".html; done; 转换某个文件夹内的所有文件。
    • 块代码的语法高亮:pandoc -s index.md -o index.html --metadata title="My Title" |参考 - Pandoc: Converting markdown to HTML, syntax highlighter
    • 请注意,Pandoc 支持多种 Markdown 变体,例如 CommonMark (commonmark)、GitHub-Flavored Markdown (gfm) 等。
    【解决方案2】:

    这就是你在 Bash 中的做法。

    for i in ./*.markdown; do perl markdown.pl --html4tags $i > $i.html; done;
    

    当然,您需要Markdown script

    【讨论】:

    • 这个解决方案很好,但是index.md 会变成index.md.html。如果你想让它变成index.html,使用这个:for i in ./*.md; do perl Markdown.pl --html4tags $i > output/${i%.*}.html; done;
    【解决方案3】:

    您可以使用 VS Code 轻松做到这一点。 (嗯,这不是一个命令行工具,但证明它非常有用。)

    • 安装 Yu Zhang 的 Markdown All In One 扩展
    • 打开 VS Code 命令面板 (Ctrl-Shift-P),然后选择 Markdown All In One: Print documents to HTML (select a source folder)
    • 提示:如果您想使您的导出可移植,您希望通过在settings.json 中使用以下设置将绝对图像路径更改为相对路径(Ctrl-Shift-P -> Preferences: Open Settings (JSON))李>
        "markdown.extension.print.absoluteImgPath": false
    

    这样,转换后,只需将所有非markdown文件(图片)复制到目标文件夹,HTML页面即可移植。

    【讨论】:

      【解决方案4】:

      我在 .bat 文件中使用它:

      @echo off
      for %i in (*.txt) python markdown.py "%i"
      

      【讨论】:

      • 你跑题了:这个问题被标记为bash
      【解决方案5】:

      // 在 mac 中使用 Bash

      for i in *.md; do asciidoc  $i;  done; 
      

      【讨论】:

      • 这并没有回答问题——问题是关于 Markdown,而不是关于 AsciiDoc(尽管两者相似)。此外,您必须引用$i,否则这不适用于名称中包含特殊字符的文件。
      猜你喜欢
      • 2021-03-18
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      相关资源
      最近更新 更多