Skip to main content

A simple private blogging system

Project description

gresiblos

License: BSD PyPI version test Downloads Downloads Coverage Status Documentation Status Dependecies

Donate

Introduction

gresiblos is a simple blogging system written in Python. gresiblos generates static HTML pages from optionally annotated text, markdown, or HTML files. gresiblos is the acronym for greyrat's simple blog system.

gresiblos reads blog entries from files that may include some meta information and embeds the contents into a template. Optionally, in addition, it generates a json-file with meta information about the entries. gresiblos comes with a php-file that realises browsing, as well as with a php-file that generates rss and atom feeds.

Usage

Write your blog entries as text, markdown or HTML.

Then run gresiblos on it:

python src\gresiblos.py entry1.txt

… and it will convert it into a complete HTML page using the default template stored in ./data/.

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 discussions about gresiblos.

Additional documentation includes a page with relevant links or the ChangeLog.

License

gresiblos is licensed under the BSD license.

Installation

The current version is gresiblos-0.8.0.

You may install gresiblos using

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.

Status

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

The next steps to release 1.0 will involve some refactorings, including API changes.

Please let me know if you have any idea / feature request / question / whatever or contribute to gresiblos

Examples

gresiblos is used at the following pages:

Changes

gresiblos-0.8.0 (05.07.2025)

  • improved installation (can be now included as a module and executed on the command line after being installed with pip
  • the default template is now included in the package
  • some linting
  • corrected documentation

gresiblos-0.6.0 (30.03.2025)

  • improving the documentation
  • changed the license from GPLv3 to BSD
  • changes:
    • important: the replacement pattern for values within the template changed from %<FIELD_NAME>% to [[:<FIELD_NAME>:]]
    • topics are stored as list in the index file
    • the filenames in the index now include the extension
    • the state attribute was removed from the index file
    • replaced option --have-php-index by the option --topic-format <FORMAT> which directly defines how each of a blog entries topics shall be rendered when embedding it into the template
    • removed options --default-author <NAME>, --default-copyright-date <DATE>, --default-state <STATE> and introduced replacements with defaults instead
  • new
    • the indentation level of the index file can now be set using the option --index-indent <INT>
    • you may use a different format for the date in your entries than the ISO-format by defining it using --date-format <DATE_FORMAT>
    • added the possibility to skip document parts using the begin/end tags [[:?<FIELD_NAME>:]] and [[:<FIELD_NAME>?:]] if <FIELD_NAME> is not set

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.8.0.tar.gz (21.1 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.8.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gresiblos-0.8.0.tar.gz
Algorithm Hash digest
SHA256 5d7133b1cc5ac2344a2b8bff47ebb24a4ec3edd80dd1c9426a6c4cf1aab0d51f
MD5 52f5c2e890ba806162d725aaf6f54d80
BLAKE2b-256 99aedd1d1b8b56cce1a00b91d841255a97035a9b945861e8610cf72b0a7b6376

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gresiblos-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ba7126616c6058d3e217ce0b1ed16906a53422e5ae0d1813e04b48cad39db60
MD5 7bd7f3dd5f5a71aaa644616a61909965
BLAKE2b-256 8abda1967d51aa9c536861d78c21a2ede77c533878bf6f98788a68af39b58147

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