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

Uploaded Source

Built Distribution

mau-3.1.0-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mau-3.1.0.tar.gz
Algorithm Hash digest
SHA256 874aaec31969ebe92ed910a33bd620ed32457246f7968785123ce0656b6cd6da
MD5 6c66d25df50ab568b73d2fb99381a5ae
BLAKE2b-256 765a08e09c03fe7a570d9e1bdb447c553991a52e65c2087d922c66502c8d1427

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mau-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7454fdfbd61fb23cdbace6df97ad81f7322b7da541bce379f0b59d657d8586d0
MD5 59e042e685ded50ba3c74910844d629d
BLAKE2b-256 8b2a44aeec89d0bc10e9cbd4ee90d233fe0c4448c9a4ee41f8feed774c2b4d91

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