|
| 1 | +--- |
| 2 | +title: Slick |
| 3 | +repo: ChrisPenner/slick |
| 4 | +homepage: https://github.com/ChrisPenner/slick |
| 5 | +language: |
| 6 | + - Haskell |
| 7 | +license: |
| 8 | + - BSD-3-Clause |
| 9 | +templates: |
| 10 | + - Mustache |
| 11 | +description: Slick is a static site generator written and configured using Haskell. It's the spiritual successor to my previous static-site generator project SitePipe; but is faster, simpler, and more easily used in combination with other tools. |
| 12 | +--- |
| 13 | + |
| 14 | +Slick provides a small set of tools and combinators for building static |
| 15 | +websites on top of the [Shake](https://shakebuild.com/) build system. Shake is |
| 16 | +adaptable, fast, reliable, and caches aggressively so it's a sensible tool for |
| 17 | +static-site builds, but figuring out how to get started can be a bit abstract. Slick aims to answer the question of |
| 18 | +'how do I get a site building?' while giving you the necessary tools and examples to figure out how to accomplish your |
| 19 | +goals. |
| 20 | + |
| 21 | +Here's a quick overview of what Slick can do: |
| 22 | + |
| 23 | +- Slick uses the Shake build tool; the same used by ghcide! We recommend using `Development.Shake.Forward`; it auto-discovers which resources it should cache as you go! This means a blazing fast static site builder without all the annoying dependency tracking. |
| 24 | +- Slick provides helpers for loading in blog-post-like things using Pandoc under the hood; |
| 25 | + - This means that if Pandoc can read it, you can use it with Slick! |
| 26 | + - Write your blog posts in Markdown or LaTeX and render it to |
| 27 | + syntax-highlighted HTML! |
| 28 | + - Slick processes Pandoc (and LaTeX) metadata into a usable form (as an |
| 29 | + [Aeson](https://hackage.haskell.org/package/aeson) Value object) which you can manipulate as you please. |
| 30 | +- Slick provides combinators for rendering [Mustache templates](https://mustache.github.io/) |
| 31 | + - Slick wraps Justus Adam's [Mustache](http://hackage.haskell.org/package/mustache-2.3.0/docs/Text-Mustache.html) |
| 32 | + library and provides cached template rendering with awareness of changes to templates, partials, and Mustache |
| 33 | + objects. |
| 34 | + - It's a thin wrapper so you can still use things like Mustache functions, etc. if you like! |
| 35 | +- Provides only the individual tools without opinions about how to wire them up; if you want to load blog posts from |
| 36 | + a database and render them out using Blaze html; well go ahead, we can help with that! |
| 37 | +- Provides caching of arbitrary (JSON serializable) objects using Shake resulting in super-fast rebuild times! |
0 commit comments