Moved subfolders out of the assets directory.
2
.gitignore
vendored
|
@ -3,5 +3,5 @@
|
||||||
/.debug
|
/.debug
|
||||||
/config/*.ini
|
/config/*.ini
|
||||||
/vendor
|
/vendor
|
||||||
/public/assets
|
/aaaapublic/assets
|
||||||
/assets/current.json
|
/assets/current.json
|
||||||
|
|
87
build.js
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
const swc = require('@swc/core');
|
||||||
|
const path = require('path');
|
||||||
|
const util = require('util');
|
||||||
|
const postcss = require('postcss');
|
||||||
|
const utils = require('./assets/utils.js');
|
||||||
|
const assproc = require('./assets/assproc.js');
|
||||||
|
|
||||||
|
const rootDir = __dirname;
|
||||||
|
|
||||||
|
const assetsDir = path.join(rootDir, 'assets');
|
||||||
|
const assetsCSS = path.join(assetsDir, 'misuzu.css');
|
||||||
|
const assetsJS = path.join(assetsDir, 'misuzu.js');
|
||||||
|
const assetsInfo = path.join(assetsDir, 'current.json');
|
||||||
|
|
||||||
|
const pubDir = path.join(rootDir, 'public');
|
||||||
|
const pubAssets = '/assets';
|
||||||
|
const pubAssetsFull = path.join(pubDir, pubAssets);
|
||||||
|
const pubAssetCSSFormat = '%s-%s.css';
|
||||||
|
const pubAssetJSFormat = '%s-%s.js';
|
||||||
|
|
||||||
|
const isDebugBuild = fs.existsSync(path.join(rootDir, '.debug'));
|
||||||
|
|
||||||
|
const swcJscOptions = {
|
||||||
|
target: 'es2016',
|
||||||
|
loose: false,
|
||||||
|
externalHelpers: false,
|
||||||
|
keepClassNames: true,
|
||||||
|
preserveAllComments: false,
|
||||||
|
transform: {},
|
||||||
|
parser: {
|
||||||
|
syntax: 'ecmascript',
|
||||||
|
jsx: true,
|
||||||
|
dynamicImport: false,
|
||||||
|
privateMethod: false,
|
||||||
|
functionBind: false,
|
||||||
|
exportDefaultFrom: false,
|
||||||
|
exportNamespaceFrom: false,
|
||||||
|
decorators: false,
|
||||||
|
decoratorsBeforeExport: false,
|
||||||
|
topLevelAwait: true,
|
||||||
|
importMeta: false,
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
react: {
|
||||||
|
runtime: 'classic',
|
||||||
|
pragma: '$er',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const postcssPlugins = [];
|
||||||
|
if(!isDebugBuild) postcssPlugins.push(require('cssnano'));
|
||||||
|
postcssPlugins.push(require('autoprefixer')({
|
||||||
|
remove: false,
|
||||||
|
}));
|
||||||
|
|
||||||
|
fs.mkdirSync(pubAssetsFull, { recursive: true });
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
const mszCssName = await assproc.process(assetsCSS, { 'prefix': '@', 'entry': 'main.css' })
|
||||||
|
.then(output => postcss(postcssPlugins).process(output, { from: assetsCSS }).then(output => {
|
||||||
|
const mszCssName = path.join(pubAssets, util.format(pubAssetCSSFormat, 'misuzu', utils.shortHash(output.css)));
|
||||||
|
fs.writeFileSync(path.join(pubDir, mszCssName), output.css);
|
||||||
|
return mszCssName;
|
||||||
|
}));
|
||||||
|
|
||||||
|
const mszJsName = await assproc.process(assetsJS, { 'prefix': '#', 'entry': 'main.js' })
|
||||||
|
.then(output => swc.transform(output, {
|
||||||
|
filename: 'misuzu.js',
|
||||||
|
sourceMaps: false,
|
||||||
|
isModule: false,
|
||||||
|
minify: !isDebugBuild,
|
||||||
|
jsc: swcJscOptions,
|
||||||
|
}).then(async output => {
|
||||||
|
const mszJsName = path.join(pubAssets, util.format(pubAssetJSFormat, 'misuzu', utils.shortHash(output.code)));
|
||||||
|
fs.writeFileSync(path.join(pubDir, mszJsName), output.code);
|
||||||
|
return mszJsName;
|
||||||
|
}));
|
||||||
|
|
||||||
|
fs.writeFileSync(assetsInfo, JSON.stringify({
|
||||||
|
mszjs: mszJsName,
|
||||||
|
mszcss: mszCssName,
|
||||||
|
}));
|
||||||
|
|
||||||
|
assproc.housekeep(pubAssetsFull);
|
||||||
|
})();
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
@ -134,7 +134,7 @@ window.fm = (function() {
|
||||||
this.getRandomHeaderBackground = function() {
|
this.getRandomHeaderBackground = function() {
|
||||||
var set = JSON.parse(sessionStorage.getItem('header-bgs'));
|
var set = JSON.parse(sessionStorage.getItem('header-bgs'));
|
||||||
if(!set)
|
if(!set)
|
||||||
return '/assets/errors/404.jpg';
|
return '/images/404.jpg';
|
||||||
return set[parseInt(Math.random() * set.length) - 1];
|
return set[parseInt(Math.random() * set.length) - 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
.fmi {
|
.fmi {
|
||||||
background-image: url('sprite.png');
|
background-image: url('/images/sprite.png');
|
||||||
width: 25px;
|
width: 25px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
background-size: 400px 25px;
|
background-size: 400px 25px;
|
||||||
}
|
}
|
||||||
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
||||||
.fmi { background-image: url('sprite@2x.png'); background-size: 400px 25px; }
|
.fmi { background-image: url('/images/sprite@2x.png'); background-size: 400px 25px; }
|
||||||
}
|
}
|
||||||
.fmi.fmi-email { background-position: 400px 0px; }
|
.fmi.fmi-email { background-position: 400px 0px; }
|
||||||
.fmi.fmi-flashii { background-position: 375px 0px; }
|
.fmi.fmi-flashii { background-position: 375px 0px; }
|
||||||
|
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 173 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
@ -34,7 +34,6 @@ class RoutingContext {
|
||||||
|
|
||||||
public function registerDefaultErrorPages(): void {
|
public function registerDefaultErrorPages(): void {
|
||||||
$this->router->setDefaultErrorHandler($this->defaultErrorHandler(...));
|
$this->router->setDefaultErrorHandler($this->defaultErrorHandler(...));
|
||||||
$this->router->get('/error/:code', fn($response, $request, string $code) => max(min((int)$code, 599), 400));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function register(IRouteHandler $handler): void {
|
public function register(IRouteHandler $handler): void {
|
||||||
|
|