Skip to content

bmlt-enabled/lantern

Repository files navigation

Lantern

License: GPL v2

A WordPress theme for Narcotics Anonymous service bodies — regions, areas, and zonal forums. Drop in the BMLT plugins you already use and the site rebuilds itself around them.

Lantern pairs a warm editorial aesthetic (Fraunces serif on parchment, terracotta accents, sage and gold secondaries) with first-class integration of the BMLT plugin family. Where most NA service-body sites look corporate or generic, Lantern feels considered and human — like a quiet meeting room rather than an enterprise homepage.

Plugin integrations

Lantern auto-detects and integrates with the following — install only what you need; missing plugins degrade gracefully:

Plugin Used for Where it appears
Crumb Meeting finder Meeting Finder page template
Crouton Meeting finder Meeting Finder page template
Mayo Events Manager Events listing + submission Front page + Events template
Fetch Meditation JFT / SPAD readings Front page "Today" panel + Daily Meditation template
NACC Cleantime calculator Cleantime template
BMLT-Workflow Meeting update form For Members template
Bread PDF meeting list Linked from For Members

Lantern supports either Crumb or Crouton as the BMLT meeting finder — pick whichever your service body already uses. The Meeting Finder template embeds whichever is active; if neither is installed, the page shows a friendly notice linking to both.

All plugin styling is rebound to the Lantern palette — Crumb via its #crumb-widget host variables, Crouton via its bmlt-* class hooks — so the finder, calculator, and forms inherit the theme without any markup changes.

Installation

  1. Download the latest lantern.zip from releases — or run make build from this repo.
  2. WordPress admin → Appearance → Themes → Add New → Upload Theme.
  3. Activate Lantern.
  4. Appearance → Customize → fill in Service Body, Helpline, and BMLT & plugins.
  5. Install the BMLT plugins you'd like to use.
  6. Create pages with the documented slugs (or apply the matching page template from the page editor's Template selector).

Out-of-the-box pages

Create pages with these slugs and Lantern will discover them automatically:

Slug Template Purpose
meetings (or meeting-finder) Meeting Finder Crumb meeting finder, full-width
events Events Mayo event list + optional submission form
cleantime Cleantime Calculator NACC calculator
daily-meditation (or meditation) Daily Meditation JFT + SPAD tabbed
helpline Helpline Large clickable number, FAQ
public For the Public Newcomer / families / professionals / literature
members For Members Minutes, subcommittees, events, BMLT-Workflow form
professionals For Professionals Curated NA literature for professionals
literature Literature Booklets / IPs / Group Readings + e-book retailers
about (default) About-NA pillar page — linked from hero

Customization

All branding lives in Appearance → Customize:

  • Service Body — name, tagline, founded year
  • Helpline — phone number, contact email, supporting copy (shown in header, footer, homepage strip)
  • Page links — point each themed slot (Newcomer, Members, Cleantime, Meditation, Events, Helpline, For the Public, Families, Professionals, Literature, Minutes, Subcommittees, Meeting changes, Service guides, Printable list, Meeting finder, About) at any page. Slots with no page hide their card instead of dead-linking.
  • BMLT & plugins — root server URL
  • Homepage copy — every line of homepage text is editable. Click directly on the text in the Customizer preview to jump to its setting. Includes an optional service-body "About us" block (heading + body, basic HTML allowed) that renders before the closing CTA when filled in, and a checkbox to hide the Announcements (journal) section.
  • Footer — about blurb, disclaimer, motto / tradition line
  • Palette — override Paper, Ink, Ember, or Sage to recolor the entire theme

Menu locations (Appearance → Menus):

  • Primary Navigation — main header
  • For the Public — footer column
  • For Members — footer column
  • Footer Links — bottom footer column
  • Utility — top-right (reserved)

Local development

Lantern ships with a Docker setup that mirrors the rest of the BMLT family:

make dev          # docker compose up, watch logs
make install      # wp-cli: install WP, activate Lantern + sibling BMLT plugins, scaffold pages
make open         # browser to http://localhost:8080  (admin / admin)
make bash         # shell inside the WordPress container
make wp CMD="theme list"
make build        # produces build/lantern.zip ready for upload
make nuke         # wipe DB volume + start over

The compose file mounts the parent directory as wp-content/plugins, so if your ~/workspace/git/bmlt-enabled/ layout has Crumb, Mayo, NACC, etc. as siblings to this repo, they all become available inside the WordPress container automatically.

Visit http://localhost:8080 (HTTP) or https://localhost:7443 (HTTPS) once make install finishes.

Repository layout

bmlt-wp-theme/
├── lantern/                ← the WordPress theme (mounted to themes/lantern)
│   ├── style.css, functions.php, theme.json
│   ├── header.php, footer.php, index.php, page.php, single.php, …
│   ├── front-page.php
│   ├── page-templates/     ← Meeting Finder, Events, Cleantime, Meditation, …
│   ├── inc/                ← customizer.php, template-tags.php, widgets.php
│   ├── assets/             ← css/{theme,plugins,editor}, js/theme.js
│   └── readme.txt          ← WP.org-style readme (theme metadata)
├── .github/
│   ├── workflows/          ← release.yml, pull-request.yml, latest.yml
│   └── scripts/            ← release-notes.sh (CHANGELOG.md → release body)
├── Dockerfile              ← WordPress beta + PHP 8.3 + xdebug
├── docker-compose.yml      ← wordpress + mariadb
├── Makefile                ← help / build / dev / install / lint / nuke / …
├── README.md               ← you are here
├── CHANGELOG.md            ← Keep a Changelog format; release notes pulled from here
├── CONTRIBUTING.md
├── AGENTS.md               ← guidance for AI agents working on this repo
└── LICENSE                 ← GPL v2

Releases

Cutting a release is tag-driven: move the ## [Unreleased] entries in CHANGELOG.md under a new ## [X.Y.Z] - YYYY-MM-DD heading, bump the version in lantern/style.css / functions.php / readme.txt, then git tag vX.Y.Z && git push origin vX.Y.Z. GitHub Actions lints, builds lantern.zip, parses the matching CHANGELOG section, and publishes the release automatically. Tags containing beta, rc, or alpha are marked as pre-releases.

Contributing

See CONTRIBUTING.md.

License

GPL v2 or later — see LICENSE.

About

WordPress theme for Narcotics Anonymous service bodies

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors