~eightytwo/idspispopd

3fe8a5a58d890f4eca2ef0234d24437023ce6c55 — eightytwo 4 years ago 324ec16
Update README.md
1 files changed, 71 insertions(+), 0 deletions(-)

M README.md
M README.md => README.md +71 -0
@@ 1,3 1,74 @@
# idspispopd

A static website generator for my own site, otherwise known as the _Infernal Digital Static Publishing Instrument Simply Producing Orderly Printed Documents_.

## Features

* Blog posts with tags
* Projects listing page
* Markdown support for content (blog posts and projects)
* [Jinja](https://jinja.palletsprojects.com) templates for layout

## Website structure

There are three different groups of files which make up the website.
1. Static files - the CSS, JavaScript, and image files.
2. Templates - these are [Jinja](https://jinja.palletsprojects.com) templates.
3. Content files - blog posts and projects.

The following is the structure of my website and the builder code has constant variables indicating where each group lives on the filesystem.

```
.
├── content
│   ├── blog
│   │   └── 20200701_my_first_post.md
│   └── projects
│       └── walking_through_walls.md
├── static
│   ├── css
│   │   └── style.css
│   ├── images
│   │   └── logo.svg
│   └── index.html
└── templates
    ├── about.html
    ├── base.html
    ├── blog.html
    ├── post.html
    └── projects.html
```

## Building the website

With the static files, content, and templates in place, building the website is as simple as running:

```sh
$ python3 build.py
```

A `build` directory will be created with the following structure.

```
build
├── about.html
├── blog
│   ├── tag
│   │   └── python.html
│   └── my-first-post.html
├── blog.html
├── css
│   └── style.css
├── images
│   └── logo.svg
├── index.html
└── projects.html
```

The content of the `build` directory can then be copied to a web server.

## What's next?

My website is pretty simple so at this stage there's no plans for anything else. A couple of things that crossed my mind while building this were:
* Tags for projects - might be helpful if the project list grows.
* Individual pages for each project - might be helpful if a particular project has a lot of content.