2022-08-15 19:06:17 +00:00
|
|
|
![Mascot](assets/owl.png)
|
|
|
|
|
2022-08-03 14:49:17 +00:00
|
|
|
# Owl Blogs
|
|
|
|
|
2022-08-03 15:56:13 +00:00
|
|
|
A simple web server for blogs generated from Markdown files
|
|
|
|
|
|
|
|
## Repository
|
|
|
|
|
|
|
|
A repository holds all data for a web server. It contains multiple users.
|
|
|
|
|
|
|
|
## User
|
|
|
|
|
2022-08-08 20:17:03 +00:00
|
|
|
A user has a collection of posts.
|
2022-08-03 15:56:13 +00:00
|
|
|
Each directory in the `/users/` directory of a repository is considered a user.
|
|
|
|
|
|
|
|
### User Directory structure
|
|
|
|
|
|
|
|
```
|
|
|
|
<user-name>/
|
|
|
|
\- public/
|
|
|
|
\- <post-name>
|
2022-08-08 20:17:03 +00:00
|
|
|
\- index.md
|
2022-08-03 15:56:13 +00:00
|
|
|
-- This will be rendered as the blog post.
|
|
|
|
-- Must be present for the blog post to be valid.
|
|
|
|
-- All other folders will be ignored
|
2022-09-10 13:30:52 +00:00
|
|
|
\- webmentions.yml
|
|
|
|
-- Used to track incoming and outgoing webmentions
|
2022-08-03 15:56:13 +00:00
|
|
|
\- media/
|
|
|
|
-- Contains all media files used in the blog post.
|
|
|
|
-- All files in this folder will be publicly available
|
2022-08-23 15:59:17 +00:00
|
|
|
\- webmention/
|
|
|
|
\- <hash>.yml
|
|
|
|
-- Contains data for a received webmention
|
2022-08-03 15:56:13 +00:00
|
|
|
\- meta/
|
|
|
|
\- base.html
|
|
|
|
-- The template used to render all sites
|
|
|
|
\- VERSION
|
|
|
|
-- Contains the version string.
|
|
|
|
-- Used to determine compatibility in the future
|
2022-09-10 13:30:52 +00:00
|
|
|
\- media/
|
|
|
|
-- All this files will be publicly available. To be used for general files
|
|
|
|
\- avatar.{png, jpg, jpeg, gif}
|
|
|
|
-- The avatar for the user
|
2022-08-03 15:56:13 +00:00
|
|
|
\- config.yml
|
|
|
|
-- Contains settings global to the user.
|
2022-08-08 20:17:03 +00:00
|
|
|
-- For example: page title and style options
|
|
|
|
```
|
|
|
|
|
|
|
|
### Post
|
|
|
|
|
|
|
|
Posts are Markdown files with a mandatory metadata head.
|
|
|
|
|
|
|
|
- The `title` will be added to the web page and does not have to be reapeated in the body. It will be used in any lists of posts.
|
|
|
|
- `aliases` are optional. They are used as permanent redirects to the actual blog page.
|
|
|
|
|
|
|
|
```
|
|
|
|
---
|
|
|
|
title: My new Post
|
2022-08-15 05:31:19 +00:00
|
|
|
date: 13 Aug 2022 17:07 UTC
|
2022-08-08 20:17:03 +00:00
|
|
|
aliases:
|
|
|
|
- /my/new/post
|
|
|
|
- /old_blog_path/
|
|
|
|
---
|
|
|
|
|
|
|
|
Actual post
|
|
|
|
|
|
|
|
```
|
2022-09-04 13:03:16 +00:00
|
|
|
|
|
|
|
|
2022-09-10 13:32:22 +00:00
|
|
|
#### webmentions.yml
|
2022-09-04 13:03:16 +00:00
|
|
|
|
|
|
|
```
|
2022-09-10 13:32:22 +00:00
|
|
|
incoming:
|
|
|
|
- source: https://example.com/post
|
|
|
|
title: Example Post
|
|
|
|
ApprovalStatus: ["", "approved", "rejected"]
|
|
|
|
retrieved_at: 2021-08-13T17:07:00Z
|
|
|
|
outgoing:
|
2022-09-04 13:03:16 +00:00
|
|
|
- target: https://example.com/post
|
|
|
|
supported: true
|
|
|
|
scanned_at: 2021-08-13T17:07:00Z
|
|
|
|
last_sent_at: 2021-08-13T17:07:00Z
|
|
|
|
```
|