more basic templating, basic config file

This commit is contained in:
Nikurasu 2022-10-14 14:21:45 +02:00
parent 229e7a7d33
commit 21c1b06dfc
12 changed files with 72 additions and 7 deletions

7
config/config.yml Normal file
View file

@ -0,0 +1,7 @@
name: "Nikurasu" # The name on the linktree
# profilePic: # uncomment and set this if your profile pic has a custom name
links:
- text: "YouTube" # text on the link
hyperlink: "Test" # the actual hyperlink
brandcolor: "youtube" # set this if you want to set the color of the link to the brand color of a platform...
color: "#0D0D0D" # or that if you want to set it to an exact color

View file

@ -12,7 +12,8 @@
}, },
"dependencies": { "dependencies": {
"ejs": "^3.1.8", "ejs": "^3.1.8",
"express": "^4.18.2" "express": "^4.18.2",
"js-yaml": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^2.0.20" "nodemon": "^2.0.20"

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -1,4 +1,8 @@
import express from 'express' import express from 'express'
import yaml from 'js-yaml'
import fs, { cpSync } from 'node:fs'
console.log('🔧 Configuring socialtree...')
const app = express() const app = express()
const port = 3000 const port = 3000
@ -6,11 +10,16 @@ const engine = 'ejs'
app.set('view engine', engine) app.set('view engine', engine)
app.set('views', './src/views') app.set('views', './src/views')
app.use(express.static('src/public'))
app.use(express.static('src/assets'))
app.get('/', (req, res) => { app.get('/', (req, res) => {
let config = yaml.load(fs.readFileSync('config/config.yml'), 'utf8')
console.log(JSON.stringify(config))
res.render('index', { res.render('index', {
engine name: config.name,
filenameProfilePic: config.profilePic ? config.profilePic : 'profilepic.jpg'
}) })
}) })
app.listen(port, () => console.log(`App running on port ${port}, with view engine ${engine}`)) app.listen(port, () => console.log(`🚀 Socialtree started on port ${port}, with view engine ${engine}`))

4
src/public/main.css Normal file
View file

@ -0,0 +1,4 @@
* {
margin: 0;
padding: 0;
}

View file

@ -0,0 +1,18 @@
body {
min-height: 100vh;
display: flex;
justify-content: center;
}
.container {
margin-top: 3rem;
display: flex;
flex-direction: column;
align-items: center;
}
.imgbox>img {
height: 10rem;
width: 10rem;
border-radius: .5rem;
}

View file

@ -0,0 +1,3 @@
body {
background-image: linear-gradient(165deg, #c7a25c 0%, #ff9601 43%, #980d0d 100%);
}

View file

@ -1,4 +1,14 @@
<%- include('partials/head') %> <%- include('partials/head') %>
<%- include('partials/header') %> <%- include('partials/header') %>
<h1>This is a <%= engine %> Template</h1> <div class="container">
<div class="imgbox">
<img src="img/<%= filenameProfilePic %> " alt="">
</div>
<div class="headingbox">
<span><%= name %></span>
</div>
<div class="linkbox">
</div>
</div>
<%- include('partials/footer') %> <%- include('partials/footer') %>

View file

@ -1,4 +1,3 @@
<footer> <footer>
<span>This is the Footer</span>
</footer> </footer>
</html> </html>

View file

@ -1,5 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="main.css">
<link rel="stylesheet" href="simple-basic.css">
<link rel="stylesheet" href="simple-orange.css">
</head> </head>

View file

@ -1,3 +1,2 @@
<header> <header>
<span>This is the header</span>
</header> </header>

View file

@ -30,6 +30,11 @@ anymatch@~3.1.2:
normalize-path "^3.0.0" normalize-path "^3.0.0"
picomatch "^2.0.4" picomatch "^2.0.4"
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
array-flatten@1.1.1: array-flatten@1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
@ -405,6 +410,13 @@ jake@^10.8.5:
filelist "^1.0.1" filelist "^1.0.1"
minimatch "^3.0.4" minimatch "^3.0.4"
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
media-typer@0.3.0: media-typer@0.3.0:
version "0.3.0" version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"