<div align="center">
<h1> π§ Work In Progress π§ </h1>
<br>
<img src="assets/logo.png"/>
<br>
<h1> Agadir (β΄°β΄³β΄°β΄·β΅β΅) </h1>
<h2> Blogging over the terminal </h2>
</div>
## π Installation
### π₯ Binary release
You can download the pre-built binaries from the release page [release page](https://github.com/pythops/agadir/releases)
### π¦ crates.io
You can install `agadir` from [crates.io](https://crates.io/crates/agadir)
```shell
cargo install agadir
```
### βοΈ Build from source
Run the following command:
```shell
git clone https://github.com/pythops/agadir
cd agadir
cargo build --release
```
This will produce an executable file at `target/release/agadir` that you can copy to a directory in your `$PATH`.
## π Naviguation
`j` or `Down` : Scroll down.
`k` or `Up`: Scroll up.
`G`: Go to the end.
`gg`: Go to the top.
`Enter`: Show the content of the post.
`Esc`: Go to the table of content.
## π° Post format
the posts **should** have the following format:
```
---
title: Your post title here
created_at: DD/MM/YYYY
modified_at: DD/MM/YYYY
---
Your post content goes here in Markdown format.
```
## βοΈ Configuration
The main directory is `$HOME/.agadir`, and it can be overriden with `AGADIR` env variable.
Its structure is as follows:
```
.agadir/
βββ key
βββ posts/
βββ assets/
β βββ fig.png
βββ post_1.md
βββ post_2.md
```
- `key`: This is the server signing key. It is generated once at the startup and used everytime the server restarts.
- `posts`: This is where the posts should be located.
- `assets`: This directory serves as a place to store images/figures for the posts.
## π Deploy
The default listening port is `2222` and can be customized with `--port` or `-p` cli option.
## πTodo
- [ ] Adjust the terminal size based on the client.
- [ ] Display images.
- [ ] Load posts from remote git repositories.
## πΈ Demo
```
ssh blog.pythops.com
```
## βοΈ License
GPLv3