All Projects → betodealmeida → nefelibata

betodealmeida / nefelibata

Licence: MIT License
A weblog engine focusing on data ownership and persistence

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to nefelibata

microlight
A fully IndieWeb-compatible PHP blogging engine
Stars: ✭ 35 (+40%)
Mutual labels:  indieweb, blog-engine
sweetroll2
A powerful micro/blogging engine with IndieWeb features (abandoned)
Stars: ✭ 27 (+8%)
Mutual labels:  indieweb, blog-engine
entries.pub
WIP IndieWeb blog engine
Stars: ✭ 13 (-48%)
Mutual labels:  indieweb, blog-engine
RooCMS
RooCMS - This is easy and convenient content management system designed to quickly create websites.
Stars: ✭ 21 (-16%)
Mutual labels:  blog-engine
transformative
IndieWeb personal website software.
Stars: ✭ 47 (+88%)
Mutual labels:  indieweb
yozuch
reStructuredText based static blog generator
Stars: ✭ 28 (+12%)
Mutual labels:  blog-engine
xipblog
Prestashop 1.6 & 1.7 Xpert Blog Module
Stars: ✭ 34 (+36%)
Mutual labels:  blog-engine
indigenous-ios
An IndieWeb app with extensions for sharing information to micropub endpoints and reading from microsub endpoints
Stars: ✭ 41 (+64%)
Mutual labels:  indieweb
microsub
For tracking issues on the Microsub specification
Stars: ✭ 23 (-8%)
Mutual labels:  indieweb
smallblog
Flat file markdown blogging system with filesystem watch and extended markdown support
Stars: ✭ 23 (-8%)
Mutual labels:  blog-engine
microblog
A very simple PHP app that stores twitter-like status updates in a sqlite database.
Stars: ✭ 30 (+20%)
Mutual labels:  indieweb
IndieNews
📰 News aggregator for IndieWeb-related posts
Stars: ✭ 32 (+28%)
Mutual labels:  indieweb
minimal
Website and blog generator for Go, Node.js or Python
Stars: ✭ 94 (+276%)
Mutual labels:  blog-engine
wit-cms
A flat-file, markdown-based, blog-aware content-management system for Express.
Stars: ✭ 27 (+8%)
Mutual labels:  blog-engine
paulrobertlloyd-v4
My personal website. There are many like it, but this is mine.
Stars: ✭ 78 (+212%)
Mutual labels:  indieweb
indieweb-search
Source code for the IndieWeb search engine.
Stars: ✭ 16 (-36%)
Mutual labels:  indieweb
smix-eleventy-starter
A standards-respecting starter kit for Eleventy. Go Indie.
Stars: ✭ 108 (+332%)
Mutual labels:  indieweb
flatboard
A very Fast & Lightweight Flat-file forum software, Markdown and BBcode editor.
Stars: ✭ 30 (+20%)
Mutual labels:  blog-engine
simple-blog-engine-for-asp-net-core
A simple blog engine for ASP.NET Core developers.
Stars: ✭ 15 (-40%)
Mutual labels:  blog-engine
shpub
command line micropub client
Stars: ✭ 20 (-20%)
Mutual labels:  indieweb

nefelibata

Documentation Status

PyPI - Python Version

A blog engine focusing on data ownership and persistence.

How is it different?

Nefelibata (Portuguese for "one who walks on clouds") is an IndieWeb static website generator written in Python 3 that focus on preserving your content. In order to achieve that goal, it works similarly to common static website generators, with the following design decisions:

  • Each post is a separate directory. The actual post is written in Markdown and stored as an email message, and each post can have its own images, CSS, Javascript and other files.
  • Posts are converted into HTML and/or Gemtext, and the resulting site is composed of only static files. There are no databases, and all extra data is stored in JSON files.
  • External images are locally mirrored when the site is built, and the link is altered to point to the local resource.
  • External links are saved to the Wayback Machine, and links are annotated with the archived link and date of archival, allowing readers to follow the original links even if they change in the future. The site and new posts are also automatically archived.
  • The site can be published to different locations, using a plugin architecture. Currently, nefelibata supports publishing to Amazon S3, FTP, and arbitrary commands.

The IndieWeb

Nefelibata acknowledges that most interactions occur in social networks like Twitter or Mastodon. The engine can be configured with global or per-post announcers that will post to social networks linking back to the content, so that people can comment and discuss posts outside of the site, a concept called POSSE (Publish on your Own Site, Syndicate Elsewhere) in the IndieWeb.

When the site is rebuilt, the announcers will collect any replies and store them locally, so that the comments are displayed in the site with your post. A post can be announced to multiple social networks, and the comments will be aggregated and preserved.

Getting started

Installation

First install nefelibata using a virtual environment:

$ pip install nefelibata

This will add a program called nb to your path.

If you're impatient, you can run:

$ nb init blog
$ cd blog
$ nb build

And looks at the files inside the build/ directory.

Creating the site directory

Once you have installed nefelibata you should initialize a directory that will hold your content:

$ nb init blog
$ ls blog
nefelibata.yaml  nefelibata.yaml.full  posts/  templates/

Here, the file nefelibata.yaml stores the configuration for your site. The posts/ directory will contain your posts, and should already have a directory called first/ with an initial post. The templates/ directory has the templates for generating your blog and its Atom feed, as well as a Gemini capsule. Multiple themes are supported for the HTML builder, but there's currently only one called "minimal".

Configuring your site

The file nefelibata.yaml.full has comments describing all the sections. You can edit it and rename it to nefelibata.yaml.

Creating a new post

Your skeleton blog already has a post called first/. You can edit that post, or create a new one with the command:

$ nb new "Hello, World!"

(Note that you always need to run the nb command from inside your site directory.)

This will create a new directory called hello_world/, with the following structure:

posts/hello_world/
posts/hello_world/index.mkd

If you have the EDITOR environment set, nefelibata will automatically open your editor to edit index.mkd. You can place any custom CSS, Javascript or images in the corresponding directories, or any other extra files in the hello_world/ directory.

You'll notice that the index.mkd file has headers and a body. The file itself is actually stored as an email, using the RFC 5322 format. The most important headers are:

  • subject: this is the title of your post.
  • summary: this is a one-line summary of your post.
  • keywords: a comma-separated list of keywords/tags.

Additionally, once the post is published a date header will be added.

Building the site

To build your site, simply run:

$ nb build

This will convert the Markdown files to HTML and/or Gemtext and build the site, with pages for tags and categories as well. Later, once posts have been announced to social networks, this command will also collect replies and store them locally as YAML files.

Publishing the site

Finally, you can publish your site with the command:

$ nb publish

This will upload the site using any configured publishers (like S3), and announce new posts to social networks.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].