npm.io
2.0.0 • Published 2 weeks ago

smp-noto-glyphs

Licence
MIT
Version
2.0.0
Deps
0
Size
1.5 MB
Vulns
0
Weekly
0
Stars
4

smp-noto-glyphs

Pre-built Noto Sans SDF glyph PBFs for use as a fallback font in MapLibre-compatible map servers.

Bundles GoNotoKurrent, a merged build of 80+ Noto Sans script-specific fonts covering 37,000+ codepoints including Latin, Cyrillic, Greek, Arabic, Hebrew, Devanagari, Thai, and many more. CJK and Hangul ranges are not bundled since MapLibre renders these client-side via localIdeographFontFamily.

Installation

npm install smp-noto-glyphs

Usage

With styled-map-package-api
import { notoGlyphFallback } from 'smp-noto-glyphs'
import { emptyTileFallback } from 'styled-map-package-api/fallbacks'
import { createServer } from 'styled-map-package-api/server'

const server = createServer({
  fallbackTile: emptyTileFallback,
  fallbackGlyph: notoGlyphFallback,
})
Standalone

notoGlyphFallback is a simple function that takes a fontstack name and a glyph range string, and returns a WHATWG Response:

import { notoGlyphFallback } from 'smp-noto-glyphs'

// Returns a Response with the PBF data for codepoints 0-255 (Basic Latin)
const response = notoGlyphFallback('Noto Sans Regular', '0-255')

For ranges with pre-built glyphs, returns the PBF data. For ranges without (uncommon scripts, CJK, Hangul), returns an empty gzipped PBF that causes MapLibre to render blank space instead of erroring.

Regenerating glyphs

The PBF files are generated from GoNotoKurrent-Regular.ttf using build_pbf_glyphs:

cargo install build_pbf_glyphs
node scripts/generate-glyphs.js

License

MIT. The bundled glyph data is derived from Noto Sans fonts, licensed under the SIL Open Font License 1.1.

Keywords