|
@@ -1,4 +1,5 @@ |
|
|
# zola (né Gutenberg) |
|
|
# zola (né Gutenberg) |
|
|
|
|
|
|
|
|
[![Build Status](https://travis-ci.com/getzola/zola.svg?branch=master)](https://travis-ci.com/getzola/zola) |
|
|
[![Build Status](https://travis-ci.com/getzola/zola.svg?branch=master)](https://travis-ci.com/getzola/zola) |
|
|
[![Build status](https://ci.appveyor.com/api/projects/status/i0ufvx2sdm2cmawo/branch/master?svg=true)](https://ci.appveyor.com/project/Keats/zola/branch/master) |
|
|
[![Build status](https://ci.appveyor.com/api/projects/status/i0ufvx2sdm2cmawo/branch/master?svg=true)](https://ci.appveyor.com/project/Keats/zola/branch/master) |
|
|
|
|
|
|
|
@@ -9,32 +10,31 @@ in the `docs/content` folder of the repository and the community can use [its fo |
|
|
|
|
|
|
|
|
## Comparisons with other static site generators |
|
|
## Comparisons with other static site generators |
|
|
|
|
|
|
|
|
| | Zola | Cobalt | Hugo | Pelican | |
|
|
|
|
|
|:-------------------------------:|:---------:|--------|------|---------| |
|
|
|
|
|
| Single binary | ✔ | ✔ | ✔ | ✕ | |
|
|
|
|
|
| Language | Rust | Rust | Go | Python | |
|
|
|
|
|
| Syntax highlighting | ✔ | ✔ | ✔ | ✔ | |
|
|
|
|
|
| Sass compilation | ✔ | ✔ | ✔ | ✔ | |
|
|
|
|
|
| Assets co-location | ✔ | ✔ | ✔ | ✔ | |
|
|
|
|
|
| Multilingual site | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Image processing | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Sane & powerful template engine | ✔ | ~ | ~ | ✔ | |
|
|
|
|
|
| Themes | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Shortcodes | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Internal links | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Link checker | ✔ | ✕ | ✕ | ✔ | |
|
|
|
|
|
| Table of contents | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Automatic header anchors | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Aliases | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Pagination | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Custom taxonomies | ✔ | ✕ | ✔ | ✕ | |
|
|
|
|
|
| Search | ✔ | ✕ | ✕ | ✔ | |
|
|
|
|
|
| Data files | ✔ | ✔ | ✔ | ✕ | |
|
|
|
|
|
| LiveReload | ✔ | ✕ | ✔ | ✔ | |
|
|
|
|
|
| Netlify support | ~ | ✕ | ✔ | ✕ | |
|
|
|
|
|
| Breadcrumbs | ✔ | ✕ | ✕ | ✔ | |
|
|
|
|
|
| Custom output formats | ✕ | ✕ | ✔ | ? | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | Zola | Cobalt | Hugo | Pelican | |
|
|
|
|
|
|:--------------------------------|:--------------------:|:--------------------:|:--------------------:|:--------------------:| |
|
|
|
|
|
| Single binary | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![no](./is-no.svg) | |
|
|
|
|
|
| Language | Rust | Rust | Go | Python | |
|
|
|
|
|
| Syntax highlighting | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Sass compilation | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Assets co-location | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Multilingual site | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Image processing | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Sane & powerful template engine | ![yes](./is-yes.svg) | ![ehh](./is-ehh.svg) | ![ehh](./is-ehh.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Themes | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Shortcodes | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Internal links | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Link checker | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Table of contents | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Automatic header anchors | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Aliases | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Pagination | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Custom taxonomies | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![no](./is-no.svg) | |
|
|
|
|
|
| Search | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Data files | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | ![no](./is-no.svg) | |
|
|
|
|
|
| LiveReload | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Netlify support | ![ehh](./is-ehh.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![no](./is-no.svg) | |
|
|
|
|
|
| Breadcrumbs | ![yes](./is-yes.svg) | ![no](./is-no.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | |
|
|
|
|
|
| Custom output formats | ![no](./is-no.svg) | ![no](./is-no.svg) | ![yes](./is-yes.svg) | ![no](./is-no.svg) | |
|
|
|
|
|
|
|
|
### Supported content formats |
|
|
### Supported content formats |
|
|
|
|
|
|
|
@@ -45,11 +45,10 @@ in the `docs/content` folder of the repository and the community can use [its fo |
|
|
|
|
|
|
|
|
### Template engine explanation |
|
|
### Template engine explanation |
|
|
|
|
|
|
|
|
Cobalt gets `~` as, while based on [Liquid](https://shopify.github.io/liquid/), the Rust library doesn't implement all its features but there is no documentation on what is and isn't implemented. The errors are also cryptic. Liquid itself is not powerful enough to do some of things you can do in Jinja2, Go templates or Tera. |
|
|
|
|
|
|
|
|
Cobalt gets ![ehh](./is-ehh.svg) because, while based on [Liquid](https://shopify.github.io/liquid/), the Rust library doesn't implement all its features and there is no documentation on what is and isn't implemented; the errors are cryptic; and Liquid itself is not powerful enough to do some of things you can do in Jinja2, Go templates, or Tera. |
|
|
|
|
|
|
|
|
Hugo gets `~`. It is probably the most powerful template engine in the list after Jinja2 (hard to beat python code in templates) but personally drives me insane, to the point of writing my own template engine and static site generator. Yes, this is a bit biased. |
|
|
|
|
|
|
|
|
Hugo gets ![ehh](./is-ehh.svg) because while it is probably the most powerful template engine in the list, after Jinja2, it personally drives me insane, to the point of writing my own template engine and static site generator. Yes, this is a bit biased. |
|
|
|
|
|
|
|
|
### Pelican notes |
|
|
### Pelican notes |
|
|
Many features of Pelican are coming from plugins, which might be tricky |
|
|
|
|
|
to use because of version mismatch or lacking documentation. Netlify supports Python |
|
|
|
|
|
and Pipenv but you still need to install your dependencies manually. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Many features of Pelican are coming from plugins, which might be tricky to use because of version mismatch or lacking documentation. Netlify supports Python and Pipenv but you still need to install your dependencies manually. |