From 6eb4cef1bb4ddf16d536259e343e11563464bd6b Mon Sep 17 00:00:00 2001
From: BurnyLlama
Date: Sat, 13 Nov 2021 20:58:00 +0100
Subject: [PATCH] Some 'formalities'...
---
package.json | 2 +-
routes/routes.js | 21 ++++++++++++++++++++
src/sass/theme.scss | 15 +++++++++++++++
static/css/theme.css | 2 +-
views/components/_footer.njk | 6 +++++-
views/components/_navbar.njk | 2 +-
views/pages/changelogs.njk | 25 ++++++++++++++++++++++++
views/pages/credits.njk | 37 ++++++++++++++++++++++++++++++++++++
views/pages/reference.njk | 13 +++++++++++++
9 files changed, 119 insertions(+), 4 deletions(-)
create mode 100644 views/pages/changelogs.njk
create mode 100644 views/pages/credits.njk
create mode 100644 views/pages/reference.njk
diff --git a/package.json b/package.json
index bade835..cd945f5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ddstats-server",
- "version": "0.0.1",
+ "version": "0.1.0",
"description": "A DDNet Status and Statistics API.",
"main": "index.js",
"type": "module",
diff --git a/routes/routes.js b/routes/routes.js
index 5dd14af..55cd7e7 100644
--- a/routes/routes.js
+++ b/routes/routes.js
@@ -83,4 +83,25 @@ routes.get(
}
)
+routes.get(
+ '/credits',
+ (req, res) => {
+ tx(req, res)('pages/credits.njk', {}, true, { currentSection: null })
+ }
+)
+
+routes.get(
+ '/api-reference',
+ (req, res) => {
+ tx(req, res)('pages/reference.njk', {}, true, { currentSection: null })
+ }
+)
+
+routes.get(
+ '/changelog',
+ (req, res) => {
+ tx(req, res)('pages/changelogs.njk', {}, true, { currentSection: null })
+ }
+)
+
export default routes
\ No newline at end of file
diff --git a/src/sass/theme.scss b/src/sass/theme.scss
index 2759637..d11c9e1 100644
--- a/src/sass/theme.scss
+++ b/src/sass/theme.scss
@@ -93,6 +93,7 @@ header {
@mixin heading($level) {
font-size: 1.65rem - ($level * 0.15);
font-weight: normal;
+ margin-top: 1em;
}
@for $i from 1 to 6 {
@@ -105,6 +106,20 @@ a {
color: palette.$blue5;
}
+.long-text {
+ width: min(60ch, 80vw);
+ text-align: justify;
+}
+
+ul, ol {
+ margin: 1rem 0 1rem 2rem;
+
+ ul, ol {
+ margin: .25rem 0 .25rem 1rem;
+ }
+}
+
+
//
// FORMS, INPUT
diff --git a/static/css/theme.css b/static/css/theme.css
index a2e53a6..aeb48ad 100644
--- a/static/css/theme.css
+++ b/static/css/theme.css
@@ -1 +1 @@
-*,*::before,*::after{margin:0;padding:0;border:0 none transparent;box-sizing:border-box;scroll-behavior:smooth;font-family:"Manrope Regular",sans-serif;font-size:1rem;line-height:1.5}html,body{color:#e0e0ff;background-color:#10102f;height:100%}nav{display:flex;align-items:center;background-color:#20203f;border-radius:0 0 2rem 2rem;box-shadow:.5rem 0 4rem #00001f;margin:0 0 2rem 0;padding:1rem 2rem}nav .logo{width:3rem;height:3rem;margin-right:2rem;border-radius:100%;background-color:#ee588f}nav a{color:#fba7c6;border-bottom:.1rem solid transparent;margin:.25rem 1rem .5rem 1rem;padding:.15rem .5rem .25rem .5rem;font-size:1.25rem;text-decoration:none transparent;transition:border .3s}nav a:hover{border-bottom:.1rem solid #fba7c6}nav a.current{color:#ee588f}nav a.current:hover{border-bottom:.1rem solid #ee588f}.flex-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-around;margin:0 10vw}header,h1,h2,h3,h4,h5,h6{color:#fba7c6}header{font-size:4rem}h1{font-size:1.5rem;font-weight:normal}h2{font-size:1.35rem;font-weight:normal}h3{font-size:1.2rem;font-weight:normal}h4{font-size:1.05rem;font-weight:normal}h5{font-size:.9rem;font-weight:normal}a{color:#a3cefa}form{display:flex;flex-direction:column;justify-content:center;align-items:center}input{color:#e0e0ff;background-color:#20203f;margin:1em 0;padding:.75em 1.25em;outline:0 none transparent;border:.2rem solid transparent;border-radius:.5rem;box-shadow:.25rem 0 2rem #00001f;transition:border .3s,background-color .5s,border-radius .5s}input:hover{background-color:#30304f;border-radius:1rem}input:active,input:focus{border:.2rem solid #ee588f}button[type=submit]{margin:.75rem auto 1.25rem auto;padding:.15rem .5rem;border:.1rem solid #fba7c6;border-radius:.5rem;color:#fba7c6;background-color:transparent;cursor:pointer;text-decoration:none transparent;transition:color .3s,background-color .3s}button[type=submit]:hover{color:#10102f;background-color:#fba7c6}label{cursor:pointer;margin:.25rem 0}label>input[type=radio]{-webkit-appearance:none;appearance:none;cursor:pointer;margin:0 .5rem -0.25rem 1rem;padding:0;width:1.25rem;height:1.25rem;background-color:#e0e0ff;border:.25rem solid #e0e0ff;border-radius:100%}label>input[type=radio]:checked{border-color:#ee588f}label:hover>input[type=radio]{background-color:#fba7c6}#search{display:grid;grid-template-columns:2fr 1fr;grid-template-columns:repeat(auto, 4);grid-template-areas:"header header" "map map" "category category" "stars sort" "submit submit";width:min(90ch,80vw);margin:2rem 10vw}#search>*{width:100%}#search h1{grid-area:header}#search #map{grid-area:map}#search #categories{grid-area:category}#search #stars{grid-area:stars}#search .sorting{grid-area:sort;display:flex;flex-direction:column}#search button[type=submit]{grid-area:submit;width:max-content;margin:auto}.pages{width:100%;justify-content:center}.page{margin:.5rem;padding:.15rem .5rem;border:.1rem solid #fba7c6;border-radius:.5rem;color:#fba7c6;background-color:transparent;cursor:pointer;text-decoration:none transparent;transition:color .3s,background-color .3s}.page:hover{color:#10102f;background-color:#fba7c6}.page.current-page{color:#ee588f;border-color:#ee588f}.page.current-page:hover{color:#10102f;background-color:#ee588f}tr{width:max-content}tr td{padding:.25rem 0;vertical-align:middle;width:max-content}tr td:first-child{padding:.25rem 1.5rem .25rem 0}footer{display:flex;flex-direction:column;align-items:center;margin:5vh 2rem}footer a{color:#74b6fb;font-size:.8rem}
+*,*::before,*::after{margin:0;padding:0;border:0 none transparent;box-sizing:border-box;scroll-behavior:smooth;font-family:"Manrope Regular",sans-serif;font-size:1rem;line-height:1.5}html,body{color:#e0e0ff;background-color:#10102f;height:100%}nav{display:flex;align-items:center;background-color:#20203f;border-radius:0 0 2rem 2rem;box-shadow:.5rem 0 4rem #00001f;margin:0 0 2rem 0;padding:1rem 2rem}nav .logo{width:3rem;height:3rem;margin-right:2rem;border-radius:100%;background-color:#ee588f}nav a{color:#fba7c6;border-bottom:.1rem solid transparent;margin:.25rem 1rem .5rem 1rem;padding:.15rem .5rem .25rem .5rem;font-size:1.25rem;text-decoration:none transparent;transition:border .3s}nav a:hover{border-bottom:.1rem solid #fba7c6}nav a.current{color:#ee588f}nav a.current:hover{border-bottom:.1rem solid #ee588f}.flex-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-around;margin:0 10vw}header,h1,h2,h3,h4,h5,h6{color:#fba7c6}header{font-size:4rem}h1{font-size:1.5rem;font-weight:normal;margin-top:1em}h2{font-size:1.35rem;font-weight:normal;margin-top:1em}h3{font-size:1.2rem;font-weight:normal;margin-top:1em}h4{font-size:1.05rem;font-weight:normal;margin-top:1em}h5{font-size:.9rem;font-weight:normal;margin-top:1em}a{color:#a3cefa}.long-text{width:min(60ch,80vw);text-align:justify}ul,ol{margin:1rem 0 1rem 2rem}ul ul,ul ol,ol ul,ol ol{margin:.25rem 0 .25rem 1rem}form{display:flex;flex-direction:column;justify-content:center;align-items:center}input{color:#e0e0ff;background-color:#20203f;margin:1em 0;padding:.75em 1.25em;outline:0 none transparent;border:.2rem solid transparent;border-radius:.5rem;box-shadow:.25rem 0 2rem #00001f;transition:border .3s,background-color .5s,border-radius .5s}input:hover{background-color:#30304f;border-radius:1rem}input:active,input:focus{border:.2rem solid #ee588f}button[type=submit]{margin:.75rem auto 1.25rem auto;padding:.15rem .5rem;border:.1rem solid #fba7c6;border-radius:.5rem;color:#fba7c6;background-color:transparent;cursor:pointer;text-decoration:none transparent;transition:color .3s,background-color .3s}button[type=submit]:hover{color:#10102f;background-color:#fba7c6}label{cursor:pointer;margin:.25rem 0}label>input[type=radio]{-webkit-appearance:none;appearance:none;cursor:pointer;margin:0 .5rem -0.25rem 1rem;padding:0;width:1.25rem;height:1.25rem;background-color:#e0e0ff;border:.25rem solid #e0e0ff;border-radius:100%}label>input[type=radio]:checked{border-color:#ee588f}label:hover>input[type=radio]{background-color:#fba7c6}#search{display:grid;grid-template-columns:2fr 1fr;grid-template-columns:repeat(auto, 4);grid-template-areas:"header header" "map map" "category category" "stars sort" "submit submit";width:min(90ch,80vw);margin:2rem 10vw}#search>*{width:100%}#search h1{grid-area:header}#search #map{grid-area:map}#search #categories{grid-area:category}#search #stars{grid-area:stars}#search .sorting{grid-area:sort;display:flex;flex-direction:column}#search button[type=submit]{grid-area:submit;width:max-content;margin:auto}.pages{width:100%;justify-content:center}.page{margin:.5rem;padding:.15rem .5rem;border:.1rem solid #fba7c6;border-radius:.5rem;color:#fba7c6;background-color:transparent;cursor:pointer;text-decoration:none transparent;transition:color .3s,background-color .3s}.page:hover{color:#10102f;background-color:#fba7c6}.page.current-page{color:#ee588f;border-color:#ee588f}.page.current-page:hover{color:#10102f;background-color:#ee588f}tr{width:max-content}tr td{padding:.25rem 0;vertical-align:middle;width:max-content}tr td:first-child{padding:.25rem 1.5rem .25rem 0}footer{display:flex;flex-direction:column;align-items:center;margin:5vh 2rem}footer a{color:#74b6fb;font-size:.8rem}
diff --git a/views/components/_footer.njk b/views/components/_footer.njk
index 5a15234..b3b7342 100644
--- a/views/components/_footer.njk
+++ b/views/components/_footer.njk
@@ -3,6 +3,10 @@
Made with <3 by team qwik
- Source Code • API Reference • Server Status
+ Source Code •
+ API Reference •
+ Credits •
+ Changelogs •
+ Server Status
\ No newline at end of file
diff --git a/views/components/_navbar.njk b/views/components/_navbar.njk
index 1b56ed3..0972fb8 100644
--- a/views/components/_navbar.njk
+++ b/views/components/_navbar.njk
@@ -1,5 +1,5 @@
-
+
Maps
Leaderboards
diff --git a/views/pages/changelogs.njk b/views/pages/changelogs.njk
new file mode 100644
index 0000000..132964a
--- /dev/null
+++ b/views/pages/changelogs.njk
@@ -0,0 +1,25 @@
+{% extends "../templates/basic.njk" %}
+
+{% block head %}
+ DDStats - Changelogs
+{% endblock %}
+
+{% block body %}
+
+
+
Changelogs!
+
+
v0.1.0 - Late November 2021
+
+ Initial release! Includes functionality such as:
+
+ Searching for maps and players.
+ Server status page.
+ Lazy-loading images.
+ Leaderboards.
+ Public API (No reference yet!)
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/views/pages/credits.njk b/views/pages/credits.njk
new file mode 100644
index 0000000..a6a3319
--- /dev/null
+++ b/views/pages/credits.njk
@@ -0,0 +1,37 @@
+{% extends "../templates/basic.njk" %}
+
+{% block head %}
+ DDStats - Credits
+{% endblock %}
+
+{% block body %}
+
+
+
Credits!
+
+
Team qwik
+
+ The developers of qwik are the main working force behind DDStats.
+ BurnyLlama is the main designer and developer of the UI and API, while furo (Yumiko) is the
+ "database engineer". (That means he does a lot of scuffed things so that the stats can be presented.)
+ This DDStats instance is also hosted by BurnyLlama.
+
+
+
deen & DDNet
+
+ Deen has both provided us with help and guidence, as well as with data. Also, since this project
+ shows stats for DDNet, DDNet is also important!
+
+
+
Node packages used
+
+ We also have some dependencies:
+ @msgpack/msgpack ,
+ better-sqlite3 ,
+ dotenv ,
+ express ,
+ nunjucks
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/views/pages/reference.njk b/views/pages/reference.njk
new file mode 100644
index 0000000..e481901
--- /dev/null
+++ b/views/pages/reference.njk
@@ -0,0 +1,13 @@
+{% extends "../templates/basic.njk" %}
+
+{% block head %}
+ DDStats - API Reference
+{% endblock %}
+
+{% block body %}
+
+
+
Coming Soon™!
+
+
+{% endblock %}
\ No newline at end of file