diff --git a/.gitignore b/.gitignore index 6704566..ae4c86b 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,6 @@ dist # TernJS port file .tern-port + +testingDONOTCOMMITME.json +package-lock.json diff --git a/config/default.json b/config/default.json new file mode 100644 index 0000000..c552d27 --- /dev/null +++ b/config/default.json @@ -0,0 +1,3 @@ +{ + "redirectConfig": "testingDONOTCOMMITME.json" +} \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..b9e8d02 --- /dev/null +++ b/index.js @@ -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}`); +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..f59be4e --- /dev/null +++ b/package.json @@ -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" + } +} diff --git a/static/Barebones-3.0.1/LICENSE-Skeleton.md b/static/Barebones-3.0.1/LICENSE-Skeleton.md new file mode 100644 index 0000000..32a62b3 --- /dev/null +++ b/static/Barebones-3.0.1/LICENSE-Skeleton.md @@ -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. \ No newline at end of file diff --git a/static/css/barebones.css b/static/css/barebones.css new file mode 100644 index 0000000..ea579df --- /dev/null +++ b/static/css/barebones.css @@ -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) {} + diff --git a/static/css/normalize.css b/static/css/normalize.css new file mode 100644 index 0000000..b0c1902 --- /dev/null +++ b/static/css/normalize.css @@ -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; +} \ No newline at end of file diff --git a/static/css/skeleton-legacy.css b/static/css/skeleton-legacy.css new file mode 100644 index 0000000..b949ed3 --- /dev/null +++ b/static/css/skeleton-legacy.css @@ -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;} +} + diff --git a/static/images/favicon-16.png b/static/images/favicon-16.png new file mode 100644 index 0000000..5f21e91 Binary files /dev/null and b/static/images/favicon-16.png differ diff --git a/static/js/site.js b/static/js/site.js new file mode 100644 index 0000000..eaf9b4c --- /dev/null +++ b/static/js/site.js @@ -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) + +} diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..8b45954 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,66 @@ + + +
+ + + +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.
+