|
|
@@ -102,10 +102,36 @@ character of the site.
|
|
|
- [ ] `patterns/` for reusable sections
|
|
|
- [ ] `blocks/` for dynamic bits (music/last.fm, desk loop → Query Loop, etc.)
|
|
|
|
|
|
-### Phase 5 — Cleanup (the "additional cleanup")
|
|
|
-- [ ] Drop confirmed-dead deps per [[dependencies]] (terminal.js, messenger, modernizr, jasny, animate.css…)
|
|
|
-- [ ] Resolve audits: Twilio call/SMS/chat, fullcalendar, simple_html_dom, Stripe v2, icon fonts
|
|
|
-- [ ] Remove legacy build outputs + `style.min.css`
|
|
|
+### Phase 5 — Cleanup / decruft (PRIMARY goal of the FSE branch)
|
|
|
+
|
|
|
+The migration's main payoff: **shed 22 years of cruft.** Classic templates + old CSS stay
|
|
|
+on the `fse-migration` branch as the reference/safety net; delete each piece only once its
|
|
|
+replacement is confirmed. Quantified, per-item checklist lives in [[dependencies]] (⭐ section).
|
|
|
+
|
|
|
+**Done (branch, 2026-06-19→21):** fonts **5.0 MB → 1.8 MB** — Computer Modern trimmed to
|
|
|
+woff/used-weights, Glyphicons deleted, **bootstrap-icons dropped** (8 header icons → inline SVG;
|
|
|
+font + ~2000 CSS rules + the npm dep all gone). `v4-style.min.css` **472 → 393 KB**.
|
|
|
+
|
|
|
+**Icon & font strategy (decided 2026-06-21):**
|
|
|
+- **Icons = SVG, tree-shaken, never the webfont.** One pipeline: npm SVG source → a build-time
|
|
|
+ **SVG sprite** (`<symbol>` + `<svg><use href="#…">`) of only-used icons, referenced identically
|
|
|
+ in classic PHP and block templates. (~40 distinct icons reused 134× → sprite beats inlining.)
|
|
|
+- **Font Awesome → FA Pro via npm** (user has a Pro license): install the **SVG** packages
|
|
|
+ (`@fortawesome/pro-*-svg-icons` / a kit) from FA's authed registry — **not** the webfont —
|
|
|
+ and feed them through the sprite. Swapping sets later = change the package + regenerate.
|
|
|
+ Replaces FA-font **and** FontMfizz.
|
|
|
+ - **Secret:** FA Pro npm needs a token in `.npmrc` → **gitignore `.npmrc`**; commit a
|
|
|
+ `.npmrc.example` with the registry line (no token).
|
|
|
+- **One-off icons** (the 8 header, the couple FontMfizz spots) stay hand-inlined SVG — no dep.
|
|
|
+- **Text/display fonts:** use **`@fontsource/*`** (npm — versioned woff2 + `@font-face`) for fonts
|
|
|
+ that have it; self-host woff2 for niche ones (Computer Modern). Declare all in `theme.json`
|
|
|
+ `fontFamilies`. (User may add a couple more display fonts.)
|
|
|
+
|
|
|
+**Remaining decruft (see [[dependencies]]):** FontMfizz → inline SVG · FA → FA-Pro sprite (the
|
|
|
+font drops once classic templates migrate) · animate.css + WOW → CSS/IntersectionObserver ·
|
|
|
+fullcalendar → About-only/replace · Bootstrap full → subset to used components ·
|
|
|
+backstretch/lazyload/validate/rainbow → native, per page. Plus dead legacy CSS (`boot.css`,
|
|
|
+`style.min.css`) + the dead `inc/template.php` glyphicon comment-form spans + legacy build outputs.
|
|
|
|
|
|
### Phase 6 — New features
|
|
|
- [ ] _TBD — to be specified_
|
|
|
@@ -136,6 +162,14 @@ Considering moving the whole site from **davidawindham.com → davidwindham.com*
|
|
|
|
|
|
## Changelog
|
|
|
|
|
|
+- **2026-06-21** — **Phase 5 decruft, first cut (branch).** Fonts 5.0 MB → 1.8 MB: Computer Modern
|
|
|
+ trimmed to woff/used-weights (dropped ttf/eot/svg + unused CM Bright + cmunbmr/cmunbsr), Glyphicons
|
|
|
+ deleted, **bootstrap-icons dropped entirely** (8 header icons → inline SVG; removed the styles.scss
|
|
|
+ @import's ~2000 `.bi-*` rules, font files, and the npm dep) → `v4-style.min.css` 472 → 393 KB. All
|
|
|
+ design-neutral, verified 200. **Decided the go-forward icon/font strategy** (see Phase 5 above):
|
|
|
+ icons = tree-shaken SVG sprite, FA Pro via npm SVG packages (not webfont; `.npmrc` token gitignored),
|
|
|
+ one-offs inline, text fonts via `@fontsource` or vendored woff2 + `theme.json`.
|
|
|
+
|
|
|
- **2026-06-19** — **Phase 3 (branch `fse-migration`): FLIPPED to a block theme (hybrid).** Added
|
|
|
`templates/index.html` (Query Loop) → `wp_is_block_theme()` is now true. **Key mechanic (verified
|
|
|
by experiment):** WordPress picks the **most-specific** template; **on a tie the block template
|