-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathindex.js
55 lines (46 loc) · 1.72 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var postcss = require("postcss");
module.exports = postcss.plugin("postcss-spiffing", function(opts) {
return function(css) {
css.walkDecls(function(decl) {
decl.prop = decl.prop.replace(/colour/g, "color").replace(/photograph/g, "image");
if (decl.prop === "font-weight" && decl.value === "plump") {
decl.value = "bold";
} else if (decl.prop === "transparency") {
decl.prop = "opacity";
if (Number(decl.value) == decl.value && (parseFloat(decl.value) <= 1 && parseFloat(decl.value) >= 0)) {
decl.value = (1 - parseFloat(decl.value)).toFixed((Number(decl.value) + "").replace(".", "").length - 1);
}
} else if (decl.prop === "text-transform" && decl.value === "capitalise") {
decl.value = "capitalize";
} else if (decl.prop === "storey") {
decl.prop = "z-index";
if (decl.value === "ground") {
decl.value = "1";
} else {
decl.value = Number(decl.value) + 1 + "";
}
}
if (decl.value.match(/!please$/)) {
decl.value = decl.value.substring(0, decl.value.length - 7).trim();
decl.important = true;
}
if (decl.prop !== "content") {
decl.value = decl.value.split(" ").map(function(i) {
if (i === "centre") {
return "center";
}
if (i === "grey") {
return "gray";
}
return i;
}).join(" ");
}
decl.value = decl.value.replace(/(var\(--[^\)]*)colour([^\)]*\))/g, "$1color$2");
});
css.walkAtRules(function(rule) {
if (rule.name === "medium") {
rule.name = "media";
}
});
}
});