Skip to main content

A lightweight template-driven markup language

Project description

Mau v3

Mau is a lightweight markup language heavily inspired by AsciiDoc, Asciidoctor and Markdown.

As I wasn't satisfied by the results I got with those tools I decided to try to write my own language and the tool to render it.

I am currently using Mau to render posts on my blog The Digital Cat and the online version of my book "Clean Architectures in Python". I also used it to transpile the code of the book to Markua, to be able to publish the book on Leanpub using their toolchain.

Quick start

To install Mau use pip

pip install mau

Then install at least one visitor plugin. You probably want to start with mau-html-visitor

pip install mau-html-visitor

To convert Mau sources into HTML just run

mau -i source.mau -o destination.html -f html

To use Mau in your tool you can run it programmatically

from mau import Mau, load_visitors

visitor_classes = load_visitors()

visitors = {i.format_code: i for i in visitor_classes}
visitor_class = visitors["html"]

mau = Mau(
    "path/of/the/source",
    visitor_class=visitor_class,
)

lexer = self._mau.run_lexer(text)
parser = self._mau.run_parser(lexer.tokens)
content = self._mau.process(parser.nodes, parser.environment)

if visitor_class.transform:
    content = visitor_class.transform(content)

Check out Mau documentation for further information.

Pelican plugin

There is a Pelican plugin that enables you to use Mau in your blog. Check it at https://github.com/pelican-plugins/mau-reader.

You can see the plugin in action at https://www.thedigitalcatonline.com/blog/2021/02/22/mau-a-lightweight-markup-language/ and on other pages in my blog.

Support

You may report bugs or missing features use the issues page. If you want to ask for help or discuss ideas use the discussions page

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

mau-3.0.0.tar.gz (77.8 kB view details)

Uploaded Source

Built Distribution

mau-3.0.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file mau-3.0.0.tar.gz.

File metadata

  • Download URL: mau-3.0.0.tar.gz
  • Upload date:
  • Size: 77.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for mau-3.0.0.tar.gz
Algorithm Hash digest
SHA256 06d32ce67a0cf03fab065bd0f7fa14f8ae86fccd24f69adefbcd0654d4cb294b
MD5 992c16fbe5de87bedb5e820c4ab74d26
BLAKE2b-256 40cf0a178195ffa0d6055bd7588537dc8af5e4193c6fbdb82abbd041eab5cfb2

See more details on using hashes here.

File details

Details for the file mau-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: mau-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for mau-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d474921f6313058f1972127e0b568b33d6f17e2345da5189140eb7273bf41b2e
MD5 16ae11421e631e40bda20f93a4ae9177
BLAKE2b-256 78d148de44bb6de7437c6c9f464705e6cb0eecbd0eb74e4c2f5a08ab087fb81f

See more details on using hashes here.

Supported by

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