Coder Social home page Coder Social logo

schapka / opentype-svg-loader Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 14.75 MB

A loader for webpack that lets you import TrueType and OpenType fonts converted to a SVG string.

License: MIT License

JavaScript 100.00%
webpack webpack-loader opentype truetype loader svg-string opentype-svg-loader

opentype-svg-loader's Introduction

npm version Build Status

OpenType-SVG-Loader

A loader for webpack that lets you import TrueType and OpenType fonts converted to a SVG string.

Install

Using yarn

yarn add -D opentype-svg-loader

Using npm

npm i -D opentype-svg-loader

Usage

webpack.config.js

module: {
  rules: [
    {
      test: /\.ot\.json$/,
      use: [
        {
          loader: 'opentype-svg-loader',
          options: {
            fonts: {
              YellowtailRegular: path.resolve(
                __dirname,
                'fonts',
                'Yellowtail',
                'Yellowtail-Regular.ttf'
              )
            }
          }
        }
      ]
    }
  ]
}

headline.ot.json

{
  "text": "Hello World!",
  "font": "YellowtailRegular"
}

entry.js

var headlineSVGString = require('./headline.ot.json');
var wrapperEl = document.getElementById('mount');
wrapperEl.innerHTML = headlineSVGString;

Examples

Input file

The input file can either be a text file or a JSON file.

In case of a text file its contents will be interpreted as template string (options.text). If the input file is a JSON file it can contain any of the available options.

Options

Options will be merged in following order:

  1. Loader Options
  2. Resource Query
  3. Input file (in case of a JSON input file)

fonts

Type: Object Default: null

An object holding a collection of available fonts. Object keys are used as references. Object values represent absolute paths to font files.

{
  options: {
    /* ... */
    fonts: {
      MyFontName: '/absolute/path/fo/font-file.ttf'
    }
    /* ... */
  }
}

data

Type: Object Default: {}

A data object handed to mustache.

text

Type: String | String[] Default: ''

A template string that will be processed by mustache. If the input file is not a JSON file its contents will be interpreted as the template string.

font

Type: String Default: null

A reference to the font that should be used for rendering. Will fallback to the first entry of the font collection (options.fonts).

size

Type: Number Default: 72

lineHeight

Type: Number Default: 1.0

letterSpacing

Type: Number Default: 0.0

textAlign

Type: String Default: 'left'

Possible Options: 'left' 'center' 'right'

decimalPlaces

Type: Number Default: 2

kerning

Type: Boolean Default: true

attrs

Type: Object Default: {}

Attributes that should be added to the <svg>-element

{
  "attrs": {
    "preserveAspectRatio": "xMaxYMax meet"
  }
}

sharedGlyphStore

Type: Boolean | String Default: true

opentype-svg-loader's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.