Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/soupi/hablog
- Owner: soupi
- License: mit
- Created: 2015-02-22T20:43:27.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2021-12-25T09:36:08.000Z (about 3 years ago)
- Last Synced: 2024-04-24T02:56:04.027Z (8 months ago)
- Topics: blog, haskell, markdown, scotty, web
- Language: Haskell
- Homepage:
- Size: 225 KB
- Stars: 38
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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