Genja documentation#

Genja is a simple static site generator for GitHub Pages. It is a command line tool built in Python that generates HTML files and a JSON feed from Markdown content.

Getting started#

Genja is distributed on PyPI. Instructions for installing and using Genja are given below.

Installation#

Download and install Python from https://www.python.org or from Anaconda at https://www.anaconda.com. After installing Python, create and activate a virtual environment as shown below:

python -m venv .venv
source .venv/bin/activate

Install the Genja package in your Python environment using pip:

pip install genja

Check the installed version from the command line:

genja --version

Usage#

Before running genja, create a project structure as shown below. The content directory contains Markdown files that are used to generate HTML files. The templates directory contains Jinja templates that are used to render the HTML pages. The docs directory contains the built website which can be hosted with GitHub Pages. Lastly, the config.json defines the URLs and directories for the project.

myproject/
├── content/
├── templates/
├── docs/
└── config.json

The items in the config.json are shown below. The base_url is the URL for the homepage of the website. Markdown files that are parsed by Genja are located in the input_dir directory. The HTML files generated from Genja are located in the output_dir directory. Static content such as images and CSS files should go in the output directory.

{
    "base_url": "https://example.com/mywebsite",
    "input_dir": "content",
    "output_dir": "docs"
}

Use the serve command to build the website and start a local server. This will automatically open the default web browser to view the website. The website will automatically reload when changes are saved to the Markdown files.

genja serve

Use the build command to build the website without running a local server.

genja build

Example#

A full example is available on GitHub in the Genja repository.

To run the example, go to the example directory in the repository. The mdcontent folder is the input directory containing the Mardkown files. The website folder is the output directory containing the built HTML files. Use the commands shown below to build the website and run a local server to view the website in the default web browser. The website will automatically reload in the web browser when changes are saved to the Markdown files.

cd example
genja serve

Use the commands shown below to build the example website without starting a local server.

cd example
genja build

Indices and tables#