{{name}}
+{{description}}
+diff --git a/content b/content index b09f15a..ae188ae 160000 --- a/content +++ b/content @@ -1 +1 @@ -Subproject commit b09f15adaeea68955ce64ec568ca86cc12261772 +Subproject commit ae188aec152b6c505c8427803cf1d50c9b33f937 diff --git a/public/css/stack.css b/public/css/stack.css new file mode 100644 index 0000000..4bada21 --- /dev/null +++ b/public/css/stack.css @@ -0,0 +1,30 @@ +.stack-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 2rem; + padding: 2rem; +} + +.stack-item { + width: 150px; + text-align: center; + font-size: 0.9rem; +} + +.stack-item img { + max-width: 100%; + height: auto; + display: block; + margin: 0 auto 0.5rem; +} + +.stack-item h3 { + margin: 0.5rem 0 0.2rem; + font-size: 1rem; +} + +.stack-item p { + font-size: 0.8rem; + color: #555; +} diff --git a/public/images/logos/Authelia.png b/public/images/logos/Authelia.png new file mode 100644 index 0000000..b959245 --- /dev/null +++ b/public/images/logos/Authelia.png Binary files differ diff --git a/public/images/logos/Authelia.svg b/public/images/logos/Authelia.svg new file mode 100644 index 0000000..944f325 --- /dev/null +++ b/public/images/logos/Authelia.svg @@ -0,0 +1,71 @@ + + + diff --git a/public/images/logos/Debian.png b/public/images/logos/Debian.png new file mode 100644 index 0000000..14b6966 --- /dev/null +++ b/public/images/logos/Debian.png Binary files differ diff --git a/public/images/logos/Debian.svg b/public/images/logos/Debian.svg new file mode 100644 index 0000000..9f9e3fe --- /dev/null +++ b/public/images/logos/Debian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Express.png b/public/images/logos/Express.png new file mode 100644 index 0000000..4bfbb16 --- /dev/null +++ b/public/images/logos/Express.png Binary files differ diff --git a/public/images/logos/Express.svg b/public/images/logos/Express.svg new file mode 100644 index 0000000..18642e2 --- /dev/null +++ b/public/images/logos/Express.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Handlebars.png b/public/images/logos/Handlebars.png new file mode 100644 index 0000000..bff021e --- /dev/null +++ b/public/images/logos/Handlebars.png Binary files differ diff --git a/public/images/logos/Handlebars.svg b/public/images/logos/Handlebars.svg new file mode 100644 index 0000000..7e1b7ef --- /dev/null +++ b/public/images/logos/Handlebars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Linux.png b/public/images/logos/Linux.png new file mode 100644 index 0000000..4868d47 --- /dev/null +++ b/public/images/logos/Linux.png Binary files differ diff --git a/public/images/logos/Linux.svg b/public/images/logos/Linux.svg new file mode 100644 index 0000000..414a56a --- /dev/null +++ b/public/images/logos/Linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Mocha.png b/public/images/logos/Mocha.png new file mode 100644 index 0000000..cf673a0 --- /dev/null +++ b/public/images/logos/Mocha.png Binary files differ diff --git a/public/images/logos/Mocha.svg b/public/images/logos/Mocha.svg new file mode 100644 index 0000000..a493982 --- /dev/null +++ b/public/images/logos/Mocha.svg @@ -0,0 +1 @@ + diff --git a/public/images/logos/NGINX.png b/public/images/logos/NGINX.png new file mode 100644 index 0000000..d6816eb --- /dev/null +++ b/public/images/logos/NGINX.png Binary files differ diff --git a/public/images/logos/NGINX.svg b/public/images/logos/NGINX.svg new file mode 100644 index 0000000..e8e8cdb --- /dev/null +++ b/public/images/logos/NGINX.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/NPM.png b/public/images/logos/NPM.png new file mode 100644 index 0000000..3581bea --- /dev/null +++ b/public/images/logos/NPM.png Binary files differ diff --git a/public/images/logos/NPM.svg b/public/images/logos/NPM.svg new file mode 100644 index 0000000..2ee0f35 --- /dev/null +++ b/public/images/logos/NPM.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/NixOS.png b/public/images/logos/NixOS.png new file mode 100644 index 0000000..99cdeea --- /dev/null +++ b/public/images/logos/NixOS.png Binary files differ diff --git a/public/images/logos/NixOS.svg b/public/images/logos/NixOS.svg new file mode 100644 index 0000000..fb26b80 --- /dev/null +++ b/public/images/logos/NixOS.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Node.js.png b/public/images/logos/Node.js.png new file mode 100644 index 0000000..9e216b9 --- /dev/null +++ b/public/images/logos/Node.js.png Binary files differ diff --git a/public/images/logos/Node.js.svg b/public/images/logos/Node.js.svg new file mode 100644 index 0000000..d1db89d --- /dev/null +++ b/public/images/logos/Node.js.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Nodemon.png b/public/images/logos/Nodemon.png new file mode 100644 index 0000000..321d86e --- /dev/null +++ b/public/images/logos/Nodemon.png Binary files differ diff --git a/public/images/logos/Nodemon.svg b/public/images/logos/Nodemon.svg new file mode 100644 index 0000000..8326d32 --- /dev/null +++ b/public/images/logos/Nodemon.svg @@ -0,0 +1 @@ + diff --git a/public/images/logos/Oh-my-zsh.png b/public/images/logos/Oh-my-zsh.png new file mode 100644 index 0000000..8aec589 --- /dev/null +++ b/public/images/logos/Oh-my-zsh.png Binary files differ diff --git a/public/images/logos/Oh-my-zsh.svg b/public/images/logos/Oh-my-zsh.svg new file mode 100644 index 0000000..cbf21c9 --- /dev/null +++ b/public/images/logos/Oh-my-zsh.svg @@ -0,0 +1 @@ + diff --git a/public/images/logos/Raspberry-Pi.png b/public/images/logos/Raspberry-Pi.png new file mode 100644 index 0000000..884f8bb --- /dev/null +++ b/public/images/logos/Raspberry-Pi.png Binary files differ diff --git a/public/images/logos/Raspberry-Pi.svg b/public/images/logos/Raspberry-Pi.svg new file mode 100644 index 0000000..63af0a2 --- /dev/null +++ b/public/images/logos/Raspberry-Pi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/SQLite.png b/public/images/logos/SQLite.png new file mode 100644 index 0000000..d9ab819 --- /dev/null +++ b/public/images/logos/SQLite.png Binary files differ diff --git a/public/images/logos/SQLite.svg b/public/images/logos/SQLite.svg new file mode 100644 index 0000000..0e99ba2 --- /dev/null +++ b/public/images/logos/SQLite.svg @@ -0,0 +1 @@ + diff --git a/public/images/logos/SSH.png b/public/images/logos/SSH.png new file mode 100644 index 0000000..40053f2 --- /dev/null +++ b/public/images/logos/SSH.png Binary files differ diff --git a/public/images/logos/SSH.svg b/public/images/logos/SSH.svg new file mode 100644 index 0000000..1a8f51f --- /dev/null +++ b/public/images/logos/SSH.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/logos/Visual-Studio.png b/public/images/logos/Visual-Studio.png new file mode 100644 index 0000000..c57a854 --- /dev/null +++ b/public/images/logos/Visual-Studio.png Binary files differ diff --git a/public/images/logos/Visual-Studio.svg b/public/images/logos/Visual-Studio.svg new file mode 100644 index 0000000..19de675 --- /dev/null +++ b/public/images/logos/Visual-Studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/routes/index.js b/src/routes/index.js index aaa7489..1303652 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -23,6 +23,7 @@ const securedMiddleware = require("../middleware/secured"); const securedRoutes = require("./secured"); +const stack = require("./stack"); const favicon = require("serve-favicon"); const faviconsPath = path.join(__dirname, "..", "..", "public", "favicons"); @@ -37,10 +38,11 @@ router.get("/error", errorPage); // Landing page after error is logged router.use(admin); +router.use(stack); router.post("/track", analytics); router.post("/analytics", analytics); -const stable = false; + router.use( "/static", express.static("public", { diff --git a/src/routes/stack.js b/src/routes/stack.js new file mode 100644 index 0000000..effc74d --- /dev/null +++ b/src/routes/stack.js @@ -0,0 +1,24 @@ +// routes/stack.js +const express = require("express"); +const router = express.Router(); +const HttpError = require("../utils/HttpError"); // Adjust path as needed +const techStack = require("../../content/techStack.json"); // JSON file from previous message +const { baseUrl } = require("../utils/baseUrl"); +router.get("/stack", (req, res, next) => { + try { + const techWithBase = techStack.map((item) => ({ + ...item, + png: baseUrl + item.png, + svg: baseUrl + item.svg, + })); + res.renderWithBaseContext("pages/stack", { + tech: techWithBase, + }); + } catch (err) { + next( + new HttpError("Failed to load tech stack", 500, { originalError: err }) + ); + } +}); + +module.exports = router; diff --git a/src/views/pages/stack.handlebars b/src/views/pages/stack.handlebars new file mode 100644 index 0000000..31a6bd5 --- /dev/null +++ b/src/views/pages/stack.handlebars @@ -0,0 +1,19 @@ +{{#section "styles"}} + +{{/section}} + +
{{description}}
+