@coremyslo/font-generator
Version:
A font generator library that takes a collection of icons and generates a custom font in different formats (SVG, TTF, WOFF, WOFF2, EOT).
40 lines (32 loc) • 2.12 kB
Markdown
# /font-generator [](https://www.npmjs.com/package/@coremyslo/font-generator) [](https://github.com/coremyslo/font-generator/blob/main/LICENSE)
A font generator library that takes a collection of icons and generates a custom font in different formats (SVG, TTF, WOFF, WOFF2, EOT).
Input should be based on [icon-generator](https://github.com/coremyslo/icon-generator).
## Installation
```shell
npm install /font-generator
```
## Usage
```typescript
import { FontGenerator } from "@coremyslo/font-generator";
import { IconGenerator } from "@coremyslo/icon-generator";
const iconGenerator = new IconGenerator("./path/to/icon/source/directory");
await iconGenerator.read();
const fontGenerator = new FontGenerator();
await fontGenerator.generate(iconGenerator.icons);
await fontGenerator.write("./path/to/target/directory");
```
## API
### `class FontGenerator (options: Partial<Options> = {})`
### interface Options
* name: The name of the font and the generated font files. Default `icon-font`.
* unicode: The starting Unicode code point for the icon set. Default `0xE900`.
* height: The height of the generated font. Default `1024`.
* normalize: Normalize icons by scaling them to the height of the highest icon (see [svgicons2svgfont](https://www.npmjs.com/package/svgicons2svgfont)). Default `true`.
* round: Setup SVG path rounding. (see [svgicons2svgfont](https://www.npmjs.com/package/svgicons2svgfont)) Default `1`.
* formats: An array of supported font formats. Default `["svg", "ttf", "woff", "woff2", "eot"]`.
### `async generate(icons: Map<string, Icon>): Promise<void>`
* Generate the font files in memory for the specified icon collection. Caches the result, so calling again with the same icons retrieves the fonts from the cache.
### `async write(targetDirPath: string): Promise<void>`
* Write the generated font files to the specified directory.
### `fonts: Map<string, Buffer>`
* contains the generated font files in memory.