hablo/README.md

87 lines
3.4 KiB
Markdown

# 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](https://www.haskell.org) and uses [cabal](https://www.haskell.org/cabal) for installation. The following instructions assume your version of cabal is fairly recent (≥ 1.24) please [adapt them](https://www.haskell.org/cabal/users-guide/intro.html) 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
```bash
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 ?
```bash
nix-env -f 'https://git.marvid.fr/Tissevert/mynixpkgs/archive/main.tar.gz' -i hablo
```
Visit my [Nix packages](https://git.marvid.fr/Tissevert/mynixpkgs) for a more declarative setup.
#### Manual install from this repository
Get a copy of this repository
```bash
git clone https://git.marvid.fr/Tissevert/hablo.git
```
Build the binary
```bash
cabal new-update
cabal new-build
```
Install the result
```bash
cabal new-install hablo
```
### Dependencies
Hablo requires [UnitJS](https://git.marvid.fr/Tissevert/UnitJS) which is handled by [SJW](https://git.marvid.fr/Tissevert/SJW). Make sure you have installed it regularly with `SJW`. If it isn't yet, the following commands should help you:
```bash
cd /tmp
git clone https://git.marvid.fr/Tissevert/UnitJS.git
cd UnitJS
mkdir -p ~/.sjw
cp -r src/ ~/.sjw/unitJS
```
### Using hablo (tutorials)
Wanna give it a try ? Start by [generating your blog](https://git.marvid.fr/Tissevert/hablo/wiki/Generating%20your%20blog)
Want to see your blog in a web browser ? How about reading a bit about [deployment](https://git.marvid.fr/Tissevert/hablo/wiki/Deploying%20a%20hablo%20blog) 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](https://git.marvid.fr/Tissevert/hablo/wiki/Customizing%20your%20blog).
## 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
- [Command line](https://git.marvid.fr/Tissevert/hablo/wiki/Command-line) arguments and options
- articles [metadata](https://git.marvid.fr/Tissevert/hablo/wiki/Metadata)
- template [variables](https://git.marvid.fr/Tissevert/hablo/wiki/Template%20variables)
### 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](https://git.marvid.fr/Tissevert/hablo/wiki/Architectural%20choices)