Skip to content
python3-based, pelican-inspired static site generator
Python JavaScript CSS HTML Makefile
Branch: master
Clone or download
fscherf release v0.10.4
Signed-off-by: Florian Scherf <f.scherf@pengutronix.de>
Latest commit a45cf1b Aug 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin server: move SERVER_STATIC_ROOT from core to server Aug 13, 2019
flamingo-web.org flamingo-web.org: port to flamingo v0.10 Aug 3, 2019
flamingo release v0.10.4 Aug 16, 2019
tests server: add inplace rendering and log filtering Aug 3, 2019
.coveragerc initial commit Dec 2, 2018
.gitattributes core: add project templates Apr 23, 2019
.gitignore initial commit Dec 2, 2018
.travis.yml tests: run tests under python3.5, python3.6 and python3.7 Feb 20, 2019
CHANGELOG.rst doc: initial setup Feb 20, 2019
LICENCE Create LICENSE Dec 2, 2018
MANIFEST.in server: add inplace rendering and log filtering Aug 3, 2019
Makefile core: add project templates Apr 23, 2019
README.rst doc: readme: fix extensions in links for github Jul 3, 2019
REQUIREMENTS.dev.txt packaging: setup conditional dependencies Apr 8, 2019
pytest.ini pytest: show skip reasons Apr 23, 2019
setup.cfg packaging: add setup.cfg with description and classifiers Feb 20, 2019
setup.py
tox.ini tests: setup flamingo_tests Jun 26, 2019

README.rst

flamingo


pypi.org Travis branch pypi.org pypi.org codecov.io lgtm.com lgtm.com

What flamingo is and what it is not

Flamingo is a python3-based, pelican-inspired static site generator. This means you can only create content that doesn't require a dynamic backend, while users visit your site.

For example: If you want your site to have login for editing or comments or even the current time, flamingo is the wrong tool.

Basically flamingo is a fancy converter, that turns RST, MD or HTML code into HTML code. It doesn't provides an editor, user management or a backup solution like a CMS.

Any part of flamingo is designed to be easy, not to be fast!

Flamingo is full python and all operations run on python objects stored in RAM.

Getting Started

The simplest way to bootstrap a flamingo project is to use flamingo init. Flamingo does not enforce a specific project structure but comes with a number of project templates.

A list of available project templates, their descriptions and variables is available by running flamingo init -l.

$ pip install flamingo
$ flamingo init wobsite project_name="Wobsite"
$ cd wobsite/
$ make html

The content of wobsite will look like this:

wobsite/
├── content/          # flamingo will search for content here recursively
├── Makefile
├── overlay/          # here you can place files like a robots.txt or a
│                       favicon.ico
├── plugins/          # place your plugins here
├── README.rst
├── REQUIREMENTS.txt  # list of all python dependencies
├── settings.py       # all settings are stored here
└── theme/            # root of all HTML templates, CSS- and JS files

The new project comes with a gnu make file, that handles flamingo dependencies in a python virtualenv, setting the right python version and holds command line options for building.

To build the project run make html.

Flamingo comes with a interactive webserver for writing content and debugging. Run make server and go to localhost:8080/live-server/ with your browser. Let server and browser run while writing your content. Flamingo tracks file operations in content/, rebuilds updated files and refreshes the browser tab if needed.

Next Steps

Writing Content

Setup Markdown parser

Setup redirects to maintain historic links

Setup Internationalisation

Setup Tags

Setup Author Pages

You can’t perform that action at this time.