Just run:
pip install Peji
You should already have the Python setuptools
package installed.
Clone repo:
git clone https://gitea.nixhacks.net/ge/peji.git
cd peji/
Run:
pip install .
pip automatically runs setup.py
and install all dependencies.
Pēji provides small command line interface.
App supports only two commands:
create SITE
Create new site in directory SITE. For example:
peji create mysite
In mysite/
dir will be created standard file structure. See Site structure below.
build
Render HTML pages and place it with other static content into mysite/build/
directory.
You can choose specific directory instead of build/
if pass -d
(or --dir
) option. For example, build site into my_static_site/
:
peji build -d my_static_site/
After creating site you have this site structure:
mysite/
├── config.yaml
├── layouts
│ ├── base.j2
│ └── index.j2
├── pages
└── themes
└── default
├── css
│ └── main.css
├── images
└── js
There is:
base.j2
and index.j2
is used.peji build
.Like many other static site generators and flat-file CMS, in Pēji metadata is required for Markdown files.
Metadata must be appended to the beginning of the markdown file and is surrounded by a triple minus sign at the beginning and end. Data are presented in YAML format. Example:
---
title: My page title
layout: index.j2
theme: my_theme
---
# Your markdown text here
At the moment the application only supports these three properties. Consider each:
Page title. Is appended in HTML <title></title>
.
Default: No default value. This property is required.
You can set custom template for specific page. Template file must be placed into layouts/
directory.
Default: index.j2
Custom theme (CSS) for page. By default themes are placed into themes/<theme_name>/
. In this property you only need to specify the <theme_name>
, you don't need to specify the path.
Default: default
Page variables are passed to Jinja2 templates. Below is a description of each variable. A colon separated from the name of a variable indicates its type (see Python Data Types, [Docs]).
config.yaml
is used.config.yaml
(named title
). See Configuration.config.yaml
's menu
.This is a string containing HTML-converted Markdown text. In the template, this variable must be used with safe
to avoid escaping HTML tags. Usage example:
{{ content | safe }}