mirror of
https://github.com/NohamR/oled-nnw.git
synced 2026-05-25 04:17:19 +00:00
53 lines
1.1 KiB
TypeScript
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`)],
|
|
})
|