怎么把word转成markdown

作者: MArCo大叔 | 来源:发表于2016-04-21 10:43 被阅读10995次

其实折腾这个事情的初衷是因为想用markdown写数据库设计文档,而现在的数据库设计文档是word版的。以前也尝试过类似PowerDesigner(曾经的重度使用者,各种大型项目都是用这个,在哪个年代还是比较流行的)啊UML啊各种数据库建模工具,说老实话,严谨是比较严谨,方便也还方便,可是装起来实在太麻烦了,启动成本也挺高的。

毕竟word文档没法搞版本管理这种事嘛(当然,手工管理版本也算版本管理吧,但是两个版本的差异维护那就太麻烦了),而且跟现在文档整合到git里的潮流也不符合嘛。

也有很多人直接用SQL语句来当做数据库设计文档,当然,写写字段注释,列举一下枚举值是可以的,想做比较多的说明,带些示例数据之类的,总感觉混进源码还是略有点麻烦。另外,由于是源文件,高亮肯定是针对sql来的,其他所有文本都是注释,完全没法做格式化,阅读起来不是很方便。

方案们

目前只研究了Mac下的方案:

  1. word-to-markdown,google用word to markdown搜出来第一个,看来这个名字起得好。用这个的话得装个LibreOffice
  2. pandoc,这个就比较大名鼎鼎了
  3. unoconv介绍

首先尝试word-to-markdown

我用google搜到的第一个就是这个了,当然要试试。

坑:极度安全的Mac自带Ruby

要玩gem,首先当然是上(Fan)套(Qiang)咯。连上vpn,然后:

$ gem install word-to-markdown

你以为这么一句话就能搞定了吗,那可真就太天真了。撞到最后一个premailer开始报对gem文件夹没有权限的错误,查了查,其实就是Mac版自带ruby版本的问题,不允许随便装东西,即便有sudo也不让。

网上的解决方案是开机安住CMD+R,把Integrity Protection禁用,然后进系统装不能装的gem,然后再回去把它启用。这方案麻烦不说,其实还是在系统的gem库里加了也许就只会用那么一两次的不该加的东西,各种不安嘛,这方案明显不符合我的审美。

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
  1. > take the output of system_profiler and save it to the file file.txt
  2. &> The & tells the shell to redirect the standard output and standard error to the file.
  3. 2> If you want to just output standard error
  4. >> appending to the existing file

大名鼎鼎的Pandoc

其实一开始只知道第一个方案,后来搜搜索的过程中居然发现大名鼎鼎的的Pandoc也是能干这个事情的,而且我在以前折腾Latex的时候机子上已经装过了(我TM是有多无聊)。

# Docx to markdown, including math:
$ pandoc -s example30.docx -t markdown -o example35.md

更多的Pandoc转换命令

对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,好吧,就这么自我安慰好了。

结论

  1. word-to-markdown之后进一步手动编辑整理完善表格。

  2. 如果没什么特别要求,只是想把word转成markdown看看,然后看着更方便的话,pandoc对table的转换更具有可读性,对一些不支持table语法转换的markdown编辑器来说也更友好一些。

相关文章

  • 怎么把word转成markdown

    其实折腾这个事情的初衷是因为想用markdown写数据库设计文档,而现在的数据库设计文档是word版的。以前也尝试...

  • 使用Pandoc把markdown批量转成Word

    1、下载Pandoc,Windows下载msi的比较方便,直接就可以安装了,如图的那个。(下一步安装就可以了) 2...

  • 怎么把PDF转成Word呢?

    如何把PDF文件转换成Word文件? 相信大家经常遇到这个问题。 正好前两天,小然也遇到这个问题。这次,我们就一起...

  • PPT-Lecture03-把word处理成PPT

    关键点:使用word自带的"发送到PPT"功能,即可将word转成PPT 1、把word转成PPT 要点:使用wo...

  • markdown 格式转成 word 格式

    markdown格式用起来特别方便,但是当文档需要对外发布时,使用markdown格式不是很正式.通常需要转换成w...

  • 姬营杰:怎么把PDF转成Word

    最头疼的,就是不知道怎么把PDF转成Word,偏偏还必须把换成Word,才能进行下一步操作,烦人。不会转PDF,就...

  • pdf转成word后还是不能编辑

    pdf转成word后还是不能编辑,怎么处理?pdf转成word后还是不能编辑的原因应该是pdf文件的源文件没有确定...

  • pdf转成word乱码怎么办

    pdf转成word乱码怎么办?我们常常在pdf文件的处理时,会用到pdf转换器软件对pdf文件进行转成word处理...

  • pdf转成word乱码怎么办

    pdf转成word乱码怎么办?我们常常在pdf文件的处理时,会用到pdf转换器软件对pdf文件进行转成word处理...

  • ppt怎么转成word

    PPT怎么转成Word,虽然这两种文件看似没有什么太大的关联,但是在很多工作中,往往都会把PPT文件转成Word文...

网友评论

  • 疯狂的窜天猴:word里有图片的话,图片地址在哪找
  • zzz雪人:不太敢用你的script。。。
    MArCo大叔:所以你是觉得有毒?
  • jeffery9:markdown 只支持 pipe_table. 所以 pandoc 转换时,需要 将其他的 table样式 去掉, 例如 使用 参数 -t markdown-simple_tables-multiline_tables+pipe_tables-grid_tables
    MArCo大叔:厉害了
  • 风雷云电:楼主你这个态度兄弟我认为非常的赞哈哈!
  • 69ae657ede49:pandoc: couldn't parse docx file
    CallStack (from HasCallStack):
    error, called at src/Text/Pandoc/Error.hs:55:28 in pandoc-1.19.2.1-J1nmFBg9ln971v0RrPbKLJ:Text.Pandoc.Error

    pandoc文档解析失败:joy:
  • bd124d910b81:w2m ./Downloads/testdoc3.docx > APP.md
    /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown/document.rb:92:in `raw_html': Failed to convert /Users/umi/Downloads/testdoc3.docx (WordToMarkdown::Document::ConverstionError)
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown/document.rb:59:in `normalized_html'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown/document.rb:21:in `tree'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown/converter.rb:78:in `semanticize_font_styles!'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown/converter.rb:18:in `convert!'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/lib/word-to-markdown.rb:45:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/bin/w2m:14:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/word-to-markdown-1.1.7/bin/w2m:14:in `<top (required)>'
    from /usr/bin/w2m:23:in `load'
    from /usr/bin/w2m:23:in `<main>'
    出现这么个错大神指教下
  • 4e9650ccb1fa:gem install word-to-markdown加上sudo就成功了

本文标题:怎么把word转成markdown

本文链接:https://www.haomeiwen.com/subject/uiuwxttx.html