NAME
    Dancer::Plugin::FontSubset - Generate font subsets on-the-fly

VERSION
    version 0.1.0

SYNOPSIS
    In config.yml:

        plugins:
            FontSubset:
                fonts_dir:      public/fonts
                font_base_url:  /font
                use_cache:      0

    In the app:

        package MyApp;

        use Dancer;
        use Dancer::Plugin::FontSubset;

        ...

    in the template:

        <html>
        <head>
            <script src="/javascripts/jquery.js"></script>
            <script src="/font/subset.js"></script>
        </head>
        <body>
            <h1 class="subfont" data-font="my_font">Hi there</h1>
        </body>

DESCRIPTION
    *Dancer::Plugin::FontSubset* generate subsets of the glyphs of given
    fonts, a little like what Google Font provides
    <https://developers.google.com/fonts/docs/getting_started#Optimizing_Req
    uests>. Currently, *Dancer::Plugin::FontSubset* only works for a subset
    TTF fonts. Always test that any given font will work well with the
    plugin before throwing it in a production system.

  Basic Usage
    to use this plugin, put your fonts in the directory "public/fonts". The
    original font file can be accessed via the url "/fonts/thefont.tff"
    (natch), and its subsets via the route "/font/thefont.ttf?t=abc", where
    the characters to be included in the subset are passed via the *t*
    parameter. For example, the url required to generate the font subset
    required to render 'Hello world' would be
    "/font/thefont.ttf?t=%20Helowrd" (including the whitespace (%20) is
    important, as it is often a glyph by its own right).

  JQuery Helping Script
    A JQuery utility script is also available at "/font/subset.js". If the
    script is loaded by a page, it will find all elements having the
    *subfont* class, generate the characters required and query the
    application for the subset of whichever font provided in the *data-font*
    attribute. In other words,

        <html>
        <head>
            <script src="/javascripts/jquery.js"></script>
            <script src="/font/subset.js"></script>
        </head>
        <body>
            <h1 class="subfont" data-font="my_font">Hi there</h1>
        </body>
        </html>

    is all that is required to have the "h1" element of this document
    rendered using the appropriate subset of the "my_font.ttf" font.

  Caching
    To improve performance you can enable caching, which will use
    Dancer::Plugin::Cache::CHI to cache the generated font subsets.

CONFIGURATION PARAMETERS
  fonts_dir
    The system directory containing the fonts. Defaults to "public/fonts".

  font_base_url
    The root route for the subset fonts. Defaults to "/font".

  use_cache
    Boolean indicating if caching should be used. Defaults to *false*. If
    set to true, the application will also use Dancer::Plugin::Cache::CHI.

SEE ALSO
    Font::TTF::Font

AUTHOR
    Yanick Champoux <yanick@babyl.dyndns.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2013 by Yanick Champoux.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

