# Governors of Maine — v1.1 (2026-10-05)

Every governor since statehood: 71 people, 75 tenures (four served non-consecutive terms), from the Maine State Law and Legislative Reference Library's *Governors of Maine, 1820–* (rev. March 17, 2025).

| file | contents |
|---|---|
| `governors_raw.txt` | The Library's list as transcribed: `name|term start|term end|party as listed`, one tenure per line in order. **This is the governor timeline every other dataset uses** (`sjc/build.py` and `sjc/derive.py` read it to find the governor in office on a commission date) |
| `governors.csv` | The same, built by `build_gov.py`: order, name, term dates, party as listed, party group (`DR` Democratic-Republican, `D` Democrat incl. Jackson Democrat, `NR` National Republican, `W` Whig, `R` Republican incl. Union Republican, `I` Independent), `succeeded_to_office` (came in on a vacancy as Senate President), count of SJC appointments, note |
| `build_gov.py` | Builds `governors.csv` and `maine_governors.html` from `governors_raw.txt`, `../sjc/sjc_data.json` (appointments per governor — run `sjc/build.py` first), `gov_template.html`, `../site-design/brand/favicon_tags.html` and `../site-design/shared/hist_nav.py`. Notes and the "succeeded" flags are hand-entered in the script |
| `build_gov_explorer.py` | Builds the Governor-only Results Map (the `<div id="govex">` block that `build_gov.py` drops into the template at `__EXPLORER__`, between the timeline and the tiles). It is the Election Results hub's explorer re-assembled from `../site-design/hubs/` (`elections/body.html` markup, `hub_common.css` + `elections/page.css` scoped under `#govex`, `hub_common.js` + the explorer half of `elections/page.js`) with only the Governor races from `hubs/elections.json`, plus `hubs/common.json`, `../site-design/main-page/geo_paths.json` and `hubs/links.json`. When election data changes, run `site-design/hubs/build_hubs_data.py` first, then this rebuild; a change to the hub explorer's code or styling carries over here on the next rebuild (added 2026-10-03, page v12) |
| `gov_template.html` | The page template (`__DATA__`, `__FAVICON__`) |
| `maine_governors.html` | The built page, published at https://mainepoliticaldata.com/governors/ |
| `portraits/` | Full-size portrait files, one per person, `<slug>.jpg` — slug = the Library-list name lower-cased with non-letters as hyphens (`joshua-l-chamberlain.jpg`, `john-r-mckernan-jr.jpg`). 69 of the 71 governors as of 2026-10-03 (Matt's three batches; still without one: Benjamin Ames and Daniel Rose). `build_gov.py` embeds a tile-sized copy (324 px tall, JPEG) in the page, so the portraits add about 1 MB (the page is about 3 MB with the Results Map); drop a new file here and rebuild and the tile shows the portrait instead of initials. |

**Rebuild:** `python3 build_gov.py` in this folder. The sitting governor's bar on the timeline runs to the day of the build.

**Party** is shown as the Library lists it, with two rulings by Matt: Richard Vose, acting governor in January 1841, is a Whig (2026-10-03; the Library prints Democrat), and James B. Longley (1975–79) and Angus S. King Jr. (1995–2003) are **Unenrolled** (2026-10-05; the Library prints Independent — Maine has no Independent party). See FLAGS. Three Library slips are corrected in `governors_raw.txt`: Vose's party and his term end (1841, not 1831); spellings Kavanagh, Selden Connor, Sebastian Marble. Two month-only term ends are completed (v1.1): Garcelon 1880-01 → 1880-01-16 and Daniel F. Davis 1881-01 → 1881-01-12, each the day before his successor's inauguration as listed in the same file (Davis 1880-01-17, Harris Plaisted 1881-01-13).

**Governors of Maine on the site:** this page (tiles in order, party timeline), the Supreme Judicial Court page (appointments by governor), and `legislature/constitutional_officers.csv` (Governor rows, with the other constitutional officers).

## What changed in v1.2 (2026-10-05)
* **Unenrolled, never Independent (Matt's ruling, overriding the Law Library's printed label as with Vose):** `governors_raw.txt` Longley and King "Independent" → "Unenrolled"; `governors.csv` `party_as_listed` Unenrolled, `party_group` U (was I). `build_gov.py` buckets "Unenrolled" as U; Longley's tile note now reads "Maine's first unenrolled governor, elected without a party." `gov_template.html`: legend and colours keyed U ("Unenrolled", same colour as before), and the Sources note states the ruling. Page rebuilt. The SJC page's appointing-governor party follows (sjc v1.2).
* Not changed: the Governor Election Results explorer on this page comes from `site-design/hubs/elections/page.js` (shared with the Election Results page), which still labels candidates coded IND "Independent" and the combined group "Independent / other" — to change with that page.

## What changed in v1.1 (2026-10-05)
* `governors_raw.txt`: Alonzo Garcelon's term end 1880-01 → 1880-01-16 and Daniel F. Davis's 1881-01 → 1881-01-12 (the day before the successor's inauguration date in this file; audit 2026-10-04 H10). Tenure lengths for the two change by a day or so; nothing else in `governors.csv` changed.
* `build_gov.py`: the `ALIAS` mapping "Anson P. Morrill" → "Anson Morrill" is gone, because `sjc/` now uses "Anson P. Morrill" too (his four SJC appointments still count).
* `governors.csv` already carries `party_group` (DR, D, NR, W, R, I — U since v1.2) — the vocabulary now shared with `sjc_appointments.csv`, `legislature/constitutional_officers.csv`, `legislature/members.csv` and `officeholders/officeholders.csv`; `people/people_index.csv` links governors to their other offices.

## 2026-10-21 — portraits
* A governor tile with no file in `portraits/` shows any portrait of the person (`site-design/people/portrait_pick.py` fallback; none needed today: 73 of 75 tiles have their own, the other two have no portrait anywhere). Tile pictures are aligned to the top of the frame (`.ph img{object-position:50% 0}` in `gov_template.html`): full width, bottom cut, heads never cut.
