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.`),
|
||
|
|
)
|