Buckets:
ktongue/docker_container / simsite /frontend /node_modules /troika-three-text /find-google-font-url.js
| /* eslint-disable */ | |
| // Utility for finding the public URL for a font hosted on Google Fonts. Takes the font | |
| // family name and returns the URL to its .woff file. | |
| // TODO: | |
| // - Add ability to download the file for self-hosting | |
| // - Add options for font weights, italic, etc. and character subsets | |
| const fetch = require('node-fetch') | |
| const args = process.argv.slice(2) | |
| const fontFamilyName = args[0] | |
| if (!fontFamilyName) { | |
| fail('Pass the name of the font family as an argument. It is case-sensitive.') | |
| } | |
| async function run() { | |
| const response = await fetch(`https://fonts.googleapis.com/css2?family=${fontFamilyName}&display=swap`, { | |
| "credentials": "omit", | |
| "headers": { | |
| "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko", | |
| "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", | |
| "Accept-Language": "en-US,en;q=0.5", | |
| "Upgrade-Insecure-Requests": "1", | |
| "Cache-Control": "max-age=0" | |
| }, | |
| "method": "GET", | |
| //"mode": "cors" | |
| }) | |
| if (response.ok) { | |
| const css = await response.text() | |
| const urls = [] | |
| css.replace(/https?:[^)]*/g, (str) => { | |
| urls.push(str) | |
| }) | |
| if (urls.length) { | |
| console.log(`Use this URL for the font family ${fontFamilyName}:`) | |
| console.log(urls.join('\n')) | |
| } else { | |
| fail('Could not parse font URLs from Google Fonts css file.') | |
| } | |
| } else { | |
| fail(`Could not find font family ${fontFamilyName}. Check its spelling and case and that it exists on Google Fonts.`) | |
| } | |
| } | |
| function fail(message) { | |
| console.error(message) | |
| process.exit(1) | |
| } | |
| run() | |
Xet Storage Details
- Size:
- 1.65 kB
- Xet hash:
- 9be6491307a50b06573423cfb083b801a28d8537be7520f667f69b78ff618e01
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.