diff options
author | mjfernez <mjfernez@gmail.com> | 2021-06-08 11:18:04 -0400 |
---|---|---|
committer | mjfernez <mjfernez@gmail.com> | 2021-06-08 11:18:04 -0400 |
commit | 1409ff96cdfc4fd6176f36f60fbe86dde1b3b6e4 (patch) | |
tree | c731a0a825f1179fb186ff629213fc20158a9c90 | |
parent | a4ef784946330abc6aed8e03accdf7541881df0f (diff) | |
download | ezcms-1409ff96cdfc4fd6176f36f60fbe86dde1b3b6e4.tar.gz |
Added ability to override templates.
This commit primarily adds the ability to override the base template by
adding a '!' on HTML files. It also makes adjustments to the index page
display to not show this extra character.
Additions to the README reflecting this change, as well as small note on
similarity to neocities was added
-rw-r--r-- | .README.swp | bin | 0 -> 28672 bytes | |||
-rw-r--r-- | .server.py.swp | bin | 0 -> 16384 bytes | |||
-rw-r--r-- | README | 54 | ||||
-rw-r--r-- | server.py | 3 | ||||
-rw-r--r-- | templates/.base.html.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | templates/.index.html.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | templates/index.html | 2 | ||||
-rw-r--r-- | templates/site/.home.html.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | templates/site/.license.html.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | templates/site/fun/.renegade.html!.swp | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | templates/site/fun/renegade.html! | 6 |
11 files changed, 52 insertions, 13 deletions
diff --git a/.README.swp b/.README.swp Binary files differnew file mode 100644 index 0000000..8e1c84f --- /dev/null +++ b/.README.swp diff --git a/.server.py.swp b/.server.py.swp Binary files differnew file mode 100644 index 0000000..700dc05 --- /dev/null +++ b/.server.py.swp @@ -31,6 +31,18 @@ Flask has great documentation so I think you'll find it a pleasure to build on top of. +### Why not just neocities? + +Neocities is awesome! You should definitely host a site there. + +https://neocities.org/ + +It's easy to get a simple static site going there and it's totally free, but it +lacks server side scripting and a truly self-hosted option. This program gives +you a nice static base to start from, with the ability to script up you own +templates and whatever else Flask has to offer. + + ## Quick start It's recommended to run each server in it's own virtual environment. This @@ -38,11 +50,12 @@ program uses python 3.7, so change `python` to either `python3` or `python3.7` depending on your needs. First clone this repo (with git clone, or download the zip), change into the directory, then: - -`python -m venv env` -`pip install -r requirements.txt` -`python server.py` - +```bash +$ python -m venv env +$ source env/bin/activate +$ pip install -r requirements.txt +$ python server.py +``` Your server will (by default) be hosted on http://127.0.0.1:5000 @@ -119,6 +132,25 @@ You can of course link to external sites, but you must specify the protocol a relative path like `example.net/google.com`. +### Override base template + +Have a page with custom CSS, or need to get rid of the navbar entirely? No +worries! Just add a '!' at the end of you html file and EZCMS will interpret it +as it's own Jinja template without adding everything from the base template. +Tip: if you're just changing the CSS, you can start with the following +boilerplate: + +```code +{% extends 'base.html' %} +{% block css%} +//your cool css here +{% endblock %} +{% block content %} +//your cool content here +{% endblock %} +``` + + ### Making Secret Directories and Files This program follows the Unix convention of placing a "." before directories @@ -156,8 +188,8 @@ replace the HTML with your own license (or none), by editing There are a few special directories linked that are needed to customize your site. First the `static` directory, which holds your static files like CSS templates and images. Second the `raw` directory, which allows -the user to access files the `templates/site` as raw files instead of HTML. -You can disable it by deleting the code under `send_file_from_site` or +the user to access files the `templates/site` as raw files instead of HTML. +You can disable it by deleting the code under `send_file_from_site` or `send_file_from_static` in `server.py`. @@ -168,10 +200,10 @@ an appropriate container. Refer to https://flask.palletsprojects.com/en/2.0.x/de for options, but an easy option I like is to use uwsgi since it's well documented. - -`python -m venv env` -`pip install uwsgi` -`doas -u www uwsgi -s /var/path/to/your-flask.sock --manage-script-name --mount /=server:app --virtualenv ./env` +```bash +$ sudo pip install uwsgi +$ uwsgi -s /var/path/to/your-flask.sock --manage-script-name --mount /=server:app --virtualenv ./env +``` Then point your main http daemon (niginx, apache, httpd) to the socket you made. There are examples for a nginx configuration in the uWSGI and Flask docs: @@ -121,8 +121,9 @@ def render_file(path): if abs_path.endswith('.html'): with open(abs_path) as f: content = f.read() - print(path.split('/')[-2] + '/') return render_template_string(CONTENT_BLOCK.replace('$', content), **context) + elif abs_path.endswith('.html!'): + return render_template("site/" + path, **context) else: # not an html file, so don't render it return send_from_directory('templates/site/', path, diff --git a/templates/.base.html.swp b/templates/.base.html.swp Binary files differnew file mode 100644 index 0000000..9720cba --- /dev/null +++ b/templates/.base.html.swp diff --git a/templates/.index.html.swp b/templates/.index.html.swp Binary files differnew file mode 100644 index 0000000..87ff2f1 --- /dev/null +++ b/templates/.index.html.swp diff --git a/templates/index.html b/templates/index.html index 7e815e2..4bbad1d 100644 --- a/templates/index.html +++ b/templates/index.html @@ -13,7 +13,7 @@ {% if files %} <h3>File Listing</h3> {% for f in files %} -<li><a href="{{ cur_dir }}{{ f }}">{{ f }}</a></li> +<li><a href="{{ cur_dir }}{{ f }}">{{ f.rstrip('!') }}</a></li> {% endfor %} {% endif %} diff --git a/templates/site/.home.html.swp b/templates/site/.home.html.swp Binary files differnew file mode 100644 index 0000000..b2cc13b --- /dev/null +++ b/templates/site/.home.html.swp diff --git a/templates/site/.license.html.swp b/templates/site/.license.html.swp Binary files differnew file mode 100644 index 0000000..d1b0b90 --- /dev/null +++ b/templates/site/.license.html.swp diff --git a/templates/site/fun/.renegade.html!.swp b/templates/site/fun/.renegade.html!.swp Binary files differnew file mode 100644 index 0000000..6d77db2 --- /dev/null +++ b/templates/site/fun/.renegade.html!.swp diff --git a/templates/site/fun/renegade.html! b/templates/site/fun/renegade.html! new file mode 100644 index 0000000..cc1e6f8 --- /dev/null +++ b/templates/site/fun/renegade.html! @@ -0,0 +1,6 @@ +<html> + <body> + <h1>This file breaks all the rules!</h1> + <p>This file doesn't use the base template.</p> + </body> +</html> |