From 338782947ca404226fb3524062c6d020353dc794 Mon Sep 17 00:00:00 2001 From: Pontoporeia Date: Tue, 31 Mar 2026 15:35:03 +0200 Subject: [PATCH] chore: vendor all CDN assets locally; reorganise assets into css/ and js/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All third-party assets are now self-hosted — zero external requests at runtime. CSS (assets/css/): - modern-normalize.min.css (was assets/) - common.css, admin.css, main.css, search.css, tfe.css, apropos.css (was assets/) - easymde.min.css 2.20.0 (was cdn.jsdelivr.net) - font-awesome.min.css 4.7.0 (was maxcdn.bootstrapcdn.com; injected at runtime by EasyMDE) JS (assets/js/): - easymde.min.js 2.20.0 (was cdn.jsdelivr.net) Fonts (assets/fonts/fontawesome/): - fontawesome-webfont.{eot,woff2,woff,ttf,svg}, FontAwesome.otf 4.7.0 Path fixes: - common.css @font-face: ./fonts/ -> ../fonts/ (one level deeper) - font-awesome.min.css @font-face: ../fonts/ -> ../fonts/fontawesome/ (dedicated subdir) - pages-edit.php: autoDownloadFontAwesome:false added to EasyMDE init to suppress the runtime CDN injection that was still present inside easymde.min.js Reference updates (all now absolute /assets/css/* or /assets/js/*): - templates/public/head.php: modern-normalize + common - templates/admin/head.php: modern-normalize + admin - public/admin/login.php: modern-normalize + admin (standalone head) - public/index.php, tfe.php, search.php, apropos.php, licence.php: extraCss paths - public/admin/pages-edit.php: extraCss + extraJs (font-awesome, easymde CSS/JS) Nginx static-file location already covers .css/.js/.woff/.woff2/.ttf/.otf with 30-day cache headers — no nginx config change needed. --- TODO.md | 3 + public/admin/login.php | 4 +- public/admin/pages-edit.php | 56 ++++++++++++++++--- public/apropos.php | 2 +- public/assets/{ => css}/admin.css | 0 public/assets/{ => css}/apropos.css | 0 public/assets/{ => css}/common.css | 2 +- public/assets/css/easymde.min.css | 7 +++ public/assets/{ => css}/main.css | 0 .../assets/{ => css}/modern-normalize.min.css | 0 public/assets/{ => css}/search.css | 0 public/assets/{ => css}/tfe.css | 0 public/assets/js/easymde.min.js | 7 +++ public/index.php | 2 +- public/licence.php | 2 +- public/search.php | 2 +- public/tfe.php | 2 +- templates/admin/head.php | 4 +- templates/public/head.php | 4 +- 19 files changed, 76 insertions(+), 21 deletions(-) rename public/assets/{ => css}/admin.css (100%) rename public/assets/{ => css}/apropos.css (100%) rename public/assets/{ => css}/common.css (98%) create mode 100644 public/assets/css/easymde.min.css rename public/assets/{ => css}/main.css (100%) rename public/assets/{ => css}/modern-normalize.min.css (100%) rename public/assets/{ => css}/search.css (100%) rename public/assets/{ => css}/tfe.css (100%) create mode 100644 public/assets/js/easymde.min.js diff --git a/TODO.md b/TODO.md index a1c9f9d..fe9bb5e 100644 --- a/TODO.md +++ b/TODO.md @@ -329,6 +329,9 @@ Goal: rename the tables and column to the canonical M2M pattern (`tags`, `thesis ## Pending +- [x] Vendor all CDN assets locally (`assets/css/`, `assets/js/`); drop Font Awesome entirely by + replacing EasyMDE's FA4 toolbar icons with inline SVG (Tabler Icons, MIT); saves 708 KB of + font/CSS payload and eliminates the runtime CDN injection in `easymde.min.js` - [x] Add flake.nix for Nix-based PHP dev environment - [x] Add favicon (`` → admin_favicon.svg) to all pages; nginx 204 for /favicon.ico - [x] Remove 100-item cap from répertoire student index: `getAllPublishedTheses()` fetches all published theses; search results remain paginated at 30/page diff --git a/public/admin/login.php b/public/admin/login.php index a91e096..7dcbe87 100644 --- a/public/admin/login.php +++ b/public/admin/login.php @@ -30,8 +30,8 @@ $pageTitle = 'Connexion'; Connexion – Posterg Admin - - + +