12345678910111213141516171819202122232425262728293031323334353637 |
- var postcss = require('postcss');
- var charset = 'charset';
- module.exports = postcss.plugin('postcss-normalize-' + charset, function (opts) {
- opts = opts || {};
- return function (css) {
- var charsetRule;
- var nonAsciiNode;
- var nonAscii = /[^\x00-\x7F]/;
- css.walk(function (node) {
- if (node.type === 'atrule' && node.name === charset) {
- if (!charsetRule) {
- charsetRule = node;
- }
- node.remove();
- } else if (!nonAsciiNode && node.parent === css && nonAscii.test(node)) {
- nonAsciiNode = node;
- }
- });
- if (nonAsciiNode) {
- if (!charsetRule && opts.add !== false) {
- charsetRule = postcss.atRule({
- name: charset,
- params: '"utf-8"'
- });
- }
- if (charsetRule) {
- charsetRule.source = nonAsciiNode.source;
- css.prepend(charsetRule);
- }
- }
- };
- });
|