mirror of
https://github.com/danog/inline-critical.git
synced 2024-11-26 20:14:41 +01:00
feature: compare/check already inlined styles
This commit is contained in:
parent
0870adc94e
commit
44c0cd38dd
66
index.js
66
index.js
@ -23,6 +23,7 @@ const slash = require('slash');
|
||||
const normalizeNewline = require('normalize-newline');
|
||||
const resolve = require('resolve');
|
||||
const detectIndent = require('detect-indent');
|
||||
const prettier = require('prettier');
|
||||
|
||||
/**
|
||||
* Get loadcss + cssrelpreload script
|
||||
@ -81,11 +82,13 @@ function minifyCSS(styles) {
|
||||
return new CleanCSS().minify(styles).styles; // eslint-disable-line prefer-destructuring
|
||||
}
|
||||
|
||||
function extract(css, critical, minify = false) {
|
||||
if (minify) {
|
||||
css = minifyCSS(css);
|
||||
critical = minifyCSS(critical);
|
||||
}
|
||||
function prettifyCSS(styles) {
|
||||
return prettier.format(styles, {parser: 'css'});
|
||||
}
|
||||
|
||||
function extract(css, critical) {
|
||||
css = minifyCSS(css);
|
||||
critical = minifyCSS(critical);
|
||||
return normalizeNewline(postcss(discard({css: critical})).process(css).css);
|
||||
}
|
||||
|
||||
@ -120,16 +123,6 @@ function inline(html, styles, options) {
|
||||
html = String(html);
|
||||
}
|
||||
|
||||
const $ = cheerio.load(html, {
|
||||
decodeEntities: false,
|
||||
});
|
||||
|
||||
const allLinks = $('link[rel="stylesheet"], link[rel="preload"][as="style"]').filter(function() {
|
||||
return !$(this).parents('noscript').length;
|
||||
});
|
||||
|
||||
let links = allLinks.filter('[rel="stylesheet"]');
|
||||
|
||||
const o = _.assign(
|
||||
{
|
||||
minify: true,
|
||||
@ -137,6 +130,29 @@ function inline(html, styles, options) {
|
||||
options || {}
|
||||
);
|
||||
|
||||
const $ = cheerio.load(html, {
|
||||
decodeEntities: false,
|
||||
});
|
||||
|
||||
// Fetch styles already inlined
|
||||
const inlineStyles = $('head style')
|
||||
.map((i, el) => $(el).html())
|
||||
.get()
|
||||
.join('\n');
|
||||
|
||||
// Only missing styles
|
||||
let missing = extract(styles, inlineStyles);
|
||||
if (!o.minify) {
|
||||
missing = prettifyCSS(missing);
|
||||
}
|
||||
|
||||
const inlined = `${inlineStyles}\n${missing}`;
|
||||
const allLinks = $('link[rel="stylesheet"], link[rel="preload"][as="style"]').filter(function() {
|
||||
return !$(this).parents('noscript').length;
|
||||
});
|
||||
|
||||
let links = allLinks.filter('[rel="stylesheet"]');
|
||||
|
||||
const target = o.selector || allLinks.get(0) || $('head script').get(0);
|
||||
const {indent} = detectIndent(html);
|
||||
const targetIndent = getIndent(html, target);
|
||||
@ -157,15 +173,14 @@ function inline(html, styles, options) {
|
||||
});
|
||||
}
|
||||
|
||||
// Minify if minify option is set
|
||||
if (o.minify) {
|
||||
styles = minifyCSS(styles);
|
||||
}
|
||||
|
||||
if (styles) {
|
||||
if (missing) {
|
||||
const elements = [
|
||||
'<style>',
|
||||
indent + styles.replace(/(\r\n|\r|\n)/g, '$1' + targetIndent + indent).replace(/^[\s\t]+$/g, ''),
|
||||
indent +
|
||||
missing
|
||||
.replace(/(\r\n|\r|\n)/g, '$1' + targetIndent + indent)
|
||||
.replace(/^[\s\t]+$/g, '')
|
||||
.trim(),
|
||||
'</style>',
|
||||
'',
|
||||
]
|
||||
@ -196,7 +211,12 @@ function inline(html, styles, options) {
|
||||
const file = path.resolve(path.join(o.basePath, href));
|
||||
if (fs.existsSync(file)) {
|
||||
const orig = fs.readFileSync(file);
|
||||
const diff = extract(orig, styles, o.minify);
|
||||
let diff = extract(orig, inlined);
|
||||
|
||||
if (!o.minify) {
|
||||
diff = prettifyCSS(diff);
|
||||
}
|
||||
|
||||
const filename = reaver.rev(file, diff);
|
||||
|
||||
fs.writeFileSync(filename, diff);
|
||||
|
288
package-lock.json
generated
288
package-lock.json
generated
@ -256,7 +256,6 @@
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
@ -1038,29 +1037,6 @@
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"cave": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cave/-/cave-2.0.0.tgz",
|
||||
"integrity": "sha1-DFd66oWSgBXQKgK2GIgG2VvrJiY=",
|
||||
"requires": {
|
||||
"css": "^2.1.0",
|
||||
"get-stdin": "^3.0.0",
|
||||
"lodash": "^2.4.1",
|
||||
"minimist": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"get-stdin": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz",
|
||||
"integrity": "sha1-wc7SS5A5s43thb3xYeV3E7bdSr4="
|
||||
},
|
||||
"lodash": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
|
||||
"integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"chai": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
|
||||
@ -1079,7 +1055,6 @@
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
@ -1225,7 +1200,6 @@
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
@ -1233,8 +1207,7 @@
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
@ -1250,6 +1223,11 @@
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
|
||||
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
|
||||
},
|
||||
"common-tags": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
|
||||
"integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw=="
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
@ -1729,6 +1707,15 @@
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"enhance-visitors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz",
|
||||
@ -1753,6 +1740,7 @@
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
|
||||
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-arrayish": "^0.2.1"
|
||||
}
|
||||
@ -1784,8 +1772,7 @@
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||
},
|
||||
"escodegen": {
|
||||
"version": "1.11.0",
|
||||
@ -2223,13 +2210,12 @@
|
||||
}
|
||||
},
|
||||
"eslint-plugin-prettier": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz",
|
||||
"integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.0.tgz",
|
||||
"integrity": "sha512-4g11opzhqq/8+AMmo5Vc2Gn7z9alZ4JqrbZ+D4i8KlSyxeQhZHlmIrY8U9Akf514MoEhogPa87Jgkq87aZ2Ohw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-diff": "^1.1.1",
|
||||
"jest-docblock": "^21.0.0"
|
||||
"prettier-linter-helpers": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"eslint-plugin-promise": {
|
||||
@ -2348,18 +2334,42 @@
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
|
||||
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
|
||||
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^5.0.1",
|
||||
"get-stream": "^3.0.0",
|
||||
"cross-spawn": "^6.0.0",
|
||||
"get-stream": "^4.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"exit": {
|
||||
@ -2689,6 +2699,7 @@
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^2.0.0"
|
||||
}
|
||||
@ -3553,8 +3564,7 @@
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"has-symbols": {
|
||||
"version": "1.0.0",
|
||||
@ -3785,7 +3795,8 @@
|
||||
"is-arrayish": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
|
||||
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
|
||||
"dev": true
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "1.1.6",
|
||||
@ -5260,7 +5271,8 @@
|
||||
"json-parse-better-errors": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
|
||||
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
|
||||
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
@ -5380,6 +5392,7 @@
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
||||
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"parse-json": "^4.0.0",
|
||||
@ -5391,6 +5404,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "^2.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
@ -5627,7 +5641,6 @@
|
||||
"loud-rejection": "^1.0.0",
|
||||
"minimist-options": "^3.0.1",
|
||||
"normalize-package-data": "^2.3.4",
|
||||
"read-pkg-up": "^3.0.0",
|
||||
"redent": "^2.0.0",
|
||||
"trim-newlines": "^2.0.0",
|
||||
"yargs-parser": "^10.0.0"
|
||||
@ -7273,6 +7286,23 @@
|
||||
"execa": "^0.7.0",
|
||||
"lcid": "^1.0.0",
|
||||
"mem": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"execa": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
|
||||
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^5.0.1",
|
||||
"get-stream": "^3.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"os-tmpdir": {
|
||||
@ -7291,6 +7321,7 @@
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^1.0.0"
|
||||
}
|
||||
@ -7299,6 +7330,7 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
||||
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "^1.1.0"
|
||||
}
|
||||
@ -7306,7 +7338,8 @@
|
||||
"p-try": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
|
||||
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
|
||||
"dev": true
|
||||
},
|
||||
"package-json": {
|
||||
"version": "4.0.1",
|
||||
@ -7353,6 +7386,7 @@
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"error-ex": "^1.3.1",
|
||||
"json-parse-better-errors": "^1.0.1"
|
||||
@ -7379,7 +7413,8 @@
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
@ -7408,6 +7443,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
|
||||
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pify": "^3.0.0"
|
||||
}
|
||||
@ -7427,7 +7463,8 @@
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
|
||||
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||
"dev": true
|
||||
},
|
||||
"pinkie": {
|
||||
"version": "2.0.4",
|
||||
@ -7520,6 +7557,37 @@
|
||||
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.7",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz",
|
||||
"integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"source-map": "^0.6.1",
|
||||
"supports-color": "^5.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"postcss-discard": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-discard/-/postcss-discard-0.3.0.tgz",
|
||||
"integrity": "sha512-nqxrNxXl0VY1hLscuFl7NmZV6m4fCBRICfAW42zBe0uzUryLnE3G7X3eymZNyGNpET68qAM0+lvZ//ORIdraww==",
|
||||
"requires": {
|
||||
"clean-css": "^4.2.1",
|
||||
"common-tags": "^1.7.2",
|
||||
"lodash": "^4.17.11",
|
||||
"postcss": "^7.0.6"
|
||||
}
|
||||
},
|
||||
"prelude-ls": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
||||
@ -7539,10 +7607,18 @@
|
||||
"dev": true
|
||||
},
|
||||
"prettier": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz",
|
||||
"integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==",
|
||||
"dev": true
|
||||
"version": "1.15.3",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.3.tgz",
|
||||
"integrity": "sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg=="
|
||||
},
|
||||
"prettier-linter-helpers": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
|
||||
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-diff": "^1.1.2"
|
||||
}
|
||||
},
|
||||
"pretty-format": {
|
||||
"version": "23.6.0",
|
||||
@ -7608,6 +7684,16 @@
|
||||
"integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
@ -7681,6 +7767,7 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
|
||||
"integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"load-json-file": "^4.0.0",
|
||||
"normalize-package-data": "^2.3.2",
|
||||
@ -7688,12 +7775,58 @@
|
||||
}
|
||||
},
|
||||
"read-pkg-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
|
||||
"integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
|
||||
"integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "^2.0.0",
|
||||
"find-up": "^3.0.0",
|
||||
"read-pkg": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
|
||||
"integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-try": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"p-try": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
|
||||
"integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
@ -8425,7 +8558,8 @@
|
||||
"strip-bom": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
|
||||
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-eof": {
|
||||
"version": "1.0.0",
|
||||
@ -8448,7 +8582,6 @@
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
|
||||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
@ -8511,6 +8644,23 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "^0.7.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"execa": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
|
||||
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^5.0.1",
|
||||
"get-stream": "^3.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"test-exclude": {
|
||||
@ -9341,6 +9491,18 @@
|
||||
"slash": "^2.0.0",
|
||||
"update-notifier": "^2.3.0",
|
||||
"xo-init": "^0.7.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"eslint-plugin-prettier": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz",
|
||||
"integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-diff": "^1.1.1",
|
||||
"jest-docblock": "^21.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"xo-init": {
|
||||
@ -9373,6 +9535,16 @@
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"read-pkg-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
|
||||
"integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "^2.0.0",
|
||||
"read-pkg": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -42,6 +42,7 @@
|
||||
"normalize-newline": "3.0.0",
|
||||
"postcss": "^7.0.7",
|
||||
"postcss-discard": "^0.3.0",
|
||||
"prettier": "^1.15.3",
|
||||
"reaver": "2.0.0",
|
||||
"resolve": "^1.8.1",
|
||||
"slash": "^2.0.0",
|
||||
@ -51,6 +52,7 @@
|
||||
"chai": "^4.0.2",
|
||||
"concat-stream": "^1.6.2",
|
||||
"coveralls": "^3.0.2",
|
||||
"eslint-plugin-prettier": "^3.0.0",
|
||||
"execa": "^1.0.0",
|
||||
"jest": "^23.6.0",
|
||||
"mocha": "^5.2.0",
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,29 +258,29 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
float: right !important;
|
||||
}
|
||||
</style>
|
||||
<link rel="preload" href="/css/cartoon.18d89c7f.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/css/cartoon.18d89c7f.css"></noscript>
|
||||
<link rel="preload" href="/bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css"></noscript>
|
||||
<link rel="preload" href="/css/cartoon.2808011f.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/css/cartoon.2808011f.css"></noscript>
|
||||
<link rel="preload" href="/bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css"></noscript>
|
||||
<script>!function(n){"usestrict";n.loadCSS||(n.loadCSS=function(){});varo=loadCSS.relpreload={};if(o.support=function(){vare;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}returnfunction(){returne}}(),o.bindMediaToggle=function(t){vare=t.media||"all";functiona(){t.media=e}t.addEventListener?t.addEventListener("load",a):t.attachEvent&&t.attachEvent("onload",a),setTimeout(function(){t.rel="stylesheet",t.media="onlyx"}),setTimeout(a,3e3)},o.poly=function(){if(!o.support())for(vart=n.document.getElementsByTagName("link"),e=0;e<t.length;e++){vara=t[e];"preload"!==a.rel||"style"!==a.getAttribute("as")||a.getAttribute("data-loadcss")||(a.setAttribute("data-loadcss",!0),o.bindMediaToggle(a))}},!o.support()){o.poly();vart=n.setInterval(o.poly,500);n.addEventListener?n.addEventListener("load",function(){o.poly(),n.clearInterval(t)}):n.attachEvent&&n.attachEvent("onload",function(){o.poly(),n.clearInterval(t)})}"undefined"!=typeofexports?exports.loadCSS=loadCSS:n.loadCSS=loadCSS}("undefined"!=typeofglobal?global:this);</script>
|
||||
<!-- endbuild -->
|
||||
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,29 +258,29 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
float: right !important;
|
||||
}
|
||||
</style>
|
||||
<link rel="preload" href="css/cartoon.18d89c7f.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="css/cartoon.18d89c7f.css"></noscript>
|
||||
<link rel="preload" href="bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css"></noscript>
|
||||
<link rel="preload" href="css/cartoon.2808011f.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="css/cartoon.2808011f.css"></noscript>
|
||||
<link rel="preload" href="bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css"></noscript>
|
||||
<script>!function(n){"usestrict";n.loadCSS||(n.loadCSS=function(){});varo=loadCSS.relpreload={};if(o.support=function(){vare;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}returnfunction(){returne}}(),o.bindMediaToggle=function(t){vare=t.media||"all";functiona(){t.media=e}t.addEventListener?t.addEventListener("load",a):t.attachEvent&&t.attachEvent("onload",a),setTimeout(function(){t.rel="stylesheet",t.media="onlyx"}),setTimeout(a,3e3)},o.poly=function(){if(!o.support())for(vart=n.document.getElementsByTagName("link"),e=0;e<t.length;e++){vara=t[e];"preload"!==a.rel||"style"!==a.getAttribute("as")||a.getAttribute("data-loadcss")||(a.setAttribute("data-loadcss",!0),o.bindMediaToggle(a))}},!o.support()){o.poly();vart=n.setInterval(o.poly,500);n.addEventListener?n.addEventListener("load",function(){o.poly(),n.clearInterval(t)}):n.attachEvent&&n.attachEvent("onload",function(){o.poly(),n.clearInterval(t)})}"undefined"!=typeofexports?exports.loadCSS=loadCSS:n.loadCSS=loadCSS}("undefined"!=typeofglobal?global:this);</script>
|
||||
<!-- endbuild -->
|
||||
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,19 +258,19 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,29 +258,29 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
float: right !important;
|
||||
}
|
||||
</style>
|
||||
<link rel="preload" href="css/main.158f2990.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="css/main.158f2990.css"></noscript>
|
||||
<link rel="preload" href="bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.155ef5f4.css"></noscript>
|
||||
<link rel="preload" href="css/main.d41d8cd9.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="css/main.d41d8cd9.css"></noscript>
|
||||
<link rel="preload" href="bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.10a09ad4.css"></noscript>
|
||||
<link href="http://fonts.googleapis.com/css?family=Open+Sans" rel="preload" type="text/css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link href="http://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css"></noscript>
|
||||
<script>!function(n){"usestrict";n.loadCSS||(n.loadCSS=function(){});varo=loadCSS.relpreload={};if(o.support=function(){vare;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}returnfunction(){returne}}(),o.bindMediaToggle=function(t){vare=t.media||"all";functiona(){t.media=e}t.addEventListener?t.addEventListener("load",a):t.attachEvent&&t.attachEvent("onload",a),setTimeout(function(){t.rel="stylesheet",t.media="onlyx"}),setTimeout(a,3e3)},o.poly=function(){if(!o.support())for(vart=n.document.getElementsByTagName("link"),e=0;e<t.length;e++){vara=t[e];"preload"!==a.rel||"style"!==a.getAttribute("as")||a.getAttribute("data-loadcss")||(a.setAttribute("data-loadcss",!0),o.bindMediaToggle(a))}},!o.support()){o.poly();vart=n.setInterval(o.poly,500);n.addEventListener?n.addEventListener("load",function(){o.poly(),n.clearInterval(t)}):n.attachEvent&&n.attachEvent("onload",function(){o.poly(),n.clearInterval(t)})}"undefined"!=typeofexports?exports.loadCSS=loadCSS:n.loadCSS=loadCSS}("undefined"!=typeofglobal?global:this);</script>
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,19 +258,19 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,19 +258,19 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
|
@ -13,52 +13,42 @@
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 730px;
|
||||
}
|
||||
|
||||
.header{
|
||||
.header {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
@ -68,20 +58,20 @@
|
||||
margin: 0;
|
||||
}
|
||||
a {
|
||||
background: transparent;
|
||||
background: 0 0;
|
||||
}
|
||||
h1 {
|
||||
margin: .67em 0;
|
||||
margin: 0.67em 0;
|
||||
font-size: 2em;
|
||||
}
|
||||
@media print {
|
||||
* {
|
||||
color: #000 !important;
|
||||
text-shadow: none !important;
|
||||
background: transparent !important;
|
||||
background: 0 0 !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a{
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a[href]:after {
|
||||
@ -90,8 +80,8 @@
|
||||
a[href^="#"]:after {
|
||||
content: "";
|
||||
}
|
||||
p,
|
||||
h3 {
|
||||
h3,
|
||||
p {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
@ -104,16 +94,15 @@
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*:before,
|
||||
*:after {
|
||||
:after,
|
||||
:before {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
@ -127,21 +116,21 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.1;
|
||||
color: inherit;
|
||||
}
|
||||
h1,
|
||||
h3{
|
||||
h3 {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
h1{
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
h3{
|
||||
h3 {
|
||||
font-size: 24px;
|
||||
}
|
||||
p {
|
||||
@ -161,7 +150,7 @@
|
||||
.text-muted {
|
||||
color: #999;
|
||||
}
|
||||
ul{
|
||||
ul {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -191,7 +180,7 @@
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@ -210,13 +199,12 @@
|
||||
background-color: #5cb85c;
|
||||
border-color: #4cae4c;
|
||||
}
|
||||
.btn-lg{
|
||||
.btn-lg {
|
||||
padding: 10px 16px;
|
||||
font-size: 18px;
|
||||
line-height: 1.33;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.nav {
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
@ -240,7 +228,7 @@
|
||||
.nav-pills > li + li {
|
||||
margin-left: 2px;
|
||||
}
|
||||
.nav-pills > li.active > a{
|
||||
.nav-pills > li.active > a {
|
||||
color: #fff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
@ -250,7 +238,7 @@
|
||||
color: inherit;
|
||||
background-color: #eee;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
color: inherit;
|
||||
}
|
||||
.jumbotron p {
|
||||
@ -270,19 +258,19 @@
|
||||
padding-right: 60px;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.jumbotron h1{
|
||||
.jumbotron h1 {
|
||||
font-size: 63px;
|
||||
}
|
||||
}
|
||||
.container:before,
|
||||
.container:after,
|
||||
.nav:before,
|
||||
.nav:after{
|
||||
.container:before,
|
||||
.nav:after,
|
||||
.nav:before {
|
||||
display: table;
|
||||
content: " ";
|
||||
}
|
||||
.container:after,
|
||||
.nav:after{
|
||||
.nav:after {
|
||||
clear: both;
|
||||
}
|
||||
.pull-right {
|
||||
|
104
test/expected/index-inlined.html
Normal file
104
test/expected/index-inlined.html
Normal file
@ -0,0 +1,104 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="no-js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>critical css test</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
||||
|
||||
<style>
|
||||
#not {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- build:css styles/main.css -->
|
||||
<style>
|
||||
@media screen and (min-width:768px){.container{max-width:730px}.header{padding-left:0;padding-right:0}.header{margin-bottom:30px}.jumbotron{border-bottom:0}}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:0 0}h1{margin:.67em 0;font-size:2em}@media print{*{color:#000!important;text-shadow:none!important;background:0 0!important;box-shadow:none!important}a{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after{content:""}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}a{color:#428bca;text-decoration:none}h1,h3{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,h3{margin-top:20px;margin-bottom:10px}h1{font-size:36px}h3{font-size:24px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.text-muted{color:#999}ul{margin-top:0;margin-bottom:10px}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a{color:#fff;background-color:#428bca}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.container:after,.container:before,.nav:after,.nav:before{display:table;content:" "}.container:after,.nav:after{clear:both}.pull-right{float:right!important}
|
||||
</style>
|
||||
<link rel="preload" href="css/cartoon.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="css/cartoon.css"></noscript>
|
||||
<script>!function(n){"use strict";n.loadCSS||(n.loadCSS=function(){});var o=loadCSS.relpreload={};if(o.support=function(){var e;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),o.bindMediaToggle=function(t){var e=t.media||"all";function a(){t.media=e}t.addEventListener?t.addEventListener("load",a):t.attachEvent&&t.attachEvent("onload",a),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(a,3e3)},o.poly=function(){if(!o.support())for(var t=n.document.getElementsByTagName("link"),e=0;e<t.length;e++){var a=t[e];"preload"!==a.rel||"style"!==a.getAttribute("as")||a.getAttribute("data-loadcss")||(a.setAttribute("data-loadcss",!0),o.bindMediaToggle(a))}},!o.support()){o.poly();var t=n.setInterval(o.poly,500);n.addEventListener?n.addEventListener("load",function(){o.poly(),n.clearInterval(t)}):n.attachEvent&&n.attachEvent("onload",function(){o.poly(),n.clearInterval(t)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:n.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>
|
||||
<!-- endbuild -->
|
||||
</head>
|
||||
<body>
|
||||
<!--[if lt IE 10]>
|
||||
<p class="browsehappy">
|
||||
You are using an <strong>outdated</strong> browser. Please
|
||||
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
||||
</p>
|
||||
<![endif]-->
|
||||
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<ul class="nav nav-pills pull-right">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#">About</a></li>
|
||||
<li><a href="#">Contact</a></li>
|
||||
</ul>
|
||||
<h3 class="text-muted">critical css test</h3>
|
||||
</div>
|
||||
|
||||
<div class="jumbotron">
|
||||
<h1>'Allo, 'Allo!</h1>
|
||||
|
||||
<p class="lead">Always a pleasure scaffolding your apps.</p>
|
||||
|
||||
<p><a class="btn btn-lg btn-success" href="#">Splendid!</a></p>
|
||||
</div>
|
||||
|
||||
<div class="row marketing">
|
||||
<div class="col-lg-6">
|
||||
<h4>HTML5 Boilerplate</h4>
|
||||
|
||||
<p>
|
||||
HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or
|
||||
sites.
|
||||
</p>
|
||||
|
||||
<h4>Bootstrap</h4>
|
||||
|
||||
<p>Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer"><p>♥ from the Yeoman team</p></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
99
test/fixtures/index-inlined.html
vendored
Normal file
99
test/fixtures/index-inlined.html
vendored
Normal file
@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="no-js">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>critical css test</title>
|
||||
<meta name="description" content="" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
||||
|
||||
<style>
|
||||
#not {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.header {
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.header h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: 40px;
|
||||
padding-bottom: 19px;
|
||||
}
|
||||
|
||||
.jumbotron {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- build:css styles/main.css -->
|
||||
<link rel="stylesheet" href="css/cartoon.css" />
|
||||
<!-- endbuild -->
|
||||
</head>
|
||||
<body>
|
||||
<!--[if lt IE 10]>
|
||||
<p class="browsehappy">
|
||||
You are using an <strong>outdated</strong> browser. Please
|
||||
<a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.
|
||||
</p>
|
||||
<![endif]-->
|
||||
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<ul class="nav nav-pills pull-right">
|
||||
<li class="active"><a href="#">Home</a></li>
|
||||
<li><a href="#">About</a></li>
|
||||
<li><a href="#">Contact</a></li>
|
||||
</ul>
|
||||
<h3 class="text-muted">critical css test</h3>
|
||||
</div>
|
||||
|
||||
<div class="jumbotron">
|
||||
<h1>'Allo, 'Allo!</h1>
|
||||
|
||||
<p class="lead">Always a pleasure scaffolding your apps.</p>
|
||||
|
||||
<p><a class="btn btn-lg btn-success" href="#">Splendid!</a></p>
|
||||
</div>
|
||||
|
||||
<div class="row marketing">
|
||||
<div class="col-lg-6">
|
||||
<h4>HTML5 Boilerplate</h4>
|
||||
|
||||
<p>
|
||||
HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or
|
||||
sites.
|
||||
</p>
|
||||
|
||||
<h4>Bootstrap</h4>
|
||||
|
||||
<p>Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer"><p>♥ from the Yeoman team</p></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -5,6 +5,7 @@ const postcss = require('postcss');
|
||||
const discard = require('postcss-discard');
|
||||
const normalizeNewline = require('normalize-newline');
|
||||
const CleanCSS = require('clean-css');
|
||||
const prettier = require('prettier');
|
||||
const inline = require('..');
|
||||
|
||||
const {read, checkAndDelete, strip} = require('./helper');
|
||||
@ -14,11 +15,14 @@ function minifyCSS(styles) {
|
||||
}
|
||||
|
||||
const extract = (css, critical, minify = false) => {
|
||||
css = minifyCSS(css);
|
||||
critical = minifyCSS(critical);
|
||||
const result = normalizeNewline(postcss(discard({css: critical})).process(css).css);
|
||||
if (minify) {
|
||||
css = minifyCSS(css);
|
||||
critical = minifyCSS(critical);
|
||||
return result;
|
||||
}
|
||||
return normalizeNewline(postcss(discard({css: critical})).process(css).css);
|
||||
|
||||
return prettier.format(result, {parser: 'css'});
|
||||
};
|
||||
|
||||
jest.setTimeout(20000);
|
||||
@ -28,7 +32,6 @@ test('Inline css', async () => {
|
||||
const css = await read('fixtures/critical.css');
|
||||
const expected = await read('expected/index-inlined-async-final.html');
|
||||
const out = inline(html, css, {minify: false});
|
||||
|
||||
expect(strip(out.toString())).toBe(strip(expected));
|
||||
});
|
||||
|
||||
@ -170,7 +173,6 @@ test('should not keep external urls', async () => {
|
||||
const expected = await read('expected/external-expected.html');
|
||||
const css = await read('fixtures/critical.css');
|
||||
const out = inline(html, css, {minify: false});
|
||||
|
||||
expect(strip2(out.toString('utf-8'))).toBe(strip2(expected));
|
||||
});
|
||||
|
||||
@ -194,7 +196,6 @@ test('should not extract on external urls', async () => {
|
||||
extract: true,
|
||||
basePath: 'test/fixtures',
|
||||
});
|
||||
|
||||
expect(out.toString('utf8')).toMatch(path.basename(reved[0]));
|
||||
expect(out.toString('utf8')).toMatch(path.basename(reved[1]));
|
||||
expect(checkAndDelete(reved[0])).toBe(true);
|
||||
@ -288,3 +289,13 @@ test("should skip loadcss if it's already present and used for all existing link
|
||||
|
||||
expect(strip(out.toString('utf-8'))).toBe(strip(expected));
|
||||
});
|
||||
|
||||
test('consider existing style tags', async () => {
|
||||
const html = await read('fixtures/index-inlined.html');
|
||||
const css = await read('fixtures/critical.css');
|
||||
|
||||
const expected = await read('expected/index-inlined.html');
|
||||
const out = inline(html, css);
|
||||
|
||||
expect(out.toString('utf-8')).toBe(expected);
|
||||
});
|
||||
|
24
yarn.lock
24
yarn.lock
@ -1442,6 +1442,13 @@ eslint-plugin-prettier@^2.6.0:
|
||||
fast-diff "^1.1.1"
|
||||
jest-docblock "^21.0.0"
|
||||
|
||||
eslint-plugin-prettier@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.0.tgz#f6b823e065f8c36529918cdb766d7a0e975ec30c"
|
||||
integrity sha512-4g11opzhqq/8+AMmo5Vc2Gn7z9alZ4JqrbZ+D4i8KlSyxeQhZHlmIrY8U9Akf514MoEhogPa87Jgkq87aZ2Ohw==
|
||||
dependencies:
|
||||
prettier-linter-helpers "^1.0.0"
|
||||
|
||||
eslint-plugin-promise@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
|
||||
@ -1716,6 +1723,11 @@ fast-diff@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
|
||||
|
||||
fast-diff@^1.1.2:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
|
||||
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
|
||||
|
||||
fast-glob@^2.0.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf"
|
||||
@ -4188,10 +4200,22 @@ preserve@^0.2.0:
|
||||
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
|
||||
integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
|
||||
|
||||
prettier-linter-helpers@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
|
||||
integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
|
||||
dependencies:
|
||||
fast-diff "^1.1.2"
|
||||
|
||||
prettier@^1.12.1:
|
||||
version "1.13.5"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.5.tgz#7ae2076998c8edce79d63834e9b7b09fead6bfd0"
|
||||
|
||||
prettier@^1.15.3:
|
||||
version "1.15.3"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
|
||||
integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
|
||||
|
||||
pretty-format@^23.6.0:
|
||||
version "23.6.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
|
||||
|
Loading…
Reference in New Issue
Block a user