A minimalist blog generator
Go to file
Tissevert fd88140d44 Remove redundant imports following simplifications in 9a11840 2023-08-20 22:36:35 +02:00
doc Release 1.1.0.0 with RSS feeds and static pages 2020-12-14 10:24:01 +01:00
share Release 1.1.0.1 2021-01-20 13:48:21 +01:00
src Remove redundant imports following simplifications in 9a11840 2023-08-20 22:36:35 +02:00
test Port test to HUnit 2023-08-20 22:35:03 +02:00
.gitignore Port test to HUnit 2023-08-20 22:35:03 +02:00
CHANGELOG.md Release 1.1.0.1 2021-01-20 13:48:21 +01:00
LICENSE Initial draft 2019-01-27 21:43:19 +01:00
README.md Stop relying on cabal auto-generated stuff 2023-08-04 10:39:57 +02:00
Setup.hs Initial draft 2019-01-27 21:43:19 +01:00
ghc-template.scm Fix devel package for hablo, clean package for ghc-template and add unitJS as a runtime dependency 2023-08-04 16:33:06 +02:00
guix.scm Port test to HUnit 2023-08-20 22:35:03 +02:00
hablo.cabal Port test to HUnit 2023-08-20 22:35:03 +02:00
hablo.svg Add a logo for the project 2019-02-19 21:58:21 +01:00

README.md

Hablo

Hablo is a minimalist tool written to generate a simple blog structure from markdown articles.

Its key principles are to keep your blog a collection of markdown files while being completely static, leveraging the fediverse to handle comments. The best image you can have of a hablo blog is a HTML/JS article viewer. Despite this heavy usage of JS, it strives to provide a clean site that can still be displayed if JS is disabled and used to get links to the markdown files themselves.

Getting started

Installation

Hablo is written in haskell and uses cabal for installation. The following instructions assume your version of cabal is fairly recent (≥ 1.24) please adapt them if you're running an older version of it, for instance on a Debian Jessie (the same command without the new- prefix roughly work but you might want to use sandboxes — read about it).

Simple install with cabal

Just issue the following line in a terminal

cabal new-install hablo

Alternatively, if you prefer to do things yourself you can do a

Simple install with nix

Want to give hablo a quick try using nix ?

nix-env -f 'https://git.marvid.fr/Tissevert/mynixpkgs/archive/main.tar.gz' -i hablo

Visit my Nix packages for a more declarative setup.

Manual install from this repository

Get a copy of this repository

git clone https://git.marvid.fr/Tissevert/hablo.git

Build the binary

cabal new-update
cabal new-build

Install the result

cabal new-install hablo

Dependencies

Hablo requires UnitJS which is handled by SJW. Make sure you have installed it regularly with SJW. If it isn't yet, the following commands should help you:

cd /tmp
git clone https://git.marvid.fr/Tissevert/UnitJS.git
cd UnitJS
mkdir -p ~/.sjw
cp -r src/ ~/.sjw/unitJS

Then, the static data used by hablo need to be available in a XDG path. Depending on whether you are installing for your user or system-wide, you may want to perform something either

cp -R share ~/.local/share/hablo

or

sudo cp -R share /usr/local/share/hablo

Using hablo (tutorials)

Wanna give it a try ? Start by generating your blog

Want to see your blog in a web browser ? How about reading a bit about deployment to get your local environment ready or setup a publicly available one ?

A bit of stretching (how-to)

Got the basics ? Wondering how to turn the dummy blog project you've created into a magnificent blog ? You should read about customization.

Exploring things in depth

If you know everything you need to start your blog and use hablo, here are some full references to help you when you need a precise description of how some option works or what metadata you can include in your articles.

References

Explanation

If you want a more general view of the project to understand its background and the logic behind the way the various options work, read about the architectural choices