3.8 KiB
title |
---|
Quickstart |
Quickstart
[TOC]
Installation options
Via pip from PyPI
Just run:
pip install Peji
Via setup.py
You should already have the Python setuptools
package installed.
Clone repo:
git clone https://gitea.gch.icu/ge/peji.git
cd peji/
Run:
pip install .
pip automatically runs setup.py
and install all dependencies.
Command line interface
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 intomy_static_site/
:peji build -d my_static_site/
Site structure
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:
- config.yaml
- Site configuration file. See more here.
- layouts/
- This folder contains Jinja2 templates. By default
base.j2
andindex.j2
is used. - pages/
- Place your markdown files here.
- themes/
- Contains CSS, JS and images that need for page design.
- build/
- Generated HTML files. Creates after running
peji build
.
Pages
Page metadata.
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:
- title
- Page title. Is appended in HTML
<title></title>
.Default: No default value. This property is required.
- layout
- You can set custom template for specific page. Template file must be placed into
layouts/
directory.Default:
index.j2
- theme
- 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
Templates (Layouts)
Page variables
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{target="_blank"}, [Docs]{target="_blank"}).
- theme: str
- Page theme. Can be specified in page metadata. Otherwise, the value from
config.yaml
is used. - title: str
- Required property, set in the page metadata.
- site_title: str
- Site title. Optional, set in
config.yaml
(namedtitle
). See Configuration. - description: str
- See. Configuration.
- menu: dict
- Contains a dictionary where the key is the title of the link and the key value is the URL of the link. The data is filled from
config.yaml
'smenu
. - content: str
- 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 }}