mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-23 00:59:13 +08:00
51 lines
1.1 KiB
Text
Executable file
51 lines
1.1 KiB
Text
Executable file
'use strict';
|
|
const BasePlugin = require('../plugin');
|
|
const { IE_6 } = require('../dictionary/browsers');
|
|
const { PROPERTY } = require('../dictionary/identifiers');
|
|
const { DECL } = require('../dictionary/postcss');
|
|
|
|
/**
|
|
* @param {string} prop
|
|
* @return {string}
|
|
*/
|
|
function vendorPrefix(prop) {
|
|
let match = prop.match(/^(-\w+-)/);
|
|
if (match) {
|
|
return match[0];
|
|
}
|
|
|
|
return '';
|
|
}
|
|
|
|
module.exports = class LeadingUnderscore extends BasePlugin {
|
|
/** @param {import('postcss').Result=} result */
|
|
constructor(result) {
|
|
super([IE_6], [DECL], result);
|
|
}
|
|
|
|
/**
|
|
* @param {import('postcss').Declaration} decl
|
|
* @return {void}
|
|
*/
|
|
detect(decl) {
|
|
const { before } = decl.raws;
|
|
|
|
if (before && before.includes('_')) {
|
|
this.push(decl, {
|
|
identifier: PROPERTY,
|
|
hack: `${before.trim()}${decl.prop}`,
|
|
});
|
|
}
|
|
|
|
if (
|
|
decl.prop[0] === '-' &&
|
|
decl.prop[1] !== '-' &&
|
|
vendorPrefix(decl.prop) === ''
|
|
) {
|
|
this.push(decl, {
|
|
identifier: PROPERTY,
|
|
hack: decl.prop,
|
|
});
|
|
}
|
|
}
|
|
};
|