Static website generator inspired by jekyll based on flask.
Flekky is a static website generator inspired by Jekyll but written in python and based on Flask. It is basically a wrapper around the excellent Frozen Flask and Flask FlatPages as described in this article by Nicolas Perriault.
So what does it do? It allows you to write templates, assets and contents for your website and bake all that into static HTML. You can than deploy that HTML on any webserver and do not have to worry about anything. Jinja2 is used for templating. Markdown is used for creating content.
There are many static website generators out there of which Jekyll is arguably the most popular. You are probably better of with that. But if you like Flask and have fun experimenting with things you might give Flekky a try.
$ pip install flekky $ flekky init $ flekky build
To start a new project, run the init command:
$ flekky init
You can generate static HTML by using the build command:
$ flekky build
Flekky also comes with a built-in development server that will allow you to preview what the generated site will look like in your browser locally:
$ flekky serve
A basic Flekky site usually looks like this:
_source ├── pages │ ├── index.md │ └── test.md ├── static │ ├── css │ │ └── style.css │ └── js └── templates ├── base.html ├── layout │ ├── category.html │ ├── default.html │ ├── post.html │ └── tag.html └── partial.html
An overview of what each of them does:
Flekky has several command-line options:
Flekky makes a variety of data available to the templating system. The following is a reference of the available data.
A page is a Markdown file in the pages folder. However, at the top of the file you can (and should) set some meta data using YAML syntax. All key-value pairs defined here will be available in the templates. But some fields also have a special meaning:
The content of a page can be accessed via its html attribute. However, in many cases you may want to shift all headings by one or two levels in order to fit the content into the document outline. This can be done by using fix_outline(baseheading_level).
The site object stores all data that applies to the whole project. This also includes any metadata from index.md.
Flekky aims at being very similar to Jekyll. However it is far from being a drop-in replacement. Some of the missing features might be added in the future. For now, these are some of the most important differences:
Copyright (C) 2014 Tobias Bengfort firstname.lastname@example.org
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.