[//]: # ( ) [//]: # (This file is automatically generated by a `metapak`) [//]: # (module. Do not change it except between the) [//]: # (`content:start/end` flags, your changes would) [//]: # (be overridden.) [//]: # ( ) # ttf2woff2 > Convert TTF files to WOFF2 ones. [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/nfroidure/ttf2woff2/blob/main/LICENSE) [//]: # (::contents:start) This is a NodeJS wrapper for the Google [WOFF2](https://github.com/google/woff2) project. If the C++ wrapper compilation fail, it [fallbacks to an Emscripten build](http://insertafter.com/en/blog/native-node-module.html). ## Usage ### CLI Install `ttf2woff2` globally, then: ```sh cat font.ttf | ttf2woff2 > font.woff2 ``` On Windows without `cat`, use (in PowerShell): ```pwsh Start-Process -NoNewWindow -Wait ttf2woff2.cmd -RedirectStandardInput font.ttf -RedirectStandardOutput font.woff2 # OR start-process -nnw -wait ttf2woff2.cmd -rsi font.ttf -rso font.woff2 ``` ### API ```js import { readFile, writeFile } from 'node:fs/promises'; import ttf2woff2 from 'ttf2woff2'; const input = await readFile('font.ttf'); await writeFile('font.woff2', ttf2woff2(input)); ``` ## Development To build the binary, clone the repository and run the following: ``` ## Setup (works for Ubuntu/Linux, may be different on other OS) apt-get install make g++ ## Actual build npm i npm run configure npm run make ``` To build the Emscripten fallback, install [Emscripten](https://emscripten.org/) and run: ``` npm run emcc ``` Finally the build can be tested: ```sh npm run build npm t ``` ## Contributing Feel free to push your code if you agree with publishing under the MIT license. [//]: # (::contents:end) # Authors - [Nicolas Froidure](https://insertafter.com/en/index.html) - [Anders Kaseorg](mailto:andersk@mit.edu) # License [MIT](https://github.com/nfroidure/ttf2woff2/blob/main/LICENSE)