Go to file
Niko Abeler 8c1d7fd8c7 General rel=me support. Resolves #13 2022-11-01 21:35:47 +01:00
.vscode refactoring 2022-07-20 19:32:32 +02:00
assets removed reference 2022-08-15 21:37:04 +02:00
cmd/owl resolved warnings 2022-10-13 21:03:16 +02:00
embed General rel=me support. Resolves #13 2022-11-01 21:35:47 +01:00
.gitignore renamed old file 2022-08-24 21:15:23 +02:00
Dockerfile adjust Dockerfile 2022-09-05 21:23:43 +02:00
README.md more docs 2022-09-10 15:32:22 +02:00
directories.go resolved warnings 2022-10-13 21:03:16 +02:00
embed.go refactoring rendering 2022-08-18 21:06:06 +02:00
files.go refactoring yaml save/load into functions 2022-10-13 20:48:43 +02:00
go.mod start to use a proper cli library 2022-09-05 20:34:24 +02:00
go.sum start to use a proper cli library 2022-09-05 20:34:24 +02:00
owl_test.go more thread safety 2022-09-10 13:44:25 +02:00
post.go added some OpenGraph meta tags 2022-10-19 21:14:31 +02:00
post_test.go new posts as draft 2022-10-13 20:33:00 +02:00
release.sh release 2022-08-31 20:03:49 +02:00
renderer.go added some OpenGraph meta tags 2022-10-19 21:14:31 +02:00
renderer_test.go General rel=me support. Resolves #13 2022-11-01 21:35:47 +01:00
repository.go remove ioutil 2022-10-13 21:00:28 +02:00
repository_test.go new posts as draft 2022-10-13 20:33:00 +02:00
rss.go description in rss items 2022-10-14 21:06:26 +02:00
rss_test.go new posts as draft 2022-10-13 20:33:00 +02:00
user.go General rel=me support. Resolves #13 2022-11-01 21:35:47 +01:00
user_test.go favicon. #19 2022-11-01 21:14:03 +01:00
webmention.go refactoring webmention interface 2022-09-10 14:04:19 +02:00
webmention_test.go more thread safety 2022-09-10 13:44:25 +02:00

README.md

Mascot

Owl Blogs

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

A user has a collection of posts. Each directory in the /users/ directory of a repository is considered a user.

User Directory structure

<user-name>/
  \- public/
       \- <post-name>
            \- index.md
                -- This will be rendered as the blog post.
                -- Must be present for the blog post to be valid.
                -- All other folders will be ignored
            \- webmentions.yml
                -- Used to track incoming and outgoing webmentions 
            \- media/
                -- Contains all media files used in the blog post.
                -- All files in this folder will be publicly available
            \- webmention/
               \- <hash>.yml
                    -- Contains data for a received webmention
  \- meta/
       \- base.html
            -- The template used to render all sites
       \- VERSION
            -- Contains the version string.
            -- Used to determine compatibility in the future
  \- media/
       -- All this files will be publicly available. To be used for general files
       \- avatar.{png, jpg, jpeg, gif}
            -- The avatar for the user
  \- config.yml
        -- Contains settings global to the user.
        -- 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
date: 13 Aug 2022 17:07 UTC
aliases:
     - /my/new/post
     - /old_blog_path/
---

Actual post

webmentions.yml

incoming:
     - source: https://example.com/post
       title: Example Post
       ApprovalStatus: ["", "approved", "rejected"]
       retrieved_at: 2021-08-13T17:07:00Z
outgoing:
     - target: https://example.com/post
       supported: true
       scanned_at: 2021-08-13T17:07:00Z
       last_sent_at: 2021-08-13T17:07:00Z