Metadata-Version: 2.1
Name: budg
Version: 1.0.0
Summary: A KISS Plugin Based Static Site Generator
Author-email: Fares Ahmed <fares@duck.com>
License: BSD Zero Clause License
        
        Copyright (c) 2023 Fares Ahmed
        
        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
        OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
        
Project-URL: Homepage, https://faresbakhit.github.io/budg
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
License-File: LICENSE

# 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 git@github.com: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.
```
