一个用于在字符串中查找HTML的Python库
项目描述
markdown-html-finder 
一个用于在markdown文本中定位HTML标签的Python库。这个库是用Rust编写的,并为Python提供了绑定。
为什么?
为了一个独立项目,我需要定位markdown文档中的HTML注释。遗憾的是,我找到的Python markdown解析器没有提供节点信息的span信息。
虽然向现有的Python markdown解析器添加一些功能可能不会太难,但我认为看看Rust如何从Python中使用会很有趣。优秀的pulldown-cmark crate为HTML元素提供了span信息,所以这就是我们在这里使用的方法。
pyo3和maturin负责将Python绑定并提供用于在PyPi上分发的wheel文件。
安装
# poetry
poetry add markdown-html-finder
# pip
pip install markdown-html-finder
用法
from markdown_html_finder import find_html_positions
DOCUMENT = """\
# example markdown document
Amet nobis et numquam qui. Animi perferendis quia qui ut aut expedita. Ut eveniet quia quaerat.
<!-- hello world -->
Quisquam et et velit soluta quia.
"""
# NOTE: find_html_positions raises a ValueError if passed carriage returns `\r`
stripped_document = DOCUMENT.replace('\r', '')
html_positions = find_html_positions(stripped_document)
assert html_positions == [(125, 145)]
开发
# install build dependencies
poetry install
# build for python development
poetry run maturin development
构建wheel文件
我们需要每个版本和平台的wheel文件。为了支持Python 3.7、3.8和3.9,我们需要在macOS和Linux上安装3.7、3.8和3.9。对于macOS,我们可以使用pyenv。对于Linux,我们可以使用Docker容器。
macos
- 安装pyenv
- 通过
pyenv install
安装我们想要支持的每个 Python 版本。使用pyenv install --list
查看可用的选项。 - 通过
pyenv global 3.8.7 3.9.0
全局添加您的新 Python 安装。 - 使用 .pyenv 下的 Python 版本来配置您的 $PATH。使用
pyenv shims
查找二进制路径并添加,例如PATH=/Users/chris/.pyenv/shims/:$PATH
- 通过
python3.9
验证您的 Python 版本是否可访问,并通过./.venv/bin/maturin list-python
验证 maturin 是否可以找到您的 Python 版本。 - 通过
./.venv/bin/maturin build
构建 macOS 轮子。 - 通过
./.venv/bin/twine upload --skip-existing target/wheels/*
将轮子上传到 PyPI。
Linux
- 使用 Docker 容器构建所有 Linux Python 轮子,通过
docker run --rm -v $(pwd):/io cdignam/markdown-html-finder-builder:0.3.0 build --release
- 通过
./.venv/bin/twine upload --skip-existing target/wheels/*
将轮子上传到 PyPI。
markdown-html-finder-builder
此容器扩展了 quay.io/pypa/manylinux2014_x86_64 Docker 映像,并基于 konstin2/maturin 映像,已移除 Python2 支持。
当需要时,此镜像将手动构建并上传到 Docker Hub。
# build and publish a new version
VERSION='0.2.0'
docker build -f build.Dockerfile . --tag cdignam/markdown-html-finder-builder:$VERSION
docker push cdignam/markdown-html-finder-builder:$VERSION
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
markdown_html_finder-0.2.5.tar.gz (37.8 kB 查看哈希值)
构建分布
关闭
markdown_html_finder-0.2.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12188883422f6342a78f8acf60e2c753e09946d00696b1f9ba86d8f532192f1c |
|
MD5 | 184c8ee4e817665d41d72c3ecad82973 |
|
BLAKE2b-256 | 9e73d82a6056090900c05cd31f9a532742a63c365345beb836c9b719d270129b |
关闭
markdown_html_finder-0.2.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a2637763a23d4bad98ad40e1d6563e28cea19faa9508dfaa69c9b8cf0ddda78 |
|
MD5 | 9290c78ea91ab1522dacdf2e120d4d4c |
|
BLAKE2b-256 | 524605443089368a6739a9a56b8ecb2e21a129c7b2596a12325732326532e7d2 |
关闭
markdown_html_finder-0.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6ac8de530f5209de88a056287c3836266db02f2ad27e5f666e65dcb624852371 |
|
MD5 | 08b0cab31f391216aee35600e099e362 |
|
BLAKE2b-256 | 345119408d31f835486299d48e7f3f13097a2d3ef5cec52dd3fc231b69545439 |
关闭
markdown_html_finder-0.2.5-cp310-cp310-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c7b893f56650d0013ed1061cc883b4f67185b16113d02a3b96a688d47db34016 |
|
MD5 | 8f5768e611e9ce447efb0b70e93925b2 |
|
BLAKE2b-256 | d22e214cd7959802bdf91be9efdc95818453b1454ac0025737794c0b676fec7c |
关闭
markdown_html_finder-0.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86afbb199c139e7eef27e9ad134c0781867b54124461721db261bdb3bb82f6ce |
|
MD5 | 4e9d309d9b85a2e4f9bf18de57088dc1 |
|
BLAKE2b-256 | 8866a61fb3c61b3cb1f15451fbf583a4651aaa5164846fc34d8cf4d08831bc5e |
关闭
markdown_html_finder-0.2.5-cp39-cp39-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fbecdd05ac013b27a1ed130cdbc9d0ff1fc367a9f242697f4c3897854440b877 |
|
MD5 | 6e427ee66c72d3a90ce8eddef503a5ae |
|
BLAKE2b-256 | dcadb2e165ac819614be3cd3ada316462a5e1628b112c3ae616473f4b2324eff |
关闭
markdown_html_finder-0.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2ea98e46c67747190620afeb5ccfffef3b8090df281465917d8d4a025a2c39cc |
|
MD5 | 1928ac99bc5e40527bbd81fe30c79c44 |
|
BLAKE2b-256 | 4b96e12602d01057126eff0550309dff00293fc810111019141c5e9b6cc3a10c |
关闭
哈希值 for markdown_html_finder-0.2.5-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dfeca5ae00b1e5e19c1c4b93e63976c8279c98aca74d525f0cdf85c5501c3c03 |
|
MD5 | 63a19cf3ae41d9b2edbeb9bbc84ff6db |
|
BLAKE2b-256 | adec46557380115ed67cfe194af7b7b6884719f8b927c133171cb5fa8156f5e0 |
关闭
哈希值 for markdown_html_finder-0.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a24e093b21dc699c638283a58598cbbb2489e029bcc8d90fddc608ddd8e78f9a |
|
MD5 | 127644f1d79770906b351c73be603e1a |
|
BLAKE2b-256 | 6c69b18e9743323836afc49751e38257dc2f01cb764bdd2d6bf6e21f0c92e1b6 |
关闭
哈希值 for markdown_html_finder-0.2.5-cp37-cp37m-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5588c0dcba92c8425d5e7d17a57fe6db22a94d78313094b701b6b3a8ce1d2c23 |
|
MD5 | 4115d911c5008e113426754fe642426f |
|
BLAKE2b-256 | f13df5865fa11736a62dd93db7c81965953dc792eabbfa3d81b3e9db36a7dd94 |