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.0.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.0-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mark2tex-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 4c81cbe10c9ab157b1565353dd06c92646a5f1032733020670883fe251d05284
MD5 a22c633f5e727f2412eb38a60c5523b7
BLAKE2b-256 e2bb886a4adf52c11ef9ff5727780e2aae6a0cf1ffe1ac9f2a0b01752a57aaa9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mark2tex-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70839eb1050a92667b34ab33ce6c277ac198cc9df8840b480a3416a503919997
MD5 4e3cf51ea7a9940ecb508e6e7573a040
BLAKE2b-256 bbb57d4490bb1483498a018b8e87caf10ecf8cbe3330075ccdb015c097858623

See more details on using hashes here.

Provenance

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