Skip to main content

Intelligently adds spacing between CJK and alphanumeric characters with special handling for Markdown.

Project description

pangumd

关于

本项目基于 vinta/pangu.py: Paranoid text spacing in Pythonfrostming/marko: A markdown parser with high extensibility. 这两个项目实现。

这个版本在原项目的基础上,为 Markdown 语法增加了特别的适配,确保在 Markdown 文档中能正确处理文本间距。

对于 Markdown 适配

  1. 代码块 - 保持代码块的格式,不会添加多余的空格。
  2. 粗体文本 - 正确处理 **粗体文本** 语法,在粗体标记周围添加适当的间距。
  3. 斜体文本 - 支持 *斜体文本* 语法。
  4. 中文链接 - 为包含中文字符的超链接提供正确的间距。

示例

下面是一个示例,展示了 pangumd 如何在处理文本的同时,智能地保留 Markdown 的特定格式。

处理前

首先在**能联网**的机器安装docker,并pull 想要安装的镜像,完成后,使用 `docker save`命令导出镜像:

### 参考

1. [docker save与docker export 的区别 - jingsam](https://jingsam.github.io/2017/08/26/docker-save-and-docker-export.html#你好)

处理后

首先在**能联网**的机器安装 docker,并 pull 想要安装的镜像,完成后,使用 `docker save` 命令导出镜像:

### 参考

1. [docker save 与 docker export 的区别 - jingsam](https://jingsam.github.io/2017/08/26/docker-save-and-docker-export.html#你好)

安装

从 PyPI 安装 (推荐)

您可以使用 pip 直接从 PyPI 安装 pangumd

pip install pangumd

从源代码安装 (开发者适用)

如果您想从源代码安装最新版本以进行开发:

# 克隆仓库
git clone https://github.com/kingronjan/pangumd.git
cd pangumd

# 以可编辑模式安装
pip install -e .

使用方式

在 Python 中使用

import pangumd

new_text = pangumd.spacing_text('当你凝视着bug,bug也凝视着你')
# new_text = '当你凝视着 bug,bug 也凝视着你'

nwe_content = pangumd.spacing_file('path/to/file.txt')
# nwe_content = '与 PM 战斗的人,应当小心自己不要成为 PM'

在命令行 (CLI) 中使用

$ pangumd "请使用uname -m指令来检查你的Linux操作系统是32位还是64位"
请使用 uname -m 指令来检查你的 Linux 操作系统是 32 位还是 64 位

$ python -m pangumd "为什么小明有问题都不Google?因为他有Bing"
为什么小明有问题都不 Google?因为他有 Bing

$ echo "未来的某一天,Gmail配备的AI可能会得出一个结论:想要消灭垃圾邮件最好的办法就是消灭人类" >> path/to/file.txt
$ pangumd -f path/to/file.txt >> pangu_file.txt
$ cat pangu_file.txt
未来的某一天,Gmail 配备的 AI 可能会得出一个结论:想要消灭垃圾邮件最好的办法就是消灭人类

$ echo "心里想的是Microservice,手里做的是Distributed Monolith" | pangumd
心里想的是 Microservice,手里做的是 Distributed Monolith

$ echo "你从什么时候开始产生了我没使用Monkey Patch的错觉?" | python -m pangumd
你从什么时候开始产生了我没使用 Monkey Patch 的错覺?

Pre-commit 钩子

若要将 pangumd 作为 pre-commit 钩子使用,请将以下内容添加到您的 .pre-commit-config.yaml 中:

repos:
  - repo: https://github.com/kingronjan/pangumd
    rev: 0.1.2 
    hooks:
      - id: pangumd
        files: \.(md|txt)$

然后安装钩子:

pre-commit install

现在,pangumd 将在每次提交前自动在您的 Markdown 和文本文件上运行,确保中日韩 (CJK) 字符与半角字符之间有适当的间距。

许可证

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 Distribution

pangumd-0.1.2.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pangumd-0.1.2-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file pangumd-0.1.2.tar.gz.

File metadata

  • Download URL: pangumd-0.1.2.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pangumd-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e077104b518ffacca02e5f965efb27d189834405f58cf091f649b1e2a185869e
MD5 c3b8b80b59749d7709487d4a70e63891
BLAKE2b-256 a97b655f4e455bc8ffcc83d97c87b91dc00cc5d6faf9fca7bcb20582b48a9971

See more details on using hashes here.

File details

Details for the file pangumd-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pangumd-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pangumd-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3bf6eef30ba42f9ccba5278ca41c176ce7a0a8f8cf0416041eaeecd69bfcca5e
MD5 66b07fcd71d82bbb1c18c2660dc15fa0
BLAKE2b-256 6da39e944300ae8796ba2087bfd84dd08477f8f7ccabc5cb581fcaaf37521bab

See more details on using hashes here.

Supported by

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