Skip to content

dieforfree/md2zhihu

 
 

Repository files navigation

md2zhihu

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

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

Install

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]}的分支来保存所有图片.

Requirements

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

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 %}. 这部分文本目前需要导入后手动删除或修改.

About

convert markdown to zhihu compatible format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.4%
  • Other 0.6%