Markless

Markless Screen Capture

Expressing rich text, has been a thing since ASCII emerged as the standard for text representation. RTF, HTML, LaTeX all use the same idea of using text with some form of escape sequences to express formatting. On format that is getting traction is Markdown, which is used, among other things, for documentation on GitHub.

The always had some partial support for formatting, typically in the format of control-codes, Unicode deprecated some control codes (most of code-points in the C0 and C1 pages), but other forms of control with variant selector, graphical characters, and character compositing.

So I wondered if it could be possible to render Markdown using Unicode characters. Rendering Markdown using ANSI escape sequences is easy, tools like do it. What I wanted was pure text, i.e. something that could be copy-pasted into interfaces that only support text, embedded into code comments.

The result is , a small Python script that converts Markdown into Unicode text. Headings a code blocks are rendered using boxes built out of graphical character, emphasis using compositing underlines. I must stress that this is a hack, it has probably more values as a Unicode stress test than as an actual tool. Here is a sample output:

╔══════════╗
║ Markless ║
╚══════════╝
Markless is a small tool (a h⃨a⃨c⃨k⃨ really) that renders mark-down as plain text, 
using Unicode modifiers characters.
• Emphasis is rendered using underline modifiers.
• Lists is rendered using pretty bullets.
  Continuation is supported.
• Headers and code are rendered in boxes.
▌Blockquote is rendered using block characters
▌▌Second level

The tool is far from complete, and only supports a fraction of the Markdown commands. The code and an up to date version is available on Github

Leave a Reply