49 lines
1 KiB
JavaScript
49 lines
1 KiB
JavaScript
import { readFileSync } from "fs";
|
|
import path from "path";
|
|
import { stringify, parse } from "css";
|
|
export { stringify, parse };
|
|
|
|
// TODO import.meta.resolve is supposed to accomplish this without "path"
|
|
const GMI_CSS = path.resolve(
|
|
path.dirname(new URL(import.meta.url).pathname),
|
|
"./gmi.css"
|
|
);
|
|
|
|
export const CORE = parse(`p,
|
|
a,
|
|
pre,
|
|
h1,
|
|
h2,
|
|
h3,
|
|
ul,
|
|
blockquote,
|
|
img,
|
|
audio,
|
|
video {
|
|
display: block;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow-wrap: anywhere;
|
|
max-width: 100%;
|
|
}`);
|
|
|
|
export const FULL = parse(readFileSync(GMI_CSS, "utf-8"));
|
|
|
|
export function rootVariables({ stylesheet }) {
|
|
return stylesheet.rules
|
|
.find(
|
|
({ type, selectors }) => type === "rule" && selectors.includes(":root")
|
|
)
|
|
.declarations.reduce(
|
|
(obj, { property, value }) =>
|
|
!/^\-\-/.test(property)
|
|
? obj
|
|
: Object.assign(obj, { [property.replace("--", "")]: value }),
|
|
{}
|
|
);
|
|
}
|
|
|
|
export function resolve(arg, options) {
|
|
return stringify(parse(readFileSync(path.resolve(arg), "utf-8")), options);
|
|
}
|