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.1.tar.gz (35.2 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.1-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file mark2tex-0.2.1.tar.gz.

File metadata

  • Download URL: mark2tex-0.2.1.tar.gz
  • Upload date:
  • Size: 35.2 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.1.tar.gz
Algorithm Hash digest
SHA256 a3ca4a2c888fd5fb9bd156a9ba134e3a7f2f3b44de8c94554120e7e935d70154
MD5 6c107b0155b3db056e0868f91a7051d5
BLAKE2b-256 7995e3254373efbb2702848459cd56ee3c3e50980c02a11ff56aec01b8eadfbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for mark2tex-0.2.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: mark2tex-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 36.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f24e064b74ce0f67dc0087d17882adb867b52a8a6f7a41344d984636317abb15
MD5 5ae6b2f108d248c058e12a2dc9976e07
BLAKE2b-256 0a5add5ac21e54c4048d6783dac9de6cdef0f367c2b945c51205b44bb02e403e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mark2tex-0.2.1-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