MarkAPL
is a converter that converts Markdown into valid HTML5. It is written in Dyalog.
Note: MarkAPL
releases are published as Tatin packages, see there.
Markdown aims to make the process of writing for the web much easier by improving readability and, as a consequence, maintainability.
This is an example on the Wikipedia comparing Markdown with HTML.
MarkAPL
can convert APL variables holding Markdown as well as files holding Markdown.
Note that the original design of Markdown has proven to be an excellent idea but too limited for widespread use. Therefore extensions were implemented. Over time two approaches have proven to be particularly successful: Markdown Extra and PanDoc.
For several years it seemed that the segmentation of the different implementations would be a problem, but over time the implementations got closer. There is also the CommonMark initiative which aims to standardize Markdown. MarkAPL
tries to be compliant with CommonMark within reason.
MarkAPL
aims to implement most concepts and also adds a couple of enhancements that might be useful, be it in general or just for APLers.
Today Markdown is used by many of the big names on the web. Examples are Git, SourceForge, Stack Overflow and Trello. Many wikis allow Markdown at least optionally for input.
The following table highlights the features supported in MarkAPL
:
Name | Standard | Extra | Pandoc | MarkAPL |
---|---|---|---|---|
Abbreviations | X | X | ||
Automated links | X | X | X | X |
Blockquotes | X | X | X | X |
Calling APL functions | X | |||
Code blocks (indented) | X | X | X | Never! |
Code blocks (fenced) | X | X | X | |
Definition lists | X | X | X | X |
Footnotes | X | X | X | X |
Headers | X | X | X | X |
HTML blocks | X | X | X | X |
HR (horizontal rule) | X | X | X | X |
Images | X | X | X | X |
Inline markup | X | X | X | X |
Line breaks (two spaces) | X | X | X | Never! |
Line breaks (\ ) |
X | X | ||
Links | X | X | X | X |
Link references | X | X | X | X |
Lists | X | X | X | X |
Loose/tight lists | X | X | X | |
Markdown inside HTML | X | X | ||
Paragraphs | X | X | X | X |
Tables | X | X | X | X |
Table footers | X | |||
Table of contents (TOC) | X | X | ||
Sub TOC | X | |||
Smart typography | X | X | ||
Special attributes | X | X | X | |
Check boxes | X | |||
Collapsibles & accordions | X | |||
LeanPub extensions | X |
Note that marking up code blocks by indenting was deliberately not implemented in MarkAPL
.
A full documentation is available as an HTML page generated from Markdown with MarkAPL
, as you would expect. This document is comprehensive and is therefore quite long: more than 40 pages.
There is also a cheat sheet available for the impatient APLer.
Note that there is an editor available that uses MarkAPL
as converter: Meddy.
The editor is quite basic but it supports all MarkAPL
features. It sports the most important features you would expect from any editor (Undo/Redo and a powerful Search/Replace) and also comes with a tree view for navigation that is auto-generated from the headers .