host: self-hosted Google Fonts (gfonts) and the font cache (fonts)

gfonts (pure): CSS2 API URLs, the fonts.googleapis.com/fonts.gstatic.com
allowlist, CSS parsing and face selection, woff2 checks, the sha256
manifest cache format and the page script, whose origin guard and
runtime global now come from the SiteSpec. fonts (net feature): the
download client (allowlist re-checked per request, no redirects, size
caps), the family/preview caches and install/remove/faces/preview for the
app's shell-only commands. Tests and CSS fixtures moved with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CRTkafa 2026-09-29 11:15:10 +07:00
parent 40ae81afbe
commit 006ec960a3
6 changed files with 1176 additions and 0 deletions

View file

@ -22,6 +22,8 @@
//! - [`devmode`]: developer mode's debounced watcher of plugins, custom CSS and a theme file.
//! - [`alerts`]: local keyword alerts (keywords, snippets, per-item/per-keyword rate limits).
//! - [`media`]: gallery folders (path containment) and the opt-in clipboard history (private copies skipped).
//! - [`gfonts`]: self-hosted Google Fonts: CSS parsing, URL/woff2 checks, the cache format, the page script;
//! [`fonts`] (`net` feature) downloads and caches them.
//! - [`store`]: installing themes and plugins from `waybetter://install` links, dropped files and the
//! signed multi-app wayBetter Store (allow-list, caps, catalog signatures, staging, install records);
//! downloads with the `net` feature.
@ -31,6 +33,9 @@
pub mod alerts;
pub mod backup;
pub mod devmode;
#[cfg(feature = "net")]
pub mod fonts;
pub mod gfonts;
pub mod hotfix;
pub mod i18n;
pub mod layout;