怎麼把word轉成markdown
原文地址:
http://www.jianshu.com/p/b0be43b03015
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
其實折騰這個事情的初衷是因為想用markdown寫資料庫設計文件,而現在的資料庫設計文件是word版的。以前也嘗試過類似PowerDesigner(曾經的重度使用者,各種大型專案都是用這個,在哪個年代還是比較流行的)啊UML啊各種資料庫建模工具,說老實話,嚴謹是比較嚴謹,方便也還方便,可是裝起來實在太麻煩了,啟動成本也挺高的。
畢竟word文件沒法搞版本管理這種事嘛(當然,手工管理版本也算版本管理吧,但是兩個版本的差異維護那就太麻煩了),而且跟現在文件整合到git裡的潮流也不符合嘛。
也有很多人直接用SQL語句來當做資料庫設計文件,當然,寫寫欄位註釋,列舉一下列舉值是可以的,想做比較多的說明,帶些示例資料之類的,總感覺混進原始碼還是略有點麻煩。另外,由於是原始檔,高亮肯定是針對sql來的,其他所有文字都是註釋,完全沒法做格式化,閱讀起來不是很方便。
方案們
目前只研究了Mac下的方案:
- word-to-markdown,google用
word to markdown
搜出來第一個,看來這個名字起得好。用這個的話得裝個 - pandoc,這個就比較大名鼎鼎了
首先嚐試word-to-markdown
我用google搜到的第一個就是這個了,當然要試試。
坑:極度安全的Mac自帶Ruby
要玩gem,首先當然是上(Fan)套(Qiang)咯。連上vpn,然後:
$ gem install word-to-markdown
你以為這麼一句話就能搞定了嗎,那可真就太天真了。撞到最後一個premailer
開始報對gem資料夾沒有許可權的錯誤,查了查,其實就是Mac版自帶ruby版本的問題,不允許隨便裝東西,即便有sudo也不讓。
網上的解決方案是開機安住CMD+R
,把Integrity Protection
ok,那就rbenv走起吧
求助萬能的谷哥,提供了兩種選擇,rbenv
或者rvm
,看了一下,貌似rbenv
更加的handoff,而且提供Homebrew安裝,那就選它了。
$ brew update
$ brew install rbenv
然後官方說是要執行rbenv init
,執行一下說把下面這行加到.zshrc
裡去
eval "$(rbenv init -)"
然後重啟一下Terminal,
# 看看裝了些啥版本,system就是系統自帶的了
$ rbenv versions
# 然後看看當前的版本
$ rbenv version
# 看看能裝哪些版本
$ rbenv install list
最後隨便選了個2.3.0(其實也不是隨便選的,我這人就愛最新版,但2.4.0還在dev,就選這個次新版了)
$ rbenv install 2.3.0
$ rbenv global 2.3.0
這樣就把ruby命令替換成rbenv管理的版本了,各種gem install
也不會報什麼許可權錯誤啊操作不允許之類的了。
速度重灌word-to-markdown
$ gem install word-to-markdown
這次安裝過程果然順利,裝完執行:
$ w2m 1.docx
我勒個去,轉換結果直接輸出到命令行了,而且也貌似並沒有提供什麼引數來指定輸出檔案,官方的意思就是:我輸出到stdout了,剩下的你自己玩吧。
那就redirect一下吧
$ w2m 1.docx > 1.md
so easy嘛,順便說說這個redicrect
,有這麼幾種用法:
system_profiler > file.txt
>
take the output of system_profiler and save it to the file file.txt&>
The & tells the shell to redirect the standard output and standard error to the file.2>
If you want to just output standard error>>
appending to the existing file
大名鼎鼎的Pandoc
其實一開始只知道第一個方案,後來搜搜索的過程中居然發現大名鼎鼎的的Pandoc
也是能幹這個事情的,而且我在以前折騰Latex
的時候機子上已經裝過了(我TM是有多無聊)。
# Docx to markdown, including math:
$ pandoc -s example30.docx -t markdown -o example35.md
對Table轉換的表現
由於其實要要寫資料庫設計文件,所以我主要是比較關注對Table的轉換
word-to-markdown
轉出這麼個玩意兒
| **名稱** | **資料型別** | **預設值** | **說明** | **描述** |
| --- | --- | --- | --- | --- |
| id | int(11) |
| 主鍵 |
|
| f\_classify\_id | tinyint(2) |
| 一級分類id | act\_classify表的id |
| s\_classify\_id | tinyint(2) |
| 二級分類ID |
|
| count | int(11) |
| 命中次數 |
|
| date | date |
| 日期 | 單位:天 |
沒細看原始碼,這種轉換效果,估計對合並單元格的表格支援是有問題的(不過md的table本就不支援合併單單元格這麼複雜的玩意兒),很明顯的在不該換行的地方換行了。
Pandoc
其實pandoc並不支援markdown裡的table語法,只是吧表格轉換成了一個視覺上的表格。
**名稱** **資料型別** **預設值** **說明** **描述**
----------------- -------------- ------------ ------------ ---------------------
id int(11) 主鍵
f\_classify\_id tinyint(2) 一級分類id act\_classify表的id
s\_classify\_id tinyint(2) 二級分類ID
count int(11) 命中次數
date date 日期 單位:天
這就有點尷尬了,不過其實標準的md語法並不支援table,好吧,就這麼自我安慰好了。
結論
-
用
word-to-markdown
之後進一步手動編輯整理完善表格。 -
如果沒什麼特別要求,只是想把word轉成markdown看看,然後看著更方便的話,
pandoc
對table的轉換更具有可讀性,對一些不支援table語法轉換的markdown編輯器來說也更友好一些。
文/MArCo大叔(簡書作者)
原文連結:http://www.jianshu.com/p/b0be43b03015
著作權歸作者所有,轉載請聯絡作者獲得授權,並標註“簡書作者”。