Skip to main content

Markdown to TeX/PDF with TUI and Docker

Project description

Mark2TeX

Mark2TeX

Write Markdown. Get a polished academic PDF.
A Dockerized pipeline with an interactive TUI for LaTeX-quality documents — no TeX installation required.

GitFlow SemVer MIT License

What is Mark2TeX?

Mark2TeX is a command-line tool that converts Markdown files into publication-ready PDFs using Pandoc, XeLaTeX, and pre-built LaTeX templates — all inside a Docker container. You write plain text; Mark2TeX handles the typography.

Why Mark2TeX instead of writing LaTeX directly?

LaTeX Mark2TeX
Learning curve Steep Write plain Markdown
Environment setup 4 GB+ TeX distribution Only Docker
Error messages Cryptic logs Human-readable translations
Live feedback Manual re-run Watch mode auto-recompiles

Quickstart

# 1 — install (requires Python 3.10+ and Docker)
pipx install mark2tex

# 2 — run (the Docker image is pulled automatically on first use)
mark2tex

Note: On the first run, Mark2TeX will automatically pull the mark2tex image from Docker Hub. This requires an active internet connection and may take a few minutes depending on your connection speed. Subsequent runs reuse the cached image.

No internet? If Docker Hub is unreachable, Mark2TeX will fall back to building the image locally from the bundled Dockerfile. You can also run make build-image manually at any time.

TUI at a Glance

Mark2TeX Dashboard

  1. Select a .md file from the left panel.
  2. Choose a template (tcc, artigo-ieee, doc-tecnica, projeto, apresentacao).
  3. Optionally pick a font (--font arial | helvetica | times | ubuntu).
  4. Press c to compile or w to toggle Watch Mode.

Keyboard shortcuts

Key Action
c Compile
w Toggle Watch Mode
F1 / ? Help
Esc / q Global menu

Features

  • Dockerized builds — zero local LaTeX installation; identical output on every machine.
  • Interactive TUI — file browser, template selector, real-time log console, and progress bar built with Textual.
  • Watch mode — automatic recompilation on every file save.
  • Human-readable logs — raw XeLaTeX output is parsed and translated into plain-language messages.
  • Font selection — choose between Liberation Sans (Arial-compatible), Nimbus Sans (Helvetica), Liberation Serif (Times-compatible), and Ubuntu per document.
  • Bibliography support — BibTeX via Pandoc + XeLaTeX; just drop a referencias.bib alongside your .md.
  • ABNT-oriented workflow — templates built around Brazilian academic standards.

Available Templates

Template Purpose
tcc Undergraduate thesis (ABNT)
artigo-ieee IEEE conference paper
doc-tecnica Technical documentation
projeto Project proposal
apresentacao Beamer-based presentation

Roadmap

  • Additional ABNT templates (article, dissertation)
  • GUI font and template preview
  • mark2tex new <template> scaffold command
  • Windows-native installer
  • GitHub Actions integration for CI PDF generation

See open issues to follow along or suggest features.

Contributing

Mark2TeX grows with the help of the community. All skill levels are welcome — from fixing typos to designing new templates.

  1. Read the Contributing Guide.
  2. Read the Code of Conduct.
  3. Open an issue before large changes so we can discuss direction.
  4. Fork, branch, implement, and open a pull request.

We are grateful for every contribution. ✨

License

Mark2TeX is released under the MIT License.


Built with ❤︎ by Hylbert and contributors.

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

mark2tex-0.2.0rc1.tar.gz (223.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mark2tex-0.2.0rc1-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file mark2tex-0.2.0rc1.tar.gz.

File metadata

  • Download URL: mark2tex-0.2.0rc1.tar.gz
  • Upload date:
  • Size: 223.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mark2tex-0.2.0rc1.tar.gz
Algorithm Hash digest
SHA256 61b3debe479ac8b6f5cb10344b2c8a55c898d7abbeebf528532ccd9ff91d813b
MD5 845d43c0af73089af374dbf3a868ed3f
BLAKE2b-256 c5ae3c1d165ffe5068ccece6c283f3b6bb8114b83c69b41015eefd0f0ab41414

See more details on using hashes here.

Provenance

The following attestation bundles were made for mark2tex-0.2.0rc1.tar.gz:

Publisher: release.yml on Hylbert/Mark2TeX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mark2tex-0.2.0rc1-py3-none-any.whl.

File metadata

  • Download URL: mark2tex-0.2.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mark2tex-0.2.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e9fd95eceb4d56e1938fc5fc7636de88fa3173f715d84c2715e12e097a3724d
MD5 7aeb4018a0b6b0861b8b2d8628a18160
BLAKE2b-256 ffb8ec8b5d23a4ea60c24ab392286aada2b8bd14c47b0063077de39df7c1d1fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for mark2tex-0.2.0rc1-py3-none-any.whl:

Publisher: release.yml on Hylbert/Mark2TeX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page