convert markdown wechat html. 转换Markdown文章为公众号可粘贴的HTML格式.
Project description
MaxPress:Markdown+Python实现微信公众号一键排版
基本功能
- 批量转换MarkDown文档为适合粘贴微信编辑器的HTML文件。
- 支持自定义:正文字号、文字颜色(正文颜色、主题色、引用色)、行间距、段间距、标题水平对齐方式、内容两侧留白比例、底部图片。
- 转换完成的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 | 多项 | 各部分的水平对齐方式,建议left 或center (h1 ~h6 代表标题1~标题6,content 代表正文) |
main_margin | 3% | 内容两侧留白比例 |
banner_url | "" | 文章头部引导关注图片的url |
poster_url | "" | 底部二维码/海报图片的地址 |
convert_list | true | 将正文中的列表转换为普通段落,以修正微信不能正常显示列表序号样式的问题(仅用于微信) |
ul_style | "○" | 将无序列表转换为普通段落后,每项之前的符号标识(仅当convert_list 为true 时启用) |
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环境下使用。
依赖的包:mistune, premailer, lesscpy
快速安装依赖: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
Release history Release notifications | RSS feed
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.2-py3-none-any.whl
(13.3 kB
view details)
File details
Details for the file maxpress-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: maxpress-0.2.2-py3-none-any.whl
- Upload date:
- Size: 13.3 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 121ccee465c9cf01cb00c69a9dff8f6329c82f140b01d1f76751bf13c1c4931c |
|
MD5 | 5aea22460d580294203b004007c4926a |
|
BLAKE2b-256 | f5c3347d8f8d4633dd261b82a56cec8e60e881f13884477f9c953fdf33e0d0b8 |