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.1.tar.gz (77.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: mau-3.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 1628e69318751d4b85e54f88fcffa7f77c51a841090a93c512a01ae40d707fe8
MD5 a048254d98973872f5a1c936062f422d
BLAKE2b-256 0c97492127f72006becaeb385c7ca4262991558dfa515a381eb75e734a38bc5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mau-3.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ec2962ffd2d39d23d8d1c16fb6ce9a773f39034cad2934375711f58b6cf5095a
MD5 06dfe873f7d8d41cb763dce3439b1653
BLAKE2b-256 ab920168af23a382eece539a924a850710a8151f7e57204ac3e86a52fbedc875

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