跳转到主要内容

一个用于在字符串中查找HTML的Python库

项目描述

markdown-html-finder PyPI

一个用于在markdown文本中定位HTML标签的Python库。这个库是用Rust编写的,并为Python提供了绑定。

为什么?

为了一个独立项目,我需要定位markdown文档中的HTML注释。遗憾的是,我找到的Python markdown解析器没有提供节点信息的span信息。

虽然向现有的Python markdown解析器添加一些功能可能不会太难,但我认为看看Rust如何从Python中使用会很有趣。优秀的pulldown-cmark crate为HTML元素提供了span信息,所以这就是我们在这里使用的方法。

pyo3maturin负责将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

  1. 安装pyenv
  2. 通过 pyenv install 安装我们想要支持的每个 Python 版本。使用 pyenv install --list 查看可用的选项。
  3. 通过 pyenv global 3.8.7 3.9.0 全局添加您的新 Python 安装。
  4. 使用 .pyenv 下的 Python 版本来配置您的 $PATH。使用 pyenv shims 查找二进制路径并添加,例如 PATH=/Users/chris/.pyenv/shims/:$PATH
  5. 通过 python3.9 验证您的 Python 版本是否可访问,并通过 ./.venv/bin/maturin list-python 验证 maturin 是否可以找到您的 Python 版本。
  6. 通过 ./.venv/bin/maturin build 构建 macOS 轮子。
  7. 通过 ./.venv/bin/twine upload --skip-existing target/wheels/* 将轮子上传到 PyPI。

Linux

  1. 使用 Docker 容器构建所有 Linux Python 轮子,通过 docker run --rm -v $(pwd):/io cdignam/markdown-html-finder-builder:0.3.0 build --release
  2. 通过 ./.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-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB 查看哈希值)

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

markdown_html_finder-0.2.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB 查看哈希值)

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

markdown_html_finder-0.2.5-cp310-cp310-macosx_11_0_arm64.whl (660.4 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

markdown_html_finder-0.2.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.5+ x86-64

markdown_html_finder-0.2.5-cp39-cp39-macosx_11_0_arm64.whl (660.3 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

markdown_html_finder-0.2.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.5+ x86-64

markdown_html_finder-0.2.5-cp38-cp38-macosx_11_0_arm64.whl (660.1 kB 查看哈希值)

上传时间 CPython 3.8 macOS 11.0+ ARM64

markdown_html_finder-0.2.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.5+ x86-64

markdown_html_finder-0.2.5-cp37-cp37m-macosx_11_0_arm64.whl (660.1 kB 查看哈希值)

上传时间 CPython 3.7m macOS 11.0+ ARM64

由以下支持