dependencies.md 10 KB

daw theme — dependency inventory (pre-0.5.0)

Snapshot of everything the classic daw theme depends on, so we can isolate and decide each one's fate during the v0.5.0 FSE migration. Status legend:

  • Keep — still wanted; carry forward (possibly repackaged).
  • Replace — functionality stays, implementation changes (native/blocks/modern lib).
  • Drop? — likely dead or superseded; confirm before removing.
  • Audit — usage unclear; verify what still references it before deciding.

⭐ Decruft checklist (current focus — 2026-06-19)

Primary goal of the FSE branch: shed cruft, not pixel-reproduce the old designs. Classic templates + old CSS stay on the fse-migration branch as the reference/safety net; we delete each piece only once its replacement is confirmed. Quantified below.

Already removed (since this doc was written): gulp + all gulp-* (→ webpack), the whole messenger/online-status feature, page-chat + chat.*, terminal.js, modernizr.js, scripts.js pile, jasny-bootstrap, root tweaks.php, the orphaned v4-* copies.

Fonts — fonts/4.9 MB (biggest raw cruft)

Family On disk Used by Action Priority
Computer Modern 3.2 MB585 KB .cm*/cmun (5 used weights) ✅ DONE 2026-06-19 — woff-only; dropped all ttf/eot/svg + unused CM Bright (cmunbbx) + unreferenced cmunbmr/cmunbsr. style.css/theme.json pruned, rebuilt.
Bootstrap Icons 306 KB header nav (8 bi-*) — the go-forward set Keep but subset to used glyphs → ~10 KB medium win
Glyphicons 208 KB (legacy only; comment-form spans in inc/template.php already render nothing — font never loaded by active bundle) ✅ DONE 2026-06-19 — font files deleted. (Dead inc/template.php glyphicon spans + legacy boot.css/style.min.css left for the CSS cut.)
FontMfizz 390 KB active v4-style.min.css + page-about.php (a few tech-stack icons) Replace the few uses (inline SVG / BI) → drop font medium
Font Awesome 4 689 KB 134 uses, ~40 icons across page-{contact,studio,sitemap,about}, comments.php, searchform.php, parts/footer-home.html (live) Replace → Bootstrap Icons (icon map). Do the live footer part first; classic templates as each migrates. Drop FA last. late / per-page

CSS — v4-style.min.css = 472 KB

Chunk Size Drop when
Bootstrap 5 full (via styles.scss) ~bulk subset to used components (container/grid/carousel/offcanvas/nav)
animate.css 93 KB WOW removed (→ IntersectionObserver/CSS) — drops together
fullcalendar CSS 40 KB About-only → conditional-load, or replace calendar
style.css custom 58 KB per-page: .entry-content/.posts-front/.archive-page/carousel rules die as each page blockifies
fonts.css @font-face 39 KB shrinks as icon fonts above are dropped

JS — v4-script.min.js 511 KB / v4-front.min.js 117 KB

WOW→IntersectionObserver/CSS (also kills animate.css) · backstretch→CSS bg · lazyload→loading="lazy" · jquery-validation→native/GF · rainbow→Prism/modern · fullcalendar→conditional or replace · jquery→vanilla (long-term). Keep for now: svg-morpheus (homepage), drawfillsvg (homepage/about), js-cookie.

Recommended first cut (safe, big, design-neutral, no page migration needed)

  1. Computer Modern format trim (~2.8 MB) — confirm used weights, keep woff2/woff, delete ttf/eot/svg.
  2. Glyphicons removal (~208 KB) — verify inc/template.php, then delete files + legacy boot.css/style.min.css refs.
  3. Bootstrap Icons subset (~296 KB) — build a subset of the ~8–15 used glyphs. Then per-page: animate/WOW, FontMfizz, FA→BI, fullcalendar — as each area blockifies.

1. npm — runtime (package.json › dependencies)

Package Ver Used by Status
bootstrap 5.3.8 site-wide; CSS via styles.scss @import (webpack sass-compiled); JS bundle v4-bootstrap KEEP — upgraded 5.2.3→5.3.8 (2026-06-16). FSE/blocks may reduce need later.
bootstrap-icons 1.13.1 header nav icons (bi-* ×7); @imported in styles.scss, font files in fonts/ KEEP — upgraded 1.10.2→1.13.1 (2026-06-16); font files re-copied.
jquery ^3.6.1 deregistered globally, re-enqueued per page Replace — goal is no-jQuery; vanilla per block
jquery-validation ^1.19.5 contact/forms Drop? — Gravity Forms handles validation now
jasny-bootstrap ^4.0.0 REMOVED 2026-06-16 — fully unused; offcanvas is BS5-native (data-bs-toggle, .offcanvas-end, --bs-offcanvas-*). jasny was never bundled by gulp and referenced nowhere but package.json. (Vestigial .navmenu class still on the <nav> in header-home/studio.php — harmless leftover, clean up later.)
svg-morpheus ^0.3.0 homepage icon morph (front-page.js) Keep — tied to the bespoke homepage we're preserving
animate.css 4.1.1 (latest) scroll animations (WOW) — now imported from node_modules in legacy-style.js (was gulp-copied v4-animate.css, now orphaned) KEEP — already latest. (Long-term: replace WOW+animate with IntersectionObserver/CSS.)
fullcalendar ^5.11.3 About page calendarabout.js:120 new FullCalendar.Calendar(#calendar), page-about.php:167 <div id="calendar"> KEEP (verified in use). v6 is a breaking API change — defer that upgrade to its own focused task

2. npm — dev (package.json › devDependencies)

gulp, gulp-clean-css, gulp-concat, gulp-rename, gulp-sass, gulp-terser, gulp-uglify, sass, streamqueue, browser-sync. Status: Replace — the whole gulp pipeline → @wordpress/scripts + webpack (per 0.5.0 decision).

3. Vendored / hand-managed JS (js/, not all from npm)

Concatenated into scripts.js (per readme): WOW, jquery-validation, jquery_lazyload, backstretch (was Formstone Wallpaper), Rainbow, jquery.appear, Draw-Fill-SVG, typed.js, jquery-scrollto, smoothState, js-cookie, jquery-waypoints, ghembedder. Plus standalone:

File Purpose Status
terminal.js old homepage terminal Drop? — already removed from bundle (davo-chat replaced it)
messenger.min.js + css/messenger.css HubSpot Messenger Drop? — deprecated (readme), still in front bundle
modernizr.js feature detection Drop? — obsolete
mediaelement-and-player.min.js, wp-mediaelement.min.js media player Replace — use core mediaelement or native <audio>/<video>
loop.js backbone/underscore/wp-api infinite loop (desk/archive) Replace — core Query Loop block
chat.js / chat.min.js / chat_func.js Twilio chat (page-chat) Audit — superseded by davo-bot?
moment.min.js dates (fullcalendar) Drop? — follows fullcalendar decision
color.js, drawfillsvg.js effects Audit
Page JS: about/art/music/desk/contact/single/studio/code/analytics.js per-page behavior Audit/Replace — fold into blocks/parts where still needed
v4-*, *.min.js gulp build outputs generated, not sources

4. CSS (css/)

normalize.css, bootstrap (boot.css), animate (v4-animate), font-awesome.css, fullcalendar.css, messenger.css, chat.css, form.css, front-page.css, fonts.css, editor.css, styles.scssstyles.css. Status: Replace — most folds into theme.json (tokens/palette/typography) + per-block style.css; keep front-page.css (bespoke homepage) and editor.css.

5. Vendored PHP libs (inc/lib/)

Lib Path Used by Status
Twilio PHP SDK (full, ~80 files) inc/lib/call/Services/Twilio/* call/SMS/chat (page-chat, phone.php, sms.php, call.php) Audit — is the phone/SMS/chat feature still live? If kept, replace vendored SDK with Composer twilio/sdk
simple_html_dom inc/lib/dom.php, html_dom.php HTML scraping (music/last.fm? sitemap?) Audit

inc/lib/call/auth.php is gitignored (secrets).

6. Fonts (fonts/)

Mixed eot/otf/svg/ttf/woff/woff2 (11/1/9/11/12/3). Per style.css header: Font Awesome 4.2, Font Mfizz 2.1, Computer Modern. Status: Audit/Replace — declare kept faces in theme.json fontFamilies; drop icon fonts in favor of inline SVG/bootstrap-icons if still wanted.

7. External / CDN

Service Where Status
Matomo (self-hosted davidawindham.com/wik/) dw_analytics() footer Keep → move to inc/analytics/matomo.php
Stripe v2 (js.stripe.com/v2/) contact/pay pages Drop? — Stripe v2 is long-deprecated; Gravity Forms Stripe add-on is the real payment path now

8. WordPress plugins in play (install-level, not theme deps — for context)

Gravity Forms (+ Stripe/Signature/PDF), Akismet, WP Super Cache, WP Sweep, dw-guten (rebuilt v0.4), daw-mcp/mcp-adapter. Forms/validation/payments now belong to Gravity Forms — informs the Drop? calls on jquery-validation + Stripe v2.


Isolation summary for the upgrade

  • Definitely carry forward: Matomo, svg-morpheus (homepage), front-page.css, davo-bot widget loader, dw-guten meta sidebar.
  • Replace with platform: gulp→wp-scripts, jQuery→vanilla, loop.js→Query Loop block, mediaelement→core/native, most CSS→theme.json.
  • Verified KEEP (in use — don't drop): fullcalendar (About calendar), animate.css (via WOW), jquery-validation (comment forms), WOW, DrawFillSVG, backstretch, lazyload, js-cookie, Rainbow, svg-morpheus.
  • Confirm-then-drop (verified unused in the JS audit): terminal.js, messenger, modernizr, Stripe v2, typed.js, smoothState, jquery-waypoints, jquery.appear, jquery-scrollto. (jasny-bootstrap removed 2026-06-16.)
  • Audit features before deciding: Twilio call/SMS/chat, simple_html_dom, icon fonts, moment.min.js (FullCalendar v5 doesn't need it — check other uses).
  • ⚠️ Audit caution: broad greps here have repeatedly produced false negatives (zsh word-split on unquoted file-list vars; case-sensitivity, e.g. FullCalendar). Verify each candidate case-insensitively with literal file args, and trust David's knowledge of what's used.