this should be easier to handle if the one doing it is not… me. Still not that great but better than nothing!
44 lines
1.8 KiB
JavaScript
44 lines
1.8 KiB
JavaScript
import path from "path"
|
|
import { execSync } from "child_process"
|
|
import pc from "picocolors"
|
|
import services from "../src/data/services.json" with { type: "json" }
|
|
|
|
const glyphhangerIsInstalled = `glyphhanger --version`
|
|
|
|
try {
|
|
execSync(glyphhangerIsInstalled, { encoding: "utf8", stdio: ["pipe", "pipe", "pipe"] })
|
|
} catch (error) {
|
|
console.log(pc.yellow("Warning: it seems glyphhanger is not installed."))
|
|
console.log("Please see https://github.com/zachleat/glyphhanger for installation instructions.\n")
|
|
}
|
|
|
|
const enabledServices = services.filter((service) => service.enabled)
|
|
|
|
const originalFontPath = path.join(
|
|
import.meta.dirname,
|
|
"..",
|
|
"public",
|
|
"fonts",
|
|
"Marianne-Regular.woff2",
|
|
)
|
|
const outputDir = path.join(import.meta.dirname, "..", "public", "fonts")
|
|
|
|
const whitelist = [...enabledServices.map(({ name }) => name.replace(/ /g, "")), " ✕beta"].join("")
|
|
|
|
console.log(`Run this command to generate the new subsetted gaufre font:`)
|
|
console.log(`
|
|
glyphhanger --formats=woff2 \\
|
|
--subset="${originalFontPath}" \\
|
|
--whitelist="${Array.from(whitelist).join("")}" \\
|
|
--output="${outputDir}"`)
|
|
|
|
console.log(
|
|
pc.yellow(`
|
|
Warning: after running the glyphhanger command, don't forget to:
|
|
- update the unicode-range of the subsetted font-family in the GaufrePage.astro component. The new unicode-range is outputed in the console when running glyphhanger.
|
|
- rename the newly generated \`Marianne-Regular-subset.woff2\` file to add a cachebusting number, that is superior to the one in the previous filename already existing in the folder.
|
|
- update the subsetted font-face src url in the GaufrePage.astro component to use the newly named filename.
|
|
- delete the previously existing subsetted font file in the \`public/fonts\` directory.
|
|
- commit and push the changes.`),
|
|
)
|