Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,14 @@ release workflow will take care of the rest.

## [Unreleased]

## [1.0.2] - 2026-05-20
## [1.0.2] - 2026-05-25

### Added
- BMLT Minutes integration: a new **Minutes** page template (slug `minutes`)
renders the plugin's `[minutes]` shortcode behind a defensive
`lantern_has_shortcode()` check, degrading to a notice when the plugin is
inactive. The `.bmlt-minutes__*` output is rebound to the Lantern palette
in `assets/css/plugins.css`.
- The four worldwide-stats values on the about band (weekly-meetings value
and label, countries value and label) are now Customizer-backed with
click-to-edit pencils via `selective_refresh` partials.
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Lantern auto-detects and integrates with the following — install only what you
| [Fetch Meditation](https://wordpress.org/plugins/fetch-meditation/) | JFT / SPAD readings | Front page "Today" panel + Daily Meditation template |
| [NACC](https://wordpress.org/plugins/nacc-wordpress-plugin/) | Cleantime calculator | Cleantime template |
| [BMLT-Workflow](https://github.com/bmlt-enabled/bmlt-workflow) | Meeting update form | For Members template |
| [BMLT Minutes](https://wordpress.org/plugins/bmlt-minutes/) | Committee minutes archive | Minutes page template |
| [Bread](https://wordpress.org/plugins/bmlt-meeting-list/) | 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.
Expand Down Expand Up @@ -46,6 +47,7 @@ Create pages with these slugs and Lantern will discover them automatically:
| `helpline` | Helpline | Large clickable number, FAQ |
| `public` | For the Public | Newcomer / families / professionals / literature |
| `members` | For Members | Minutes, subcommittees, events, BMLT-Workflow form |
| `minutes` | Minutes | BMLT Minutes committee minutes archive |
| `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 |
Expand Down
82 changes: 82 additions & 0 deletions lantern/assets/css/plugins.css
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,88 @@ body .meditation-read-more:hover {
border-bottom: 1px solid var(--lantern-ink-line);
}

/* ----------------------------------------------------------------
BMLT Minutes (committee minutes archive)
The plugin exposes no CSS variables, so we target its .bmlt-minutes__*
class hooks (defined in bmlt-minutes/css/minutes.css) and rebind the
hardcoded greys/blue to the Lantern palette. Used by the Minutes page
template and the singular minutes permalink's "View Document" button.
---------------------------------------------------------------- */
.lantern-minutes-wrap {
background: var(--lantern-paper);
border: 1px solid var(--lantern-ink-line);
border-radius: var(--lantern-radius);
padding: clamp(1.25rem, 2vw, 2rem);
}

.lantern-minutes-wrap .bmlt-minutes {
font-family: var(--lantern-body);
font-size: var(--lantern-step--1);
color: var(--lantern-ink);
}

.lantern-minutes-wrap .bmlt-minutes--empty {
color: var(--lantern-ink-faint);
}

/* Committee / year headings */
.lantern-minutes-wrap .bmlt-minutes__group {
font-family: var(--lantern-display);
font-weight: 500;
letter-spacing: -0.01em;
color: var(--lantern-ink);
border-bottom: 1px solid var(--lantern-ember);
}

.lantern-minutes-wrap .bmlt-minutes__item {
border-bottom: 1px solid var(--lantern-ink-line);
}

.lantern-minutes-wrap .bmlt-minutes__icon {
color: var(--lantern-ink-faint);
}

.lantern-minutes-wrap .bmlt-minutes__title {
color: var(--lantern-ink);
}

.lantern-minutes-wrap .bmlt-minutes__date {
color: var(--lantern-ink-faint);
}

.lantern-minutes-wrap .bmlt-minutes__excerpt {
color: var(--lantern-ink-soft);
}

/* File-type badge — tint from the palette so it retunes on override */
.lantern-minutes-wrap .bmlt-minutes__type {
background: var(--lantern-paper-deep);
color: var(--lantern-ink-soft);
}
.lantern-minutes-wrap .bmlt-minutes__type--locked {
background: color-mix(in srgb, var(--lantern-ember) 14%, var(--lantern-paper));
color: var(--lantern-ember-deep);
}
.lantern-minutes-wrap .bmlt-minutes__item--locked .bmlt-minutes__icon {
color: var(--lantern-ember-deep);
}

/* "View Document" button — both in-template and on the singular permalink */
.lantern-minutes-wrap .bmlt-minutes__button,
.bmlt-minutes__single-link .bmlt-minutes__button {
background: var(--lantern-ember);
border-radius: var(--lantern-radius);
font-family: var(--lantern-body);
color: var(--lantern-paper);
}
.lantern-minutes-wrap .bmlt-minutes__button:hover,
.lantern-minutes-wrap .bmlt-minutes__button:focus,
.bmlt-minutes__single-link .bmlt-minutes__button:hover,
.bmlt-minutes__single-link .bmlt-minutes__button:focus {
background: var(--lantern-ember-deep);
color: var(--lantern-paper);
}

/* ----------------------------------------------------------------
Notices (plugin not active)
---------------------------------------------------------------- */
Expand Down
48 changes: 48 additions & 0 deletions lantern/page-templates/minutes.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php
/**
* Template Name: Minutes
*
* Publishes service-committee meeting minutes via the BMLT Minutes plugin's
* [minutes] shortcode. Degrades to a friendly notice when the plugin is absent.
*
* @package Lantern
*/

get_header(); ?>

<section class="lantern-section" style="padding-bottom: 2rem;">
<div class="lantern-shell">
<header class="lantern-stack" style="margin-bottom: 2rem; max-width: 60ch;">
<span class="lantern-eyebrow"><?php esc_html_e( 'Records', 'lantern' ); ?></span>
<h1 class="lantern-page-title" style="margin: 0;"><?php the_title(); ?></h1>
<?php while ( have_posts() ) : the_post(); if ( get_the_content() ) : ?>
<div class="lantern-page-subtitle"><?php the_content(); ?></div>
<?php endif; endwhile; ?>
</header>
</div>
</section>

<section class="lantern-section" style="padding-top:0;">
<div class="lantern-shell">
<?php if ( lantern_has_shortcode( 'minutes' ) ) : ?>
<div class="lantern-minutes-wrap">
<?php echo do_shortcode( '[minutes]' ); ?>
</div>
<?php else : ?>
<div class="lantern-notice">
<h2><?php esc_html_e( 'BMLT Minutes plugin is not active', 'lantern' ); ?></h2>
<p>
<?php
printf(
/* translators: %s: link to the BMLT Minutes plugin */
wp_kses( __( 'Install %s to publish committee meeting minutes here.', 'lantern' ), array( 'a' => array( 'href' => array(), 'rel' => array(), 'target' => array() ) ) ),
'<a href="https://wordpress.org/plugins/bmlt-minutes/" rel="noopener" target="_blank">BMLT Minutes</a>'
);
?>
</p>
</div>
<?php endif; ?>
</div>
</section>

<?php get_footer();
5 changes: 4 additions & 1 deletion lantern/readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Out of the box, Lantern auto-detects and integrates with:
* **Fetch Meditation** — the homepage "Today" panel shows the JFT excerpt; a dedicated Daily Meditation page template runs the tabbed both-books view.
* **NACC** — the Cleantime Calculator page template renders the calculator with the Lantern type/color system.
* **BMLT-Workflow** — the For Members page template can render the meeting update form.
* **BMLT Minutes** — the Minutes page template publishes committee meeting minutes via the [minutes] shortcode.
* **Bread** — the Members page links to the PDF meeting list when present.

Every shortcode integration is defensive: if a plugin isn't installed, Lantern shows a clear notice with the plugin name and where to get it, instead of breaking.
Expand All @@ -39,9 +40,10 @@ After install, create pages with these slugs (or pick them in Customize → BMLT
* `/helpline` — uses Helpline template
* `/public` — uses For the Public template
* `/members` — uses For Members template
* `/minutes` — uses Minutes template (BMLT Minutes plugin)
* `/about` — pillar page (linked from hero)
* `/newcomer`, `/for-families`, `/professionals`, `/literature` — linked from For the Public
* `/minutes`, `/subcommittees`, `/meeting-changes`, `/service-guides`, `/meeting-list` — linked from For Members
* `/subcommittees`, `/meeting-changes`, `/service-guides`, `/meeting-list` — linked from For Members

= Customizing =

Expand Down Expand Up @@ -93,6 +95,7 @@ Yes. All user-facing strings use the `lantern` text domain. Drop a `.mo` file in
See [CHANGELOG.md](https://github.com/bmlt-enabled/bmlt-wp-theme/blob/main/CHANGELOG.md) for the full version history.

= 1.0.2 =
* New Minutes page template — integrates the BMLT Minutes plugin's [minutes] shortcode behind a defensive check, with the output restyled to the Lantern palette.
* Replaced the "At a glance" hero aside (cost/requirement stats card) with a single larger pull-quote.
* Customizer Homepage, Helpline, and Footer text controls now open pre-populated with their default copy instead of empty inputs.
* Worldwide-stats values on the about band, the three "Today" side cards, and the full pathways section (eyebrow + heading + all three cards' title/description/link label) are all Customizer-backed with click-to-edit pencils.
Expand Down
1 change: 1 addition & 0 deletions lantern/theme.json
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@
{ "name": "helpline", "title": "Helpline", "postTypes": [ "page" ] },
{ "name": "for-public", "title": "For the Public", "postTypes": [ "page" ] },
{ "name": "for-members", "title": "For Members", "postTypes": [ "page" ] },
{ "name": "minutes", "title": "Minutes", "postTypes": [ "page" ] },
{ "name": "wide", "title": "Wide (full-bleed content)", "postTypes": [ "page", "post" ] }
]
}