Skip to main content

A CLI script to convert a markdown note to a polished PDF tech memo using Quarto.

Project description

Quarto Tech Memo

See the companion article for more background: G. Close, “Turning Your Notes into PDF Technical Memos and Data Science Reports,” Data Science Collective, Oct. 2025. Available: https://medium.com/data-science-collective/turning-your-notes-into-pdf-technical-memos-or-data-science-reports-ddd150273cc6

This is a quarto extension to create brief technical memos in PDF with the modern and ⚡fast Typst engine (built into Quarto). The memo style provides a professional single-column PDF layout with ample room for sidenotes and small figures in the margin. Inspired by Tufte handout style. The intended use is for brief technical memos and preprints of scientific articles. In addition, a 2-column compact variant and a 3-column A3 poster variants are provided. For reference, a legacy IEEE paper style is also included---using the LaTeX engine. Finally a slide deck variant using the Clean Slide Theme is provided.

The following screenshot shows all variants of the same document. All are formatted from the same source in a few seconds (the IEEE style, with the legacy Latex engine, dominates the rendering time). All generated PDF files are included in the examples folder.

Usage as Python CLI tool

Install the tool, together with all dependencies, with:

pip install quarto-tech-memo

# preferably in a isolated environment with one of:
# pipx install quarto_tech_memo
# uv tool install quarto_tech_memo

Then use the quarto-tech-memo command to convert a markdown file to a polished PDF memo:

quarto-tech-memo you-file.md (--to memo1) (--preview)

Usage within the provided example

Install the dependencies with:

pip install cookiecutter quarto-tech-memo

To render the provided example:

cookiecutter -f gh:gael-close/quarto-tech-memo; cd new-dir;
quarto-tech-memo new-tech-memo.md

For the variants, use one of the flags --to memo2, --to memo3, --to slides, --to poster, or --to ieee

Edit new-tech-memo.md in your favorite editor and re-run the render command or preview changes (one every save) live with:

quarto-tech-memo new-tech-memo.md --preview

Usage in an existing quarto project

To use in an existing Quarto project as an extension, run

# Install the extension (one time only)
quarto add gael-close/quarto-tech-memo

# render with: 
quarto render your-file.md --to memo1-typst

Usage inside a data science project

See this repo https://github.com/gael-close/quarto-tech-paper for usage inside a data science project.


Details

Development

Run a test suite with Invoke. This will format the example memo in all variants.

invoke test (--gh) (--no-ieee)

The --gh flag uses the GitHub repo instead of a local copy of the extension. The --no-ieee flag skips the legacy IEEE format which requires a LaTeX installation (install via: quarto install tinytex)

To extract the conversion time for a given format:

invoke conversion-time --format memo1-typst

Lua filters

To run the Lua filter standalone on a test file dev.md:

cd _extensions/meme1/lua-filters
quarto pandoc dev.md -t typst --lua-filter custom.lua

Run as uv tool

Install the tool from the local copy of the repo with:

z quarto-tech-memo
uv tool install . -e

Upload to PyPI

Increment version number in pyproject.toml, then run:

rm -fr dist/*
uv build
uvx uv-publish

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

quarto_tech_memo-0.3.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

quarto_tech_memo-0.3.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file quarto_tech_memo-0.3.0.tar.gz.

File metadata

  • Download URL: quarto_tech_memo-0.3.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.19

File hashes

Hashes for quarto_tech_memo-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b2a167cb2c99b1cfa4c3257ded36352c4cfc184723ddd640407e3753cc1bfe6f
MD5 07d20d6fc16cafa73aae9e5500d73f17
BLAKE2b-256 5cd51b29602d0c8b6ab4cfcb7602463a5c2a7f506670c183482f395d5afaecaf

See more details on using hashes here.

File details

Details for the file quarto_tech_memo-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for quarto_tech_memo-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55ac0e805294da80630fc1bdbb4f92e7fd4c31cc1efa993e133332bb2636a7cf
MD5 b5bc5e5e53ee2dc6df8daa4351fa4e7e
BLAKE2b-256 b6de2702de9ad619322fd50af396d80a37db586e766a6d37a0b0849984cefd90

See more details on using hashes here.

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