mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-01-01 20:25:07 +08:00
ci_wip
This commit is contained in:
parent
5fff791f47
commit
bbb9cb9ac9
3
docs-site~/.gitignore
vendored
Normal file
3
docs-site~/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
node_modules
|
||||
.yarn
|
||||
.pnp.*
|
16
docs-site~/package.json
Normal file
16
docs-site~/package.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "worker-sites-template",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"@cloudflare/kv-asset-handler": "^0.2.0",
|
||||
"wrangler": "0.0.30"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "wrangler dev",
|
||||
"publish": "wrangler publish"
|
||||
},
|
||||
"dependencies": {
|
||||
"accept-language": "^3.0.18"
|
||||
}
|
||||
}
|
40
docs-site~/public/404.html
Normal file
40
docs-site~/public/404.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Pacifico&display=swap" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
|
||||
<style>
|
||||
h1 {
|
||||
font-family: Pacifico, sans-serif;
|
||||
font-size: 4em;
|
||||
color: #3eb5f1;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 300;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.centered {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#ferris {
|
||||
width: 75%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h1>404 Not Found</h1>
|
||||
<h2>Oh dang! We couldn't find that page.</h2>
|
||||
<img id="ferris" alt="a sad crab is unable to unable to lasso a paper airplane. 404 not found." src="./img/404-wrangler-ferris.gif">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
40
docs-site~/public/a/index.html
Normal file
40
docs-site~/public/a/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Pacifico&display=swap" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
|
||||
<style>
|
||||
h1 {
|
||||
font-family: Pacifico, sans-serif;
|
||||
font-size: 4em;
|
||||
color: #3eb5f1;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 300;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.centered {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#ferris {
|
||||
width: 75%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h1>200 Success</h1>
|
||||
<h2>English /a</h2>
|
||||
<img id="ferris" alt="a happy crab is wearing a cowboy hat and holding a lasso. 200 success." src="./img/200-wrangler-ferris.gif">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
BIN
docs-site~/public/favicon.ico
Normal file
BIN
docs-site~/public/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
docs-site~/public/img/200-wrangler-ferris.gif
Normal file
BIN
docs-site~/public/img/200-wrangler-ferris.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
BIN
docs-site~/public/img/404-wrangler-ferris.gif
Normal file
BIN
docs-site~/public/img/404-wrangler-ferris.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
40
docs-site~/public/index.html
Normal file
40
docs-site~/public/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Pacifico&display=swap" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
|
||||
<style>
|
||||
h1 {
|
||||
font-family: Pacifico, sans-serif;
|
||||
font-size: 4em;
|
||||
color: #3eb5f1;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 300;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.centered {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#ferris {
|
||||
width: 75%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h1>200 Success</h1>
|
||||
<h2>Hello World! Welcome to your Workers Site.</h2>
|
||||
<img id="ferris" alt="a happy crab is wearing a cowboy hat and holding a lasso. 200 success." src="./img/200-wrangler-ferris.gif">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
40
docs-site~/public/ja/a/index.html
Normal file
40
docs-site~/public/ja/a/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Pacifico&display=swap" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
|
||||
<style>
|
||||
h1 {
|
||||
font-family: Pacifico, sans-serif;
|
||||
font-size: 4em;
|
||||
color: #3eb5f1;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 300;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.centered {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#ferris {
|
||||
width: 75%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h1>200 Success</h1>
|
||||
<h2>日本語版 /a</h2>
|
||||
<img id="ferris" alt="a happy crab is wearing a cowboy hat and holding a lasso. 200 success." src="./img/200-wrangler-ferris.gif">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
40
docs-site~/public/ja/index.html
Normal file
40
docs-site~/public/ja/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href="https://fonts.googleapis.com/css?family=Pacifico&display=swap" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" rel="stylesheet">
|
||||
<style>
|
||||
h1 {
|
||||
font-family: Pacifico, sans-serif;
|
||||
font-size: 4em;
|
||||
color: #3eb5f1;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: 300;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.centered {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#ferris {
|
||||
width: 75%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered">
|
||||
<h1>200 Success</h1>
|
||||
<h2>日本語版ルート</h2>
|
||||
<img id="ferris" alt="a happy crab is wearing a cowboy hat and holding a lasso. 200 success." src="./img/200-wrangler-ferris.gif">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
139
docs-site~/src/index.js
Normal file
139
docs-site~/src/index.js
Normal file
@ -0,0 +1,139 @@
|
||||
import {
|
||||
getAssetFromKV,
|
||||
mapRequestToAsset,
|
||||
} from "@cloudflare/kv-asset-handler";
|
||||
|
||||
import acceptLanguage from 'accept-language';
|
||||
|
||||
/**
|
||||
* The DEBUG flag will do two things that help during development:
|
||||
* 1. we will skip caching on the edge, which makes it easier to
|
||||
* debug.
|
||||
* 2. we will return an error message on exception in your Response rather
|
||||
* than the default 404.html page.
|
||||
*/
|
||||
const DEBUG = false;
|
||||
|
||||
addEventListener("fetch", (event) => {
|
||||
event.respondWith(handleEvent(event));
|
||||
});
|
||||
|
||||
const STRIP_SUFFIX_RE = new RegExp('^(/.+)(?:/(?:index\.html)?)$');
|
||||
|
||||
acceptLanguage.languages(['en-US', 'ja-JP']);
|
||||
|
||||
async function handleEvent(event) {
|
||||
let options = {};
|
||||
|
||||
/**
|
||||
* You can add custom logic to how we fetch your assets
|
||||
* by configuring the function `mapRequestToAsset`
|
||||
*/
|
||||
// options.mapRequestToAsset = handlePrefix(/^\/docs/)
|
||||
|
||||
try {
|
||||
if (DEBUG) {
|
||||
// customize caching
|
||||
options.cacheControl = {
|
||||
bypassCache: true,
|
||||
};
|
||||
}
|
||||
|
||||
let response;
|
||||
|
||||
const url = new URL(event.request.url);
|
||||
const path = url.pathname;
|
||||
const strip_match = STRIP_SUFFIX_RE.exec(path);
|
||||
|
||||
if (url.searchParams.get("lang") === 'auto') {
|
||||
let resolvedLanguage = acceptLanguage.get(event.request.headers.get('Accept-Language'));
|
||||
if (resolvedLanguage === null) {
|
||||
resolvedLanguage = 'en-US';
|
||||
} else {
|
||||
resolvedLanguage = resolvedLanguage.split('-')[0];
|
||||
}
|
||||
|
||||
let destination;
|
||||
switch (resolvedLanguage) {
|
||||
case 'ja':
|
||||
if (url.pathname.startsWith('/dev')) {
|
||||
destination = '/ja/dev' + url.pathname.substring(4);
|
||||
} else {
|
||||
destination = '/ja' + url.pathname;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
destination = url.pathname;
|
||||
break;
|
||||
}
|
||||
|
||||
response = new Response("Redirecting", {
|
||||
status: 301,
|
||||
headers: {
|
||||
Location: destination,
|
||||
Vary: 'Accept-Language',
|
||||
},
|
||||
});
|
||||
} else if (strip_match !== null) {
|
||||
console.log("=== Redirect");
|
||||
response = new Response("Redirecting", {
|
||||
status: 301,
|
||||
headers: {
|
||||
Location: strip_match[1],
|
||||
}
|
||||
});
|
||||
} else {
|
||||
const page = await getAssetFromKV(event, options);
|
||||
|
||||
// allow headers to be altered
|
||||
response = new Response(page.body, page);
|
||||
}
|
||||
|
||||
response.headers.set("X-XSS-Protection", "1; mode=block");
|
||||
response.headers.set("X-Content-Type-Options", "nosniff");
|
||||
response.headers.set("X-Frame-Options", "DENY");
|
||||
response.headers.set("Referrer-Policy", "unsafe-url");
|
||||
response.headers.set("Feature-Policy", "none");
|
||||
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
// if an error is thrown try to serve the asset at 404.html
|
||||
if (!DEBUG) {
|
||||
try {
|
||||
let notFoundResponse = await getAssetFromKV(event, {
|
||||
mapRequestToAsset: (req) =>
|
||||
new Request(`${new URL(req.url).origin}/404.html`, req),
|
||||
});
|
||||
|
||||
return new Response(notFoundResponse.body, {
|
||||
...notFoundResponse,
|
||||
status: 404,
|
||||
});
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return new Response(e.message || e.toString(), { status: 500 });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Here's one example of how to modify a request to
|
||||
* remove a specific prefix, in this case `/docs` from
|
||||
* the url. This can be useful if you are deploying to a
|
||||
* route on a zone, or if you only want your static content
|
||||
* to exist at a specific path.
|
||||
*/
|
||||
function handlePrefix(prefix) {
|
||||
return (request) => {
|
||||
// compute the default (e.g. / -> index.html)
|
||||
let defaultAssetKey = mapRequestToAsset(request);
|
||||
let url = new URL(defaultAssetKey.url);
|
||||
|
||||
// strip the prefix from the path for lookup
|
||||
url.pathname = url.pathname.replace(prefix, "/");
|
||||
|
||||
// inherit all other props from the default request
|
||||
return new Request(url.toString(), defaultAssetKey);
|
||||
};
|
||||
}
|
5
docs-site~/wrangler.toml
Normal file
5
docs-site~/wrangler.toml
Normal file
@ -0,0 +1,5 @@
|
||||
name = "modular-avatar-docs-test"
|
||||
main = "src/index.js"
|
||||
compatibility_date = "2022-05-06"
|
||||
|
||||
site = { bucket = "./public" }
|
1872
docs-site~/yarn.lock
Normal file
1872
docs-site~/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user