diff --git a/_vite.config.mjs b/_vite.config.mjs index 2245e87..9c6b6a9 100644 --- a/_vite.config.mjs +++ b/_vite.config.mjs @@ -1,37 +1,42 @@ -import path, { resolve } from 'path' -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import ruby from 'vite-plugin-ruby' -import components from 'unplugin-vue-components/vite' -import legacy from '@vitejs/plugin-legacy' -import { toSass } from 'sass-cast' -import { Liquid, Tag as LiquidTag } from 'liquidjs' +import path, { resolve } from "path"; +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import ruby from "vite-plugin-ruby"; +import components from "unplugin-vue-components/vite"; +import legacy from "@vitejs/plugin-legacy"; +import { toSass } from "sass-cast"; +import { Liquid, Tag as LiquidTag } from "liquidjs"; -const visualizer = await (async()=>{ +const visualizer = await (async () => { if (process.env.VISUALIZER) { - return (await import('rollup-plugin-visualizer')).visualizer; - }else{ - return (()=>null); + return (await import("rollup-plugin-visualizer")).visualizer; + } else { + return () => null; } })(); -const exposedData = ['config', 'data', 'categories']; -const jekyllData = Object.fromEntries(exposedData.map((key) => [key, JSON.parse(process.env[`site_${key}`] || '{}')])); -jekyllData.config.hasOwnProperty('suffix') || (jekyllData.config.suffix = null); +const exposedData = ["config", "data", "categories"]; +const jekyllData = Object.fromEntries( + exposedData.map((key) => [ + key, + JSON.parse(process.env[`site_${key}`] || "{}"), + ]), +); +jekyllData.config.hasOwnProperty("suffix") || (jekyllData.config.suffix = null); -export default defineConfig(({mode})=>({ +export default defineConfig(({ mode }) => ({ build: { emptyOutDir: true, - sourcemap: mode === 'production' ? false : true, - minify: mode === 'production', + sourcemap: mode === "production" ? false : true, + minify: mode === "production", }, plugins: [ - (()=>{ - const importNamePrefix = 'virtual:jekyll-'; - const loadNamePrefix = '\0' + importNamePrefix; + (() => { + const importNamePrefix = "virtual:jekyll-"; + const loadNamePrefix = "\0" + importNamePrefix; return { - name: 'jekyll', + name: "jekyll", resolveId(id) { if (id.startsWith(importNamePrefix)) { return loadNamePrefix + id.slice(importNamePrefix.length); @@ -40,26 +45,30 @@ export default defineConfig(({mode})=>({ load(id) { if (id.startsWith(loadNamePrefix)) { const key = id.slice(loadNamePrefix.length); - return Object.entries(jekyllData[key]).map(([key, value]) => `export const ${key.replace("-", "_")} = ${JSON.stringify(value)};`).join('\n'); + return Object.entries(jekyllData[key]) + .map( + ([key, value]) => + `export const ${key.replace("-", "_")} = ${JSON.stringify(value)};`, + ) + .join("\n"); } }, }; })(), - (()=>{ + (() => { const helpPages = jekyllData.categories.help || []; return { - name: 'tuna-help-pages', + name: "tuna-help-pages", resolveId(id) { if (id === "virtual:tuna-help-pages") { - return '\0' + id; + return "\0" + id; } }, load(id) { - if (id === '\0' + "virtual:tuna-help-pages") { - const pages = Object.fromEntries(helpPages.map((page) => [ - page.mirrorid, - page.url, - ])); + if (id === "\0" + "virtual:tuna-help-pages") { + const pages = Object.fromEntries( + helpPages.map((page) => [page.mirrorid, page.url]), + ); return `export default ${JSON.stringify(pages)};`; } }, @@ -67,63 +76,71 @@ export default defineConfig(({mode})=>({ })(), vue({ template: { - preprocessCustomRequire(id){ - if(id === "liquid"){ + preprocessCustomRequire(id) { + if (id === "liquid") { return { - render(source, options, cb){ + render(source, options, cb) { const engine = new Liquid({ root: jekyllData.config.source, - partials: path.join(jekyllData.config.source, jekyllData.config.includes_dir), + partials: path.join( + jekyllData.config.source, + jekyllData.config.includes_dir, + ), globals: jekyllData, jekyllInclude: true, }); - engine.registerTag("fa_svg", class extends LiquidTag{ - constructor(token, remainTokens, liquid){ - super(token, remainTokens, liquid); - this.value = token.args; - } - * render (ctx, emitter){ - emitter.write(``); - } - }); - try{ - const result = engine.parseAndRenderSync(source, {...options}); + engine.registerTag( + "fa_svg", + class extends LiquidTag { + constructor(token, remainTokens, liquid) { + super(token, remainTokens, liquid); + this.value = token.args; + } + *render(ctx, emitter) { + emitter.write( + ``, + ); + } + }, + ); + try { + const result = engine.parseAndRenderSync(source, { + ...options, + }); cb(null, result); - }catch(e){ + } catch (e) { cb(e); } - } - } + }, + }; } }, }, - }), ruby(), components({ - dirs: [resolve(__dirname, '_src/components')], - resolvers:[ - ], + dirs: [resolve(__dirname, "_src/components")], + resolvers: [], }), legacy({ targets: [], additionalLegacyPolyfills: [ - resolve(__dirname, '_src/lib/legacy-polyfill.js'), + resolve(__dirname, "_src/lib/legacy-polyfill.js"), ], }), visualizer({ - filename: '_stats.html', + filename: "_stats.html", }), ], css: { preprocessorOptions: { scss: { functions: { - "jekyll-config()": function(){ + "jekyll-config()": function () { return toSass(jekyllData.config); - } - } + }, + }, }, }, - } -})) + }, +})); diff --git a/package.json b/package.json index a574430..d714217 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "homepage": "https://github.com/tuna/mirror-web", "scripts": { - "format": "prettier --write \"_src/**/*.vue\" \"_src/**/*.html\" \"_src/**/*.js\" \"_src/**/*.scss\"" + "format": "prettier --write \"_src/**/*.vue\" \"_src/**/*.html\" \"_src/**/*.js\" \"_src/**/*.scss\" *.mjs" }, "dependencies": { "@vitejs/plugin-legacy": "^5.3.2",