diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f4cfb46
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,133 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+.pnpm-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# Snowpack dependency directory (https://snowpack.dev/)
+web_modules/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional stylelint cache
+.stylelintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variable files
+.env
+.env.development.local
+.env.test.local
+.env.production.local
+.env.local
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+.parcel-cache
+
+# Next.js build output
+.next
+out
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and not Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# vuepress v2.x temp and cache directory
+.temp
+.cache
+
+# Docusaurus cache and generated files
+.docusaurus
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+# yarn v2
+.yarn/cache
+.yarn/unplugged
+.yarn/build-state.yml
+.yarn/install-state.gz
+.pnp.*
+
+src/_cache
+.dccache
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..cbac569
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "deno.enable": true
+}
diff --git a/README.md b/README.md
index 01b2576..fbf7f5a 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,4 @@
The website I use for my nameservers
-Contact me if you want to use them as your nameservers (or even secondary ones)
\ No newline at end of file
+Contact me if you want to use them as your nameservers (or even secondary ones)
diff --git a/_config.ts b/_config.ts
new file mode 100644
index 0000000..e6b92e6
--- /dev/null
+++ b/_config.ts
@@ -0,0 +1,20 @@
+import lume from "lume/mod.ts";
+import imagick from "lume/plugins/imagick.ts";
+import inline from "lume/plugins/inline.ts";
+import jsx_preact from "lume/plugins/jsx_preact.ts";
+import lightningcss from "lume/plugins/lightningcss.ts";
+import sass from "lume/plugins/sass.ts";
+
+const site = lume({
+ src: "./src",
+ dest: "./dist",
+});
+
+site
+ .use(imagick())
+ .use(inline())
+ .use(jsx_preact())
+ .use(lightningcss())
+ .use(sass());
+
+export default site;
diff --git a/deno.json b/deno.json
new file mode 100644
index 0000000..bace24a
--- /dev/null
+++ b/deno.json
@@ -0,0 +1,12 @@
+{
+ "importMap": "import_map.json",
+ "tasks": {
+ "lume": "deno eval \"import 'lume/task.ts'\" --",
+ "build": "deno task lume",
+ "serve": "deno task lume -s"
+ },
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "jsxImportSource": "preact"
+ }
+}
diff --git a/illya/illya.html b/illya/illya.html
deleted file mode 100644
index 5a23c31..0000000
--- a/illya/illya.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- froth.zone Nameserver
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/illya/theme.css b/illya/theme.css
deleted file mode 100644
index 5ad68b5..0000000
--- a/illya/theme.css
+++ /dev/null
@@ -1,39 +0,0 @@
-body {
- background-color: #000000;
- color: rgba(255, 255, 255, 1);
- max-width: 80%;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- text-align: center;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- max-height: 80%;
- margin: auto;
-}
-
-/* For mobile phones: */
-img {
- max-width: 20em;
-}
-
-@media only screen and (min-width: 1300px) {
- /* For desktop: */
- img {
- max-width: 50%;
- }
-}
-
-
-
-a {
- color: rgba(200, 200, 200, 0.8);
-}
-a:hover {
- color: rgba(200, 200, 200, 1);
-}
-
diff --git a/import_map.json b/import_map.json
new file mode 100644
index 0000000..d40e01f
--- /dev/null
+++ b/import_map.json
@@ -0,0 +1,7 @@
+{
+ "imports": {
+ "lume/": "https://deno.land/x/lume@v1.11.4/",
+ "preact/jsx-runtime": "https://deno.land/x/lume@v1.11.4/deps/preact_runtime.ts",
+ "preact": "https://deno.land/x/lume@v1.11.4/deps/preact.ts"
+ }
+}
diff --git a/rin/rin.html b/rin/rin.html
deleted file mode 100644
index a0a93be..0000000
--- a/rin/rin.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- froth.zone Nameserver
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/rin/theme.css b/rin/theme.css
deleted file mode 100644
index 5ad68b5..0000000
--- a/rin/theme.css
+++ /dev/null
@@ -1,39 +0,0 @@
-body {
- background-color: #000000;
- color: rgba(255, 255, 255, 1);
- max-width: 80%;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- text-align: center;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- max-height: 80%;
- margin: auto;
-}
-
-/* For mobile phones: */
-img {
- max-width: 20em;
-}
-
-@media only screen and (min-width: 1300px) {
- /* For desktop: */
- img {
- max-width: 50%;
- }
-}
-
-
-
-a {
- color: rgba(200, 200, 200, 0.8);
-}
-a:hover {
- color: rgba(200, 200, 200, 1);
-}
-
diff --git a/saber/saber.html b/saber/saber.html
deleted file mode 100644
index d8d074f..0000000
--- a/saber/saber.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- froth.zone Nameserver
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/sakura/sakura.html b/sakura/sakura.html
deleted file mode 100644
index 593a266..0000000
--- a/sakura/sakura.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- froth.zone Nameserver
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/sakura/theme.css b/sakura/theme.css
deleted file mode 100644
index 5ad68b5..0000000
--- a/sakura/theme.css
+++ /dev/null
@@ -1,39 +0,0 @@
-body {
- background-color: #000000;
- color: rgba(255, 255, 255, 1);
- max-width: 80%;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- text-align: center;
- position: absolute;
- top: 50%;
- left: 50%;
- margin-right: -50%;
- transform: translate(-50%, -50%);
- max-height: 80%;
- margin: auto;
-}
-
-/* For mobile phones: */
-img {
- max-width: 20em;
-}
-
-@media only screen and (min-width: 1300px) {
- /* For desktop: */
- img {
- max-width: 50%;
- }
-}
-
-
-
-a {
- color: rgba(200, 200, 200, 0.8);
-}
-a:hover {
- color: rgba(200, 200, 200, 1);
-}
-
diff --git a/src/_components/favicon.tsx b/src/_components/favicon.tsx
new file mode 100644
index 0000000..15f9329
--- /dev/null
+++ b/src/_components/favicon.tsx
@@ -0,0 +1,3 @@
+export default (o: { char: string }) => (
+
+);
diff --git a/src/_components/image.tsx b/src/_components/image.tsx
new file mode 100644
index 0000000..9901891
--- /dev/null
+++ b/src/_components/image.tsx
@@ -0,0 +1,4 @@
+export default (o: { char: string }) => (
+ //{/* @ts-ignore */}
+
+);
diff --git a/src/_data/site.json b/src/_data/site.json
new file mode 100644
index 0000000..9f7c72a
--- /dev/null
+++ b/src/_data/site.json
@@ -0,0 +1,3 @@
+{
+ "endpoint": "froth.zone"
+}
diff --git a/src/_includes/layouts/_main.njk b/src/_includes/layouts/_main.njk
new file mode 100644
index 0000000..68d15bf
--- /dev/null
+++ b/src/_includes/layouts/_main.njk
@@ -0,0 +1,2 @@
+
+{{ content | safe }}
\ No newline at end of file
diff --git a/src/_includes/layouts/main.tsx b/src/_includes/layouts/main.tsx
new file mode 100644
index 0000000..1049fce
--- /dev/null
+++ b/src/_includes/layouts/main.tsx
@@ -0,0 +1,34 @@
+import { PageData } from "https://deno.land/x/lume@v1.11.4/core.ts";
+import Favicon from "../../_components/favicon.tsx";
+import Image from "../../_components/image.tsx";
+
+export const layout = "layouts/_main.njk";
+
+export default (data: PageData) => (
+
+
+ {data.site.endpoint} Nameserver
+
+
+
+ {/* @ts-ignore */}
+
+
+
+
+
+
+
+);
diff --git a/src/img/_data.json b/src/img/_data.json
new file mode 100644
index 0000000..d32d128
--- /dev/null
+++ b/src/img/_data.json
@@ -0,0 +1,5 @@
+{
+ "imagick": {
+ "format": "webp"
+ }
+}
\ No newline at end of file
diff --git a/illya/img/illya.jpg b/src/img/illya.jpg
similarity index 100%
rename from illya/img/illya.jpg
rename to src/img/illya.jpg
diff --git a/rin/img/rin.jpg b/src/img/rin.jpg
similarity index 100%
rename from rin/img/rin.jpg
rename to src/img/rin.jpg
diff --git a/rin/img/rinfishe.png b/src/img/rinfishe.png
similarity index 100%
rename from rin/img/rinfishe.png
rename to src/img/rinfishe.png
diff --git a/saber/img/saber.jpg b/src/img/saber.jpg
similarity index 100%
rename from saber/img/saber.jpg
rename to src/img/saber.jpg
diff --git a/saber/img/saberfishe.png b/src/img/saberfishe.png
similarity index 100%
rename from saber/img/saberfishe.png
rename to src/img/saberfishe.png
diff --git a/sakura/img/sakura.jpg b/src/img/sakura.jpg
similarity index 100%
rename from sakura/img/sakura.jpg
rename to src/img/sakura.jpg
diff --git a/sakura/img/sakurafishe.png b/src/img/sakurafishe.png
similarity index 100%
rename from sakura/img/sakurafishe.png
rename to src/img/sakurafishe.png
diff --git a/src/pages.tmpl.ts b/src/pages.tmpl.ts
new file mode 100644
index 0000000..8a9ebbe
--- /dev/null
+++ b/src/pages.tmpl.ts
@@ -0,0 +1,20 @@
+export const layout = "layouts/main.tsx";
+
+export default function* () {
+ yield {
+ url: "/rin/",
+ body: "rin",
+ };
+ yield {
+ url: "/sakura/",
+ body: "sakura",
+ };
+ yield {
+ url: "/saber/",
+ body: "saber",
+ };
+ yield {
+ url: "/illya/",
+ body: "illya",
+ };
+}
diff --git a/saber/theme.css b/src/styles.css
similarity index 61%
rename from saber/theme.css
rename to src/styles.css
index 5ad68b5..e98f16c 100644
--- a/saber/theme.css
+++ b/src/styles.css
@@ -1,13 +1,13 @@
body {
- background-color: #000000;
- color: rgba(255, 255, 255, 1);
- max-width: 80%;
+ background-color: #000000;
+ color: rgba(255, 255, 255, 1);
+ max-width: 80%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
- position: absolute;
+ position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
@@ -18,22 +18,19 @@ body {
/* For mobile phones: */
img {
- max-width: 20em;
+ max-width: 20em;
}
@media only screen and (min-width: 1300px) {
- /* For desktop: */
- img {
+ /* For desktop: */
+ img {
max-width: 50%;
}
}
-
-
a {
- color: rgba(200, 200, 200, 0.8);
+ color: rgba(200, 200, 200, 0.8);
}
a:hover {
- color: rgba(200, 200, 200, 1);
+ color: rgba(200, 200, 200, 1);
}
-