Skip to main content

convert markdown wechat html. 转换Markdown文章为公众号可粘贴的HTML格式.

Project description

MaxPress:Markdown+Python实现微信公众号一键排版

原始README


基本功能

  1. 批量转换MarkDown文档为适合粘贴微信编辑器的HTML文件。
  2. 支持自定义:正文字号、文字颜色(正文颜色、主题色、引用色)、行间距、段间距、标题水平对齐方式、内容两侧留白比例、底部图片。
  3. 转换完成的MarkDown文档可以自动移动存档。

feature/cil 分支

  • 在原始项目基础上添加命令行工具,添加更方便的全局配置$HOME/.config/maxpress/
  • 转换单个文件后会自动在浏览器打开 HTML

格式调整

在运行转换程序之前,修改config.json文件,可自定义常用格式变量。

包括:

变量名 默认值 说明
main_size 16px 正文主字号
theme_color #349971 主题色,用于标题、强调元素等文字颜色
text_color #555 正文文字颜色
quote_color #999 引用框和代码框内文字颜色
line_height 2em 正文行高
para_spacing 1.5em 正文段间距
align 多项 各部分的水平对齐方式,建议leftcenterh1h6代表标题1~标题6,content代表正文)
main_margin 3% 内容两侧留白比例
banner_url "" 文章头部引导关注图片的url
poster_url "" 底部二维码/海报图片的地址
convert_list true 将正文中的列表转换为普通段落,以修正微信不能正常显示列表序号样式的问题(仅用于微信)
ul_style "○" 将无序列表转换为普通段落后,每项之前的符号标识(仅当convert_listtrue时启用)
auto_archive "" 是否自动存档(转换后将原始.md文件移动至result/archive目录下)
auto_rename false 冲突文件名的处理:true自动重命名;false覆盖先前的文件

备注:

  • 如果对自定义的要求不高,建议更换一下theme_color,其余可以采用默认配置。
  • 目前这版微信UI,貌似对所有列表序号都只能显示默认样式,即使把样式写进上级元素,粘贴进编辑器的时候也会被“洗掉”,目前尚未找到方法绕过此限制,因此添加convert_list选项作为临时解决方案,当此项为true时,正文中的所有列表(不包括代码块中的内容)会被转化为段首带序号的普通段落。注意,这种情况下,styles.less中专门为列表设置的样式将会失效。如果你有更好的办法,欢迎开issue告诉我。

更多自定义

  • 自定义 less 文件
    • <libroot>/maxpress/less/styles.less
    • $HOME/.config/maxpress/styles.less
    • --styless: 可传入多个,这时config.json中用于定义样式的参数将会失效,custom.css将在你的全部自定义样式表之后引入
  • 如果你希望覆盖默认样式中的个别样式,可以自主编写custom.css,它将在default.css之后被引入。
    • <libroot>/maxpress/css/custom.css
    • $HOME/.config/maxpress/custom.css

使用Python脚本【推荐】

如果你的计算机上装有Python环境,可以直接运行脚本。建议从Master分支获取最新稳定版本。

开发环境

使用Python 3.5.2开发,CSS样式表使用LESS编译。建议在Python 3环境下使用。

依赖的包:mistunepremailerlesscpy

快速安装依赖:pip install -r requirements.txt

运行

  • maxpress --help
  • python -m maxpress

或者作为模块导入:

import maxpress

maxpress.convert_all(archive=True, styles=None)
maxpress.convert_file(archive=True, styles=None)

带样式的列表粘贴到微信编辑器时,可能意外出现格式丢失的情况(貌似是微信的bug?),目前通过在每个li元素内额外添加一个span元素包装样式,暂时可以解决。但要注意,如果自定义样式的话,为li span所设置的字号、颜色等不能与上级元素完全一致,否则在粘贴到微信编辑器时会被自动去掉。

Reference

设计思路及部分默认样式参考了:

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

maxpress-0.2-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file maxpress-0.2-py3-none-any.whl.

File metadata

  • Download URL: maxpress-0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for maxpress-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3322b0396eab681483c0363b921828f38b57f1a3c652699385adb04c311d6210
MD5 ffe5f271f63988ae3f6260185c7cb0b9
BLAKE2b-256 332c3a07daf0ff15e9f4d9e2f45b962d8eeecb743706a455b49168c2c4c52d71

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page