A simple blogging platform with Haskell and Scotty
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Gil Mizrahi dd265ce071 Fix titles il y a 3 mois
_pages Home page and better mobile support for the light theme il y a 3 ans
_posts refactoring Post il y a 6 ans
app Update to stackage lts-16.15, add favicon and remove circle.yml il y a 1 an
src/Web Fix titles il y a 3 mois
static fix css to not overflow images il y a 9 mois
.gitignore use musl, update license, update dark.css il y a 1 an
LICENSE Add support for previews/twitter cards il y a 6 mois
Makefile use musl, update license, update dark.css il y a 1 an
README.md Add support for previews/twitter cards il y a 6 mois
Setup.hs fixing small configuration stuff il y a 5 ans
hablog.cabal Fix titles il y a 3 mois
package.zsh use musl, update license, update dark.css il y a 1 an
stack.yaml comment out using docker il y a 6 mois
stack.yaml.lock Update to stackage lts-16.15, add favicon and remove circle.yml il y a 1 an

README.md

Hablog

Hackage

A simple blog platform with tags. Made with Haskell and Scotty.

Hablog will read posts written in Markdown from the _posts folder.

License

Hablog is licensed under MIT license. This means the Haskell source files in the src directory. Highlight.js related content is not a part of Hablog and is not licensed by it.

Installation

git clone https://github.com/soupi/hablog
cd hablog
stack build

Running

hablog --title <TITLE> --theme <THEME> --domain <DOMAIN> <COMMAND> [--port <PORT> --tls-cert <TLS_CERT> --tls-port <TLS_PORT>]
  • <TITLE> is the title you want in the HTML headers;
  • <THEME> is light or dark, depending on the theme you want, to create your own themes look at the examples in /static/css;
  • <DOMAIN> is the domain you're running the blog on;
  • <COMMAND> is http, https, or both;
  • <PORT> is the http port (not required if COMMAND is https);
  • <TLS_CERT> is the https certificate (not required if COMMAND is http);
  • <TLS_PORT> is the https port (not required if COMMAND is http).

How to write a new post?

  1. All posts must go under the /_posts/ directory
  2. All pages must go under the /_pages/ directory
  3. The content of the post/page must correspond to a specific structure

A Post's Structure

title: <the title of the post>
route: <route to the post>
authors: <the author of the post, seperated, by, commas>
date: yyyy-mm-dd
tags: <tags for the post, separated, by, commas>

---

<The rest of the post in Markdown format>

A Page's Structure

title: <the title of the page>
route: <route to the page>
---

<The rest of the page in Markdown format>

Preview

If you want twitter/other previews to work as well, add the following definition at the header of a post or page. Not that image without image-alt won't work.

  • summary - For a summary of the post/page
  • image - A link to an image
  • image-alt - Alternative description for an image