Files
oled-nnw/uno.config.ts
2023-05-03 15:57:50 +08:00

53 lines
1.1 KiB
TypeScript

import fs from 'node:fs'
import { defineConfig, presetAttributify, presetIcons, presetTypography, presetUno } from 'unocss'
import { ARTICLE_TEXT, DIRECTORY_NAME } from './constant'
function getMainCss() {
const env = process.env.NODE_ENV
const input = fs.readFileSync('main.css', 'utf8')
if (env === 'development')
return input
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
const CleanCSS = require('clean-css')
return new CleanCSS().minify(input).styles
}
export default defineConfig({
cli: {
entry: {
patterns: [`${DIRECTORY_NAME}/template.html`],
outFile: `${DIRECTORY_NAME}/stylesheet.css`,
},
},
shortcuts: [
[/^(.*)Text$/, ([,c]) => `text-${ARTICLE_TEXT[c]}`],
],
theme: {
maxWidth: {
prose: '80ch',
},
},
presets: [
presetUno({
dark: 'media',
}),
presetAttributify(),
presetIcons({
scale: 1.2,
}),
presetTypography(),
],
preflights: [
{
layer: 'my-style',
getCSS: () => getMainCss(),
},
],
safelist: [...Object.keys(ARTICLE_TEXT).map(i => `${i}Text`)],
})