Typora 突然要收費了,原先我用這個工具來將一些用 markdown 寫的文件轉換成 pdf 版本,現在要找個替代方案了。

前言

老實說,軟體業的商業模式真的頗難。前些陣子 HackMD 也是提出了 Prime 方案 1,主打一些免費版沒有的進階功能,但是免不了的那些免費仔還是佔多數 (包括目前覺得那些功能可有可無的我)。Typora 直接將 stable 版本轉成必須付費才能使用,這兩種我個人覺得都各有優缺,畢竟生存下去的才是贏家。不過使用者付費的意識逐漸抬頭,這類情況應該會越來越常發生,請珍惜目前能使用到的免費服務,若能接受這些收費軟體也歡迎付費支持。延伸閱讀: Benson的跨域商業人生 - 開源軟體的商業模式分析 (三)

https://typora.io/#download

https://typora.io/#download

OuO

由於我個人只是懶得為了轉換成 pdf 而用 word 打文件,所以替代方案算是很容易找。本篇將使用 VSCode 的一款 Extension 來達成 markdown 轉 PDF 的功能。

Markdown in VSCode

VSCode 中編輯 markdown 雖然不能像 Typora 那樣幾乎所見即所得 2,不過能夠及時渲染算是相當堪用。

OuO

Convert to PDF

這裡使用的工具是 yzane.markdown-pdf,下載後可以做一些設定 (建議使用 global settings.json,workspace 有時候可以有時候不行) 如下使其產生的檔案跟 github 渲染的結果類似。其中 “markdown-pdf.styles” 所需要的 “github.css” 可以到 tuzz/github.css 拿到,並放在跟 “.md” 同一個路徑。

{
    // ... other settings in settings.json
    "markdown-pdf.highlightStyle": "./github.css",
    "markdown-pdf.breaks": true,
    "markdown-pdf.headerTemplate": "<!--<div style=\"font-size: 9px; margin-left: 1cm;\"> <span class='title'></span></div> <div style=\"font-size: 9px; margin-left: auto; margin-right: 1cm; \"> <span class='date'></span></div>-->",
    "markdown-pdf.stylesRelativePathFile": true,
    "markdown-pdf.styles": [
        "./github.css"
    ]
    // ...
}
  • breaks: 預設 markdown 要兩個空格才換行,設定成 true 可以在 markdown 換行時就在 pdf 產生換行
  • headerTemplate 原先會在每一頁的 header 產生檔名,我的設定把它移除,詳細設定可以參考該工具網站

另外,附上我微調過的 “github.css”,有以下調整:

  • Add support for chinese font
  • Force the color of single code block e.g., x, to black

轉換時使用 Ctrl-Shift-P 使用 markdown pdf: export (pdf)

OuO

簡單範例轉換結果

簡單範例轉換結果

OuO

注意事項

  • 沒有 footnote 功能
  • footer 會自動產生頁碼,這點很棒
  • 螢光筆標示要從 ==XXX== 改成 <mark>XXX</mark>
  • 強制換頁可以使用 <div class="page"/>
  • 網址部分不會自動產生連結,所以 https://aben20807.github.io/ 要改成 [https://aben20807.github.io/](https://aben20807.github.io/)

Footnotes

  1. HackMD Prime 個人方案 詳細介紹 ↩︎

  2. WYSIWYG ↩︎

  • ⊛ Back to top
  • ⊛ Go to bottom