如何在Linux下使用Markdown進行文件工作
如何在Linux下使用Markdown進行文件工作
自從使用了markdown,做文件工作就很順手。我幾乎將工作中所有的文件工作都用markdown來完成。最近有了一些新的體驗,也發現了一些新的問題。
在Linux系統中,編輯markdown可以用retext工具:
# Debian/Ubuntu sudo apt-get install retext retext Release-Notes.md
要將markdown檔案轉換成html檔案,可以用discount或python-markdown軟體包提供的markdown:
# Debian/Ubuntu sudo apt-get install discount
或:
# Debian/Ubuntu sudo apt-get install python-markdown
轉換工作很簡單:
# 用discount提供的markdown工具 markdown -o Release-Notes.html Release-Notes.md # 用python-markdown提供的markdown_py工具 markdown_py -o html4 Release-Notest.md > Release-Notes.html
如果要生成PDF,也很簡單,可以用python-pisa提供的xhtml2pdf:
# Debian/Ubuntu sudo apt-get install python-pisa # 將html轉換成PDF xhtml2pdf --html Release-Notes.html Release-Notes.pdf
所以,你可以在文件目錄下放置這樣一個Makefile來自動這個過程:
# Makefile MD = markdown MDFLAGS = -T H2P = xhtml2pdf H2PFLAGS = --html SOURCES := $(wildcard *.md) OBJECTS := $(patsubst %.md, %.html, $(wildcard *.md)) OBJECTS_PDF := $(patsubst %.md, %.pdf, $(wildcard *.md)) all: build build: html pdf pdf: $(OBJECTS_PDF) html: $(OBJECTS) $(OBJECTS_PDF): %.pdf: %.html $(H2P) $(H2PFLAGS) $< > $@ $(OBJECTS): %.html: %.md $(MD) $(MDFLAGS) -o $@ $< clean: rm -f $(OBJECTS)
這樣你就可以通過簡單的一個命令生成當前目錄下所有md檔案的pdf或html輸出了:
# html 輸出 make html # pdf輸出 make pdf
這裡有個問題是如果markdown的內容是中文,那麼轉換出來的html在瀏覽器中開啟就無法自動識別編碼,pdf更慘,直接是一堆亂碼。這時我們可以藉助markdown對html標記的支援來在markdown檔案中加入編碼資訊。例如我們要將markdown轉換為html4檔案,可以在檔案的開頭加上meta標記,指明編碼格式:
sed -i '1i\<meta http-equiv="content-type" content="text/html; charset=UTF-8">' *.md
這樣就可以了。另外,最近使用圖靈社群的編輯系統時,markdown會時不時將下劃線(_)當作斜體的標記,結果函式名就成了這樣的:
# 實際上是ssl_use_cabundle sslusecabundle
我建議斜體字標記採用單個星號(*),加粗字型採用兩個星號(**),這樣使用起來就方便多了。當然,這個問題本身在於markdown說用星號或下劃線都可以。但實際上,兩個都支援反倒會造成一些問題。比如有的地方用下劃線(__粗體__ -> 粗體),有的地方用星號(**粗體** -> 粗體),看起來反倒混亂不堪(選星號*的另一個理由是下劃線在內容中出現的概率比星號高很多)。
建議圖靈社群的線上編輯系統指定其中一種,然後在例子中和線上編輯器裡都採用統一的一種,這樣大多數人一看就明白該用哪種了。
作者:武海峰(ID:acid-free),開源軟體擁護者;關注Linux系統構建及部署、Ruby on Rails開發和移動應用開發。轉載請註明出處和作者。
相關文章
- 如何在 Linux下進行檔案切割操作?Linux
- 如何在windows下進行LINUX虛擬機器搭建WindowsLinux虛擬機
- 在Linux中,如何在Linux中使用LXD進行容器管理?Linux
- 如何在 Linux/Windows/MacOS 上使用 .NET 進行開發LinuxWindowsMac
- 如何在Linux下使用rsyncLinux
- 使用 VS Code + Markdown 編寫 PDF 文件
- znai: 使用Markdown編寫Java文件系統AIJava
- 如何在 Linux 上 使用 ONLYOFFICE 協同編輯文件Linux
- Linux C 下使用openssl 進行SHA1加密Linux加密
- 如何在Linux中進行檔案切割操作?Linux
- 如何在Linux中複製文件Linux
- Markdown 利用HTML進行優雅排版HTML
- mindmaster匯出markdown文件AST
- 在Linux中,什麼是埠掃描?如何使用工具如nmap進行埠掃描?Linux
- 如何在 Linux 中使用 Asciinema 進行錄製和回放終端會話LinuxASCII會話
- 直接進行linux的安裝工作(轉)Linux
- linux環境下使用jmeter進行分散式測試LinuxJMeter分散式
- Linux或者國產OS下使用HHDESK進行檔案管理Linux
- 使用 pandoc 將 Markdown 轉換為格式化文件
- 使用【APIDOC】生成JavaWeb的API文件(HTML,MarkDown,PDF)APIJavaWebHTML
- 使用mysql_markdown_win工具實現生成mysql文件MySql
- 如何在 Linux 上用 Markdown 編寫電影劇本Linux
- 如何在Windows上使用Python進行開發WindowsPython
- Element 文件中的 Markdown 解析
- 使用JAXP對xml文件進行DOM解析基礎XML
- Linux 下使用 dd 命令進行硬碟 I/O 效能檢測Linux硬碟
- 使用指令碼進行 SAP Spartacus 安裝工作指令碼
- MarkDown/reST 文件釋出流水線REST
- 如何在turbo linux es10下進入單使用者模式,當系統不能正常進入時!!Linux模式
- Markdown 版本演進
- 序列控制檯如何在 Linux 上工作?Linux
- 如何在Windows下使用DOS命令進入MySQL資料庫?WindowsMySql資料庫
- 使用sftp從獲取 linux 下的文件到windowsFTPLinuxWindows
- Linux下使用pv監控進度Linux
- 教你如何在SDK開發使用美團Robust進行熱更新
- linux下如何使用檔案來模擬硬碟進行ASM測試Linux硬碟ASM
- linux下 libusb使用--開啟usb裝置進行通訊Linux
- 使用代理上網的情況下,如何在 cmd 下執行 mvn?