No description
Find a file
randogoth 3d889ec117 init
2025-10-19 22:58:10 +03:00
.gitignore init 2025-10-19 22:58:10 +03:00
.python-version init 2025-10-19 22:58:10 +03:00
loremipsum.md init 2025-10-19 22:58:10 +03:00
loremipsum.txt init 2025-10-19 22:58:10 +03:00
loremipsum_60.txt init 2025-10-19 22:58:10 +03:00
main.py init 2025-10-19 22:58:10 +03:00
markdown.md init 2025-10-19 22:58:10 +03:00
md2amb.py init 2025-10-19 22:58:10 +03:00
md2txt.py init 2025-10-19 22:58:10 +03:00
output.txt init 2025-10-19 22:58:10 +03:00
pyproject.toml init 2025-10-19 22:58:10 +03:00
README.md init 2025-10-19 22:58:10 +03:00
requirements.txt init 2025-10-19 22:58:10 +03:00
uv.lock init 2025-10-19 22:58:10 +03:00

md2amb utilities

This repository contains command line helpers for transforming Markdown into formats that work well on retro hardware or constrained text viewers.

Tools

  • md2amb.py converts Markdown into Amber-screen formatted text (see script for details).
  • md2txt.py converts Markdown into 80-column, DOS-compatible plain text with extensive formatting support:
    • FIGlet-rendered headings (H1H3) driven by optional YAML frontmatter (h1_font, h2_font, h3_font).
    • H4+ headings rendered in uppercase with dashed underlines.
    • Emphasis styles converted to spaced or delimited characters, e.g. **bold**B O L D, __strong___s_t_r_o_n_g_, ~~strike~~~s~t~r~i~k~e~.
    • Blockquotes prefixed by |    , lists preserved, inline code untouched.
    • Code blocks numbered (01 | line), with both fenced and indented fences supported.
    • Links transformed into [label](n) references, with footnote-style URL list at the end.
    • Optional alignment and margin controls via HTML <p> attributes or MultiMarkdown attribute blocks (e.g. {:.center margin=20px}) applied as leading spaces.

Requirements

  • Python 3.9+.
  • Optional: pyfiglet for FIGlet headings (pip install pyfiglet). When unavailable, headings fall back to the H4-style renderer automatically.

Usage

python md2txt.py input.md -o output.txt          # convert to DOS-friendly text
python md2txt.py input.md                         # write result to stdout
python md2txt.py input.md --width 72             # override column width

Both scripts accept --help for the full option list.

FIGlet Fonts via Frontmatter

You can set FIGlet fonts for H1H3 per document using YAML frontmatter:

---
h1_font: slant
h2_font: standard
h3_font: small
---

# Main Title
## Section Heading
### Subsection

If the rendered FIGlet text would exceed the configured width, the converter automatically falls back to the H4-style uppercase heading with a dashed underline.

Styling via Attribute Blocks

You can influence alignment and margins in the source Markdown using either HTML paragraphs or MultiMarkdown attribute blocks:

<p align="center" style="margin: 10px 20px;">
Centered paragraph with custom margins.
</p>

Paragraph styled via MMD attributes.
{: .right margin=12px }

## Centered Heading {: .center margin=8px }

Margins are interpreted as spaces; values using px are rounded to the nearest integer, and margin: 0 auto; centers content.

Output Line Endings

Generated text uses CRLF line endings to maintain DOS compatibility.