Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/soupi/hablog

A simple blogging platform with Haskell and Scotty
https://github.com/soupi/hablog

blog haskell markdown scotty web

Last synced: about 2 months ago
JSON representation

A simple blogging platform with Haskell and Scotty

Awesome Lists containing this project

README

        

Hablog
======

[![Hackage](https://img.shields.io/hackage/v/hablog.svg)](http://hackage.haskell.org/package/hablog)

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
============

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

Running
=======

```
hablog --title --theme --domain [--port --tls-cert --tls-port ]
```

- `` is the title you want in the HTML headers;
- `` is `light` or `dark`, depending on the theme you want, to create your own themes look at the examples in [/static/css](https://github.com/soupi/hablog/tree/master/static/css);
- `` is the domain you're running the blog on;
- `` is `http`, `https`, or `both`;
- `` is the `http` port (not required if `COMMAND` is `https`);
- `` is the `https` certificate (not required if `COMMAND` is `http`);
- `` 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
1. 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

```markdown
title:
route:
authors:
date: yyyy-mm-dd
tags:

---

```

## A Page's Structure

```markdown
title:
route:
---

```

## 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