diff options
-rwxr-xr-x | main.py | 47 | ||||
-rw-r--r-- | static/index.html | 40 | ||||
-rw-r--r-- | static/style.css | 111 |
3 files changed, 198 insertions, 0 deletions
@@ -0,0 +1,47 @@ + + +""" + web-template - A Template Project for dynamic Web Applications. + + Copyright (C) 2020 xengineering + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +""" + + +from waitress import serve +from flask import Flask, render_template, current_app + + +app = Flask(__name__) + + +@app.route('/') +def index(): + return current_app.send_static_file('index.html') + + +@app.route('/style.css') +def style(): + return current_app.send_static_file('style.css') + + +@app.route('/favicon.ico') +def favicon(): + return current_app.send_static_file('favicon.ico') + + +if __name__ == '__main__': + serve(app, listen='*:8080') # production server + #app.run() # test server diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..90e5f1f --- /dev/null +++ b/static/index.html @@ -0,0 +1,40 @@ +<!-- + web-template - A Template Project for dynamic Web Applications. + + Copyright (C) 2020 xengineering + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +--> +<html> + <head> + <title>Web Template</title> + <meta charset="utf-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href="style.css" type="text/css"> + </head> + <body> + <div class="menu"> + <a href="http://localhost:8080/">HOME</a> + <a href="https://xengineering.eu">xengineering</a> + </div> + <div class="content-frame"> + <div class="content"> + <header><h1>Web Template</h1></header> + <p> + Lorem ipsum. + </p> + </div> + </div> + </body> +</html> diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..fd92176 --- /dev/null +++ b/static/style.css @@ -0,0 +1,111 @@ + + +/* + web-template - A Template Project for dynamic Web Applications. + + Copyright (C) 2020 xengineering + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ + + +/* + General Stuff +*/ + +* { + box-sizing: border-box; /* Include padding and border in the element's total width and height */ +} + +body { + margin: 0; /* avoid ugly white margin */ + font-family: Arial, Helvetica, sans-serif; /* select a nice font */ +} + +.menu { + background-color: black; +} + +.content { + background-color: white; +} + +.menu a { + color: lightgray; + text-decoration: none; /* disable ugly underlined links */ +} + +/* How should the link behave if the mouse is over this item? */ +.menu a:hover { + background-color: lightgray; + color: black; +} + + + +/* + Default Geometry / Geometry for Phones ('Mobile First Development') +*/ + +.content { + padding-left: 20px; + padding-right: 20px; + text-align: justify; +} + +.menu a { + display: block; + padding: 16px; + text-align: center; +} + + + +/* + Geometry for Tablets +*/ + +@media only screen and (min-width: 600px) { + /* empty --> same rules as for phones */ +} + + + +/* + Geometry for Desktops +*/ + +@media only screen and (min-width: 768px) { + + .menu { + height: 100%; + width: 200px; + position: fixed; /* position fixed in top left corner (with offset) */ + top: 0px; /* disable the offset from top left corner */ + } + + .menu a { + text-align: left; + } + + .content { + margin-left: 200px; /* transparent margin on the left for .menu */ + } + + .content *{ /* everything inside the content container */ + max-width: 960px; /* maximum width on desktops should be 960 px */ + margin-left: auto; /* center it with margin */ + margin-right: auto; /* center it with margin */ + } +} |