I write software mostly in Python, along with XML/TEI and LaTeX. My code is on GitHub and Codeberg.

  • py-words: a Latin dictionary with morphology

    Author (2026) · on Codeberg and GitHub

    py-words is a Latin-English-Latin and Latin-Spanish-Latin dictionary written in Python. It started from William Whitaker's WORDS, but both code and data have been redesigned, and it now includes Lewis and Short's English dictionary and the Spanish ones of Echave-Sustaeta and De Miguel. It analyses inflected Latin words, and whole lines of Latin, into their forms and dictionary entries, with meanings in English or Spanish, and finds the Latin for English or Spanish words. It runs in a window, on the command line, in the terminal or in a web browser, and needs only Python 3.11 or later.

    Try it in your browser

  • krunner-abbr: abbreviation expander for KDE Plasma

    Author (2026) · on GitHub

    krunner-abbr is a KRunner plugin for Plasma 6, written in Python, that expands abbreviations: type abbr and an abbreviation, press Enter, and the expansion is copied to the clipboard. Abbreviations live in a TOML file and can use placeholders for dates, the clipboard, typed text, input dialogs and shell commands, with chainable filters to clean up text (title case, unwrapping text copied from PDFs, quote conversion, sorting). It comes with examples for LaTeX and Markdown, Latin (Roman numerals, macrons), and fetching BibTeX from a DOI, plus a settings dialog with a live preview.

  • TEI-XML to LaTeX workflow

    Author (2021) · TUGboat 42 (2)

    A workflow for typesetting critical editions encoded in TEI-XML with LaTeX, and the lessons learned building it.

Other software

  1. 2021
    witrels, software to establish witness relations in TEI-XML documents created according to the SCTA standard. Link
  2. 2021
    Nicolás Vaughan and Riva Quiroga. phyaml, a YAML validator for Programming Historian lessons. Link
  3. 2021
    phimages, a script to rename lesson images for Programming Historian. Link
  4. 2016
    Nicolás Vaughan, Jeffrey C. Witt and Michael Stenskjær Christensen. LombardPress Schema 1.0.0, TEI customisation (ODD) for critical and diplomatic transcriptions of scholastic texts. Link With critical and diplomatic transcription guidelines.
  5. 2016
    pythonxml, a script for collating differences in TEI files. Link

Tools I use

I exclusively use GNU/Linux on my machines. Currently I am happily on the Fedora Linux distribution with the KDE Plasma desktop. For many years I used the Manjaro Linux distribution, as well as (vanilla) Arch Linux, but found them pretty unstable and hard to use on a daily basis.

I mostly use GNU Emacs as my general editor (writing and coding), but frequently resort to Neovim, Visual Studio Code, PyCharm, and Oxygen XML Editor, depending on my needs.

I built this website with the static site generator Jekyll; the design started from a theme by S.V. Miller. Its source code is available on GitHub.