42 record spreads
Profile, max depth and time, gas and pressures, suit and weighting, visibility and temperature, current, notes. One dive — one spread.
130 pages, 42 spreads for dive records, a reference section and an emergency card. Bilingual RU/EN field labels, monochrome printing, ring-binder punch. The finished PDF is free; the layout is described in Python code.
Three files in each release: the main A5, a bleed + crop-marks version for shops that cut stacks, and a 1:1 punch template to verify your ring cover. Nothing to build unless you want to change the layout.
# From release — just the PDFs
dive-logbook-A5-final.pdf
dive-logbook-A5-final-bleed3mm-cropmarks.pdf
punch-template-A5.pdf
# Or build it yourself
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
./build.sh # output in dist/
punch-template-A5.pdf: print at 100%, disable "fit to page", and hold it against your ring cover — ring positions varysrc/logbook.py, the reference section is one function per pageOutside of work I am a recreational diver with licences. A good paper A5 log I could not find on the market: either it did not fit a ring binder, or the reference pages were missing, or the field labels were smaller than a pen tip.
So I built one for myself and my dive buddies. Anyone who asked got a print or a file. It quietly spread among people before there was ever a repo. At some point putting the whole thing in the open was less work than emailing files.
The logic is simple: paper does not run out of battery on the boat, the instructor signs it, the reference opens in two seconds on a briefing without waiting for an app to load on bad island Wi-Fi. I have a digital log too — they are not competitors.
Per spread: profile, gas, gear, self-assessment. Reference: short single-topic pages, so you find them by hand rather than by TOC.
Profile, max depth and time, gas and pressures, suit and weighting, visibility and temperature, current, notes. One dive — one spread.
Safety and planned values, BWRAF, ascent, lost buddy, buoy, hand signals, incident actions, DCS, emergency contacts, gas planning, RMV in litres, reserve gas, nitrox and MOD, oxygen exposure, no-fly limits, weighting, base parameters.
A5 148 × 210 mm, ring-binder punch, single-colour monochrome — cheap at any print shop or on an office printer. Field labels in Russian and English so a foreign instructor can sign it.
The most common mistake is to order the run first and get rings that miss the block. Order: template, then cover, then run.
dive-logbook-A5-final.pdf — main, sheet exactly 148 × 210 mm. Print this if your shop does not stack-cut.dive-logbook-A5-final-bleed3mm-cropmarks.pdf — 154 × 216 mm with 3 mm bleed and crop marks. Hand this to a shop that stack-cuts.punch-template-A5.pdf — one sheet, 1:1, to check punch alignment.punch-template-A5.pdf at 100%, disable "fit to page".src/logbook.py../build.sh) and re-check the template.Python 3.10+ and reportlab. One command builds the book. Edits are text, not InDesign.
The format was chosen on purpose: a binary artboard can no longer be opened a year later, let alone five. Code opens with git clone, edits go through diffs, history lives in commits.
Practical bit: parameters are at the top of src/logbook.py — number of record spreads, note pages, the version string that ends up in the file name and PDF metadata. Reference pages and figures are separate modules, one function per page.
git clone https://github.com/yknnv/dive-logbook.git
cd dive-logbook
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
./build.sh
# Main edit points
src/logbook.py # geometry, cover, cards, assembly
src/reference.py # reference, one function per page
src/figures.py # vector figures
src/check_margins.py # margin and overlap checks
Layout scripts, figure generator, checks — take them, fork them, reuse in your projects. Attribution is welcome but nobody is forced.
Reference text and figures — print for yourself, for friends, for a club, publish derivatives under the same licence. What you may not do: sell printed copies as a commercial product (that is what the NC bit blocks). Large organisations — get in touch, we can arrange something separately.
pip install -r requirements.txt, ./build.sh. The PDFs land in dist/. They are not committed to the repo — they are built per release.