Skip to main content

A CJK-friendly AsciiDoc parser for Python, built on markdown-it-py.

Project description

pyasciidoc

A CJK-friendly AsciiDoc parser for Python, built on markdown-it-py.

Why

Existing Python AsciiDoc implementations (asciidoc, asciidoc3) are ports of the original ASCII-oriented AsciiDoc.py. A quick smoke test shows they fail to recognize emphasis next to Japanese/Chinese/Korean text — *太字*と_斜体_のテスト文です renders as literal, unconverted asterisks/underscores. This is the same class of problem mdit-py-cjk-friendly solves for CommonMark.

Rather than patch a large, legacy, ASCII-oriented codebase for CJK boundary rules, pyasciidoc builds AsciiDoc's syntax as markdown-it-py rules, reusing its CJK-aware delimiter scanning directly.

Scope

v0 is intentionally small and grows by golden-fixture-driven increments (the same discipline used in mdit-py-cjk-friendly and pywashi):

  • Document/section headings: = Title .. ====== h6
  • Constrained emphasis: *strong*, _em_
  • Comments: // line comment, //// block comment (dropped entirely)
  • Admonitions: NOTE:, TIP:, IMPORTANT:, WARNING:, CAUTION: paragraphs — real-world documents need annotations, not just prose (added after pyasciidoc started being used for actual organizational docs in aiseed-migration-kit)
  • Single-level lists: * item/- item (unordered), . item (ordered, AsciiDoc's bare-dot form)

Not yet implemented: unconstrained emphasis (**mid-word**), nested lists, tables, includes, cross-references.

Usage

from pyasciidoc import render

render("= 表題\n\nこれは*重要*です。\n")
# '<h1>表題</h1>\n<p>これは<strong>重要</strong>です。</p>\n'

render("NOTE: これは*重要な*注記です。\n")
# '<div class="admonition note">\n<p class="admonition-label">NOTE</p>\n
#  <p>これは<strong>重要な</strong>注記です。</p>\n</div>\n'

License

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

pyasciidoc-0.3.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

pyasciidoc-0.3.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file pyasciidoc-0.3.0.tar.gz.

File metadata

  • Download URL: pyasciidoc-0.3.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyasciidoc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f47943ed7d9ecff5a29b76f7473fc7aeaf852abff581dc87ed86fe3885d2ba55
MD5 961c77966aa305b6dd1d9111e7eca0ea
BLAKE2b-256 d7b61157dc7fb8c2ab1d74206d9ff1dd2186bf830d6db243884918ecbc431594

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyasciidoc-0.3.0.tar.gz:

Publisher: publish.yml on aiseed-dev/pyasciidoc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyasciidoc-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyasciidoc-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyasciidoc-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b43fe86db62555ebe49c837c88cc08fca5791974f58b9b7a66db03d3c7fea050
MD5 0252f6de270753b5c1f94f2b08413280
BLAKE2b-256 4d879affeefc472afd769c4b64c943b69cbff9a4259b2cbf96cb8e9bfc2419a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyasciidoc-0.3.0-py3-none-any.whl:

Publisher: publish.yml on aiseed-dev/pyasciidoc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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