Skip to main content

A simple private blogging system

Project description

gresiblos

License: GPL-3.0 PyPI version test Downloads Downloads Coverage Status Documentation Status Dependecies

Donate

gresiblos — a simple private blogging system.

Introduction

gresiblos is a radically simple static site generator / blogging system written in Python. It generates static HTML pages by embedding the contents of text, markdown, or HTML-snippet files into a template. It has no dependencies and no server backend is needed. gresiblos is the acronym for greyrat's simple blog system.

gresiblos reads blog entries from files that may include some meta information and embeds their contents into a template. It optionally generates: a) a JSON-file with meta information about the entries, b) lists of the entries sorted alphabetically or chronologically, c) RSS 2.0 and Atom feed files. gresiblos comes with a basic php-file that realizes browsing by topic and/or entries.

You may see it's results here: https://www.krajzewicz.de/blog/index.php.

Usage

gresiblos is started on the command line. Write your blog entries as text, markdown, or HTML.

Assuming they are stored in the ‘blog’ folder, run gresiblos on them like:

gresiblos ./blog/*.txt

… and it will convert them into complete HTML pages using a default template and store them into the folder ‘gresiblos_out’.

You may as well add some meta data, storing the blog entry contents under the contents key:

state:release
title:My first blog entry
filename:my-first-blog-entry
author:Daniel Krajzewicz
date:26.12.2024 19:25
topics:blog,example
abstract:A very first introduction into blogging
content:
<b>Hello there!</b><br/>
This is my very first blog post!
===

All information starts with a key that is separated from the value by a ‘:’. Multi-line values start with a new line after the key and the ‘:’ and are closed with ‘===’. Please note that the content is kept as-is in the current version.

Again, when starting gresiblos, the meta information and the contents will be stored at marked places within the template.

gresiblos templates support placeholders that be filled by meta information, as well as optional fields.

You may find further information at the gresiblos documentation pages.

Documentation

gresiblos is meant to be run on the command line. The documentation consists of a user manual and a man-page like call documentation (yet incomplete).

If you want to contribute, you may check the API documentation or visit gresiblos on github where besides the code you may find the gresiblos issue tracker or a discussions about gresiblos section.

Additional documentation includes a page with relevant links or the ChangeLog. You may find the complete documentation at the gresiblos readthedocs pages.

License

gresiblos is licensed under the GPL-3.0 license.

Installation

The current version is 0.10.0. You may install the latest release using pip:

python -m pip install gresiblos

Or download the latest release from github. You may as well clone or download the gresiblos git repository. There is also a page about installing gresiblos which lists further options.

Background

I wanted to have a blog and I wanted it to use static pages. That's why I wrote gresiblos. It has some specific features — like the inclusion of custom JavaScript and CSS files — I needed for my own blog.

Status & Contributing

gresiblos works as intended for me, but lacks quite some features of enterprise systems.

Please let me know if you have any idea / feature request / question / whatever or contribute to gresiblos by adding an issue or by dropping me a mail.

Examples

gresiblos is used at the following pages:

Changes

gresiblos-0.10.0 (06.04.2026)

  • changed the license from BSD to GPL-3.0
  • added file output for rss/atom feeds instead of using a php-script
    • use --rss-output and --atom-output to respectively generate RSS 2.0 and Atom feeds
    • according options had to be added (--feed-title, --feed-site, --feed-description, --feed-editor-email, --feed-editor-name, --feed-language, --feed-copyright, --feed-utz)
    • removed the feed.php script
  • added an option --to-html that embeds links in <a> tags and text paragraphs in <p> tags for converting text files to basic HTML files
  • much debugging and code cleaning
  • API / breaking changes
    • the list of items is now a JSON list, no longer a dict
    • the template has been updated
  • updated index.php
    • removed cross site scripting vulnerability
  • extended the documentation — split the user manual into parts

Older versions

You may find the complete change log at the gresiblos documentation pages.

Background

I wanted to have a blog and I wanted it to use static pages. That's why I wrote it. gresiblos has some additional features — like the inclusion of custom JavaScript and CSS files — I needed for my own blog.

Closing

Well, have fun. If you have any comments / ideas / issues, please submit them to gresiblos' issue tracker on github or drop me a mail.

Don't forget to spend a star!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gresiblos-0.10.0.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gresiblos-0.10.0-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file gresiblos-0.10.0.tar.gz.

File metadata

  • Download URL: gresiblos-0.10.0.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for gresiblos-0.10.0.tar.gz
Algorithm Hash digest
SHA256 88650ebbe7c03a2a74c63559e28395a7b1997d0ba83ee415eecefac61b844229
MD5 838e9b85dd28c0fe86112df50cf2fdc6
BLAKE2b-256 1d77153d0bc031cfa85a13416ace67e5ea41e22e7a2a972437d40e875caab53a

See more details on using hashes here.

File details

Details for the file gresiblos-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: gresiblos-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for gresiblos-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c19334f5dcade07b025313ec85912eb4492256b1cf4a0a959d316545dac6d07
MD5 4aeb816b335d9428879a68db918ac1b8
BLAKE2b-256 9d0782653ef620d415038aa760909925e0d67f15eb5ca4af0286fa794200256d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page