In this context MDMA stands for "MarkDown
Monolith Assembler". It is a command line tool
for building elegant browser-based books using
the Markdown markup language.
When given a markdown document as an input, this
program produces a monolithic JavaScript-free
HTML5 application as an output. For example, from
this very readme file an HTML document
would be generated that renders as shown in the
below screenshot.
|
Screenshot depicting how this document
renders in the Chromium web browser
|
To see a live demo of this document in the format
of an HTML application, click on the above
screenshot and the respective page will open in
your web browser.
MDMA makes use of the standard input, output and
error streams and follows the garbage in,
garbage out (GIGO) principle by design. If
the program is started with the -h
(short for --help
) argument, then it
will only print its usage synopsis and exit.
In the following sections the usage synopsis is
given, followed by the most common build
instructions. Finally, libraries that need to be
installed on the host system for successful
compilation are listed.
Usage: mdma [OPTION]... [FILE]
General options:
--brief Print brief messages (default).
--debug Print debugging messages.
-f --framework Use a custom HTML framework file.
-h --help Display this usage information.
--minify Disable HTML indentation and wrapping.
--monolith Embed images and styles within the output.
-o --output Specify the output file (standard output).
-p --preview Set the image preview shrinking factor (8).
--verbose Print verbose messages.
-v --version Show version information.
Markdown dialect options:
--commonmark Use the CommonMark syntax.
--github Use Github flavored markdown (default).
If the FILE argument is missing, the
program will attempt to read a markdown document
from its standard input.
MDMA is written in C++ and should be trivial to
compile on most Linux based systems. Just go to
the src directory and type
make. If compilation fails, then most
likely you are missing some of the required
dependencies listed in the following section.
In order to compile this program from its
Makefile, the following libraries and
their respective header files must be present in
the system.
-
md4c — C Markdown parser
-
tinyxml2 — Simple XML
parser made for easy integration
-
tidy — A tool to tidy down HTML
code to a clean style
-
uriparser — Strictly RFC
3986 compliant URI parsing and handling
library written in C89
-
imlib2 — Library that
does image file loading, saving and
manipulation
-
webp — Library that
handles the WebP image format
-
curl — Command line tool and
library for transferring data with URLs
Next, some of the projects that have put MarkDown
Monolith Assembler into a good use are listed.
MarkDown Monolith Assembler has been authored by
Erich Erstu and is released under the MIT license.