Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?

md2zhihu

将markdown转换成 知乎 兼容的 markdown 格式

md源文件 导入知乎的效果
使用前
转换后

Install

System requirement: MaxOS

# For rendering table to html
brew install pandoc imagemagick node
npm install -g @mermaid-js/mermaid-cli
pip install md2zhihu

Usage

md2zhihu your_great_work.md

这个命令将markdown 转换成 知乎 文章编辑器可直接导入的格式, 存储到 _md2/your_great_work/your_great_work.md, 然后将图片等资源上传到当前目录所在的git_md2zhihu分支. 转换后的markdown文档不依赖任何本地的图片文件或其他文件.

  • -d 指定输出目录, 默认为./_md2/; 所有文章都会保存在这个目录中, 名为<article_name> 的md转换之后保存在_md2/zhihu/<article_name>/ 目录中, 包括一个名为<article_name>.md 的md文件以及所有使用的图片等在同一个目录下.

    转换后所有输出内容将会push到-r指定的git repo中或当前目录下的git的repo中.

  • -r 指定用于存储图片等资源的git repo url和上传的分支名; 要求是对这个repo有push权限.

    例如要将图片等上传到github.com/openacid/foo项目中的bar分支:

    md2zhihu great.md -r https://github.com/openacid/foo.git@bar
    

    默认使用当前目录下的git配置, (作者假设用户用git来保存自己的工作:DDD), 如果没有指定分支名, md2zhihu 将建立一个_md2zhihu_{cwd_tail}_{md5(cwd)[:8]}的分支来保存所有图片.

使用 github-action 远程转换, 适合 Windows 用户

md2zhihu 不支持windows, 可以通过github-action来实现远程转换:

Features

  • 公式转换:

    例如 $$ ||X{\vec {\beta }}-Y||^{2} $$ 转换成可以直接被知乎使用的tex渲染引擎的引用:

    <img src="https://www.zhihu.com/equation?tex=||X{\vec {\beta }}-Y||^{2}\\" ...>
    
  • 自动识别block的公式和inline的公式.

  • 表格: 将markdown表格转换成html 以便支持知乎直接导入.

  • 图片: md2zhihu 将图片上传到github, 并将markdown中的图片引用做替换.

  • mermaid: 将mermaid语法渲染成图片, 并上传. 例如:

    graph LR
        A[Hard edge] -->|Link text| B(Round edge)
        B --> C{Decision}
        C -->|One| D[Result one]
        C -->|Two| E[Result two]
    
    Loading

    转换成:

  • 链接列表: 将 markdown 的 reference-style link 转成链接列表:

    源文件 转换后 导入后

Limitation

  • 知乎的表格不支持table cell 中的markdown格式, 例如表格中的超链接, 无法渲染, 会被知乎转成纯文本.
  • md2zhihu 无法处理jekyll/github page的功能标签例如 {% octicon mark-github height:24 %}. 这部分文本目前需要导入后手动删除或修改.