Skip to main content

ChromaMark for Python — render and build colored blocks, pills, collapsibles, fields, meters and inline diff on top of Markdown, with Jupyter display.

Project description

chromamark (Python)

Render and build ChromaMark from Python — colored blocks, pills, collapsible sections, fields, meters, and inline diff on top of Markdown (CommonMark + GFM). Produces the same HTML as the JS renderer, so the same theme applies, and it displays inline in Jupyter.

Built on markdown-it-py.

Install

pip install chromamark

Render

from chromamark import render, create_renderer

html = render("::: success\nAll good [!ok pass]\n:::")

# or as a markdown-it-py plugin:
from markdown_it import MarkdownIt
from chromamark import chromamark_plugin
md = MarkdownIt("commonmark").use(chromamark_plugin)

Build (fluent, for agent reports)

from chromamark import ChromaDoc

doc = ChromaDoc()
doc.heading("Deploy report")
doc.success("Deploy succeeded", "3/3 replicas healthy")
doc.fields(Region="eastus", Status=doc.pill("ok", "healthy"))
doc.table(["Stage", "Result"], [["unit", doc.pill("pass", "247")]])
print(doc.to_cm())     # ChromaMark source
print(doc.to_html())   # rendered HTML

Jupyter

from chromamark import display_chromamark
display_chromamark("::: success\nRun complete [=success 100%]\n:::")

ChromaDoc also renders itself in notebooks via _repr_html_.

A runnable, pre-executed example notebook lives at examples/chromamark_report.ipynb — it builds a model-evaluation report (colored block, pills, meters, fields, a table, and a collapsible) from computed results.

Parity with the JavaScript renderer

chromamark produces byte-identical HTML to @chromamark/renderer for normal content — verified by a differential harness over ~140,000 inputs (every ChromaMark construct, GFM, linkify, and the full SPEC/demo documents all match exactly). Three exotic edge cases differ, all involving unusual whitespace or non-BMP characters; none affect typical agent-generated reports:

  • Non-ASCII whitespace at a block edge (e.g. a leading U+3000 ideographic space): JS markdown-it preserves it (asciiTrim); markdown-it-py strips all Unicode whitespace. Upstream base-engine difference.
  • Six control/format code points inside ChromaMark constructs (U+001C–U+001F, U+0085 NEL, U+FEFF BOM): counted as whitespace by one engine's regex/strip but not the other, which can flip pill/field parsing.
  • Astral-plane (emoji) domain labels in bare links (e.g. 🎉.com): auto-linked by JS linkify-it but not linkify-it-py. BMP and IDN letter hosts match.

Credits

Inline change-tracking syntax is adopted from CriticMarkup (© 2013 Gabe Weatherhead & Erik Hess, Apache-2.0); ChromaMark's parser is an original, independent implementation. See the main README for full credits.

License

Modified MIT License with a SaaS source-availability provision — see LICENSE.md.

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

chromamark-0.1.3.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

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

chromamark-0.1.3-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file chromamark-0.1.3.tar.gz.

File metadata

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

File hashes

Hashes for chromamark-0.1.3.tar.gz
Algorithm Hash digest
SHA256 099f30957d58789d542aa8dbf3dd685ca6bc9b30b80cf888fb6a8ffd2b729ea1
MD5 8699c147e4505755fc9a6cd236c2b292
BLAKE2b-256 8726487497d8488c7a820872d60cea51377aaa690ae8200d4042d1398c0a1718

See more details on using hashes here.

Provenance

The following attestation bundles were made for chromamark-0.1.3.tar.gz:

Publisher: publish.yml on cjfravel-dev/ChromaMark

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

File details

Details for the file chromamark-0.1.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for chromamark-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e126ee2c82e0f72ccaec170fa08513ee87a9cbfe67062e70e32332f7572c079e
MD5 d56af78c0ef1d8ecf8ab23d1f5172fda
BLAKE2b-256 266d8012c7a6f9e7638d345e63b7efec01975859ef6679b9badf633390b899a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chromamark-0.1.3-py3-none-any.whl:

Publisher: publish.yml on cjfravel-dev/ChromaMark

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