ALC section (/alc/)

This directory implements the Apache Local Community (ALC) section of the ComDev website: a landing page with an interactive map of chapters, a per-chapter page model, a “start a chapter” guide, and an organizer guide.

What each file is

source/alc/
├── _index.md             Landing page. Intro, embedded map + chapter
│                         list (via shortcodes), how to get involved,
│                         contact. URL: /alc/
├── start-a-chapter.md     How to establish a chapter + the program rules
│                         (one-per-city, metro exceptions, CoC, quarterly
│                         reports, 3-month inactivity dissolution, no
│                         press releases). Includes the front-matter
│                         template for adding a chapter.
├── organizers.md          Practical guide for chapter organizers (running
│                         events, finding speakers, reporting, resources).
└── chapters/
    ├── _index.md          Chapter list page. URL: /alc/chapters/
    └── <city>.md          One file per chapter. Front matter drives the
                           map + list; body is the chapter blurb.

Supporting layout files (in layouts/shortcodes/):

Loading the base map fetches tiles from *.tile.openstreetmap.org, a third-party service that receives the visitor’s IP and request data. Per ASF website policy and the OSMF privacy FAQ — the ASF cannot sign a Data Processing Agreement with OpenStreetMap — the tile layer must not load until the visitor explicitly, revocably opts in.

alc_map.html implements this:

The matching server-side change is a CSP allowance for *.tile.openstreetmap.org in the site’s .htaccess (SetEnv CSP_PROJECT_DOMAINS ...). Both the consent mechanism and the CSP change were approved by ASF VP Infrastructure (Niall Pemberton) on 2026-10-14, on the explicit basis that tiles load only behind consent.

Vendored Leaflet

Leaflet 1.9.4 is checked into the repo at static/vendor/leaflet/1.9.4/ (leaflet.js, leaflet.css, and the marker/layer images under images/). Serving it from our own origin removes the runtime dependency on the unpkg CDN; only the OpenStreetMap tiles remain external, which is unavoidable for a slippy map.

To update to a newer Leaflet, run the helper and bump the version path in layouts/shortcodes/alc_map.html:

static/vendor/leaflet/update-leaflet.sh 1.9.4   # or a newer version

It downloads the JS, CSS, and images into static/vendor/leaflet/<version>/. The CSS references its images by relative path, so keep the images/ subfolder alongside leaflet.css.

Chapter front matter

---
title: ALC CityName
city: CityName
country: Country
lat: 00.0000          # decimal degrees; drives the map
lon: 00.0000
status: active        # active | proposed | dissolved
started: 2026
organizers: "Name(s) or team"
links:
  website: https://example.org/
  slack: "#alc-cityname"
  wiki: https://cwiki.apache.org/confluence/display/COMDEV/...
tags: ["alc"]
---

Adding a chapter = adding one Markdown file here. The map and both list pages regenerate from it automatically; there is no separate data source.

How the map works

alc_map.html uses Hugo’s where .Site.RegularPages "Section" "alc" filtered to pages with a non-nil lat, so only chapter files appear on the map (the landing/guide pages are excluded). Marker color is keyed off status. The map auto-fits to the markers’ bounds. Built against Hugo v0.111.3 (the version in the Jenkinsfile).

Relationship to the cwiki

The authoritative ALC program documentation (formal apply/dissolve processes, the ALC Resources library, Slack invite) stays on the ALC wiki. This section is the public, newcomer-facing front door plus the map, and links back to the wiki for the authoritative process docs.

Provenance / status of the seed data

The initial chapter pages (Indore, Beijing, Warsaw, Budapest, Shanghai) were seeded from the ALC wiki and public ASF announcements — not from a complete export. Before merging:

How this was made

Amazon Quick generated the initial drafts of these files (section pages, chapter template, shortcodes, navbar/homepage wiring) as part of a website-architecture cleanup; Rich reviews and edits before merge. This work lives on the rbowen-alc branch.