diff options
| author | Markus Heiser <markus.heiser@darmarit.de> | 2025-02-01 17:36:16 +0100 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2025-02-28 12:27:41 +0100 |
| commit | 30ee34d3ea5fc6cb25a96c5e30cdb952253ec697 (patch) | |
| tree | af5e655cc967dc33ac39eb266ea48e377d8e1ead /client/simple/tools/plg.js | |
| parent | a207f5d0353d61e43d3140db1243ce003cd0c46b (diff) | |
[web-client] simple theme: vite plugins plg_svg2png & plg_svg2svg
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'client/simple/tools/plg.js')
| -rw-r--r-- | client/simple/tools/plg.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/client/simple/tools/plg.js b/client/simple/tools/plg.js new file mode 100644 index 000000000..16ec268b6 --- /dev/null +++ b/client/simple/tools/plg.js @@ -0,0 +1,41 @@ +/** + * Custom vite plugins to build the web-client components of the simple theme. + * + * HINT: + * + * This is an inital implementation for the migration of the build process + * from grunt to vite. For fully support (vite: build & serve) more work is + * needed. + */ + +import { svg2png } from "./img.js"; +import { svg2svg } from "./img.js"; + +/** + * Vite plugin to convert a list of SVG files to PNG. + * + * @param {import('./img.js').Src2Dest} items - Array of SVG files (src: SVG, dest:PNG) to convert. + */ +function plg_svg2png(items) { + return { + name: 'searxng-simple-svg2png', + apply: 'build', // or 'serve' + async writeBundle() { svg2png(items); }, + }; +} + +/** + * Vite plugin to optimize SVG images for WEB. + * + * @param {import('svgo').Config} svgo_opts - Options passed to svgo. + * @param {import('./img.js').Src2Dest} items - Array of SVG files (src:SVG, dest:SVG) to optimize. + */ +function plg_svg2svg(svgo_opts, items) { + return { + name: 'searxng-simple-svg2png', + apply: 'build', // or 'serve' + async writeBundle() { svg2svg(items, svgo_opts); }, + }; +} + +export { plg_svg2png, plg_svg2svg }; |