1
1
mirror of https://github.com/srid/rib.git synced 2024-12-02 10:23:46 +03:00
rib/README.md

62 lines
1.7 KiB
Markdown
Raw Normal View History

2019-07-01 01:06:16 +03:00
# rib
2019-07-01 01:06:16 +03:00
<!--
Credit for this image: https://www.svgrepo.com/svg/24439/ribs
-->
<img src="https://raw.githubusercontent.com/srid/rib/master/example/content/static/ribs.svg?sanitize=true" width="150" />
2019-07-01 01:06:16 +03:00
Rib is a static site generator written in Haskell using sensible technologies
2019-07-11 17:18:14 +03:00
like `Shake`, `Lucid` and `Clay`. It is still a work in progress but will soon
2019-07-02 16:27:37 +03:00
be ready for general use.
## Example
See `./example` (author's actual website in fact) to see how the `Rib` library
can be used to write your own static site generator in a few lines of code which
includes the HTML and CSS of the site:
```
$ cloc --by-file example/*.hs
[...]
-------------------------------------------------------------------------------
File blank comment code
-------------------------------------------------------------------------------
2019-07-03 16:39:47 +03:00
example/Main.hs 23 16 102
2019-07-02 16:27:37 +03:00
-------------------------------------------------------------------------------
```
With Rib you do not have to deal with the less powerful template engines or
write raw HTML/CSS by hand. Do everything in Haskell, and concisely at that!
## Local server when editing only content
```bash
2019-07-11 20:58:46 +03:00
nix-build
2019-07-02 16:27:37 +03:00
cd example
../result/bin/rib-example serve --watch
```
2019-07-11 20:58:46 +03:00
Or simply (no cabal file needed),
```bash
nix-shell ../default.nix --run "ghcid -c 'ghci -Wall -i../rib/src Main.hs' -T 'Rib.App.dev Main.settings' --reload=Main.hs"
```
## ... when hacking on Haskell sources
```bash
2019-07-11 20:58:46 +03:00
nix-shell --run "ghcid -c 'cabal new-repl rib-example' -T
'System.Directory.withCurrentDirectory \"example\" \$ Rib.App.dev Main.settings'"
```
### Article Ideas
- Github CI for OSS haskell projects
- Lens and friends
- mtl
- string types
- personal nix cache