├── .gitignore ├── .nvmrc ├── README.md ├── index.js ├── package-lock.json ├── package.json └── typeset-plugin.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | .sass-cache/ 4 | .DS_Store 5 | build/ 6 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v10.0.0 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Typeset plugin for Eleventy 2 | 3 | A plugin for the [Eleventy](https://github.com/11ty/eleventy/) static site generator for making your typography nicer, based on [Typeset.js](https://github.com/davidmerfield/Typeset). 4 | 5 | ## Install 6 | 7 | ```shell 8 | npm install --save eleventy-plugin-typeset 9 | ``` 10 | 11 | ## Usage 12 | 13 | In your Eleventy config file (defaults to `.eleventy.js`): 14 | 15 | ```js 16 | const typesetPlugin = require('eleventy-plugin-typeset'); 17 | 18 | module.exports = (eleventyConfig) => { 19 | eleventyConfig.addPlugin(typesetPlugin()); 20 | }; 21 | ``` 22 | 23 | ## Configuration 24 | 25 | Typeset.js accepts a couple of [options](https://github.com/davidmerfield/Typeset#options), which you can provide to this plugin too: 26 | 27 | ```js 28 | // Example for passing options to the plugin. 29 | 30 | eleventyConfig.addPlugin( 31 | typesetPlugin({ 32 | only: '.article-text', // Run only on HTML content within a certain CSS selector 33 | disable: ['smallCaps'], // Disable typesetting feature 'smallCaps' 34 | // etc. 35 | }) 36 | ); 37 | ``` 38 | 39 | You can use the options to let this plugin run only on some certain parts of your content. This is actually a quite nice optimisation, since I discovered running Typeset on my full site (pages and posts) takes a few seconds. So unless you wanna typeset _all_ HTML on your site, be sure to scope the plugin with the `only` option to a selector that wraps your article content. 40 | 41 | ## License 42 | 43 | MIT. 44 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const applyTypeset = require('./typeset'); 2 | 3 | module.exports = (options) => (eleventyConfig, pluginNamespace) => { 4 | eleventyConfig.namespace(pluginNamespace, () => { 5 | eleventyConfig.addTransform('typeset', applyTypeset(options)); 6 | }); 7 | }; 8 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eleventy-plugin-typeset", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/highlight": { 17 | "version": "7.0.0", 18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 20 | "dev": true, 21 | "requires": { 22 | "chalk": "^2.0.0", 23 | "esutils": "^2.0.2", 24 | "js-tokens": "^4.0.0" 25 | } 26 | }, 27 | "acorn": { 28 | "version": "5.7.3", 29 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", 30 | "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", 31 | "dev": true 32 | }, 33 | "acorn-jsx": { 34 | "version": "4.1.1", 35 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", 36 | "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", 37 | "dev": true, 38 | "requires": { 39 | "acorn": "^5.0.3" 40 | } 41 | }, 42 | "ajv": { 43 | "version": "6.5.3", 44 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", 45 | "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", 46 | "dev": true, 47 | "requires": { 48 | "fast-deep-equal": "^2.0.1", 49 | "fast-json-stable-stringify": "^2.0.0", 50 | "json-schema-traverse": "^0.4.1", 51 | "uri-js": "^4.2.2" 52 | } 53 | }, 54 | "ajv-keywords": { 55 | "version": "3.2.0", 56 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", 57 | "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", 58 | "dev": true 59 | }, 60 | "ansi-escapes": { 61 | "version": "3.1.0", 62 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", 63 | "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", 64 | "dev": true 65 | }, 66 | "ansi-regex": { 67 | "version": "3.0.0", 68 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 69 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 70 | "dev": true 71 | }, 72 | "ansi-styles": { 73 | "version": "3.2.1", 74 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 75 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 76 | "dev": true, 77 | "requires": { 78 | "color-convert": "^1.9.0" 79 | } 80 | }, 81 | "argparse": { 82 | "version": "1.0.10", 83 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 84 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 85 | "dev": true, 86 | "requires": { 87 | "sprintf-js": "~1.0.2" 88 | } 89 | }, 90 | "array-union": { 91 | "version": "1.0.2", 92 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 93 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 94 | "dev": true, 95 | "requires": { 96 | "array-uniq": "^1.0.1" 97 | } 98 | }, 99 | "array-uniq": { 100 | "version": "1.0.3", 101 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 102 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 103 | "dev": true 104 | }, 105 | "arrify": { 106 | "version": "1.0.1", 107 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 108 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 109 | "dev": true 110 | }, 111 | "balanced-match": { 112 | "version": "1.0.0", 113 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 114 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 115 | "dev": true 116 | }, 117 | "boolbase": { 118 | "version": "1.0.0", 119 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 120 | "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" 121 | }, 122 | "brace-expansion": { 123 | "version": "1.1.11", 124 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 125 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 126 | "dev": true, 127 | "requires": { 128 | "balanced-match": "^1.0.0", 129 | "concat-map": "0.0.1" 130 | } 131 | }, 132 | "caller-path": { 133 | "version": "0.1.0", 134 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 135 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 136 | "dev": true, 137 | "requires": { 138 | "callsites": "^0.2.0" 139 | } 140 | }, 141 | "callsites": { 142 | "version": "0.2.0", 143 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 144 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 145 | "dev": true 146 | }, 147 | "chalk": { 148 | "version": "2.4.1", 149 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", 150 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 151 | "dev": true, 152 | "requires": { 153 | "ansi-styles": "^3.2.1", 154 | "escape-string-regexp": "^1.0.5", 155 | "supports-color": "^5.3.0" 156 | } 157 | }, 158 | "chardet": { 159 | "version": "0.7.0", 160 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 161 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 162 | "dev": true 163 | }, 164 | "cheerio": { 165 | "version": "0.19.0", 166 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", 167 | "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", 168 | "requires": { 169 | "css-select": "~1.0.0", 170 | "dom-serializer": "~0.1.0", 171 | "entities": "~1.1.1", 172 | "htmlparser2": "~3.8.1", 173 | "lodash": "^3.2.0" 174 | } 175 | }, 176 | "circular-json": { 177 | "version": "0.3.3", 178 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 179 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 180 | "dev": true 181 | }, 182 | "cli-cursor": { 183 | "version": "2.1.0", 184 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 185 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 186 | "dev": true, 187 | "requires": { 188 | "restore-cursor": "^2.0.0" 189 | } 190 | }, 191 | "cli-width": { 192 | "version": "2.2.0", 193 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 194 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 195 | "dev": true 196 | }, 197 | "color-convert": { 198 | "version": "1.9.3", 199 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 200 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 201 | "dev": true, 202 | "requires": { 203 | "color-name": "1.1.3" 204 | } 205 | }, 206 | "color-name": { 207 | "version": "1.1.3", 208 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 209 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 210 | "dev": true 211 | }, 212 | "commander": { 213 | "version": "2.18.0", 214 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz", 215 | "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==" 216 | }, 217 | "concat-map": { 218 | "version": "0.0.1", 219 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 220 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 221 | "dev": true 222 | }, 223 | "core-util-is": { 224 | "version": "1.0.2", 225 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 226 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 227 | }, 228 | "cross-spawn": { 229 | "version": "6.0.5", 230 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 231 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 232 | "dev": true, 233 | "requires": { 234 | "nice-try": "^1.0.4", 235 | "path-key": "^2.0.1", 236 | "semver": "^5.5.0", 237 | "shebang-command": "^1.2.0", 238 | "which": "^1.2.9" 239 | } 240 | }, 241 | "css-select": { 242 | "version": "1.0.0", 243 | "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", 244 | "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", 245 | "requires": { 246 | "boolbase": "~1.0.0", 247 | "css-what": "1.0", 248 | "domutils": "1.4", 249 | "nth-check": "~1.0.0" 250 | } 251 | }, 252 | "css-what": { 253 | "version": "1.0.0", 254 | "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", 255 | "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=" 256 | }, 257 | "debug": { 258 | "version": "3.2.5", 259 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", 260 | "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", 261 | "dev": true, 262 | "requires": { 263 | "ms": "^2.1.1" 264 | } 265 | }, 266 | "deep-is": { 267 | "version": "0.1.3", 268 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 269 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 270 | "dev": true 271 | }, 272 | "del": { 273 | "version": "2.2.2", 274 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 275 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 276 | "dev": true, 277 | "requires": { 278 | "globby": "^5.0.0", 279 | "is-path-cwd": "^1.0.0", 280 | "is-path-in-cwd": "^1.0.0", 281 | "object-assign": "^4.0.1", 282 | "pify": "^2.0.0", 283 | "pinkie-promise": "^2.0.0", 284 | "rimraf": "^2.2.8" 285 | } 286 | }, 287 | "doctrine": { 288 | "version": "2.1.0", 289 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 290 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 291 | "dev": true, 292 | "requires": { 293 | "esutils": "^2.0.2" 294 | } 295 | }, 296 | "dom-serializer": { 297 | "version": "0.1.0", 298 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", 299 | "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 300 | "requires": { 301 | "domelementtype": "~1.1.1", 302 | "entities": "~1.1.1" 303 | }, 304 | "dependencies": { 305 | "domelementtype": { 306 | "version": "1.1.3", 307 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", 308 | "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" 309 | } 310 | } 311 | }, 312 | "domelementtype": { 313 | "version": "1.3.0", 314 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", 315 | "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" 316 | }, 317 | "domhandler": { 318 | "version": "2.3.0", 319 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", 320 | "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", 321 | "requires": { 322 | "domelementtype": "1" 323 | } 324 | }, 325 | "domutils": { 326 | "version": "1.4.3", 327 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", 328 | "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", 329 | "requires": { 330 | "domelementtype": "1" 331 | } 332 | }, 333 | "entities": { 334 | "version": "1.1.1", 335 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", 336 | "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" 337 | }, 338 | "escape-string-regexp": { 339 | "version": "1.0.5", 340 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 341 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 342 | "dev": true 343 | }, 344 | "eslint": { 345 | "version": "5.6.0", 346 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", 347 | "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", 348 | "dev": true, 349 | "requires": { 350 | "@babel/code-frame": "^7.0.0", 351 | "ajv": "^6.5.3", 352 | "chalk": "^2.1.0", 353 | "cross-spawn": "^6.0.5", 354 | "debug": "^3.1.0", 355 | "doctrine": "^2.1.0", 356 | "eslint-scope": "^4.0.0", 357 | "eslint-utils": "^1.3.1", 358 | "eslint-visitor-keys": "^1.0.0", 359 | "espree": "^4.0.0", 360 | "esquery": "^1.0.1", 361 | "esutils": "^2.0.2", 362 | "file-entry-cache": "^2.0.0", 363 | "functional-red-black-tree": "^1.0.1", 364 | "glob": "^7.1.2", 365 | "globals": "^11.7.0", 366 | "ignore": "^4.0.6", 367 | "imurmurhash": "^0.1.4", 368 | "inquirer": "^6.1.0", 369 | "is-resolvable": "^1.1.0", 370 | "js-yaml": "^3.12.0", 371 | "json-stable-stringify-without-jsonify": "^1.0.1", 372 | "levn": "^0.3.0", 373 | "lodash": "^4.17.5", 374 | "minimatch": "^3.0.4", 375 | "mkdirp": "^0.5.1", 376 | "natural-compare": "^1.4.0", 377 | "optionator": "^0.8.2", 378 | "path-is-inside": "^1.0.2", 379 | "pluralize": "^7.0.0", 380 | "progress": "^2.0.0", 381 | "regexpp": "^2.0.0", 382 | "require-uncached": "^1.0.3", 383 | "semver": "^5.5.1", 384 | "strip-ansi": "^4.0.0", 385 | "strip-json-comments": "^2.0.1", 386 | "table": "^4.0.3", 387 | "text-table": "^0.2.0" 388 | }, 389 | "dependencies": { 390 | "lodash": { 391 | "version": "4.17.11", 392 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 393 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 394 | "dev": true 395 | } 396 | } 397 | }, 398 | "eslint-scope": { 399 | "version": "4.0.0", 400 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", 401 | "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", 402 | "dev": true, 403 | "requires": { 404 | "esrecurse": "^4.1.0", 405 | "estraverse": "^4.1.1" 406 | } 407 | }, 408 | "eslint-utils": { 409 | "version": "1.3.1", 410 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", 411 | "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", 412 | "dev": true 413 | }, 414 | "eslint-visitor-keys": { 415 | "version": "1.0.0", 416 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 417 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 418 | "dev": true 419 | }, 420 | "espree": { 421 | "version": "4.0.0", 422 | "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", 423 | "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", 424 | "dev": true, 425 | "requires": { 426 | "acorn": "^5.6.0", 427 | "acorn-jsx": "^4.1.1" 428 | } 429 | }, 430 | "esprima": { 431 | "version": "4.0.1", 432 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 433 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 434 | "dev": true 435 | }, 436 | "esquery": { 437 | "version": "1.0.1", 438 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 439 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 440 | "dev": true, 441 | "requires": { 442 | "estraverse": "^4.0.0" 443 | } 444 | }, 445 | "esrecurse": { 446 | "version": "4.2.1", 447 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 448 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 449 | "dev": true, 450 | "requires": { 451 | "estraverse": "^4.1.0" 452 | } 453 | }, 454 | "estraverse": { 455 | "version": "4.2.0", 456 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 457 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 458 | "dev": true 459 | }, 460 | "esutils": { 461 | "version": "2.0.2", 462 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 463 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 464 | "dev": true 465 | }, 466 | "external-editor": { 467 | "version": "3.0.3", 468 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", 469 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", 470 | "dev": true, 471 | "requires": { 472 | "chardet": "^0.7.0", 473 | "iconv-lite": "^0.4.24", 474 | "tmp": "^0.0.33" 475 | } 476 | }, 477 | "fast-deep-equal": { 478 | "version": "2.0.1", 479 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 480 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 481 | "dev": true 482 | }, 483 | "fast-json-stable-stringify": { 484 | "version": "2.0.0", 485 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 486 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 487 | "dev": true 488 | }, 489 | "fast-levenshtein": { 490 | "version": "2.0.6", 491 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 492 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 493 | "dev": true 494 | }, 495 | "figures": { 496 | "version": "2.0.0", 497 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 498 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 499 | "dev": true, 500 | "requires": { 501 | "escape-string-regexp": "^1.0.5" 502 | } 503 | }, 504 | "file-entry-cache": { 505 | "version": "2.0.0", 506 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 507 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 508 | "dev": true, 509 | "requires": { 510 | "flat-cache": "^1.2.1", 511 | "object-assign": "^4.0.1" 512 | } 513 | }, 514 | "flat-cache": { 515 | "version": "1.3.0", 516 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", 517 | "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", 518 | "dev": true, 519 | "requires": { 520 | "circular-json": "^0.3.1", 521 | "del": "^2.0.2", 522 | "graceful-fs": "^4.1.2", 523 | "write": "^0.2.1" 524 | } 525 | }, 526 | "fs.realpath": { 527 | "version": "1.0.0", 528 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 529 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 530 | "dev": true 531 | }, 532 | "functional-red-black-tree": { 533 | "version": "1.0.1", 534 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 535 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 536 | "dev": true 537 | }, 538 | "glob": { 539 | "version": "7.1.3", 540 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 541 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 542 | "dev": true, 543 | "requires": { 544 | "fs.realpath": "^1.0.0", 545 | "inflight": "^1.0.4", 546 | "inherits": "2", 547 | "minimatch": "^3.0.4", 548 | "once": "^1.3.0", 549 | "path-is-absolute": "^1.0.0" 550 | } 551 | }, 552 | "globals": { 553 | "version": "11.7.0", 554 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", 555 | "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", 556 | "dev": true 557 | }, 558 | "globby": { 559 | "version": "5.0.0", 560 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 561 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 562 | "dev": true, 563 | "requires": { 564 | "array-union": "^1.0.1", 565 | "arrify": "^1.0.0", 566 | "glob": "^7.0.3", 567 | "object-assign": "^4.0.1", 568 | "pify": "^2.0.0", 569 | "pinkie-promise": "^2.0.0" 570 | } 571 | }, 572 | "graceful-fs": { 573 | "version": "4.1.11", 574 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 575 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 576 | "dev": true 577 | }, 578 | "has-flag": { 579 | "version": "3.0.0", 580 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 581 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 582 | "dev": true 583 | }, 584 | "html-entities": { 585 | "version": "1.2.1", 586 | "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", 587 | "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" 588 | }, 589 | "htmlparser2": { 590 | "version": "3.8.3", 591 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", 592 | "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", 593 | "requires": { 594 | "domelementtype": "1", 595 | "domhandler": "2.3", 596 | "domutils": "1.5", 597 | "entities": "1.0", 598 | "readable-stream": "1.1" 599 | }, 600 | "dependencies": { 601 | "domutils": { 602 | "version": "1.5.1", 603 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", 604 | "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 605 | "requires": { 606 | "dom-serializer": "0", 607 | "domelementtype": "1" 608 | } 609 | }, 610 | "entities": { 611 | "version": "1.0.0", 612 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", 613 | "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=" 614 | } 615 | } 616 | }, 617 | "hypher": { 618 | "version": "0.2.5", 619 | "resolved": "https://registry.npmjs.org/hypher/-/hypher-0.2.5.tgz", 620 | "integrity": "sha1-L+RW7So/1O0NnkKGFxgcWfmm3QI=" 621 | }, 622 | "iconv-lite": { 623 | "version": "0.4.24", 624 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 625 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 626 | "dev": true, 627 | "requires": { 628 | "safer-buffer": ">= 2.1.2 < 3" 629 | } 630 | }, 631 | "ignore": { 632 | "version": "4.0.6", 633 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 634 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 635 | "dev": true 636 | }, 637 | "imurmurhash": { 638 | "version": "0.1.4", 639 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 640 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 641 | "dev": true 642 | }, 643 | "inflight": { 644 | "version": "1.0.6", 645 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 646 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 647 | "dev": true, 648 | "requires": { 649 | "once": "^1.3.0", 650 | "wrappy": "1" 651 | } 652 | }, 653 | "inherits": { 654 | "version": "2.0.3", 655 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 656 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 657 | }, 658 | "inquirer": { 659 | "version": "6.2.0", 660 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", 661 | "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", 662 | "dev": true, 663 | "requires": { 664 | "ansi-escapes": "^3.0.0", 665 | "chalk": "^2.0.0", 666 | "cli-cursor": "^2.1.0", 667 | "cli-width": "^2.0.0", 668 | "external-editor": "^3.0.0", 669 | "figures": "^2.0.0", 670 | "lodash": "^4.17.10", 671 | "mute-stream": "0.0.7", 672 | "run-async": "^2.2.0", 673 | "rxjs": "^6.1.0", 674 | "string-width": "^2.1.0", 675 | "strip-ansi": "^4.0.0", 676 | "through": "^2.3.6" 677 | }, 678 | "dependencies": { 679 | "lodash": { 680 | "version": "4.17.11", 681 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 682 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 683 | "dev": true 684 | } 685 | } 686 | }, 687 | "is-fullwidth-code-point": { 688 | "version": "2.0.0", 689 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 690 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 691 | "dev": true 692 | }, 693 | "is-path-cwd": { 694 | "version": "1.0.0", 695 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 696 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 697 | "dev": true 698 | }, 699 | "is-path-in-cwd": { 700 | "version": "1.0.1", 701 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 702 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 703 | "dev": true, 704 | "requires": { 705 | "is-path-inside": "^1.0.0" 706 | } 707 | }, 708 | "is-path-inside": { 709 | "version": "1.0.1", 710 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 711 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 712 | "dev": true, 713 | "requires": { 714 | "path-is-inside": "^1.0.1" 715 | } 716 | }, 717 | "is-promise": { 718 | "version": "2.1.0", 719 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 720 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 721 | "dev": true 722 | }, 723 | "is-resolvable": { 724 | "version": "1.1.0", 725 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", 726 | "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", 727 | "dev": true 728 | }, 729 | "isarray": { 730 | "version": "0.0.1", 731 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 732 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 733 | }, 734 | "isexe": { 735 | "version": "2.0.0", 736 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 737 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 738 | "dev": true 739 | }, 740 | "js-tokens": { 741 | "version": "4.0.0", 742 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 743 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 744 | "dev": true 745 | }, 746 | "js-yaml": { 747 | "version": "3.12.0", 748 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", 749 | "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", 750 | "dev": true, 751 | "requires": { 752 | "argparse": "^1.0.7", 753 | "esprima": "^4.0.0" 754 | } 755 | }, 756 | "json-schema-traverse": { 757 | "version": "0.4.1", 758 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 759 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 760 | "dev": true 761 | }, 762 | "json-stable-stringify-without-jsonify": { 763 | "version": "1.0.1", 764 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 765 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 766 | "dev": true 767 | }, 768 | "levn": { 769 | "version": "0.3.0", 770 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 771 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 772 | "dev": true, 773 | "requires": { 774 | "prelude-ls": "~1.1.2", 775 | "type-check": "~0.3.2" 776 | } 777 | }, 778 | "lodash": { 779 | "version": "3.10.1", 780 | "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", 781 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" 782 | }, 783 | "mimic-fn": { 784 | "version": "1.2.0", 785 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 786 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 787 | "dev": true 788 | }, 789 | "minimatch": { 790 | "version": "3.0.4", 791 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 792 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 793 | "dev": true, 794 | "requires": { 795 | "brace-expansion": "^1.1.7" 796 | } 797 | }, 798 | "minimist": { 799 | "version": "0.0.8", 800 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 801 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 802 | "dev": true 803 | }, 804 | "mkdirp": { 805 | "version": "0.5.1", 806 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 807 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 808 | "dev": true, 809 | "requires": { 810 | "minimist": "0.0.8" 811 | } 812 | }, 813 | "ms": { 814 | "version": "2.1.1", 815 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 816 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 817 | "dev": true 818 | }, 819 | "mute-stream": { 820 | "version": "0.0.7", 821 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 822 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 823 | "dev": true 824 | }, 825 | "natural-compare": { 826 | "version": "1.4.0", 827 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 828 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 829 | "dev": true 830 | }, 831 | "nice-try": { 832 | "version": "1.0.5", 833 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 834 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 835 | "dev": true 836 | }, 837 | "nth-check": { 838 | "version": "1.0.1", 839 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", 840 | "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", 841 | "requires": { 842 | "boolbase": "~1.0.0" 843 | } 844 | }, 845 | "object-assign": { 846 | "version": "4.1.1", 847 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 848 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 849 | "dev": true 850 | }, 851 | "once": { 852 | "version": "1.4.0", 853 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 854 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 855 | "dev": true, 856 | "requires": { 857 | "wrappy": "1" 858 | } 859 | }, 860 | "onetime": { 861 | "version": "2.0.1", 862 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 863 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 864 | "dev": true, 865 | "requires": { 866 | "mimic-fn": "^1.0.0" 867 | } 868 | }, 869 | "optionator": { 870 | "version": "0.8.2", 871 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 872 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 873 | "dev": true, 874 | "requires": { 875 | "deep-is": "~0.1.3", 876 | "fast-levenshtein": "~2.0.4", 877 | "levn": "~0.3.0", 878 | "prelude-ls": "~1.1.2", 879 | "type-check": "~0.3.2", 880 | "wordwrap": "~1.0.0" 881 | } 882 | }, 883 | "os-tmpdir": { 884 | "version": "1.0.2", 885 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 886 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 887 | "dev": true 888 | }, 889 | "path-is-absolute": { 890 | "version": "1.0.1", 891 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 892 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 893 | "dev": true 894 | }, 895 | "path-is-inside": { 896 | "version": "1.0.2", 897 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 898 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 899 | "dev": true 900 | }, 901 | "path-key": { 902 | "version": "2.0.1", 903 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 904 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 905 | "dev": true 906 | }, 907 | "pify": { 908 | "version": "2.3.0", 909 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 910 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 911 | "dev": true 912 | }, 913 | "pinkie": { 914 | "version": "2.0.4", 915 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 916 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 917 | "dev": true 918 | }, 919 | "pinkie-promise": { 920 | "version": "2.0.1", 921 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 922 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 923 | "dev": true, 924 | "requires": { 925 | "pinkie": "^2.0.0" 926 | } 927 | }, 928 | "pluralize": { 929 | "version": "7.0.0", 930 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", 931 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", 932 | "dev": true 933 | }, 934 | "prelude-ls": { 935 | "version": "1.1.2", 936 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 937 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 938 | "dev": true 939 | }, 940 | "progress": { 941 | "version": "2.0.0", 942 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 943 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 944 | "dev": true 945 | }, 946 | "punycode": { 947 | "version": "2.1.1", 948 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 949 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 950 | "dev": true 951 | }, 952 | "readable-stream": { 953 | "version": "1.1.14", 954 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 955 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 956 | "requires": { 957 | "core-util-is": "~1.0.0", 958 | "inherits": "~2.0.1", 959 | "isarray": "0.0.1", 960 | "string_decoder": "~0.10.x" 961 | } 962 | }, 963 | "regexpp": { 964 | "version": "2.0.0", 965 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", 966 | "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", 967 | "dev": true 968 | }, 969 | "require-uncached": { 970 | "version": "1.0.3", 971 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 972 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 973 | "dev": true, 974 | "requires": { 975 | "caller-path": "^0.1.0", 976 | "resolve-from": "^1.0.0" 977 | } 978 | }, 979 | "resolve-from": { 980 | "version": "1.0.1", 981 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 982 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 983 | "dev": true 984 | }, 985 | "restore-cursor": { 986 | "version": "2.0.0", 987 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 988 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 989 | "dev": true, 990 | "requires": { 991 | "onetime": "^2.0.0", 992 | "signal-exit": "^3.0.2" 993 | } 994 | }, 995 | "rimraf": { 996 | "version": "2.6.2", 997 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 998 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 999 | "dev": true, 1000 | "requires": { 1001 | "glob": "^7.0.5" 1002 | } 1003 | }, 1004 | "run-async": { 1005 | "version": "2.3.0", 1006 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 1007 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 1008 | "dev": true, 1009 | "requires": { 1010 | "is-promise": "^2.1.0" 1011 | } 1012 | }, 1013 | "rxjs": { 1014 | "version": "6.3.2", 1015 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", 1016 | "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", 1017 | "dev": true, 1018 | "requires": { 1019 | "tslib": "^1.9.0" 1020 | } 1021 | }, 1022 | "safer-buffer": { 1023 | "version": "2.1.2", 1024 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1025 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 1026 | "dev": true 1027 | }, 1028 | "semver": { 1029 | "version": "5.5.1", 1030 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", 1031 | "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", 1032 | "dev": true 1033 | }, 1034 | "shebang-command": { 1035 | "version": "1.2.0", 1036 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1037 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1038 | "dev": true, 1039 | "requires": { 1040 | "shebang-regex": "^1.0.0" 1041 | } 1042 | }, 1043 | "shebang-regex": { 1044 | "version": "1.0.0", 1045 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1046 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1047 | "dev": true 1048 | }, 1049 | "signal-exit": { 1050 | "version": "3.0.2", 1051 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1052 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1053 | "dev": true 1054 | }, 1055 | "slice-ansi": { 1056 | "version": "1.0.0", 1057 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 1058 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 1059 | "dev": true, 1060 | "requires": { 1061 | "is-fullwidth-code-point": "^2.0.0" 1062 | } 1063 | }, 1064 | "sprintf-js": { 1065 | "version": "1.0.3", 1066 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1067 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1068 | "dev": true 1069 | }, 1070 | "string-width": { 1071 | "version": "2.1.1", 1072 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1073 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1074 | "dev": true, 1075 | "requires": { 1076 | "is-fullwidth-code-point": "^2.0.0", 1077 | "strip-ansi": "^4.0.0" 1078 | } 1079 | }, 1080 | "string_decoder": { 1081 | "version": "0.10.31", 1082 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1083 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 1084 | }, 1085 | "strip-ansi": { 1086 | "version": "4.0.0", 1087 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1088 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1089 | "dev": true, 1090 | "requires": { 1091 | "ansi-regex": "^3.0.0" 1092 | } 1093 | }, 1094 | "strip-json-comments": { 1095 | "version": "2.0.1", 1096 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1097 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1098 | "dev": true 1099 | }, 1100 | "supports-color": { 1101 | "version": "5.5.0", 1102 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1103 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1104 | "dev": true, 1105 | "requires": { 1106 | "has-flag": "^3.0.0" 1107 | } 1108 | }, 1109 | "table": { 1110 | "version": "4.0.3", 1111 | "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", 1112 | "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", 1113 | "dev": true, 1114 | "requires": { 1115 | "ajv": "^6.0.1", 1116 | "ajv-keywords": "^3.0.0", 1117 | "chalk": "^2.1.0", 1118 | "lodash": "^4.17.4", 1119 | "slice-ansi": "1.0.0", 1120 | "string-width": "^2.1.1" 1121 | }, 1122 | "dependencies": { 1123 | "lodash": { 1124 | "version": "4.17.11", 1125 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 1126 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 1127 | "dev": true 1128 | } 1129 | } 1130 | }, 1131 | "text-table": { 1132 | "version": "0.2.0", 1133 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1134 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1135 | "dev": true 1136 | }, 1137 | "through": { 1138 | "version": "2.3.8", 1139 | "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", 1140 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1141 | "dev": true 1142 | }, 1143 | "tmp": { 1144 | "version": "0.0.33", 1145 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1146 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1147 | "dev": true, 1148 | "requires": { 1149 | "os-tmpdir": "~1.0.2" 1150 | } 1151 | }, 1152 | "tslib": { 1153 | "version": "1.9.3", 1154 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", 1155 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", 1156 | "dev": true 1157 | }, 1158 | "type-check": { 1159 | "version": "0.3.2", 1160 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 1161 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 1162 | "dev": true, 1163 | "requires": { 1164 | "prelude-ls": "~1.1.2" 1165 | } 1166 | }, 1167 | "typeset": { 1168 | "version": "0.2.2", 1169 | "resolved": "https://registry.npmjs.org/typeset/-/typeset-0.2.2.tgz", 1170 | "integrity": "sha1-mATerP9CgVnSqryegr2fvVI2o+o=", 1171 | "requires": { 1172 | "cheerio": "^0.19.0", 1173 | "commander": "^2.8.1", 1174 | "html-entities": "^1.1.2", 1175 | "hypher": "^0.2.3" 1176 | } 1177 | }, 1178 | "uri-js": { 1179 | "version": "4.2.2", 1180 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1181 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 1182 | "dev": true, 1183 | "requires": { 1184 | "punycode": "^2.1.0" 1185 | } 1186 | }, 1187 | "which": { 1188 | "version": "1.3.1", 1189 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1190 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1191 | "dev": true, 1192 | "requires": { 1193 | "isexe": "^2.0.0" 1194 | } 1195 | }, 1196 | "wordwrap": { 1197 | "version": "1.0.0", 1198 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 1199 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 1200 | "dev": true 1201 | }, 1202 | "wrappy": { 1203 | "version": "1.0.2", 1204 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1205 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1206 | "dev": true 1207 | }, 1208 | "write": { 1209 | "version": "0.2.1", 1210 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 1211 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 1212 | "dev": true, 1213 | "requires": { 1214 | "mkdirp": "^0.5.1" 1215 | } 1216 | } 1217 | } 1218 | } 1219 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eleventy-plugin-typeset", 3 | "version": "1.0.0", 4 | "description": "A plugin to create nicer typography in sites built with Eleventy.", 5 | "main": "index.js", 6 | "scripts": { 7 | "lint": "eslint .", 8 | "test": "npm run lint" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/johanbrook/eleventy-plugin-typeset.git" 13 | }, 14 | "keywords": [ 15 | "eleventy", 16 | "typeset", 17 | "plugin", 18 | "typography", 19 | "punctuation", 20 | "quotes", 21 | "11ty" 22 | ], 23 | "author": "Johan Brook ", 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/johanbrook/eleventy-plugin-typeset/issues" 27 | }, 28 | "homepage": "https://github.com/johanbrook/eleventy-plugin-typeset#readme", 29 | "dependencies": { 30 | "typeset": "^0.2.2" 31 | }, 32 | "prettier": { 33 | "trailingComma": "es5", 34 | "singleQuote": true, 35 | "arrowParens": "always" 36 | }, 37 | "eslintConfig": { 38 | "extends": "eslint:recommended", 39 | "env": { 40 | "commonjs": true, 41 | "node": true 42 | }, 43 | "parserOptions": { 44 | "ecmaVersion": 6, 45 | "sourceType": "module" 46 | } 47 | }, 48 | "devDependencies": { 49 | "eslint": "^5.6.0" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /typeset-plugin.js: -------------------------------------------------------------------------------- 1 | // https://github.com/davidmerfield/Typeset 2 | const typeset = require('typeset'); 3 | 4 | /** 5 | * Apply Typeset.js to HTML content. 6 | * 7 | * @param {object} options Options object to feed into Typeset. 8 | * @see https://github.com/davidmerfield/Typeset#options 9 | */ 10 | module.exports = (options) => { 11 | return function applyTypeset(content, outputPath) { 12 | if (outputPath.endsWith('.html')) { 13 | const result = typeset(content, options); 14 | return result; 15 | } 16 | 17 | return content; 18 | }; 19 | }; 20 | --------------------------------------------------------------------------------