Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/faresbakhit/budg

A KISS Plugin Based Static Site Generator
https://github.com/faresbakhit/budg

jamstack kiss plugins python ssg

Last synced: 25 days ago
JSON representation

A KISS Plugin Based Static Site Generator

Awesome Lists containing this project

README

        

# Budg

A KISS Plugin Based Static Site Generator

> Budg is 1.0! Budg is done and no further improvements will be made to the project. In the case of a security vulnerability, please read [SECURITY.md](/SECURITY.md).

- [Extend Budg](#extend-budg)
- [Installation](#installation)

## Extend Budg

Budg is very barebones on its own, the source code is only ~500 LOC with one dependency ([dacite](https://github.com/konradhalas/dacite)), and also one built-in plugin ([copier.py](/budg/plugins/copier.py)).

Users are able to add plugins of their own without changing budg's source code (see the [example](/example/) budgie) but there's still room for improvement:

- Add a new config format (see [decoders.py](/budg/decoders.py))
- Better error messages, maybe colored?
- More built-in plugins

All of that requires modifying Budg's source code so please fork Budg, extend it, patch what you don't like about it and never think about it, the [license](/LICENSE) is [0BSD](https://choosealicense.com/licenses/0bsd/)!

### Development Mode

Create a [virtual environment](https://docs.python.org/3/glossary.html#term-virtual-environment) and use pip's `-e/--editable` flag to install `budg` with the necessary dependencies for development.

```sh
> git clone [email protected]:faresbakhit/budg.git
> python -m venv .venv
# check venv's docs for instructions on how to
# activate the environment in your shell
(.venv) > pip install -e .[dev]
```

## Installation

Budg requires Python 3.8 or later, install with pip:

```sh
> python3 -m pip install budg
> budg --help
```

```text
Usage: budg [OPTIONS]

A KISS Plugin Based Static Site Generator

Options:
--config [PATH] Get configurations from a file or a python-funcion path.
[default: ./config.toml]
--config-format Format for configurations file. [default: toml]
--version Show the version and exit.
--help Show this message and exit.
```