Skip to content

Commit a318c9c

Browse files
authored
chore: rename minify-css to preprocess-styles (#363)
1 parent fda11c5 commit a318c9c

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed

scripts/build-styles.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { $, Glob } from "bun";
22
import path from "node:path";
33
import { createMarkdown } from "./utils/create-markdown";
4-
import { minifyCss } from "./utils/minify-css";
54
import { postcssScopedStyles } from "./utils/postcss-scoped-styles";
5+
import { preprocessStyles } from "./utils/preprocess-styles";
66
import { toCamelCase } from "./utils/to-camel-case";
77
import { writeTo } from "./utils/write-to";
88

@@ -37,14 +37,17 @@ export async function buildStyles() {
3737
styles.push({ name, moduleName });
3838

3939
const content = await Bun.file(absPath).text();
40-
const css_minified = minifyCss(content, {
40+
const css_minified = preprocessStyles(content, {
4141
discardComments: "preserve-license",
4242
});
4343

4444
// Escape backticks for JS template literal.
45-
const content_css_for_js = minifyCss(content.replace(/\`/g, "\\`"), {
46-
discardComments: "preserve-license",
47-
});
45+
const content_css_for_js = preprocessStyles(
46+
content.replace(/\`/g, "\\`"),
47+
{
48+
discardComments: "preserve-license",
49+
},
50+
);
4851

4952
const exportee = `const ${moduleName} = \`<style>${content_css_for_js}</style>\`;\n
5053
export default ${moduleName};\n`;
@@ -56,7 +59,7 @@ export async function buildStyles() {
5659
);
5760
await writeTo(`src/styles/${name}.css`, css_minified);
5861

59-
const scoped_style = minifyCss(content, {
62+
const scoped_style = preprocessStyles(content, {
6063
discardComments: "remove-all",
6164
plugins: [postcssScopedStyles(moduleName)],
6265
});

scripts/utils/minify-css.ts scripts/utils/preprocess-styles.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,15 @@ import discardDuplicates from "postcss-discard-duplicates";
55
import { inlineCssVars } from "postcss-inline-css-vars";
66
import mergeRules from "postcss-merge-rules";
77

8-
export const minifyCss = (
8+
/**
9+
* Raw styles from `highlight.js` are preprocessed for consistency.
10+
* - Inlining CSS variables.
11+
* - Discarding duplicate rules.
12+
* - Merging rules.
13+
* - Discarding comments (but preserving license comments).
14+
* - Minifying the CSS.
15+
*/
16+
export const preprocessStyles = (
917
css: string,
1018
options?: {
1119
plugins?: Plugin[];

tests/minify-css.test.ts tests/preprocess-styles.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import { minifyCss } from "../scripts/utils/minify-css";
1+
import { preprocessStyles } from "../scripts/utils/preprocess-styles";
22

3-
describe("minifyCss", () => {
3+
describe("preprocessStyles", () => {
44
it("should minify basic CSS", () => {
55
const input = `
66
.test {
77
color: red;
88
background: blue;
99
}
1010
`;
11-
const output = minifyCss(input);
11+
const output = preprocessStyles(input);
1212
expect(output).toBe(".test{color:red;background:blue}");
1313
});
1414

@@ -21,7 +21,7 @@ describe("minifyCss", () => {
2121
color: red;
2222
}
2323
`;
24-
const output = minifyCss(input);
24+
const output = preprocessStyles(input);
2525
expect(output).toBe(".test{color:red}");
2626
});
2727

@@ -34,7 +34,7 @@ describe("minifyCss", () => {
3434
background: blue;
3535
}
3636
`;
37-
const output = minifyCss(input);
37+
const output = preprocessStyles(input);
3838
expect(output).toBe(".test{color:red;background:blue}");
3939
});
4040

@@ -57,7 +57,7 @@ describe("minifyCss", () => {
5757
`;
5858

5959
it("should preserve license comments when option is set", () => {
60-
const output = minifyCss(cssWithComments, {
60+
const output = preprocessStyles(cssWithComments, {
6161
discardComments: "preserve-license",
6262
});
6363
expect(output).toContain("@license");
@@ -66,7 +66,7 @@ describe("minifyCss", () => {
6666
});
6767

6868
it("should remove all comments when remove-all option is set", () => {
69-
const output = minifyCss(cssWithComments, {
69+
const output = preprocessStyles(cssWithComments, {
7070
discardComments: "remove-all",
7171
});
7272
expect(output).not.toContain("@license");

0 commit comments

Comments
 (0)