Prebuild

The prebuild script builds content which hugo is not able to create.

Meeting Stubs

Hugo is not able to generate “new” pages from data sources. Prebuild can read meeting data from hugo’s data source and generate stub files.

Printable PDF

This is a foldable PDF that is intended to be printed on two sides and then folded twice, with Al-Anon meetings on one inner sheet and AA meetings on a full inner sheet.

If there is enough interest, this can be broken into a separate repository and turned into a more flexible design.

Live Example:


Script Arguments

Arguments which define how prebuild is bootstrapped.

$ python3 ./prebuild.py -h
usage: prebuild.py [-h] <optional arguments>

options:
  -h, --help         show this help message and exit
  -c X, --config X   Configuration directory (default: ./prebuild.yaml)
  -r X, --runtime X  Runtime overrides for yaml configuration values (default: "{}")
  -v, --verbose      Use verbose logging

basic example:
  python3 ../prebuild.py

complicated example:
  prebuild.py -c ../prebuild.yaml --runtime '{"stub-path": "test/{shortcode}.md"}'

Configuration File

Configuration read from prebuild.yaml and merged with --runtime.

Default Values:

# List of content to build
builders: [stubs, pdf]

# Location of meeting data (directory will be checked if .yaml is missing)
meeting-data: data/meetings.yaml

# Location of generated stubs
# CAUTION: Any files matching this pattern will be purged before generation
stub-path: content/meetings/{shortname}.md

# Location of generated .pdf (and .tex)
pdf-path: static/meeting-schedule.pdf

# Number of columns used to display content
pdf-cols:

  # Columns used on the second page (full sheet)
  aalist: 4

  # Columns used on the front (quarter sheet)
  anonlist: 2

# Hide day-of-week header if there are no meetings within
hide-empty:
  aalist: false
  anonlist: false

Required Values: (example provided)

The data below provides a functional example and was copied from exampleSite. The pdf-blurbs section has LaTeX-formatted data.

# Should be copied from hugo configuration (config.yaml)
baseURL: https://aamod-demo.recoverysource.net/

# Content that is dropped into the generated .tex file
pdf-blurbs:

  # Image displayed in folded booklet
  image: themes/aamod/static/img/AAlogo.jpg

  # Helpline phone number
  helpline: 1-800-123-4567

  # Front cover of folded booklet
  front: |
    \vskip 2ex {\footnotesize If you have changes to this directory, please write to:}
    \vskip 1ex {\large Statestown Area Intergroup\\
    P.O. Box 1\\
    City, ST 42024}

  # Note above al-anon meetings (inside-right)
  alanon: |
    {\7pt Al-Anon members are people who are worried about someone with a drinking problem.}\\
    {\7pt\textbf{24-Hour Hotline:} (123) 456-7890}\\
    {\7pt\textbf{Al-Anon Information:} al-anon.org}

  # Links to additional resources on back of folded booklet
  resources: |
    {\7pt\textbf{Statestown Area:} aamod-demo.recoverysource.net/meeting-times}\\
    {\7pt\textbf{South Dakota State:} www.area63.org}

  # Informational box on bottom-right of back (second) page
  details: |
    \textbf{Statestown Area Intergroup}\\
    Meets at: Very Local AA\\
    {\6pt Every 2nd Sunday of the month at 4:30 PM}