3.8 KiB
title
| 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 mysiteIn
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.j2andindex.j2is 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.yamlis 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
safeto avoid escaping HTML tags. Usage example:{{ content | safe }}