Awesome
grunt-typeset
A Grunt wrapper for Typeset
Typeset is an HTML pre-processor for web typography. It uses no client-side JavaScript and gives you hanging punctuation, soft hyphen insertion, optical margin outdents, small-caps conversion and punctuation substitution.
Getting started
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
Installation
npm install grunt-typeset --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-typeset');
CSS
Tweak or add the following CSS:
/* Small caps */
/*.small-caps {font-variant: small-cap;}*/
/* Double quote (") marks */
.pull-double{margin-left:-.46em}
.push-double{margin-right:.46em}
/* Single quote (') marks */
.pull-single{margin-left:-.27em}
.push-single{margin-right:.27em}
.pull-double, .push-double,
.pull-single, .push-single {display: inline-block}
/* Optical margin alignment for particular letters */
.pull-T, .pull-V, .pull-W, .pull-Y {margin-left: -0.07em}
.push-T, .push-V, .push-W, .push-Y {margin-right: 0.07em}
.pull-O, .pull-C, .pull-o, .pull-c {margin-left: -0.04em}
.push-O, .push-C, .push-o, .push-c {margin-right: 0.04em}
.pull-A {margin-left: -0.03em}
.push-A {margin-right: 0.03em}
Settings
Options
You can pass the following options object:
typeset: {
options: {
ignore: '.skip, #skip', // string of a CSS selector to skip
only: '#only-typeset, .only-typeset', // string of a CSS selector to only apply typeset,
disable: '', // [quotes, hyphenate, ligatures, smallCaps, punctuation, hangingPunctuation, spaces]
dest: 'dist' // default destination folder
}
}
Example 1:
// ! typeset options
module.exports = grunt => {
grunt.initConfig({
typeset: {
options: {
ignore: '.skip, #skip',
only: '#only-typeset, .only-typeset',
disable: 'smallCaps',
dest: 'dist',
},
src: [
'test/*.html',
'test/**/*.html'
]
}
});
};
Example 2:
// ! custom tasks
module.exports = grunt => {
grunt.initConfig({
typeset: {
// ! grunt typeset:custom_task1
custom_task1: {
options: {
only: '.only-typeset',
disable: 'smallCaps',
dest: 'dist',
},
src: ['test/task1.html']
},
// ! grunt typeset:custom_task2
custom_task2: {
options: {
ignore: '.skip, #skip',
only: '#only-typeset, .only-typeset',
dest: 'dist',
},
src: ['test/task2.html']
},
}
});
};
Disable features
The following features may be disabled:
- quotes
- hyphenate
- ligatures
- smallCaps
- punctuation
- hangingPunctuation
- spaces
Info
This plugin is compatible with Grunt ^1.0.3
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.