A minimalist blog generator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
3.4 KiB

4 years ago
4 years ago
4 years ago
4 years ago
  1. # Hablo
  2. Hablo is a minimalist tool written to generate a simple blog structure from markdown articles.
  3. 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.
  4. ## Getting started
  5. ### Installation
  6. 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).
  7. #### Simple install with cabal
  8. Just issue the following line in a terminal
  9. ```bash
  10. cabal new-install hablo
  11. ```
  12. Alternatively, if you prefer to do things yourself you can do a
  13. #### Simple install with nix
  14. Want to give hablo a quick try using nix ?
  15. ```bash
  16. nix-env -f 'https://git.marvid.fr/Tissevert/mynixpkgs/archive/main.tar.gz' -i hablo
  17. ```
  18. Visit my [Nix packages](https://git.marvid.fr/Tissevert/mynixpkgs) for a more declarative setup.
  19. #### Manual install from this repository
  20. Get a copy of this repository
  21. ```bash
  22. git clone https://git.marvid.fr/Tissevert/hablo.git
  23. ```
  24. Build the binary
  25. ```bash
  26. cabal new-update
  27. cabal new-build
  28. ```
  29. Install the result
  30. ```bash
  31. cabal new-install hablo
  32. ```
  33. ### Dependencies
  34. 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:
  35. ```bash
  36. cd /tmp
  37. git clone https://git.marvid.fr/Tissevert/UnitJS.git
  38. cd UnitJS
  39. mkdir -p ~/.sjw
  40. cp -r src/ ~/.sjw/unitJS
  41. ```
  42. ### Using hablo (tutorials)
  43. Wanna give it a try ? Start by [generating your blog](https://git.marvid.fr/Tissevert/hablo/wiki/Generating%20your%20blog)
  44. 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 ?
  45. ## A bit of stretching (how-to)
  46. 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).
  47. ## Exploring things in depth
  48. 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.
  49. ### References
  50. - [Command line](https://git.marvid.fr/Tissevert/hablo/wiki/Command-line) arguments and options
  51. - articles [metadata](https://git.marvid.fr/Tissevert/hablo/wiki/Metadata)
  52. - template [variables](https://git.marvid.fr/Tissevert/hablo/wiki/Template%20variables)
  53. ### Explanation
  54. 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)