跳转到主要内容

GitHub cmark分支的最小绑定

项目描述

对GitHub的cmark分支的简约Python绑定。

安装

此包作为cmarkgfm发布在PyPI上,可以使用pippipenv进行安装

pip install --user cmarkgfm
pipenv install cmarkgfm

为macOS、Linux和Windows提供了Python 3.6、3.7、3.8、3.9、3.10和3.11的wheel。

用法

高级用法非常简单。要渲染普通CommonMark标记

import cmarkgfm

html = cmarkgfm.markdown_to_html(markdown_text)

要渲染GitHub风味标记

import cmarkgfm

html = cmarkgfm.github_flavored_markdown_to_html(markdown_text)

高级用法

选项

两种渲染方法 markdown_to_htmlgithub_flavored_markdown_to_html 都有一个可选的 options 参数,可以用来激活 cmark的选项。例如

import cmarkgfm
from cmarkgfm.cmark import Options as cmarkgfmOptions

options = (
    cmarkgfmOptions.CMARK_OPT_GITHUB_PRE_LANG
    | cmarkgfmOptions.CMARK_OPT_SMART
)
html = cmarkgfm.markdown_to_html(markdown_text, options)

选项有

选项

效果

CMARK_OPT_UNSAFE (>=0.5.0)

允许渲染不安全的HTML和链接。

CMARK_OPT_SAFE (<0.5.0)

防止渲染不安全的HTML和链接。

CMARK_OPT_SMART

渲染弯引号、连字符、省略号

CMARK_OPT_NORMALIZE

合并相邻的文本节点。

CMARK_OPT_HARDBREAKS

在段落中渲染换行符为<br>

CMARK_OPT_NOBREAKS

将软换行符渲染为空格。

CMARK_OPT_SOURCEPOS

向HTML标签添加data-sourcepos,指示输入中的对应行/列范围

CMARK_OPT_FOOTNOTES

解析脚注。

CMARK_OPT_VALIDATE_UTF8

在解析之前验证输入中的UTF-8,将非法序列替换为替换字符U+FFFD。

CMARK_OPT_GITHUB_PRE_LANG

使用GitHub样式的代码块标签。

CMARK_OPT_LIBERAL_HTML_TAG

在解释内联HTML标签时更加宽容。

CMARK_OPT_STRIKETHROUGH_DOUBLE_TILDE

只有当删除线被恰好两个波浪号包围时才解析删除线。与redcarpet有一定的兼容性。

CMARK_OPT_TABLE_PREFER_STYLE_ATTRIBUTES

使用样式属性来对齐表格单元格,而不是使用对齐属性。

不安全的渲染

从0.5.0版本开始,默认行为是安全的。在早期版本中,默认行为是不安全的,如下所述。要从0.5.0版本开始渲染可能的不安全HTML,请传递CMARK_OPT_UNSAFE选项。

CommonMark可以渲染可能的不安全HTML,包括原始HTML、原始JavaScript和可能的不安全链接(包括运行脚本的链接)。虽然github_flavored_markdown_to_html阻止了某些原始HTML标签(包括script)的渲染,但它不会阻止链接中的不安全URL。

因此建议在渲染方法中启用SAFE选项。安全选项不会渲染原始HTML或可能危险的不安全URL。(原始HTML被替换为占位符注释;可能危险的不安全URL被替换为空字符串。)危险URL以javascript:、vbscript:、file:或data:开始(除了image/png、image/gif、image/jpeg或image/webp MIME类型)。为此,请使用

# cmarkgfm<0.5.0
import cmarkgfm
from cmarkgfm.cmark import Options as cmarkgfmOptions

html = cmarkgfm.markdown_to_html(markdown_text, options=cmarkgfmOptions.CMARK_OPT_SAFE)
# or
html = cmarkgfm.github_flavored_markdown_to_html(markdown_text, options=cmarkgfmOptions.CMARK_OPT_SAFE)

如果您信任markdown文本不包含任何不安全的标签和链接,则可以跳过此步骤。

贡献

欢迎拉取请求。 :)

许可证

本项目受MIT许可协议保护。它包括在此源树中third_party目录下受不同版权保护的组件。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

cmarkgfm-2024.1.14.tar.gz (146.7 kB 查看哈希值)

上传时间

构建分发

cmarkgfm-2024.1.14-cp312-cp312-win_amd64.whl (127.3 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

cmarkgfm-2024.1.14-cp312-cp312-win32.whl (116.8 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

cmarkgfm-2024.1.14-cp312-cp312-musllinux_1_1_x86_64.whl (438.6 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp312-cp312-musllinux_1_1_i686.whl (409.9 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp312-cp312-musllinux_1_1_aarch64.whl (429.8 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (445.4 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (440.1 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (418.3 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp312-cp312-macosx_11_0_arm64.whl (124.2 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

cmarkgfm-2024.1.14-cp312-cp312-macosx_10_9_x86_64.whl (126.0 kB 查看哈希值)

上传时间 CPython 3.12 macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp311-cp311-win_amd64.whl (127.3 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

cmarkgfm-2024.1.14-cp311-cp311-win32.whl (116.8 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86

cmarkgfm-2024.1.14-cp311-cp311-musllinux_1_1_x86_64.whl (437.8 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp311-cp311-musllinux_1_1_i686.whl (409.2 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp311-cp311-musllinux_1_1_aarch64.whl (429.1 kB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.8 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.5 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (417.7 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp311-cp311-macosx_11_0_arm64.whl (124.1 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

cmarkgfm-2024.1.14-cp311-cp311-macosx_10_9_x86_64.whl (126.0 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp310-cp310-win_amd64.whl (127.3 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

cmarkgfm-2024.1.14-cp310-cp310-win32.whl (116.8 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86

cmarkgfm-2024.1.14-cp310-cp310-musllinux_1_1_x86_64.whl (437.7 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp310-cp310-musllinux_1_1_i686.whl (409.1 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp310-cp310-musllinux_1_1_aarch64.whl (429.1 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.8 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.5 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (417.7 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp310-cp310-macosx_11_0_arm64.whl (124.1 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

cmarkgfm-2024.1.14-cp310-cp310-macosx_10_9_x86_64.whl (126.0 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp39-cp39-win_amd64.whl (127.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

cmarkgfm-2024.1.14-cp39-cp39-win32.whl (116.8 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

cmarkgfm-2024.1.14-cp39-cp39-musllinux_1_1_x86_64.whl (437.7 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp39-cp39-musllinux_1_1_i686.whl (409.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp39-cp39-musllinux_1_1_aarch64.whl (429.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.8 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.5 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (417.7 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp39-cp39-macosx_11_0_arm64.whl (124.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

cmarkgfm-2024.1.14-cp39-cp39-macosx_10_9_x86_64.whl (126.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp38-cp38-win_amd64.whl (127.3 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

cmarkgfm-2024.1.14-cp38-cp38-win32.whl (116.8 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

cmarkgfm-2024.1.14-cp38-cp38-musllinux_1_1_x86_64.whl (438.2 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp38-cp38-musllinux_1_1_i686.whl (409.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp38-cp38-musllinux_1_1_aarch64.whl (429.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.9 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.7 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (417.9 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp38-cp38-macosx_11_0_arm64.whl (124.1 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

cmarkgfm-2024.1.14-cp38-cp38-macosx_10_9_x86_64.whl (126.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp37-cp37m-win_amd64.whl (127.3 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

cmarkgfm-2024.1.14-cp37-cp37m-win32.whl (116.8 kB 查看哈希值)

上传于 CPython 3.7m Windows x86

cmarkgfm-2024.1.14-cp37-cp37m-musllinux_1_1_x86_64.whl (437.5 kB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp37-cp37m-musllinux_1_1_i686.whl (409.0 kB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp37-cp37m-musllinux_1_1_aarch64.whl (428.9 kB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.7 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (439.3 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (417.5 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp37-cp37m-macosx_10_9_x86_64.whl (125.9 kB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

cmarkgfm-2024.1.14-cp36-cp36m-win_amd64.whl (139.1 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

cmarkgfm-2024.1.14-cp36-cp36m-win32.whl (124.4 kB 查看哈希值)

上传于 CPython 3.6m Windows x86

cmarkgfm-2024.1.14-cp36-cp36m-musllinux_1_1_x86_64.whl (438.1 kB 查看哈希)

上传于 CPython 3.6m musllinux: musl 1.1+ x86-64

cmarkgfm-2024.1.14-cp36-cp36m-musllinux_1_1_i686.whl (408.9 kB 查看哈希)

上传于 CPython 3.6m musllinux: musl 1.1+ i686

cmarkgfm-2024.1.14-cp36-cp36m-musllinux_1_1_aarch64.whl (428.7 kB 查看哈希)

上传于 CPython 3.6m musllinux: musl 1.1+ ARM64

cmarkgfm-2024.1.14-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (444.6 kB 查看哈希)

上传于 CPython 3.6m manylinux: glibc 2.17+ x86-64

cmarkgfm-2024.1.14-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (438.8 kB 查看哈希)

上传于 CPython 3.6m manylinux: glibc 2.17+ ARM64

cmarkgfm-2024.1.14-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (416.5 kB 查看哈希)

上传于 CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

cmarkgfm-2024.1.14-cp36-cp36m-macosx_10_9_x86_64.whl (126.2 kB 查看哈希)

上传于 CPython 3.6m macOS 10.9+ x86-64

由以下机构支持