<a href="">
  <img alt="reblog" src="" width="275">


> _High performant_ static blog generator.

# WIP :: No releases available. Comeback later.

To view an existing blog generated with `reblog` see [`code-null`](

# Setup

The following is to setup your environment to run `reblog`.

You can do this by using [docker]( or
natively with [erlang]( and [elixir](

### Using [Docker](

Run the following command to execute `reblog`.

docker run -v $(pwd):/context -u `id -u $USER`:`id -g $USER` nate-wilkins/reblog


To make things easier there's a helper script to run the above command more easily.
You can run the following to symlink the helper file into your `~/bin/` directory.

_NOTE:_ Make sure that `$HOME/bin` is in your `$PATH`.

git clone ~/.local/src/reblog

chmod +x ~/.local/src/reblog/
ln -sf ~/.local/src/reblog/ ~/bin/reblog


## Using [Erlang]( and [Elixir](

Install `reblog` from [hex]( using the following command.

mix archive.install hex reblog

Once installed you can run `reblog` with `mix`.

mix reblog

# Getting Started

1) Initialize a new blog.

reblog init my-blog

This will create a new blog with the following structure.

├─ _site/
├─ assets/
│  └─ favicon.svg
├─ pages/
│  └─ about.eex
├─ posts/
│  ├─
│  └─ .layout.eex
└─ .layout.eex

2) Build the blog.

reblog build

3) Deploy the blog locally.

reblog deploy -t local -a port=7575

4) Open a browser to [http://localhost:7575](http://localhost:7575)


## Posting

To add a new blog post just add a new markdown post to the `posts` directory following the `` format.

You can also use the `reblog post` command to automatically create a new post.

reblog post my-post-title

## Custom Pages

To add a custom page just add a new markdown page to the `pages` directory.

You can also use the `reblog page` command to automatically create a new page.

reblog page my-page-title

## Themeing

To build using a different theme run `reblog build -t <theme>` where `<theme>` is a valid theme.

To list all available themes run `reblog theme --list`.

__Custom Themes__

__NOTE:__ It is highly suggested that you start out with a preexisting theme before moving on to a custom one.

reblog theme --new

The general idea is to constantly rebuild the blog while developing your theme.

reblog deploy -t local -a port=7575 livereload

## Providers

To deploy using a different provider run `reblog deploy -p <provider>` where `<provider>` is a valid provider.

To list all available providers run `reblog provider --list` or visit [](./docs/ to learn more.

# Development

To build the reblog command line use `mix` to learn more see [executables]( on [elixirschool](

To test run `escript reblog` with the arguments you want to test with.

# Roadmap

- List of sites that use `reblog`.
- More themes! :trophy:
- More providers! :trophy:
- Add livereload for optimal development.