diff --git a/moci/icons/icon-192.png b/moci/icons/icon-192.png new file mode 100644 index 0000000..35db586 Binary files /dev/null and b/moci/icons/icon-192.png differ diff --git a/moci/icons/icon-512.png b/moci/icons/icon-512.png new file mode 100644 index 0000000..133cc16 Binary files /dev/null and b/moci/icons/icon-512.png differ diff --git a/moci/index.html b/moci/index.html index 3583b22..44941b7 100644 --- a/moci/index.html +++ b/moci/index.html @@ -9,6 +9,11 @@ type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='480 400 250 280'%3E%3Cpath d='M608 668L497.149 604L497.149 476L608 412L718.851 476L718.851 604L608 668Z' fill='%23E2E2E5'/%3E%3C/svg%3E" /> + + + + + diff --git a/moci/manifest.json b/moci/manifest.json new file mode 100644 index 0000000..ae1625a --- /dev/null +++ b/moci/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "MoCI", + "short_name": "MoCI", + "start_url": ".", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#000000", + "icons": [ + { + "src": "icons/icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/scripts/build.js b/scripts/build.js index 527def8..c7d3a35 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -1,5 +1,5 @@ import { minify } from 'terser'; -import { readFile, writeFile, mkdir } from 'fs/promises'; +import { readFile, writeFile, mkdir, copyFile, readdir } from 'fs/promises'; import { join } from 'path'; import CleanCSS from 'clean-css'; @@ -52,17 +52,25 @@ async function buildCSS() { ); } -async function copyHTML() { - console.log('Copying HTML...'); +async function copyAssets() { + console.log('Copying assets...'); const html = await readFile('moci/index.html', 'utf8'); await writeFile(join(distDir, 'index.html'), html); + + await copyFile('moci/manifest.json', join(distDir, 'manifest.json')); + + await mkdir(join(distDir, 'icons'), { recursive: true }); + const icons = await readdir('moci/icons'); + for (const icon of icons) { + await copyFile(join('moci/icons', icon), join(distDir, 'icons', icon)); + } } async function build() { console.log('Building production bundle...\n'); await buildJS(); await buildCSS(); - await copyHTML(); + await copyAssets(); console.log('\nBuild complete! Output in dist/'); }