#git-repository #git-commit #git #static-site-generator #cli

app glessite

A simple static site generator based on a git repository commits

2 releases

0.2.1 Feb 7, 2023
0.2.0 Feb 7, 2023

#2390 in Development tools

MIT license

15KB
309 lines

Glessite

Rust

A simple static site generator based on commits from a git repository.

How to use

The program expect to be launched within a git repository. If so, it will walk through the commit history and pick those whose title are prefixed by POST: . For every "post" found, an entry will be added to the index page, and a simple HTML page will be generated using the title and the body (if present) of the commit.

All the generated files will be stored in a public folder in the current working directory.

CLI

Glessite offers some options:

-r, --repository <REPOSITORY>  Repository to use, default to current working dir, must be a valid path to a directory containing a .git
-o, --output-dir <OUTPUT_DIR>  Output directory, default to `public`
-p, --prefix <PREFIX>          Prefix to filter posts from normal commits, detault to `POST: `
-n, --no-prefix                If present, every commit will be used, prefix option is ignored

Workflow example

  1. Create a "post" commit
# Inside a git repository
git commit --allow-empty -m "POST: Title" -m "Body of the post"
  1. Generate the site
glessite
  1. View the result by opening the generate web pages in a browser, for example
firefox public/index.html
# or
python -m http.server --directory public

How to build and install

  1. Install Rust, this documentation assume that you have access to the cargo command

With crates.io

  1. Install the crate
cargo install glessite

Manually

  1. Download the repository and compile:
git clone https://github.com/Lozul/glessite
cd glessite
cargo build --release
  1. Install the crate
cargo install --path .

How to uninstall

cargo uninstall glessite

License

This projet is under the MIT License.

The logo use the font Source Code Pro released under the SIL Open Font License 1.1.

Where does the name come from

Glessite is a type of natural resin, found it on this page. The name started with G like Git and ended with site, which fitted with the project being a site generator.

Dependencies

~16MB
~333K SLoC