basically finished site
This commit is contained in:
		
							parent
							
								
									3978670bf6
								
							
						
					
					
						commit
						557a7e4b3f
					
				
					 10 changed files with 2780 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | node_modules | ||||||
							
								
								
									
										5
									
								
								.vscode/settings.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.vscode/settings.json
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | ||||||
|  | { | ||||||
|  |     "cSpell.words": [ | ||||||
|  |         "ALEXHELDT" | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										99
									
								
								assets/css/index.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								assets/css/index.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,99 @@ | ||||||
|  | @import url("https://fonts.googleapis.com/css2?family=Orbitron&display=swap"); | ||||||
|  | * { | ||||||
|  |   margin: 0; | ||||||
|  |   padding: 0; } | ||||||
|  | 
 | ||||||
|  | /* Hide scrollbar for Chrome, Safari and Opera */ | ||||||
|  | ::-webkit-scrollbar { | ||||||
|  |   display: none; } | ||||||
|  | 
 | ||||||
|  | body { | ||||||
|  |   background: #000; | ||||||
|  |   color: #fff; | ||||||
|  |   font-family: 'Orbitron', sans-serif; | ||||||
|  |   -ms-overflow-style: none; | ||||||
|  |   /* IE and Edge */ | ||||||
|  |   scrollbar-width: none; | ||||||
|  |   /* Firefox */ } | ||||||
|  | 
 | ||||||
|  | .logo { | ||||||
|  |   width: 150px; | ||||||
|  |   text-align: center; | ||||||
|  |   margin: auto; | ||||||
|  |   justify-content: center; | ||||||
|  |   display: flex; } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  |   color: white; | ||||||
|  |   font-size: 2vw; | ||||||
|  |   text-decoration: none; } | ||||||
|  |   a:hover { | ||||||
|  |     color: grey; } | ||||||
|  | 
 | ||||||
|  | svg { | ||||||
|  |   fill: white; | ||||||
|  |   padding: 0 10px; | ||||||
|  |   width: 50px; | ||||||
|  |   height: 50px; } | ||||||
|  | 
 | ||||||
|  | .sub-nav { | ||||||
|  |   text-align: center; | ||||||
|  |   margin: auto; | ||||||
|  |   justify-content: center; | ||||||
|  |   display: flex; } | ||||||
|  | 
 | ||||||
|  | .bar { | ||||||
|  |   position: absolute; | ||||||
|  |   width: 99%; | ||||||
|  |   height: 20px; | ||||||
|  |   background-color: white; | ||||||
|  |   mix-blend-mode: difference; | ||||||
|  |   color: black; | ||||||
|  |   font-size: 15px; | ||||||
|  |   margin: auto; | ||||||
|  |   display: flex; | ||||||
|  |   padding-left: 1%; } | ||||||
|  |   .bar a { | ||||||
|  |     font-size: inherit; | ||||||
|  |     color: black; } | ||||||
|  | 
 | ||||||
|  | .top { | ||||||
|  |   top: 50px; } | ||||||
|  | 
 | ||||||
|  | .bottom { | ||||||
|  |   bottom: 50px; } | ||||||
|  | 
 | ||||||
|  | section { | ||||||
|  |   height: 100vh; | ||||||
|  |   width: 100vw; } | ||||||
|  | 
 | ||||||
|  | .music { | ||||||
|  |   display: flex; | ||||||
|  |   text-align: center; | ||||||
|  |   margin: auto; | ||||||
|  |   justify-content: space-between; | ||||||
|  |   padding-top: 5vh; | ||||||
|  |   margin: 0 100px; } | ||||||
|  |   .music .title { | ||||||
|  |     font-size: 3vh; | ||||||
|  |     display: flex; | ||||||
|  |     text-align: left; | ||||||
|  |     margin: auto; | ||||||
|  |     justify-content: space-between; | ||||||
|  |     padding-top: 2vh; } | ||||||
|  |   .music img { | ||||||
|  |     height: 30vh; } | ||||||
|  | 
 | ||||||
|  | @media screen and (max-width: 1350px) { | ||||||
|  |   .music { | ||||||
|  |     display: table; | ||||||
|  |     margin: auto; } | ||||||
|  |   .title { | ||||||
|  |     padding-bottom: 20px; } | ||||||
|  |   img { | ||||||
|  |     height: 20vh; } | ||||||
|  |   .bottom { | ||||||
|  |     position: sticky; | ||||||
|  |     bottom: 0; } } | ||||||
|  | 
 | ||||||
|  | /*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiYXNzZXRzL3Nhc3MvaW5kZXguY3NzIiwKCSJzb3VyY2VzIjogWwoJCSJhc3NldHMvc2Fzcy9pbmRleC5zYXNzIgoJXSwKCSJuYW1lcyI6IFtdLAoJIm1hcHBpbmdzIjogIkFBQ0EsT0FBTyxDQUFDLHFFQUFJO0FBQ1osQUFBQSxDQUFDLENBQUM7RUFDRSxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBQUc7O0FBRWpCLGlEQUFpRDtBQUNqRCxBQUFBLG1CQUFtQixDQUFDO0VBQ2hCLE9BQU8sRUFBRSxJQUFJLEdBQUc7O0FBRXBCLEFBQUEsSUFBSSxDQUFDO0VBQ0QsVUFBVSxFQUFFLElBQUk7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsc0JBQXNCO0VBQ25DLGtCQUFrQixFQUFFLElBQUk7RUFBRyxpQkFBaUI7RUFDNUMsZUFBZSxFQUFFLElBQUk7RUFBRyxhQUFhLEVBQUc7O0FBRzVDLEFBQUEsS0FBSyxDQUFDO0VBQ0YsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsTUFBTTtFQUNsQixNQUFNLEVBQUUsSUFBSTtFQUNaLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLE9BQU8sRUFBRSxJQUFJLEdBQUc7O0FBRXBCLEFBQUEsQ0FBQyxDQUFDO0VBQ0UsS0FBSyxFQUFFLEtBQUs7RUFDWixTQUFTLEVBQUUsR0FBRztFQUNkLGVBQWUsRUFBRSxJQUFJLEdBRUQ7RUFMeEIsQUFJSSxDQUpILEFBSUksTUFBTSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUksR0FBRzs7QUFFdEIsQUFBQSxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsS0FBSztFQUNYLE9BQU8sRUFBRSxNQUFNO0VBQ2YsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSSxHQUFHOztBQUVuQixBQUFBLFFBQVEsQ0FBQztFQUNMLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE1BQU0sRUFBRSxJQUFJO0VBQ1osZUFBZSxFQUFFLE1BQU07RUFDdkIsT0FBTyxFQUFFLElBQUksR0FBRzs7QUFJcEIsQUFBQSxJQUFJLENBQUM7RUFDRCxRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE1BQU0sRUFBRSxJQUFJO0VBQ1osZ0JBQWdCLEVBQUUsS0FBSztFQUN2QixjQUFjLEVBQUUsVUFBVTtFQUMxQixLQUFLLEVBQUUsS0FBSztFQUNaLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsSUFBSTtFQUNiLFlBQVksRUFBRSxFQUFFLEdBR0s7RUFiekIsQUFXSSxJQVhBLENBV0EsQ0FBQyxDQUFDO0lBQ0UsU0FBUyxFQUFFLE9BQU87SUFDbEIsS0FBSyxFQUFFLEtBQUssR0FBRzs7QUFFdkIsQUFBQSxJQUFJLENBQUM7RUFDRCxHQUFHLEVBQUUsSUFBSSxHQUFHOztBQUVoQixBQUFBLE9BQU8sQ0FBQztFQUNKLE1BQU0sRUFBRSxJQUFJLEdBQUc7O0FBRW5CLEFBQUEsT0FBTyxDQUFDO0VBQ0osTUFBTSxFQUFFLEtBQUs7RUFDYixLQUFLLEVBQUUsS0FBSyxHQUFHOztBQUVuQixBQUFBLE1BQU0sQ0FBQztFQUNILE9BQU8sRUFBRSxJQUFJO0VBQ2IsVUFBVSxFQUFFLE1BQU07RUFDbEIsTUFBTSxFQUFFLElBQUk7RUFDWixlQUFlLEVBQUUsYUFBYTtFQUM5QixXQUFXLEVBQUUsR0FBRztFQUNoQixNQUFNLEVBQUUsT0FBTyxHQVNNO0VBZnpCLEFBT0ksTUFQRSxDQU9GLE1BQU0sQ0FBQztJQUNILFNBQVMsRUFBRSxHQUFHO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLGVBQWUsRUFBRSxhQUFhO0lBQzlCLFdBQVcsRUFBRSxHQUFHLEdBQUc7RUFiM0IsQUFjSSxNQWRFLENBY0YsR0FBRyxDQUFDO0lBQ0EsTUFBTSxFQUFFLElBQUksR0FBRzs7QUFHdkIsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFQUNoQyxBQUFBLE1BQU0sQ0FBQztJQUNILE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLElBQUksR0FBRztFQUNuQixBQUFBLE1BQU0sQ0FBQztJQUNILGNBQWMsRUFBRSxJQUFJLEdBQUc7RUFDM0IsQUFBQSxHQUFHLENBQUM7SUFDQSxNQUFNLEVBQUUsSUFBSSxHQUFHO0VBQ25CLEFBQUEsT0FBTyxDQUFDO0lBQ0osUUFBUSxFQUFFLE1BQU07SUFDaEIsTUFBTSxFQUFFLENBQUMsR0FBRyIKfQ== */ | ||||||
							
								
								
									
										105
									
								
								assets/sass/index.sass
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								assets/sass/index.sass
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,105 @@ | ||||||
|  | // @import url('https://manekit.now.sh/assets/css/manekit.min.css') | ||||||
|  | @import url('https://fonts.googleapis.com/css2?family=Orbitron&display=swap'); | ||||||
|  | * | ||||||
|  |     margin: 0 | ||||||
|  |     padding: 0 | ||||||
|  | 
 | ||||||
|  | /* Hide scrollbar for Chrome, Safari and Opera */ | ||||||
|  | ::-webkit-scrollbar | ||||||
|  |     display: none; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // MAKE SVGS FILL WITH THEIR COLOR ON HOVER | ||||||
|  | 
 | ||||||
|  | body | ||||||
|  |     background: #000 | ||||||
|  |     color: #fff | ||||||
|  |     font-family: 'Orbitron', sans-serif; | ||||||
|  |     -ms-overflow-style: none;  /* IE and Edge */ | ||||||
|  |     scrollbar-width: none;  /* Firefox */ | ||||||
|  |      | ||||||
|  |      | ||||||
|  | .logo | ||||||
|  |     width: 150px | ||||||
|  |     text-align: center; | ||||||
|  |     margin: auto; | ||||||
|  |     justify-content: center; | ||||||
|  |     display: flex | ||||||
|  | 
 | ||||||
|  | a | ||||||
|  |     color: white | ||||||
|  |     font-size: 2vw | ||||||
|  |     text-decoration: none | ||||||
|  |     &:hover | ||||||
|  |         color: grey | ||||||
|  | 
 | ||||||
|  | svg | ||||||
|  |     fill: white | ||||||
|  |     padding: 0 10px | ||||||
|  |     width: 50px | ||||||
|  |     height: 50px | ||||||
|  | 
 | ||||||
|  | .sub-nav | ||||||
|  |     text-align: center; | ||||||
|  |     margin: auto; | ||||||
|  |     justify-content: center; | ||||||
|  |     display: flex | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | .bar | ||||||
|  |     position: absolute | ||||||
|  |     width: 99% | ||||||
|  |     height: 20px | ||||||
|  |     background-color: white | ||||||
|  |     mix-blend-mode: difference; | ||||||
|  |     color: black | ||||||
|  |     font-size: 15px | ||||||
|  |     margin: auto; | ||||||
|  |     display: flex | ||||||
|  |     padding-left: 1% | ||||||
|  |     a | ||||||
|  |         font-size: inherit | ||||||
|  |         color: black | ||||||
|  | 
 | ||||||
|  | .top | ||||||
|  |     top: 50px | ||||||
|  | 
 | ||||||
|  | .bottom | ||||||
|  |     bottom: 50px | ||||||
|  | 
 | ||||||
|  | section | ||||||
|  |     height: 100vh | ||||||
|  |     width: 100vw | ||||||
|  | 
 | ||||||
|  | .music | ||||||
|  |     display: flex | ||||||
|  |     text-align: center; | ||||||
|  |     margin: auto; | ||||||
|  |     justify-content: space-between | ||||||
|  |     padding-top: 5vh | ||||||
|  |     margin: 0 100px | ||||||
|  |     .title | ||||||
|  |         font-size: 3vh | ||||||
|  |         display: flex | ||||||
|  |         text-align: left; | ||||||
|  |         margin: auto; | ||||||
|  |         justify-content: space-between | ||||||
|  |         padding-top: 2vh | ||||||
|  |     img | ||||||
|  |         height: 30vh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @media screen and ( max-width: 1350px ) | ||||||
|  |     .music | ||||||
|  |         display: table | ||||||
|  |         margin: auto | ||||||
|  |     .title | ||||||
|  |         padding-bottom: 20px | ||||||
|  |     img | ||||||
|  |         height: 20vh | ||||||
|  |     .bottom | ||||||
|  |         position: sticky | ||||||
|  |         bottom: 0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
							
								
								
									
										61
									
								
								c.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								c.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | ||||||
|  | const icons = require("simple-icons"); | ||||||
|  | // Since I can't refer back to things, I'm just gonna make them consts
 | ||||||
|  | // and export them
 | ||||||
|  | 
 | ||||||
|  | const dev = true; | ||||||
|  | 
 | ||||||
|  | const port = 9696; | ||||||
|  | const name = "ALEX HELDT"; | ||||||
|  | const socials = [ | ||||||
|  |   { | ||||||
|  |     name: "twitch", | ||||||
|  |     link: "https://twitter.com/abisoos", | ||||||
|  |     icon: icons["Twitch"], | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "twitter", | ||||||
|  |     link: "https://twitter.com/abisoos", | ||||||
|  |     icon: icons["Twitter"], | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     name: "instagram", | ||||||
|  |     link: "https://twitter.com/abisoos", | ||||||
|  |     icon: icons["Instagram"], | ||||||
|  |   }, | ||||||
|  | ]; | ||||||
|  | const music = [ | ||||||
|  |   { | ||||||
|  |     id: "rumorsremix", | ||||||
|  |     shown: "Rumors Remix", | ||||||
|  |     image: "/assets/images/serrated.jpg", | ||||||
|  |     link: "https://soundcloud.com/abisoos/overdrive", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     id: "serrated", | ||||||
|  |     shown: "Serrated", | ||||||
|  |     image: "/assets/images/serrated.jpg", | ||||||
|  |     link: "https://soundcloud.com/abisoos/overdrive", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     id: "overdrive3", | ||||||
|  |     shown: "Serrated", | ||||||
|  |     image: "/assets/images/serrated.jpg", | ||||||
|  |     link: "https://soundcloud.com/abisoos/overdrive", | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     id: "overdrive4", | ||||||
|  |     shown: "Serrated", | ||||||
|  |     image: "/assets/images/serrated.jpg", | ||||||
|  |     link: "https://soundcloud.com/abisoos/overdrive", | ||||||
|  |   }, | ||||||
|  | ]; | ||||||
|  | 
 | ||||||
|  | const allMusic = [...music]; | ||||||
|  | module.exports = { | ||||||
|  |   dev, | ||||||
|  |   port, | ||||||
|  |   name, | ||||||
|  |   socials, | ||||||
|  |   music, | ||||||
|  |   allMusic, | ||||||
|  | }; | ||||||
							
								
								
									
										93
									
								
								index.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								index.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,93 @@ | ||||||
|  | // ! Imports
 | ||||||
|  | const express = require("express"); | ||||||
|  | const helmet = require("helmet"); | ||||||
|  | const compression = require("compression"); | ||||||
|  | const cors = require("cors"); | ||||||
|  | const morgan = require("morgan"); | ||||||
|  | const chalk = require("chalk"); | ||||||
|  | const hbs = require("express-handlebars"); | ||||||
|  | const { dev, music, port, socials, name } = require("./c"); | ||||||
|  | const redis = require("ioredis"); | ||||||
|  | const { promisify } = require("util"); | ||||||
|  | 
 | ||||||
|  | const { | ||||||
|  |   compileSassAndSaveMultiple, | ||||||
|  |   setupCleanupOnExit, | ||||||
|  | } = require("compile-sass"); | ||||||
|  | const path = require("path"); | ||||||
|  | // Init
 | ||||||
|  | const app = express(); | ||||||
|  | const r = new redis(6379, "192.168.1.8", { | ||||||
|  |   connectionName: `ALEXHELDT${dev ? "-dev" : ""}`, | ||||||
|  | }); | ||||||
|  | const get = promisify(r.get).bind(r); | ||||||
|  | compileSassAndSaveMultiple({ | ||||||
|  |   sassPath: path.join(__dirname, "assets/sass/"), | ||||||
|  |   cssPath: path.join(__dirname, "assets/css/"), | ||||||
|  |   files: ["index.sass"], | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | process.on("SIGINT", () => { | ||||||
|  |   try { | ||||||
|  |     setupCleanupOnExit("assets/css"); | ||||||
|  |     console.log("worked"); | ||||||
|  |     process.exit(0); | ||||||
|  |   } catch (error) { | ||||||
|  |     console.error(error); | ||||||
|  |     process.exit(1); | ||||||
|  |   } | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | app.engine("hbs", hbs({ extname: "hbs", defaultView: "default" })); | ||||||
|  | app.set("view engine", "hbs"); | ||||||
|  | app.set("json spaces", 4); | ||||||
|  | app.use("/assets", express.static("./assets")); | ||||||
|  | app.use(express.json()); | ||||||
|  | app.use( | ||||||
|  |   express.urlencoded({ | ||||||
|  |     extended: true, | ||||||
|  |   }) | ||||||
|  | ); | ||||||
|  | app.use(helmet()); | ||||||
|  | app.use(compression()); | ||||||
|  | app.use(cors()); | ||||||
|  | app.use( | ||||||
|  |   morgan((tokens, req, res) => { | ||||||
|  |     return [ | ||||||
|  |       chalk.hex("#34ace0").bold(`[ ${tokens.method(req, res)} ]`), | ||||||
|  |       chalk.hex("#ffb142").bold(tokens.status(req, res)), | ||||||
|  |       chalk.hex("#ff5252").bold(req.hostname + tokens.url(req, res)), | ||||||
|  |       chalk.hex("#2ed573").bold(tokens["response-time"](req, res) + "ms"), | ||||||
|  |       chalk.hex("#f78fb3").bold("@ " + tokens.date(req, res)), | ||||||
|  |     ].join(" "); | ||||||
|  |   }) | ||||||
|  | ); | ||||||
|  | 
 | ||||||
|  | app.get("/", async (req, res) => { | ||||||
|  |   res.render("index", { | ||||||
|  |     layout: "index", | ||||||
|  |     name, | ||||||
|  |     protocol: dev ? `http` : `https`, | ||||||
|  |     host: dev ? `${req.hostname}:${port}` : `${req.hostname}`, | ||||||
|  |     socials, | ||||||
|  |     music, | ||||||
|  |     creator: { | ||||||
|  |       name: await r.get("creator_name"), | ||||||
|  |       website: await r.get("creator_website"), | ||||||
|  |     }, | ||||||
|  |   }); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | // ! SOCIAL LINKS
 | ||||||
|  | socials.forEach((social) => { | ||||||
|  |   app.get(`/${social.name}`, (req, res) => res.redirect(social.link)); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | // ! MUSIC LINKS
 | ||||||
|  | music.forEach((item) => { | ||||||
|  |   app.get(`/${item.id}`, (req, res) => res.redirect(item.link)); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | app.listen(port, () => { | ||||||
|  |   console.log(`[ Server ] Listening on ${port}`); | ||||||
|  | }); | ||||||
							
								
								
									
										2320
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										2320
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										26
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | ||||||
|  | { | ||||||
|  |   "name": "alexheldt", | ||||||
|  |   "version": "1.0.0", | ||||||
|  |   "description": "", | ||||||
|  |   "main": "index.js", | ||||||
|  |   "dependencies": { | ||||||
|  |     "chalk": "^3.0.0", | ||||||
|  |     "compile-sass": "^1.1.1", | ||||||
|  |     "compression": "^1.7.4", | ||||||
|  |     "cors": "^2.8.5", | ||||||
|  |     "express": "^4.17.1", | ||||||
|  |     "express-handlebars": "^3.1.0", | ||||||
|  |     "helmet": "^3.21.2", | ||||||
|  |     "ioredis": "^4.17.3", | ||||||
|  |     "morgan": "^1.9.1", | ||||||
|  |     "node-cache": "^5.1.2", | ||||||
|  |     "simple-icons": "^3.10.0" | ||||||
|  |   }, | ||||||
|  |   "devDependencies": {}, | ||||||
|  |   "scripts": { | ||||||
|  |     "test": "echo \"Error: no test specified\" && exit 1" | ||||||
|  |   }, | ||||||
|  |   "keywords": [], | ||||||
|  |   "author": "", | ||||||
|  |   "license": "ISC" | ||||||
|  | } | ||||||
							
								
								
									
										32
									
								
								views/index.hbs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								views/index.hbs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | ||||||
|  | {{!-- NAV --}} | ||||||
|  | <div class="nav"> | ||||||
|  |     <img class="logo" src="/assets/images/logo.png" alt="Alex Heldt Logo"> | ||||||
|  |     {{!-- SOCIALS --}} | ||||||
|  |     <div class="sub-nav"> | ||||||
|  |         {{#each socials}} | ||||||
|  |         <a href="{{../protocol}}://{{../host}}/{{name}}" class="social"> | ||||||
|  |             <svg class="{{name}}" role="img" viewBox="0 0 24 24"> | ||||||
|  |                 <title>{{name}} Icon</title> | ||||||
|  |                 <path d="{{icon.path}}"></path> | ||||||
|  |             </svg> | ||||||
|  |         </a> | ||||||
|  |         {{/each}} | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | {{!-- MUSIC --}} | ||||||
|  | <div class="music"> | ||||||
|  |     {{#each music}} | ||||||
|  |     <div class="song"> | ||||||
|  |         <a href="{{../protocol}}://{{../host}}/{{id}}"><img src="{{image}}" alt="{{shown}} Cover Art"></a> | ||||||
|  |         <a href="{{../protocol}}://{{../host}}/{{id}}" class="title"> | ||||||
|  |             {{shown}} | ||||||
|  |         </a> | ||||||
|  |     </div> | ||||||
|  |     {{/each}} | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <div class="bar top"></div> | ||||||
|  | <div class="bar bottom">made by  <a href="{{creator.website}}">{{creator.name}}</a></div> | ||||||
							
								
								
									
										38
									
								
								views/layouts/index.hbs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								views/layouts/index.hbs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | 
 | ||||||
|  | <head> | ||||||
|  |     <title>{{name}}</title> | ||||||
|  |     <meta charset="UTF-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||||
|  | 
 | ||||||
|  |     <link rel="stylesheet" type="text/css" href="./assets/css/index.css"> | ||||||
|  |     <script src="/assets/js/main.js"></script> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     <link rel="icon" type="image/png" href="/assets/images/logo.png" sizes="32x32"> | ||||||
|  |     <link rel="icon" type="image/png" href="/assets/images/logo.png" sizes="96x96"> | ||||||
|  |     <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/logo.png"> | ||||||
|  | 
 | ||||||
|  |     <meta name="theme-color" content="#ffffff"> | ||||||
|  |     <meta property="og:title" content="abisu"> | ||||||
|  |     <meta property="og:type" content="website"> | ||||||
|  |     <meta property="og:url" content="{{protocol}}://{{host}}"> | ||||||
|  |     <meta property="og:description" content="alex"> | ||||||
|  |     <meta property="og:image" content="/assets/images/logo.png"> | ||||||
|  | 
 | ||||||
|  |     <meta name="description" content="alex"> | ||||||
|  |     <meta name="keywords" content="abisu, music"> | ||||||
|  | 
 | ||||||
|  |     <meta name="twitter:card" content="summary"> | ||||||
|  |     <meta name="twitter:image" content="{{protocol}}://{{host}}/assets/images/logo.png"> | ||||||
|  |     <meta name="twitter:creator" content="@alexheldt"> | ||||||
|  | 
 | ||||||
|  | </head> | ||||||
|  | 
 | ||||||
|  | <body> | ||||||
|  |     {{{body}}} | ||||||
|  | </body> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | </html> | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue