Offline font glyph ranges compilation & bundling (scripts/download-fonts.sh) #43

Closed
opened 2026-10-14 22:28:35 +00:00 by yuris · 1 comment
Owner

What to build

Bundle required MapLibre PBF font glyph ranges locally in public/fonts/pbf/ to ensure place name labels, provincial boundaries, and city names render in 100% airgapped and offline environments without fetching from external CDNs.

Technical specifications

  1. Target files:
    • scripts/download-fonts.sh: Script to download Latin and ASCII font glyph ranges (Plus Jakarta Sans and Noto Sans) into public/fonts/pbf/{fontstack}/{range}.pbf.
  2. Output structure:
    • public/fonts/pbf/Plus Jakarta Sans Regular/{0-255}.pbf
    • public/fonts/pbf/Plus Jakarta Sans Bold/{0-255}.pbf

Acceptance criteria

  • All standard character ranges (0-255, 256-511) exist in public/fonts/pbf/.
  • File integrity verified with nonzero byte checks.
  • Ready for consumption by MapLibre vector style definitions.

Authoritative Specifications & Reference Documentation

### What to build Bundle required MapLibre PBF font glyph ranges locally in `public/fonts/pbf/` to ensure place name labels, provincial boundaries, and city names render in 100% airgapped and offline environments without fetching from external CDNs. ### Technical specifications 1. **Target files**: - `scripts/download-fonts.sh`: Script to download Latin and ASCII font glyph ranges (Plus Jakarta Sans and Noto Sans) into `public/fonts/pbf/{fontstack}/{range}.pbf`. 2. **Output structure**: - `public/fonts/pbf/Plus Jakarta Sans Regular/{0-255}.pbf` - `public/fonts/pbf/Plus Jakarta Sans Bold/{0-255}.pbf` ### Acceptance criteria - [ ] All standard character ranges (`0-255`, `256-511`) exist in `public/fonts/pbf/`. - [ ] File integrity verified with nonzero byte checks. - [ ] Ready for consumption by MapLibre vector style definitions. --- ### Authoritative Specifications & Reference Documentation - **Titik Gambut Architecture & Subsystem Contract**: [`docs/ARCHITECTURE.md`](https://git.nokopia.com/yuris/titik-gambut-next/src/branch/main/docs/ARCHITECTURE.md) - **Copernicus Sentinel-2 STAC API**: [Earth Search STAC API](https://earth-search.aws.element84.com/v1) — AWS Element84 Sentinel-2 L2A STAC catalog. - **Normalized Burn Ratio (NBR) Standard**: [USGS Landsat NBR](https://www.usgs.gov/landsat-missions/normalized-burn-ratio) — Formula: $(B8 - B12) / (B8 + B12)$. - **European Forest Fire Information System (EFFIS)**: [EFFIS Burn Severity Classification](https://effis.jrc.ec.europa.eu/) — Delta-NBR fire damage scoring. - **Cloudflare R2 Object Storage**: [developers.cloudflare.com/r2](https://developers.cloudflare.com/r2/) — Zero-egress HTTP 206 byte-range object storage. - **Cloudflare CDN Cache-Control**: [developers.cloudflare.com/cache](https://developers.cloudflare.com/cache/) — Edge caching and Range header behavior.
yuris changed title from Issue 30: [Backend] Offline font glyph ranges compilation & bundling (scripts/download-fonts.sh) to [Backend] Offline font glyph ranges compilation & bundling (scripts/download-fonts.sh) 2026-10-14 22:31:28 +00:00
yuris changed title from [Backend] Offline font glyph ranges compilation & bundling (scripts/download-fonts.sh) to Offline font glyph ranges compilation & bundling (scripts/download-fonts.sh) 2026-10-14 22:38:33 +00:00
Author
Owner

Closing as low value / YAGNI. Vector tile glyphs stream reliably from the global Protomaps CDN (https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf). Bundling static PBF font binary ranges adds storage overhead without functional advantage for current deployments.

Closing as low value / YAGNI. Vector tile glyphs stream reliably from the global Protomaps CDN (`https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf`). Bundling static PBF font binary ranges adds storage overhead without functional advantage for current deployments.
yuris closed this issue 2026-10-15 05:59:09 +00:00
Sign in to join this conversation.
No labels
backend
frontend
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/titik-gambut-next#43
No description provided.