mirror of
https://github.com/TheGreyDiamond/elevatormapRewritten.git
synced 2025-07-18 02:23:50 +02:00
Inital commit
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -102,3 +102,6 @@ dist
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
testingDONOTCOMMITME.json
|
||||
package-lock.json
|
||||
|
3
config/default.json
Normal file
3
config/default.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"redirectConfig": "testingDONOTCOMMITME.json"
|
||||
}
|
76
index.js
Normal file
76
index.js
Normal file
@ -0,0 +1,76 @@
|
||||
// Imports
|
||||
const express = require("express");
|
||||
const fs = require("fs");
|
||||
const Eta = require("eta");
|
||||
const winston = require("winston");
|
||||
const { log } = require("util");
|
||||
|
||||
// Inting the logger
|
||||
const logger = winston.createLogger({
|
||||
level: "info",
|
||||
format: winston.format.json(),
|
||||
defaultMeta: { service: "user-service" },
|
||||
transports: [
|
||||
//
|
||||
// - Write all logs with level `error` and below to `error.log`
|
||||
// - Write all logs with level `info` and below to `combined.log`
|
||||
//
|
||||
new winston.transports.File({ filename: "error.log", level: "error" }),
|
||||
new winston.transports.File({ filename: "combined.log" }),
|
||||
],
|
||||
});
|
||||
|
||||
logger.add(
|
||||
new winston.transports.Console({
|
||||
format: winston.format.simple(),
|
||||
})
|
||||
);
|
||||
|
||||
const app = express();
|
||||
|
||||
app.use(express.static("static"));
|
||||
|
||||
// Settings
|
||||
const port = 3000;
|
||||
|
||||
// Load config
|
||||
try {
|
||||
const data = fs.readFileSync("config/default.json", "utf8");
|
||||
const jsonContent = JSON.parse(data);
|
||||
let jsonConfig = jsonContent;
|
||||
if (jsonContent.redirectConfig) {
|
||||
const data = fs.readFileSync(
|
||||
"config/" + jsonContent.redirectConfig,
|
||||
"utf8"
|
||||
);
|
||||
jsonConfig = JSON.parse(data);
|
||||
}
|
||||
var fontawesomeKey = jsonConfig.fontAwesome;
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
"While reading the config an error occured. The error was: " + error
|
||||
);
|
||||
}
|
||||
|
||||
// Basic defines for html
|
||||
const author = "TheGreydiamond";
|
||||
const desc = "Elevatormap";
|
||||
const sitePrefix = "Elevatormap - ";
|
||||
|
||||
// Routes
|
||||
app.get("/", function (req, res) {
|
||||
const data = fs.readFileSync("templates/index.html", "utf8");
|
||||
res.send(
|
||||
Eta.render(data, {
|
||||
author: author,
|
||||
desc: desc,
|
||||
siteTitel: sitePrefix + "Start",
|
||||
fontawesomeKey: fontawesomeKey,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// App start
|
||||
app.listen(port, () => {
|
||||
logger.info(`Elevator map ready at http://localhost:${port}`);
|
||||
});
|
25
package.json
Normal file
25
package.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "elevatormaprewritten",
|
||||
"version": "1.0.0",
|
||||
"description": "The elevatormap rewritten",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node index.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/TheGreyDiamond/elevatormapRewritten.git"
|
||||
},
|
||||
"author": "TheGreydiamond",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/TheGreyDiamond/elevatormapRewritten/issues"
|
||||
},
|
||||
"homepage": "https://github.com/TheGreyDiamond/elevatormapRewritten#readme",
|
||||
"dependencies": {
|
||||
"eta": "^1.12.1",
|
||||
"express": "^4.17.1",
|
||||
"winston": "^3.3.3"
|
||||
}
|
||||
}
|
21
static/Barebones-3.0.1/LICENSE-Skeleton.md
Normal file
21
static/Barebones-3.0.1/LICENSE-Skeleton.md
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2014 Dave Gamache
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
473
static/css/barebones.css
Normal file
473
static/css/barebones.css
Normal file
@ -0,0 +1,473 @@
|
||||
/*
|
||||
* Barebones V3
|
||||
* Copyright 2019 Steve Cochran
|
||||
*
|
||||
* Based of Skeleton by Dave Gamache
|
||||
*
|
||||
* Free to use under the MIT license.
|
||||
*/
|
||||
|
||||
/* Table of contents
|
||||
––––––––––––––––––––––––––––––––––––––––––––––––––
|
||||
- Media Breakpoints
|
||||
- Variables
|
||||
- Grid
|
||||
- Base Styles
|
||||
- Typography
|
||||
- Links
|
||||
- Buttons
|
||||
- Forms
|
||||
- Lists
|
||||
- Code
|
||||
- Tables
|
||||
- Spacing
|
||||
- Utilities
|
||||
- Clearing
|
||||
- Media Queries
|
||||
*/
|
||||
|
||||
/* ENV Variables
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
/* Media breakpoint variables for use in media queries
|
||||
* Note: this section is currently commented out pending release of
|
||||
* final CSS env() spec
|
||||
* Breakpoints based on
|
||||
* https://medium.freecodecamp.org/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* CSS Variables
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
html {
|
||||
|
||||
/* default theme: light background, dark text, blue accent */
|
||||
--theme-hue: 0; /* white */
|
||||
--accent-hue: 194; /* blue */
|
||||
|
||||
--text-color-richer: hsl(var(--theme-hue), 0%, 5%); /* #0d0d0d */
|
||||
--text-color-normal: hsl(var(--theme-hue), 0%, 13%); /* #222222 text color; button:hover:focus color */
|
||||
--text-color-softer: hsl(var(--theme-hue), 0%, 33%); /* #555555 button color; button:hover border */
|
||||
|
||||
--accent-color: hsl(var(--accent-hue), 86%, 57%); /* #33C3F0 link; button-primary bg+border; textarea,select:focus border */
|
||||
--accent-color-hover: hsl(var(--accent-hue), 76%, 49%); /* #1EAEDB link hover; button-primary:hover:focus bg+border */
|
||||
|
||||
--border-color: hsl(var(--theme-hue), 0%, 73%); /* #bbbbbb button border */
|
||||
--border-color-softer: hsl(var(--theme-hue), 0%, 82%); /* #d1d1d1 textarea,select,code,td,hr border */
|
||||
|
||||
--background-color: white; /* transparent body background; textarea,select background */
|
||||
--background-color-softer: hsl(var(--theme-hue), 0%, 95%);
|
||||
--code-background: hsl(var(--theme-hue), 0%, 95%); /* #f1f1f1 code background*/
|
||||
|
||||
--button-primary-color: white;
|
||||
|
||||
|
||||
/* Note: Skeleton was based off a 10px font sizing for REM */
|
||||
/* 62.5% of typical 16px browser default = 10px */
|
||||
--base-font-size: 62.5%;
|
||||
|
||||
/* Grid Defaults - default to match orig skeleton settings */
|
||||
--grid-max-width: 960px;
|
||||
}
|
||||
|
||||
/* Dark Theme
|
||||
Note: prefers-color-scheme selector support is still limited, but
|
||||
included for future and an example of defining a different base 'theme'
|
||||
*/
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:html {
|
||||
/* dark theme: light background, dark text, blue accent */
|
||||
--theme-hue: 0; /* black */
|
||||
--accent-hue: 194; /* blue */
|
||||
|
||||
--text-color-richer: hsl(var(--theme-hue), 0%, 95%); /* */
|
||||
--text-color-normal: hsl(var(--theme-hue), 0%, 80%); /* text color; button:hover:focus color */
|
||||
--text-color-softer: hsl(var(--theme-hue), 0%, 67%); /* button color; button:hover border */
|
||||
|
||||
--accent-color: hsl(var(--accent-hue), 76%, 49%); /* link; button-primary bg+border; textarea,select:focus border */
|
||||
--accent-color-hover: hsl(var(--accent-hue), 86%, 57%); /* link hover; button-primary:hover:focus bg+border */
|
||||
|
||||
--border-color: hsl(var(--theme-hue), 0%, 27%); /* button border */
|
||||
--border-color-softer: hsl(var(--theme-hue), 0%, 20%); /* textarea,select,code,td,hr border */
|
||||
|
||||
--background-color: hsl(var(--theme-hue), 0%, 12%); /* body background; textarea,select background */
|
||||
--background-color-softer: hsl(var(--theme-hue), 0%, 18%);
|
||||
--code-background: hsl(var(--theme-hue), 0%, 5%); /* code background*/
|
||||
|
||||
--button-primary-color: white;
|
||||
}
|
||||
|
||||
img.value-img {
|
||||
filter: invert(0.8);
|
||||
}
|
||||
/* TODO - test dialing back image intensity on dark background
|
||||
img {
|
||||
opacity: .80;
|
||||
transition: opacity .5s ease-in-out;
|
||||
}
|
||||
img:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
/* Grid
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
/* CSS Grid depends much more on CSS than HTML, so there is less boilerplate
|
||||
than with skeleton. Only basic 1-4 column grids are included.
|
||||
Any additional needs should be made using custom CSS directives */
|
||||
|
||||
|
||||
.grid-container {
|
||||
position: relative;
|
||||
max-width: var(--grid-max-width);
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
display: grid;
|
||||
grid-gap: 20px;
|
||||
gap: 20px;
|
||||
|
||||
/* by default use min 200px wide columns auto-fit into width */
|
||||
grid-template-columns: minmax(200px, 1fr);
|
||||
}
|
||||
|
||||
/* grids to 3 columns above mobile sizes */
|
||||
@media (min-width: 600px) {
|
||||
.grid-container {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
/* basic grids */
|
||||
.grid-container.fifths {
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
}
|
||||
.grid-container.quarters {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
.grid-container.thirds {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
.grid-container.halves {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
.grid-container.full {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Base Styles
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
html {
|
||||
font-size: var(--base-font-size);
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
body {
|
||||
font-size: 1.6rem; /* changed from 15px in orig skeleton */
|
||||
line-height: 1.6;
|
||||
font-weight: 400;
|
||||
font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: var(--text-color-normal);
|
||||
background-color: var(--background-color);;
|
||||
}
|
||||
|
||||
|
||||
/* Typography
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 2rem;
|
||||
font-weight: 300; }
|
||||
h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;}
|
||||
h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; }
|
||||
h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; }
|
||||
h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; }
|
||||
h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; }
|
||||
h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; }
|
||||
|
||||
/* Larger than phablet */
|
||||
@media (min-width: 600px) {
|
||||
h1 { font-size: 5.0rem; }
|
||||
h2 { font-size: 4.2rem; }
|
||||
h3 { font-size: 3.6rem; }
|
||||
h4 { font-size: 3.0rem; }
|
||||
h5 { font-size: 2.4rem; }
|
||||
h6 { font-size: 1.5rem; }
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0; }
|
||||
|
||||
|
||||
/* Links
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
a {
|
||||
color: var(--accent-color); }
|
||||
a:hover {
|
||||
color: var(--accent-color-hover); }
|
||||
|
||||
|
||||
/* Buttons
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
.button,
|
||||
button,
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"] {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
padding: 0 30px;
|
||||
color: var(--text-color-softer);
|
||||
text-align: center;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
line-height: 38px;
|
||||
letter-spacing: .1rem;
|
||||
text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--border-color);
|
||||
cursor: pointer;
|
||||
box-sizing: border-box; }
|
||||
.button:hover,
|
||||
button:hover,
|
||||
input[type="submit"]:hover,
|
||||
input[type="reset"]:hover,
|
||||
input[type="button"]:hover,
|
||||
.button:focus,
|
||||
button:focus,
|
||||
input[type="submit"]:focus,
|
||||
input[type="reset"]:focus,
|
||||
input[type="button"]:focus {
|
||||
color: var(--text-color-normal);
|
||||
border-color: var(--text-color-softer);
|
||||
outline: 0; }
|
||||
.button.button-primary,
|
||||
button.button-primary,
|
||||
input[type="submit"].button-primary,
|
||||
input[type="reset"].button-primary,
|
||||
input[type="button"].button-primary {
|
||||
color: var(--button-primary-color);
|
||||
background-color: var(--accent-color);
|
||||
border-color: var(--accent-color); }
|
||||
.button.button-primary:hover,
|
||||
button.button-primary:hover,
|
||||
input[type="submit"].button-primary:hover,
|
||||
input[type="reset"].button-primary:hover,
|
||||
input[type="button"].button-primary:hover,
|
||||
.button.button-primary:focus,
|
||||
button.button-primary:focus,
|
||||
input[type="submit"].button-primary:focus,
|
||||
input[type="reset"].button-primary:focus,
|
||||
input[type="button"].button-primary:focus {
|
||||
color: var(--button-primary-color);
|
||||
background-color: var(--accent-color-hover);
|
||||
border-color: var(--accent-color-hover); }
|
||||
|
||||
|
||||
/* Forms
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
input[type="email"],
|
||||
input[type="number"],
|
||||
input[type="search"],
|
||||
input[type="text"],
|
||||
input[type="tel"],
|
||||
input[type="url"],
|
||||
input[type="password"],
|
||||
textarea,
|
||||
select {
|
||||
height: 38px;
|
||||
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
|
||||
background-color: var(--background-color);
|
||||
border: 1px solid var(--border-color-softer);
|
||||
border-radius: 4px;
|
||||
box-shadow: none;
|
||||
box-sizing: border-box; }
|
||||
/* Removes awkward default styles on some inputs for iOS */
|
||||
input[type="email"],
|
||||
input[type="number"],
|
||||
input[type="search"],
|
||||
input[type="text"],
|
||||
input[type="tel"],
|
||||
input[type="url"],
|
||||
input[type="password"],
|
||||
input[type="button"],
|
||||
input[type="submit"],
|
||||
textarea {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none; }
|
||||
textarea {
|
||||
min-height: 65px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px; }
|
||||
input[type="email"]:focus,
|
||||
input[type="number"]:focus,
|
||||
input[type="search"]:focus,
|
||||
input[type="text"]:focus,
|
||||
input[type="tel"]:focus,
|
||||
input[type="url"]:focus,
|
||||
input[type="password"]:focus,
|
||||
textarea:focus,
|
||||
select:focus {
|
||||
border: 1px solid var(--accent-color);
|
||||
outline: 0; }
|
||||
label,
|
||||
legend {
|
||||
display: block;
|
||||
margin-bottom: .5rem;
|
||||
font-weight: 600; }
|
||||
fieldset {
|
||||
padding: 0;
|
||||
border-width: 0; }
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
display: inline; }
|
||||
label > .label-body {
|
||||
display: inline-block;
|
||||
margin-left: .5rem;
|
||||
font-weight: normal; }
|
||||
|
||||
|
||||
/* Lists
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
ul {
|
||||
list-style: circle inside; }
|
||||
ol {
|
||||
list-style: decimal inside; }
|
||||
ol, ul {
|
||||
padding-left: 0;
|
||||
margin-top: 0; }
|
||||
ul ul, ul ol, ol ol, ol ul {
|
||||
font-size: 100%;
|
||||
margin: 1rem 0 1rem 3rem;
|
||||
color: var(--text-color-softer);
|
||||
}
|
||||
li {
|
||||
margin-bottom: 0.5rem; }
|
||||
|
||||
|
||||
/* Code
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
code {
|
||||
padding: .2rem .5rem;
|
||||
margin: 0 .2rem;
|
||||
font-size: 90%;
|
||||
white-space: nowrap;
|
||||
background: var(--code-background);
|
||||
border: 1px solid var(--border-color-softer);
|
||||
border-radius: 4px; }
|
||||
pre > code {
|
||||
display: block;
|
||||
padding: 1rem 1.5rem;
|
||||
white-space: pre;
|
||||
overflow: auto; }
|
||||
|
||||
|
||||
/* Tables
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
th,
|
||||
td {
|
||||
padding: 12px 15px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid var(--border-color-softer); }
|
||||
th:first-child,
|
||||
td:first-child {
|
||||
padding-left: 0; }
|
||||
th:last-child,
|
||||
td:last-child {
|
||||
padding-right: 0; }
|
||||
|
||||
|
||||
/* Spacing
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
button,
|
||||
.button {
|
||||
margin-bottom: 1rem; }
|
||||
input,
|
||||
textarea,
|
||||
select,
|
||||
fieldset {
|
||||
margin-bottom: 1.5rem; }
|
||||
pre,
|
||||
blockquote,
|
||||
dl,
|
||||
figure,
|
||||
table,
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
form {
|
||||
margin-bottom: 2.5rem; }
|
||||
|
||||
|
||||
/* Utilities
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
.u-full-width {
|
||||
width: 100%;
|
||||
box-sizing: border-box; }
|
||||
.u-max-full-width {
|
||||
max-width: 100%;
|
||||
box-sizing: border-box; }
|
||||
.u-pull-right {
|
||||
float: right; }
|
||||
.u-pull-left {
|
||||
float: left; }
|
||||
.u-align-left {
|
||||
text-align: left; }
|
||||
.u-align-right {
|
||||
text-align: right; }
|
||||
|
||||
|
||||
/* Misc
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
hr {
|
||||
margin-top: 3rem;
|
||||
margin-bottom: 3.5rem;
|
||||
border-width: 0;
|
||||
border-top: 1px solid var(--border-color-softer); }
|
||||
|
||||
|
||||
/* Clearing
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
|
||||
/* Self Clearing Goodness */
|
||||
.container:after,
|
||||
.row:after,
|
||||
.u-cf {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
|
||||
|
||||
/* Media Queries
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
/*
|
||||
Note: The best way to structure the use of media queries is to create the queries
|
||||
near the relevant code. For example, if you wanted to change the styles for buttons
|
||||
on small devices, paste the mobile query code up in the buttons section and style it
|
||||
there.
|
||||
*/
|
||||
|
||||
|
||||
/* Larger than mobile (default point when grid becomes active) */
|
||||
@media (min-width: 600px) {}
|
||||
|
||||
/* Larger than phablet */
|
||||
@media (min-width: 900px) {}
|
||||
|
||||
/* Larger than tablet */
|
||||
@media (min-width: 1200px) {}
|
||||
|
349
static/css/normalize.css
vendored
Normal file
349
static/css/normalize.css
vendored
Normal file
@ -0,0 +1,349 @@
|
||||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||
|
||||
/* Document
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Correct the line height in all browsers.
|
||||
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
||||
*/
|
||||
|
||||
html {
|
||||
line-height: 1.15; /* 1 */
|
||||
-webkit-text-size-adjust: 100%; /* 2 */
|
||||
}
|
||||
|
||||
/* Sections
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the margin in all browsers.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the `main` element consistently in IE.
|
||||
*/
|
||||
|
||||
main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the font size and margin on `h1` elements within `section` and
|
||||
* `article` contexts in Chrome, Firefox, and Safari.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
/* Grouping content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in Firefox.
|
||||
* 2. Show the overflow in Edge and IE.
|
||||
*/
|
||||
|
||||
hr {
|
||||
box-sizing: content-box; /* 1 */
|
||||
height: 0; /* 1 */
|
||||
overflow: visible; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/* Text-level semantics
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the gray background on active links in IE 10.
|
||||
*/
|
||||
|
||||
a {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove the bottom border in Chrome 57-
|
||||
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none; /* 1 */
|
||||
text-decoration: underline; /* 2 */
|
||||
text-decoration: underline dotted; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font weight in Chrome, Edge, and Safari.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inheritance and scaling of font size in all browsers.
|
||||
* 2. Correct the odd `em` font sizing in all browsers.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace; /* 1 */
|
||||
font-size: 1em; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` elements from affecting the line height in
|
||||
* all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
/* Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove the border on images inside links in IE 10.
|
||||
*/
|
||||
|
||||
img {
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
/* Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Change the font styles in all browsers.
|
||||
* 2. Remove the margin in Firefox and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit; /* 1 */
|
||||
font-size: 100%; /* 1 */
|
||||
line-height: 1.15; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the overflow in IE.
|
||||
* 1. Show the overflow in Edge.
|
||||
*/
|
||||
|
||||
button,
|
||||
input { /* 1 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
||||
* 1. Remove the inheritance of text transform in Firefox.
|
||||
*/
|
||||
|
||||
button,
|
||||
select { /* 1 */
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the inability to style clickable types in iOS and Safari.
|
||||
*/
|
||||
|
||||
button,
|
||||
[type="button"],
|
||||
[type="reset"],
|
||||
[type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner border and padding in Firefox.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
[type="button"]::-moz-focus-inner,
|
||||
[type="reset"]::-moz-focus-inner,
|
||||
[type="submit"]::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restore the focus styles unset by the previous rule.
|
||||
*/
|
||||
|
||||
button:-moz-focusring,
|
||||
[type="button"]:-moz-focusring,
|
||||
[type="reset"]:-moz-focusring,
|
||||
[type="submit"]:-moz-focusring {
|
||||
outline: 1px dotted ButtonText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the padding in Firefox.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
padding: 0.35em 0.75em 0.625em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the text wrapping in Edge and IE.
|
||||
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
||||
* 3. Remove the padding so developers are not caught out when they zero out
|
||||
* `fieldset` elements in all browsers.
|
||||
*/
|
||||
|
||||
legend {
|
||||
box-sizing: border-box; /* 1 */
|
||||
color: inherit; /* 2 */
|
||||
display: table; /* 1 */
|
||||
max-width: 100%; /* 1 */
|
||||
padding: 0; /* 3 */
|
||||
white-space: normal; /* 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
||||
*/
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the default vertical scrollbar in IE 10+.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Add the correct box sizing in IE 10.
|
||||
* 2. Remove the padding in IE 10.
|
||||
*/
|
||||
|
||||
[type="checkbox"],
|
||||
[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct the cursor style of increment and decrement buttons in Chrome.
|
||||
*/
|
||||
|
||||
[type="number"]::-webkit-inner-spin-button,
|
||||
[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the odd appearance in Chrome and Safari.
|
||||
* 2. Correct the outline style in Safari.
|
||||
*/
|
||||
|
||||
[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
outline-offset: -2px; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the inner padding in Chrome and Safari on macOS.
|
||||
*/
|
||||
|
||||
[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct the inability to style clickable types in iOS and Safari.
|
||||
* 2. Change font properties to `inherit` in Safari.
|
||||
*/
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
font: inherit; /* 2 */
|
||||
}
|
||||
|
||||
/* Interactive
|
||||
========================================================================== */
|
||||
|
||||
/*
|
||||
* Add the correct display in Edge, IE 10+, and Firefox.
|
||||
*/
|
||||
|
||||
details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the correct display in all browsers.
|
||||
*/
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
/* Misc
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10+.
|
||||
*/
|
||||
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the correct display in IE 10.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
102
static/css/skeleton-legacy.css
Normal file
102
static/css/skeleton-legacy.css
Normal file
@ -0,0 +1,102 @@
|
||||
/* include this file if you want to duplicate all classes available
|
||||
* the original skeleton boilerplate.
|
||||
*
|
||||
* Note: if you are creating a new site, this file is not needed
|
||||
* and simpler CSS Grid elements should be used without all the
|
||||
* additional classes on HTML elements. See the Readme for examples.
|
||||
*/
|
||||
|
||||
|
||||
/* Grid –––––––––––––––––––––––––––––––––––––––––––––––––– */
|
||||
/* Directives to replicate all skeleton.css functionality */
|
||||
/* .row becomes a grid container with 12 columns */
|
||||
.container, .row {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.row {
|
||||
padding: 0;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 4%;
|
||||
}
|
||||
|
||||
.column,
|
||||
.columns {
|
||||
width: 100%;
|
||||
float: left;
|
||||
box-sizing: border-box; }
|
||||
|
||||
/* For devices larger than 400px */
|
||||
@media (min-width: 400px) {
|
||||
.container {
|
||||
width: 85%;
|
||||
padding: 0; }
|
||||
}
|
||||
|
||||
/* For devices larger than 550px */
|
||||
@media (min-width: 550px) {
|
||||
.container {
|
||||
width: 80%;
|
||||
}
|
||||
.row {
|
||||
width: 100%;
|
||||
grid-template-columns: repeat(12, 1fr);
|
||||
gap: 4%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.one.column, .one.columns { grid-column-end: span 1; }
|
||||
.two.columns { grid-column-end: span 2; }
|
||||
.three.columns { grid-column-end: span 3; }
|
||||
.four.columns { grid-column-end: span 4; }
|
||||
.five.columns { grid-column-end: span 5; }
|
||||
.six.columns { grid-column-end: span 6; }
|
||||
.seven.columns { grid-column-end: span 7; }
|
||||
.eight.columns { grid-column-end: span 8; }
|
||||
.nine.columns { grid-column-end: span 9; }
|
||||
.ten.columns { grid-column-end: span 10; }
|
||||
.eleven.columns { grid-column-end: span 11; }
|
||||
.twelve.columns { grid-column-end: span 12; }
|
||||
.one-third.column { grid-column-end: span 4; }
|
||||
.two-thirds.column { grid-column-end: span 8; }
|
||||
.one-half.column { grid-column-end: span 6; }
|
||||
|
||||
/* Offsets */
|
||||
.offset-by-one.column,
|
||||
.offset-by-one.columns { grid-column-start: 2; }
|
||||
.offset-by-two.column,
|
||||
.offset-by-two.columns { grid-column-start: 3; }
|
||||
.offset-by-three.column,
|
||||
.offset-by-three.columns { grid-column-start: 4; }
|
||||
.offset-by-four.column,
|
||||
.offset-by-four.columns { grid-column-start: 5; }
|
||||
.offset-by-five.column,
|
||||
.offset-by-five.columns { grid-column-start: 6; }
|
||||
.offset-by-six.column,
|
||||
.offset-by-six.columns { grid-column-start: 7; }
|
||||
.offset-by-seven.column,
|
||||
.offset-by-seven.columns { grid-column-start: 8; }
|
||||
.offset-by-eight.column,
|
||||
.offset-by-eight.columns { grid-column-start: 9; }
|
||||
.offset-by-nine.column,
|
||||
.offset-by-nine.columns { grid-column-start: 10; }
|
||||
.offset-by-ten.column,
|
||||
.offset-by-ten.columns { grid-column-start: 11; }
|
||||
.offset-by-eleven.column,
|
||||
.offset-by-eleven.columns { grid-column-start: 12; }
|
||||
|
||||
.offset-by-one-third.column,
|
||||
.offset-by-one-third.columns { grid-column-start: 5;}
|
||||
.offset-by-two-thirds.column,
|
||||
.offset-by-two-thirds.columns { grid-column-start: 9;}
|
||||
|
||||
.offset-by-one-half.column,
|
||||
.offset-by-one-half.columns { grid-column-start: 7;}
|
||||
}
|
||||
|
BIN
static/images/favicon-16.png
Normal file
BIN
static/images/favicon-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 867 B |
24
static/js/site.js
Normal file
24
static/js/site.js
Normal file
@ -0,0 +1,24 @@
|
||||
function toggleTheme() {
|
||||
|
||||
var prettifyDark = document.getElementById('prettify-dark')
|
||||
var sheets = document.styleSheets
|
||||
|
||||
// temporariily set transition class on html element
|
||||
//document.documentElement.classList.add('transition-theme')
|
||||
|
||||
// change data-theme
|
||||
//if (target.classList.contains('darkTheme')) {
|
||||
document.documentElement.setAttribute("data-theme", "dark")
|
||||
//prettifyDark.removeAttribute('disabled')
|
||||
//prettifyDark.disabled = false
|
||||
/*} else {
|
||||
document.documentElement.removeAttribute("data-theme", "dark")
|
||||
prettifyDark.disabled = true
|
||||
}*/
|
||||
|
||||
// remove transition class
|
||||
window.setTimeout(function() {
|
||||
document.documentElement.classList.remove('transition-theme')
|
||||
}, 1000)
|
||||
|
||||
}
|
66
templates/index.html
Normal file
66
templates/index.html
Normal file
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<!-- Basic Page Needs
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<meta charset="utf-8">
|
||||
<title><%= it.siteTitel %></title>
|
||||
<meta name="description" content="<%= it.desc %>">
|
||||
<meta name="author" content="<%= it.author %>">
|
||||
|
||||
<!-- Mobile Specific Metas
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!-- FONT
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- CSS
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<link rel="stylesheet" href="css/normalize.css">
|
||||
<link rel="stylesheet" href="css/barebones.css">
|
||||
|
||||
<!-- Favicon
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<link rel="icon" type="image/png" href="images/favicon-16.png">
|
||||
|
||||
|
||||
<script async defer src="/js/site.js"></script>
|
||||
<script src="https://kit.fontawesome.com/<%= it.fontawesomeKey %>.js" crossorigin="anonymous"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- Primary Page Layout
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
<div class="grid-container thirds" style="margin-top: 5%;">
|
||||
<div></div>
|
||||
<div>
|
||||
<h1>The Elevator map</h1>
|
||||
<p>Some of you might have heard of trainspotters. There are also elevator spotters, more then you might expect. This map is dedicated to all the elevator spotters.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid-container thirds" style="margin-top: 5%;">
|
||||
<div>
|
||||
<h3> <i class="fas fa-rocket"></i><br>
|
||||
Simply fast</h3>
|
||||
</div>
|
||||
<div>
|
||||
<h3> <i class="fas fa-hands"></i><br>
|
||||
Comunity driven</h3>
|
||||
</div>
|
||||
<div>
|
||||
<h3> <i class="fas fa-node-js"></i><br>
|
||||
Built on node.js</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- End Document
|
||||
–––––––––––––––––––––––––––––––––––––––––––––––––– -->
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user