1. 程式人生 > >在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) $< > [email protected] $(OBJECTS): %.html: %.md $(MD) $(MDFLAGS) -o [email protected] $< 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說用星號或下劃線都可以。但實際上,兩個都支援反倒會造成一些問題。比如有的地方用下劃線(粗體 -> 粗體),有的地方用星號(粗體* -> 粗體),看起來反倒混亂不堪(選星號*的另一個理由是下劃線在內容中出現的概率比星號高很多)。

建議圖靈社群的線上編輯系統指定其中一種,然後在例子中和線上編輯器裡都採用統一的一種,這樣大多數人一看就明白該用哪種了。

相關推薦

Linux使用Markdown行文工作

自從使用了markdown,做文件工作就很順手。我幾乎將工作中所有的文件工作都用markdown來完成。最近有了一些新的體驗,也發現了一些新的問題。 在Linux系統中,編輯markdown可以用retext工具: # Debian/Ubuntu sud

怎樣在Linux使用Markdown行文工作

AD stat rac 放置 pre inux 轉換 cli code 怎樣在Linux下使用Markdown進行文檔工作 在Linux系統中,編輯markdown

linux用scp命令在兩個服務器之間傳輸文,利用php_scp函數行文傳輸

evc 在操作 path send 返回值 遠程 false cal 上傳 在linux下利用scp進行文件傳輸, 從服務器下載文件 scp [email protected]/* */:/path/filename /path/filename 上傳

linux中用無名管道行文的讀寫

lin nbsp 例子 erro images 是什麽 管道 linux mage 1管道是什麽:   水管子大家知道,有兩端,在此一端用來讀一端用來寫,其中一端的輸出作為另外一端的輸入。 2 函數原型   int pipe(int pipefd[2]);//參數中分別代表

selenium-Python之行文的上傳和載文

auto sof 窗口 blog bsp 進行 文件 批量上傳文件 nbsp 在利用Selenium進行批量上傳文件時,遇到如下的Windows窗口進行上傳、下載操作時,可以通過pywinauto進行操作。上傳窗口如下 使用pywinauto,需知Windows窗口控件的

Shell腳本對Linux行文校驗

異常 pre grep -v for 正在 grep http one 檢測 一、需求 有客戶等保需求對文件一致性進行校驗,想到利用md5sum工具,因此寫腳本來對文件進行自定義掃描,後期可以利用其進行校驗,快速校驗文件發現變更的文件,一定程度及時發現等行為。 二、腳本 利

如何在區域網linux上部署onlyoffice行文協作

等了好久,這次終於下決心在區域網部署了linux系統,並安裝docker和load了onlyoffice,利用engineercms進行資料管理和文件協作。 我整理了完整文件,見我的網盤。 engineercms 0基礎安裝linux、onlyoffice和engineercms&n

LinuxLinux統計當前文的文個數、目錄個數

article logs 過濾 ref bash 輸出 子文件夾 http 輸出信息 統計當前文件夾下文件的個數,包括子文件夾裏的 ls -lR|grep "^-"|wc -l 統計文件夾下目錄的個數,包括子文件夾裏的 ls -lR|grep "^d"

Linux幾種文傳輸命令

其他 對待 的人 spa quit 配置 delete compute 服務器 Linux下幾種文件傳輸命令 sz rz sftp scp 最近在部署系統時接觸了一些文件傳輸命令,分別做一下簡單記錄: 1.sftp Secure Ftp 是一個基於SSH安全協議的文件傳輸管

利用loopj的android-async-http行文上傳

android 上傳文件 學習到了安卓上傳文件了!!! 在Android端,用到的是android-async-http框架, github地址為:https://github.com/koush/AndroidAsync/ 在AS中搭建該框架超級簡單,只需要在build.gradle中加

linuxC獲取文的大小

錯誤代碼 返回 system sys string 文件系統 識別碼 連接 chm 獲取文件大小這裏有兩種方法: 方法一、 範例: unsigned long get_file_size(const char *path) { unsigned lo

Python with open來行文操作

col 操作 關心 同時 文件 Coding enc pytho spa #可以進行多個文件同時打開,並且不用關心文件有關閉的問題 # with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as f,open(‘b.txt‘) as f1:

Linux查看文編碼及修改編碼

tar enca strong lin help 添加 解決 讀取 列表 查看文件編碼在Linux中查看文件編碼可以通過以下幾種方式:1.在Vim中可以直接查看文件編碼:set fileencoding即可顯示文件編碼格式。如果你只是想查看其它編碼格式的文件或者想解決用Vi

linux拷貝隱藏文

home pop fig linux net conf sysconfig strong class 1、拷貝隱藏文件 把/home/u文件夾中的全部文件(包含隱藏文件)拷貝到/home/user1中 cp -a /home/u/. /hom

Linux批量修改文名(rename)

批量修改 rename1.rename命令批量修改文件名, 其實Linux下可以使用別的辦法來批量修改文件名, 不過rename實在太方便了比如把所有的表為cdb1_* 修改為cdb_*的在本目錄下只需要# rename ‘cdb1‘ ‘cdb‘ *以前都是寫個for循環來做...想想多傻啊, 呵呵ren

簡單利用filetype行文上傳

filetype webshell 文件上傳 對於文件上傳大家都很熟悉了,畢竟文件上傳是獲取webshell的一個重要方式之一,理論性的東西參考我的另一篇匯總文章《淺談文件解析及上傳漏洞》,這裏主要是實戰補充一下理論內容——filetype漏洞! filetype漏洞主要是針對conte

Linux 的模擬器硬加速

DDU gre ins www 其他 install 打印 gen 樂趣 Intel 提供了一個叫HAXM 的虛擬硬件加速技術,全稱為:Intel Hardware Accelerated Execution Manager. 只要你的 CPU 是 intel 的產品並且支

Linux搜索文命令whereis/which/find/locate

interface 進行 指定 轉義 exp -m 變量 -c usr 1.whereis whereis who whereis 只能搜索二進制文件(-b),man 幫助文件(-m)和源代碼文件(-s) 2.locate 所以有時候你剛添加的文件,它可能會找不到,需要手動

RandomAccessFile類行文加密

int 緩沖 stat rda 文件讀寫 des found port courier 文件加密/解密示例。 package io; import java.io.*; public class encrypt { private File file; //存儲

Webstorm/Phpstorm中設置連接FTP,並快速行文比較,上傳下載,同步等操作

webstorm pwd 服務 誤操作 一份 分享 mod compare connect Phpstorm除了能直接打開localhost文件之外,還可以連接FTP,除了完成正常的數據傳遞任務之外,還可以進行本地文件與服務端文件的異同比較,同一文件自動匹配目錄上傳,下載,