@@ -9,7 +9,7 @@ use errors::{Result, ResultExt}; | |||
/// Holds the data from a `theme.toml` file. | |||
/// There are other fields than `extra` in it but Gutenberg | |||
/// There are other fields than `extra` in it but Zola | |||
/// itself doesn't care about them. | |||
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] | |||
pub struct Theme { | |||
@@ -1,5 +1,5 @@ | |||
base_url = "https://www.getgutenberg.io/" | |||
title = "Gutenberg" | |||
base_url = "https://www.getzola.org/" | |||
title = "Zola" | |||
description = "Everything you need to make a static site engine in one binary." | |||
compile_sass = true | |||
@@ -23,7 +23,7 @@ resize_image(path, width, height, op, quality) | |||
### Image processing and return value | |||
Gutenberg performs image processing during the build process and places the resized images in a subdirectory in the static files directory: | |||
Zola performs image processing during the build process and places the resized images in a subdirectory in the static files directory: | |||
``` | |||
static/processed_images/ | |||
@@ -17,18 +17,18 @@ if the slug already exists for that article. For example: | |||
``` | |||
## Anchor insertion | |||
It is possible to have Gutenberg automatically insert anchor links next to the header, as you can see on the site you are currently | |||
It is possible to have Zola automatically insert anchor links next to the header, as you can see on the site you are currently | |||
reading if you hover a title. | |||
This option is set at the section level: the `insert_anchor_links` variable on the | |||
This option is set at the section level: the `insert_anchor_links` variable on the | |||
[Section front-matter page](./documentation/content/section.md#front-matter). | |||
The default template is very basic and will need CSS tweaks in your project to look decent. | |||
If you want to change the anchor template, it can easily be overwritten by | |||
The default template is very basic and will need CSS tweaks in your project to look decent. | |||
If you want to change the anchor template, it can easily be overwritten by | |||
creating a `anchor-link.html` file in the `templates` directory. | |||
## Internal links | |||
Linking to other pages and their headers is so common that Gutenberg adds a | |||
Linking to other pages and their headers is so common that Zola adds a | |||
special syntax to Markdown links to handle them: start the link with `./` and point to the `.md` file you want | |||
to link to. The path to the file starts from the `content` directory. | |||
@@ -4,7 +4,7 @@ weight = 10 | |||
+++ | |||
Gutenberg uses the folder structure to determine the site structure. | |||
Zola uses the folder structure to determine the site structure. | |||
Each folder in the `content` directory represents a [section](./documentation/content/section.md) | |||
that contains [pages](./documentation/content/page.md): your `.md` files. | |||
@@ -40,7 +40,7 @@ While not shown in the example, sections can be nested indefinitely. | |||
## Assets colocation | |||
The `content` directory is not limited to markup files though: it's natural to want to co-locate a page and some related | |||
assets, for instance images or spreadsheets. Gutenberg supports that pattern out of the box for both sections and pages. | |||
assets, for instance images or spreadsheets. Zola supports that pattern out of the box for both sections and pages. | |||
Any non-markdown file you add in the page/section folder will be copied alongside the generated page when building the site, | |||
which allows us to use a relative path to access them. | |||
@@ -82,14 +82,14 @@ ignored_content = ["*.xlsx"] | |||
## Static assets | |||
In addition to placing content files in the `content` directory, you may also place content | |||
In addition to placing content files in the `content` directory, you may also place content | |||
files in the `static` directory. Any files/folders that you place in the `static` directory | |||
will be copied, without modification, to the public directory. | |||
will be copied, without modification, to the public directory. | |||
Typically, you might put site-wide assets (such as the site favicon, site logos or site-wide | |||
JavaScript) in the root of the static directory. You can also place any HTML or other files that | |||
you wish to be included without modification (that is, without being parsed as Markdown files) | |||
into the static directory. | |||
into the static directory. | |||
Note that the static folder provides an _alternative_ to colocation. For example, imagine that you | |||
had the following directory structure (a simplified version of the structure presented above): | |||
@@ -109,12 +109,12 @@ have three options: | |||
relative path from the `index.md` page. This is the approach described under **colocation**, | |||
above. | |||
* You could save the image to a `static/blog/configuration` folder and link it in exactly the | |||
same way as if you had colocated it. If you do this, the generated files will be identical to | |||
if you had colocated; the only difference will be that all static files will be saved in the | |||
same way as if you had colocated it. If you do this, the generated files will be identical to | |||
if you had colocated; the only difference will be that all static files will be saved in the | |||
static folder rather than in the content folder. Depending on your organizational needs, this | |||
may be better or worse. | |||
* Or you could save the image to some arbitrary folder within the static folder. For example, | |||
you could save all images to `static/images`. Using this approach, you would no longer be able | |||
to use relative links, but could use an absolute link to `images/[filename]` to access your | |||
image. This might be preferable for small sites or for sites that associate images with | |||
to use relative links, but could use an absolute link to `images/[filename]` to access your | |||
image. This might be preferable for small sites or for sites that associate images with | |||
multiple pages (e.g., logo images that appear on every page). |
@@ -24,7 +24,7 @@ the `about` folder allows you to use asset colocation, as discussed in the | |||
## Front-matter | |||
The front-matter is a set of metadata embedded in a file. In Gutenberg, | |||
The front-matter is a set of metadata embedded in a file. In Zola, | |||
it is at the beginning of the file, surrounded by `+++` and uses TOML. | |||
While none of the front-matter variables are mandatory, the opening and closing `+++` are required. | |||
@@ -88,7 +88,7 @@ Some content | |||
## Summary | |||
You can ask Gutenberg to create a summary if you only want to show the first | |||
You can ask Zola to create a summary if you only want to show the first | |||
paragraph of each page in a list for example. | |||
To do so, add <code><!-- more --></code> in your content at the point | |||
@@ -11,9 +11,9 @@ may be of interest: | |||
* The [official Sass website](http://sass-lang.com/) | |||
* [Why Sass?](https://alistapart.com/article/why-sass), by Dan Cederholm | |||
## Using Sass in Gutenberg | |||
## Using Sass in Zola | |||
Gutenberg processes any files with the `sass` or `scss` extensions in the `sass` | |||
Zola processes any files with the `sass` or `scss` extensions in the `sass` | |||
folder, and places the processed output into a `css` file with the same folder | |||
structure and base name into the `public` folder: | |||
@@ -26,7 +26,7 @@ structure and base name into the `public` folder: | |||
├── assets | |||
│ ├── fancy.scss // -> ./public/assets/fancy.css | |||
│ ├── same_name.scss // -> ./public/assets/same_name.css | |||
│ ├── same_name.sass # CONFLICT! This has the same base name as the file above, so Gutenberg will return an error. | |||
│ ├── same_name.sass # CONFLICT! This has the same base name as the file above, so Zola will return an error. | |||
│ └── _common_mixins.scss # This file won't get put into the `public` folder, but other files can @import it. | |||
└── secret-side-project | |||
└── style.scss // -> ./public/secret-side-project/fancy.css | |||
@@ -38,5 +38,5 @@ folder, but can still be used as `@import` dependencies. For more information, s | |||
Files with the `scss` extension use ["Sassy CSS" syntax](http://sass-lang.com/documentation/#Formatting), | |||
while files with the `sass` extension use the ["indented" syntax](http://sass-lang.com/documentation/file.INDENTED_SYNTAX.html). | |||
Gutenberg will return an error if a `scss` and `sass` file exist with the same | |||
Zola will return an error if a `scss` and `sass` file exist with the same | |||
base name in the same folder to avoid confusion -- see the example above. |
@@ -3,20 +3,20 @@ title = "Search" | |||
weight = 100 | |||
+++ | |||
Gutenberg can build a search index from the sections and pages content to | |||
be used by a JavaScript library: [elasticlunr](http://elasticlunr.com/). | |||
Zola can build a search index from the sections and pages content to | |||
be used by a JavaScript library: [elasticlunr](http://elasticlunr.com/). | |||
To enable it, you only need to set `build_search_index = true` in your `config.toml` and Gutenberg will | |||
To enable it, you only need to set `build_search_index = true` in your `config.toml` and Zola will | |||
generate an index for the `default_language` set for all pages not excluded from the search index. | |||
It is very important to set the `default_language` in your `config.toml` if you are writing a site not in | |||
It is very important to set the `default_language` in your `config.toml` if you are writing a site not in | |||
English: the index building pipelines are very different depending on the language. | |||
After `gutenberg build` or `gutenberg serve`, you should see two files in your static directory: | |||
After `zola build` or `zola serve`, you should see two files in your static directory: | |||
- `search_index.${default_language}.js`: so `search_index.en.js` for a default setup | |||
- `elasticlunr.min.js` | |||
As each site will be different, Gutenberg makes no assumptions about how your search and doesn't provide | |||
As each site will be different, Zola makes no assumptions about how your search and doesn't provide | |||
the JavaScript/CSS code to do an actual search and display results. You can however look at how this very site | |||
is implementing it to have an idea: [search.js](https://github.com/Keats/gutenberg/tree/master/docs/static/search.js). | |||
is implementing it to have an idea: [search.js](https://github.com/getzola/zola/tree/master/docs/static/search.js). |
@@ -21,7 +21,7 @@ Any non-Markdown file in the section folder is added to the `assets` collection | |||
The `_index.md` file within a folder defines the content and metadata for that section. To set | |||
the metadata, add front matter to the file. | |||
The front-matter is a set of metadata embedded in a file. In Gutenberg, | |||
The front-matter is a set of metadata embedded in a file. In Zola, | |||
it is at the beginning of the file, surrounded by `+++` and uses TOML. | |||
After the closing `+++`, you can add content that will be parsed as markdown and will be available | |||
@@ -95,7 +95,7 @@ You can also change the pagination path (the word displayed while paginated in t | |||
by setting the `paginate_path` variable, which defaults to `page`. | |||
## Sorting | |||
It is very common for Gutenberg templates to iterate over pages or sections | |||
It is very common for Zola templates to iterate over pages or sections | |||
to display all pages/sections a given directory. Consider a very simple | |||
example: a `blog` directory with three files: `blog/Post_1.md`, | |||
`blog/Post_2.md`, and `blog/Post_3.md`. To iterate over these posts and | |||
@@ -6,7 +6,7 @@ weight = 40 | |||
While Markdown is good at writing, it isn't great when you need write inline | |||
HTML to add some styling for example. | |||
To solve this, Gutenberg borrows the concept of [shortcodes](https://codex.wordpress.org/Shortcode_API) | |||
To solve this, Zola borrows the concept of [shortcodes](https://codex.wordpress.org/Shortcode_API) | |||
from WordPress. | |||
In our case, the shortcode corresponds to a template that is defined in the `templates/shortcodes` directory or a built-in one that can | |||
be used in a Markdown file. If you want to use something similar to shortcodes in your templates, try [Tera macros](https://tera.netlify.com/docs/templates/#macros). | |||
@@ -31,7 +31,7 @@ This template is very straightforward: an iframe pointing to the YouTube embed U | |||
In terms of input, it expects at least one variable: `id`. Since the other variables | |||
are in a `if` statement, we can assume they are optional. | |||
That's it, Gutenberg will now recognise this template as a shortcode named `youtube` (the filename minus the `.html` extension). | |||
That's it, Zola will now recognise this template as a shortcode named `youtube` (the filename minus the `.html` extension). | |||
The markdown renderer will wrap an inline HTML node like `<a>` or `<span>` into a paragraph. If you want to disable that, | |||
simply wrap your shortcode in a `div`. | |||
@@ -78,7 +78,7 @@ Here is a YouTube video: | |||
An inline {{/* youtube(id="dQw4w9WgXcQ", autoplay=true, class="youtube") */}} shortcode | |||
``` | |||
Note that if you want to have some content that looks like a shortcode but not have Gutenberg try to render it, | |||
Note that if you want to have some content that looks like a shortcode but not have Zola try to render it, | |||
you will need to escape it by using `{{/*` and `*/}}` instead of `{{` and `}}`. | |||
### Shortcodes with body | |||
@@ -104,14 +104,14 @@ A quote | |||
The body of the shortcode will be automatically passed down to the rendering context as the `body` variable and needs | |||
to be in a newline. | |||
If you want to have some content that looks like a shortcode but not have Gutenberg try to render it, | |||
If you want to have some content that looks like a shortcode but not have Zola try to render it, | |||
you will need to escape it by using `{%/*` and `*/%}` instead of `{%` and `%}`. You won't need to escape | |||
anything else until the closing tag. | |||
## Built-in shortcodes | |||
Gutenberg comes with a few built-in shortcodes. If you want to override a default shortcode template, | |||
simply place a `{shortcode_name}.html` file in the `templates/shortcodes` directory and Gutenberg will | |||
Zola comes with a few built-in shortcodes. If you want to override a default shortcode template, | |||
simply place a `{shortcode_name}.html` file in the `templates/shortcodes` directory and Zola will | |||
use that instead. | |||
### YouTube | |||
@@ -3,10 +3,10 @@ title = "Syntax Highlighting" | |||
weight = 80 | |||
+++ | |||
Gutenberg comes with built-in syntax highlighting but you first | |||
Zola comes with built-in syntax highlighting but you first | |||
need to enable it in the [configuration](./documentation/getting-started/configuration.md). | |||
Once this is done, Gutenberg will automatically highlight all code blocks | |||
Once this is done, Zola will automatically highlight all code blocks | |||
in your content. A code block in Markdown looks like the following: | |||
````md | |||
@@ -120,7 +120,7 @@ Here is a full list of the supported languages and the short names you can use: | |||
- TOML -> ["toml", "tml", "Cargo.lock", "Gopkg.lock"] | |||
``` | |||
If you want to highlight a language not on that list, please open an issue or a pull request on the [Gutenberg repo](https://github.com/Keats/gutenberg). | |||
If you want to highlight a language not on that list, please open an issue or a pull request on the [Zola repo](https://github.com/getzola/zola). | |||
Alternatively, the `extra_syntaxes` config option can be used to add additional syntax files. | |||
If your site source is laid out as follows: | |||
@@ -3,7 +3,7 @@ title = "Taxonomies" | |||
weight = 90 | |||
+++ | |||
Gutenberg has built-in support for taxonomies. | |||
Zola has built-in support for taxonomies. | |||
The first step is to define the taxonomies in your [config.toml](./documentation/getting-started/configuration.md). | |||
@@ -15,7 +15,7 @@ A taxonomy has 4 variables: | |||
For example the default would be page/1 | |||
- `rss`: if set to `true`, a RSS feed will be generated for each individual term. | |||
Once this is done, you can then set taxonomies in your content and Gutenberg will pick | |||
Once this is done, you can then set taxonomies in your content and Zola will pick | |||
them up: | |||
```toml | |||
@@ -3,7 +3,7 @@ title = "GitHub Pages" | |||
weight = 30 | |||
+++ | |||
By default, GitHub Pages uses Jekyll (A ruby based static site generator), | |||
By default, GitHub Pages uses Jekyll (A ruby based static site generator), | |||
but you can use whatever you want provided you have an `index.html` file in the root of a branch called `gh-pages`. | |||
That branch name can also be manually changed in the settings of a repository. | |||
@@ -15,7 +15,7 @@ Don't forget to also check if your repository allows GitHub Pages in its setting | |||
Depending on how you added your theme Travis may not exactly know how to access | |||
it. The best way to ensure it will have full access to the theme is to use git | |||
submodules. When doing this ensure you are using the `https` version of the URL. | |||
submodules. When doing this ensure you are using the `https` version of the URL. | |||
```shell | |||
$ git submodule add {THEME_URL} themes/{THEME_NAME} | |||
@@ -23,15 +23,15 @@ $ git submodule add {THEME_URL} themes/{THEME_NAME} | |||
## Allowing Travis to push to GitHub | |||
Before pushing anything, Travis needs a Github private access key in order to make changes to your repository. | |||
If you're already logged in to your account, just click [here](https://github.com/settings/tokens) to go to your tokens page. | |||
Otherwise, navigate to `Settings > Developer Settings > Personal Access Tokens`. | |||
Generate a new token, and give it any description you'd like. | |||
Before pushing anything, Travis needs a Github private access key in order to make changes to your repository. | |||
If you're already logged in to your account, just click [here](https://github.com/settings/tokens) to go to your tokens page. | |||
Otherwise, navigate to `Settings > Developer Settings > Personal Access Tokens`. | |||
Generate a new token, and give it any description you'd like. | |||
Under the "Select Scopes" section, give it repo permissions. Click "Generate token" to finish up. | |||
Your token will now be visible! | |||
Copy it into your clipboard and head back to Travis. | |||
Once on Travis, click on your project, and navigate to "Settings". Scroll down to "Environment Variables" and input a name of `GH_TOKEN` with a value of your access token. | |||
Your token will now be visible! | |||
Copy it into your clipboard and head back to Travis. | |||
Once on Travis, click on your project, and navigate to "Settings". Scroll down to "Environment Variables" and input a name of `GH_TOKEN` with a value of your access token. | |||
Make sure "Display value in build log" is off, and then click add. Now Travis has access to your repository. | |||
## Setting up Travis | |||
@@ -40,21 +40,21 @@ We're almost done. We just need some scripts in a .travis.yml file to tell Travi | |||
```yaml | |||
before_script: | |||
# Download and unzip the gutenberg executable | |||
# Download and unzip the zola executable | |||
# Replace the version numbers in the URL by the version you want to use | |||
- curl -s -L https://github.com/Keats/gutenberg/releases/download/v0.3.1/gutenberg-v0.3.1-x86_64-unknown-linux-gnu.tar.gz | sudo tar xvzf - -C /usr/local/bin | |||
- curl -s -L https://github.com/getzola/zola/releases/download/v0.5.0/zola-v0.5.0-x86_64-unknown-linux-gnu.tar.gz | sudo tar xvzf - -C /usr/local/bin | |||
script: | |||
- gutenberg build | |||
- zola build | |||
# If you are using a different folder than `public` for the output directory, you will | |||
# need to change the `gutenberg` command and the `ghp-import` path | |||
# need to change the `zola` command and the `ghp-import` path | |||
after_success: | | |||
[ $TRAVIS_BRANCH = master ] && | |||
[ $TRAVIS_PULL_REQUEST = false ] && | |||
gutenberg build && | |||
zola build && | |||
sudo pip install ghp-import && | |||
ghp-import -n public && | |||
ghp-import -n public && | |||
git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git gh-pages | |||
``` | |||
@@ -3,7 +3,7 @@ title = "Netlify" | |||
weight = 20 | |||
+++ | |||
Netlify provides best practices like SSL, CDN distribution, caching and continuous deployment | |||
Netlify provides best practices like SSL, CDN distribution, caching and continuous deployment | |||
with no effort. This very site is hosted by Netlify and automatically deployed on commits. | |||
If you don't have an account with Netlify, you can [sign up](https://app.netlify.com) for one. | |||
@@ -11,12 +11,12 @@ If you don't have an account with Netlify, you can [sign up](https://app.netlify | |||
## Automatic Deploys | |||
Once you are in the admin interface, you can add a site from a Git provider (GitHub, GitLab or Bitbucket). At the end | |||
of this process, you can select the deploy settings for the project: | |||
- build command: `GUTENBERG_VERSION=0.3.3 gutenberg build` (replace the version number in the variable by the version you want to use) | |||
- build command: `ZOLA_VERSION=0.5.0 zola build` (replace the version number in the variable by the version you want to use) | |||
- publish directory: the path to where the `public` directory is | |||
With this setup, your site should be automatically deployed on every commit on master. For `GUTENBERG_VERSION`, you may | |||
use any of the tagged `release` versions in the GitHub repository—Netlify will automatically fetch the tagged version | |||
With this setup, your site should be automatically deployed on every commit on master. For `ZOLA_VERSION`, you may | |||
use any of the tagged `release` versions in the GitHub repository — Netlify will automatically fetch the tagged version | |||
and use it to build your site. | |||
However, if you want to use everything that Netlify gives you, you should also publish temporary sites for pull requests. | |||
@@ -26,34 +26,33 @@ the admin interface. | |||
```toml | |||
[build] | |||
# assuming the gutenberg site is in a docs folder, if it isn't you don't need | |||
# assuming the Zola site is in a docs folder, if it isn't you don't need | |||
# to have a `base` variable but you do need the `publish` and `command` | |||
base = "docs" | |||
publish = "docs/public" | |||
command = "gutenberg build" | |||
command = "zola build" | |||
[build.environment] | |||
# Set the version name that you want to use and Netlify will automatically use it | |||
GUTENBERG_VERSION = "0.3.3" | |||
ZOLA_VERSION = "0.5.0" | |||
# The magic for deploying previews of branches | |||
# We need to override the base url with whatever url Netlify assigns to our | |||
# preview site. We do this using the Netlify environment variable | |||
# We need to override the base url with whatever url Netlify assigns to our | |||
# preview site. We do this using the Netlify environment variable | |||
# `$DEPLOY_PRIME_URL`. | |||
[context.deploy-preview] | |||
command = "gutenberg build --base-url $DEPLOY_PRIME_URL" | |||
command = "zola build --base-url $DEPLOY_PRIME_URL" | |||
``` | |||
## Manual Deploys | |||
If you would prefer to use a version of Gutenberg that isn't a tagged release (for example, after having built Gutenberg from | |||
If you would prefer to use a version of Zola that isn't a tagged release (for example, after having built Zola from | |||
source and made modifications), then you will need to manually deploy your `public` folder to Netlify. You can do this through | |||
Netlify's web GUI or via the command line. | |||
For a command-line manual deploy, follow these steps: | |||
1. Generate a `Personal Access Token` from the settings section of your Netlify account (*not* an OAuth Application) | |||
2. Build your site with `gutenberg build` | |||
2. Build your site with `zola build` | |||
3. Create a zip folder containing the `public` directory | |||
4. Run the `curl` command below, filling in your values for PERSONAL_ACCESS_TOKEN_FROM_STEP_1, FILE_NAME.zip and SITE_NAME | |||
5. (Optional) delete the zip folder | |||
@@ -3,7 +3,7 @@ title = "Overview" | |||
weight = 10 | |||
+++ | |||
Gutenberg outputs plain files, no databases needed. This makes hosting and deployment | |||
Zola outputs plain files, no databases needed. This makes hosting and deployment | |||
trivial on many providers. | |||
@@ -3,34 +3,34 @@ title = "CLI usage" | |||
weight = 2 | |||
+++ | |||
Gutenberg only has 3 commands: init, build and serve. | |||
Zola only has 3 commands: init, build and serve. | |||
You can view the help of the whole program by running `gutenberg --help` and | |||
the command help by running `gutenberg <cmd> --help`. | |||
You can view the help of the whole program by running `zola --help` and | |||
the command help by running `zola <cmd> --help`. | |||
## init | |||
Creates the directory structure used by Gutenberg at the given directory. | |||
Creates the directory structure used by Zola at the given directory. | |||
```bash | |||
$ gutenberg init my_site | |||
$ zola init my_site | |||
``` | |||
will create a new folder named `my_site` and the files/folders needed by | |||
Gutenberg. | |||
zola. | |||
## build | |||
This will build the whole site in the `public` directory. | |||
```bash | |||
$ gutenberg build | |||
$ zola build | |||
``` | |||
You can override the config `base_url` by passing a new URL to the `base-url` flag. | |||
```bash | |||
$ gutenberg build --base-url $DEPLOY_URL | |||
$ zola build --base-url $DEPLOY_URL | |||
``` | |||
This is useful for example when you want to deploy previews of a site to a dynamic URL, such as Netlify | |||
@@ -39,13 +39,13 @@ deploy previews. | |||
+You can override the default output directory 'public' by passing a other value to the `output-dir` flag. | |||
```bash | |||
$ gutenberg build --output-dir $DOCUMENT_ROOT | |||
$ zola build --output-dir $DOCUMENT_ROOT | |||
``` | |||
You can also point to another config file than `config.toml` like so - the position of the `config` option is important: | |||
```bash | |||
$ gutenberg --config config.staging.toml build | |||
$ zola --config config.staging.toml build | |||
``` | |||
## serve | |||
@@ -54,28 +54,28 @@ This will build and serve the site using a local server. You can also specify | |||
the interface/port combination to use if you want something different than the default (`127.0.0.1:1111`). | |||
You can also specify different addresses for the interface and base_url using `-u`/`--base-url`, for example | |||
if you are running Gutenberg in a Docker container. | |||
if you are running zola in a Docker container. | |||
```bash | |||
$ gutenberg serve | |||
$ gutenberg serve --port 2000 | |||
$ gutenberg serve --interface 0.0.0.0 | |||
$ gutenberg serve --interface 0.0.0.0 --port 2000 | |||
$ gutenberg serve --interface 0.0.0.0 --base-url 127.0.0.1 | |||
$ gutenberg serve --interface 0.0.0.0 --port 2000 --output-dir www/public | |||
$ zola serve | |||
$ zola serve --port 2000 | |||
$ zola serve --interface 0.0.0.0 | |||
$ zola serve --interface 0.0.0.0 --port 2000 | |||
$ zola serve --interface 0.0.0.0 --base-url 127.0.0.1 | |||
$ zola serve --interface 0.0.0.0 --port 2000 --output-dir www/public | |||
``` | |||
The serve command will watch all your content and will provide live reload, without | |||
hard refresh if possible. | |||
Gutenberg does a best-effort to live reload but some changes cannot be handled automatically. If you | |||
fail to see your change or get a weird error, try to restart `gutenberg serve`. | |||
Zola does a best-effort to live reload but some changes cannot be handled automatically. If you | |||
fail to see your change or get a weird error, try to restart `zola serve`. | |||
You can also point to another config file than `config.toml` like so - the position of the `config` option is important: | |||
```bash | |||
$ gutenberg --config config.staging.toml serve | |||
$ zola --config config.staging.toml serve | |||
``` | |||
## Colored output | |||
@@ -3,7 +3,7 @@ title = "Configuration" | |||
weight = 4 | |||
+++ | |||
The default configuration will be enough to get Gutenberg running locally but not more than that. | |||
The default configuration will be enough to get Zola running locally but not more than that. | |||
It follows the philosophy of only paying for what you need: almost everything is turned off by default. | |||
To change the config, edit the `config.toml` file. | |||
@@ -11,7 +11,7 @@ If you are not familiar with TOML, have a look at [the TOML Spec](https://github | |||
to learn about it. | |||
Only one variable - `base_url` - is mandatory, everything else is optional. You can find all variables | |||
used by Gutenberg config as well as their default values below: | |||
used by Zola config as well as their default values below: | |||
```toml | |||
@@ -84,7 +84,7 @@ extra_syntaxes = [] | |||
## Syntax highlighting | |||
Gutenberg currently has the following highlight themes available: | |||
Zola currently has the following highlight themes available: | |||
- [1337](https://tmtheme-editor.herokuapp.com/#!/editor/theme/1337) | |||
- [agola-dark](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Agola%20Dark) | |||
@@ -115,5 +115,5 @@ Gutenberg currently has the following highlight themes available: | |||
- [subway-moscow](https://github.com/idleberg/Subway.tmTheme) | |||
- [visual-studio-dark](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Visual%20Studio%20Dark) | |||
Gutenberg uses the Sublime Text themes, making it very easy to add more. | |||
If you want a theme not on that list, please open an issue or a pull request on the [Gutenberg repo](https://github.com/Keats/gutenberg). | |||
Zola uses the Sublime Text themes, making it very easy to add more. | |||
If you want a theme not on that list, please open an issue or a pull request on the [Zola repo](https://github.com/getzola/zola). |
@@ -3,7 +3,7 @@ title = "Directory structure" | |||
weight = 3 | |||
+++ | |||
After running `gutenberg init`, you should see the following structure in your folder: | |||
After running `zola init`, you should see the following structure in your folder: | |||
```bash | |||
@@ -21,7 +21,7 @@ After running `gutenberg init`, you should see the following structure in your f | |||
Here's a high level overview of each of these folders and `config.toml`. | |||
## `config.toml` | |||
A mandatory configuration file of Gutenberg in TOML format. | |||
A mandatory configuration file of Zola in TOML format. | |||
It is explained in details in the [Configuration page](./documentation/getting-started/configuration.md). | |||
## `content` | |||
@@ -3,31 +3,31 @@ title = "Installation" | |||
weight = 1 | |||
+++ | |||
Gutenberg provides pre-built binaries for MacOS, Linux and Windows on the | |||
[GitHub release page](https://github.com/Keats/gutenberg/releases). | |||
Zola provides pre-built binaries for MacOS, Linux and Windows on the | |||
[GitHub release page](https://github.com/getzola/zola/releases). | |||
## Mac OS | |||
Gutenberg is available on [Brew](https://brew.sh): | |||
Zola is available on [Brew](https://brew.sh): | |||
```bash | |||
$ brew install gutenberg | |||
$ brew install zola | |||
``` | |||
## Windows | |||
Gutenberg is available on [Scoop](http://scoop.sh): | |||
Zola is available on [Scoop](http://scoop.sh): | |||
```bash | |||
$ scoop install gutenberg | |||
$ scoop install zola | |||
``` | |||
## Arch Linux | |||
Use your favourite AUR helper to install the `gutenberg-bin` package. | |||
Use your favourite AUR helper to install the `zola-bin` package. | |||
```bash | |||
$ yaourt -S gutenberg-bin | |||
$ yaourt -S zola-bin | |||
``` | |||
## Void Linux | |||
@@ -35,11 +35,11 @@ $ yaourt -S gutenberg-bin | |||
From the terminal, run the following command: | |||
```bash | |||
$ xbps-install -S gutenberg | |||
$ xbps-install -S zola | |||
``` | |||
## From source | |||
To build it from source, you will need to have Git, [Rust (at least 1.27) and Cargo](https://www.rust-lang.org/) | |||
To build it from source, you will need to have Git, [Rust (at least 1.28) and Cargo](https://www.rust-lang.org/) | |||
installed. You will also need additional dependencies to compile [libsass](https://github.com/sass/libsass): | |||
- OSX, Linux and other Unix: `make` (`gmake` on BSDs), `g++`, `libssl-dev` | |||
@@ -52,5 +52,5 @@ $ cargo build --release | |||
``` | |||
The binary will be available in the `target/release` folder. You can move it in your `$PATH` to have the | |||
`gutenberg` command available globally or in a directory if you want for example to have the binary in the | |||
`zola` command available globally or in a directory if you want for example to have the binary in the | |||
same repository as the site. |
@@ -3,6 +3,6 @@ title = "404 error page" | |||
weight = 80 | |||
+++ | |||
Gutenberg will look for a `404.html` file in the `templates` directory or | |||
Zola will look for a `404.html` file in the `templates` directory or | |||
use the built-in one. The default template is very basic and gets a simple | |||
variable in the context: the site `config`. |
@@ -3,7 +3,7 @@ title = "Archive" | |||
weight = 90 | |||
+++ | |||
Gutenberg doesn't have a built-in way to display an archive page, a page showing | |||
Zola doesn't have a built-in way to display an archive page, a page showing | |||
all post titles ordered by year. However, this can be accomplished directly in the templates: | |||
```jinja2 | |||
@@ -3,10 +3,10 @@ title = "Overview" | |||
weight = 10 | |||
+++ | |||
Gutenberg uses the [Tera](https://tera.netlify.com) template engine and is very similar | |||
Zola uses the [Tera](https://tera.netlify.com) template engine and is very similar | |||
to Jinja2, Liquid or Twig. | |||
As this documentation will only talk about how templates work in Gutenberg, please read | |||
As this documentation will only talk about how templates work in Zola, please read | |||
the [Tera template documentation](https://tera.netlify.com/docs/templates/) if you want | |||
to learn more about it first. | |||
@@ -20,7 +20,7 @@ A few variables are available on all templates minus RSS and sitemap: | |||
- `current_url`: the full URL for that page | |||
## Standard Templates | |||
By default, Gutenberg will look for three templates: `index.html`, which is applied | |||
By default, Zola will look for three templates: `index.html`, which is applied | |||
to the site homepage; `section.html`, which is applied to all sections (any HTML | |||
page generated by creating a directory within your `content` directory); and | |||
`page.html`, which is applied to all pages (any HTML page generated by creating a | |||
@@ -32,7 +32,7 @@ section variables. The `page.html` template has access to the page variables. | |||
The page and section variables are described in more detail in the next section of this documentation. | |||
## Built-in Templates | |||
Gutenberg comes with three built-in templates: `rss.xml`, `sitemap.xml`, and | |||
Zola comes with three built-in templates: `rss.xml`, `sitemap.xml`, and | |||
`robots.txt` (each described in their own section of this documentation). | |||
Additionally, themes can add their own templates, which will be applied if not | |||
overridden. You can override built-in or theme templates by creating a template with | |||
@@ -55,11 +55,11 @@ Custom templates are not required to live at the root of your `templates` direct | |||
For example, `product_pages/with_pictures.html` is a valid template. | |||
## Built-in filters | |||
Gutenberg adds a few filters, in addition of the ones already present in Tera. | |||
Zola adds a few filters, in addition of the ones already present in Tera. | |||
### markdown | |||
Converts the given variable to HTML using Markdown. This doesn't apply any of the | |||
features that Gutenberg adds to Markdown: internal links, shortcodes etc won't work. | |||
features that Zola adds to Markdown: internal links, shortcodes etc won't work. | |||
By default, the filter will wrap all text into a paragraph. To disable that, you can | |||
pass `true` to the inline argument: | |||
@@ -76,7 +76,7 @@ Decode the variable from base64. | |||
## Built-in global functions | |||
Gutenberg adds a few global functions to Tera in order to make it easier to develop complex sites. | |||
Zola adds a few global functions to Tera in order to make it easier to develop complex sites. | |||
### `get_page` | |||
Takes a path to a `.md` file and returns the associated page | |||
@@ -151,9 +151,9 @@ The `path` argument specifies the path to the data file relative to your content | |||
{% set data = load_data(path="blog/story/data.toml") %} | |||
``` | |||
The optional `kind` argument allows you to specify and override which data type is contained | |||
The optional `kind` argument allows you to specify and override which data type is contained | |||
within the file specified in the `path` argument. Valid entries are *"toml"*, *"json"* | |||
or *"csv"*. | |||
or *"csv"*. | |||
```jinja2 | |||
{% set data = load_data(path="blog/story/data.txt", kind="json") %} | |||
@@ -161,7 +161,7 @@ or *"csv"*. | |||
For *toml* and *json* the data is loaded into a structure matching the original data file, | |||
however for *csv* there is no native notion of such a structure. Instead the data is seperated | |||
into a data structure containing *headers* and *records*. See the example below to see | |||
into a data structure containing *headers* and *records*. See the example below to see | |||
how this works. | |||
In the template: | |||
@@ -182,7 +182,7 @@ template: | |||
{ | |||
"headers": ["Number", "Title"], | |||
"records": [ | |||
["1", "Gutenberg"], | |||
["1", "Gutenberg"], | |||
["2", "Printing"] | |||
], | |||
} | |||
@@ -6,7 +6,7 @@ weight = 20 | |||
Pages and sections are actually very similar. | |||
## Page variables | |||
Gutenberg will try to load the `templates/page.html` template, the `page.html` template of the theme if one is used | |||
Zola will try to load the `templates/page.html` template, the `page.html` template of the theme if one is used | |||
or will render the built-in template: a blank page. | |||
Whichever template you decide to render, you will get a `page` variable in your template | |||
@@ -54,7 +54,7 @@ relative_path: String; | |||
``` | |||
## Section variables | |||
By default, Gutenberg will try to load `templates/index.html` for `content/_index.md` | |||
By default, Zola will try to load `templates/index.html` for `content/_index.md` | |||
and `templates/section.html` for others `_index.md` files. If there isn't | |||
one, it will render the built-in template: a blank page. | |||
@@ -3,7 +3,7 @@ title = "Robots.txt" | |||
weight = 70 | |||
+++ | |||
Gutenberg will look for a `robots.txt` file in the `templates` directory or | |||
Zola will look for a `robots.txt` file in the `templates` directory or | |||
use the built-in one. | |||
Robots.txt is the simplest of all templates: it only gets the config | |||
@@ -3,9 +3,9 @@ title = "RSS" | |||
weight = 50 | |||
+++ | |||
If the site `config.toml` file sets `generate_rss = true`, then Gutenberg will | |||
If the site `config.toml` file sets `generate_rss = true`, then Zola will | |||
generate an `rss.xml` page for the site, which will live at `base_url/rss.xml`. To | |||
generate the `rss.xml` page, Gutenberg will look for a `rss.xml` file in the `templates` | |||
generate the `rss.xml` page, Zola will look for a `rss.xml` file in the `templates` | |||
directory or, if one does not exist, will use the use the built-in rss template. | |||
Currently it is only possible to have one RSS feed for the whole site; you cannot | |||
create a RSS feed per section or taxonomy. | |||
@@ -3,7 +3,7 @@ title = "Sitemap" | |||
weight = 60 | |||
+++ | |||
Gutenberg will look for a `sitemap.xml` file in the `templates` directory or | |||
Zola will look for a `sitemap.xml` file in the `templates` directory or | |||
use the built-in one. | |||
@@ -3,7 +3,7 @@ title = "Taxonomies" | |||
weight = 40 | |||
+++ | |||
Gutenberg will look up the following files in the `templates` directory: | |||
Zola will look up the following files in the `templates` directory: | |||
- `$TAXONOMY_NAME/single.html` | |||
- `$TAXONOMY_NAME/list.html` | |||
@@ -3,12 +3,12 @@ title = "Creating a theme" | |||
weight = 30 | |||
+++ | |||
Creating is exactly like creating a normal site with Gutenberg, except you | |||
Creating is exactly like creating a normal site with Zola, except you | |||
will want to use many [Tera blocks](https://tera.netlify.com/docs/templates/#inheritance) to | |||
allow users to easily modify it. | |||
## Getting started | |||
As mentioned, a theme is just like any site: start with running `gutenberg init MY_THEME_NAME`. | |||
As mentioned, a theme is just like any site: start with running `zola init MY_THEME_NAME`. | |||
The only thing needed to turn that site into a theme is to add `theme.toml` configuration file with the | |||
following fields: | |||
@@ -17,8 +17,8 @@ following fields: | |||
name = "my theme name" | |||
description = "A classic blog theme" | |||
license = "MIT" | |||
homepage = "https://github.com/Keats/gutenberg-hyde" | |||
# The minimum version of Gutenberg required | |||
homepage = "https://github.com/Keats/zola-hyde" | |||
# The minimum version of Zola required | |||
min_version = "0.4.0" | |||
# An optional live demo URL | |||
demo = "" | |||
@@ -26,7 +26,7 @@ demo = "" | |||
# Any variable there can be overriden in the end user `config.toml` | |||
# You don't need to prefix variables by the theme name but as this will | |||
# be merged with user data, some kind of prefix or nesting is preferable | |||
# Use snake_casing to be consistent with the rest of Gutenberg | |||
# Use snake_casing to be consistent with the rest of Zola | |||
[extra] | |||
# The theme author info: you! | |||
@@ -45,7 +45,7 @@ repo = "https://www.github.com/mdo/hyde" | |||
A simple theme you can use as example is [Hyde](https://github.com/Keats/hyde). | |||
## Working on a theme | |||
As a theme is just a site, you can simply use `gutenberg serve` and make changes to your | |||
As a theme is just a site, you can simply use `zola serve` and make changes to your | |||
theme, with live reloading working as expected. | |||
Make sure to commit every directory (including `content`) in order for other people | |||
@@ -72,6 +72,6 @@ The first step is to make sure the theme is fulfilling those three requirements: | |||
of importance | |||
- be of reasonably high quality | |||
When your theme is ready, you can submit it to the [themes repository](https://github.com/Keats/gutenberg-themes) | |||
When your theme is ready, you can submit it to the [themes repository](https://github.com/getzola/themes) | |||
by following the process in the README. | |||
@@ -21,7 +21,7 @@ them in a folder. | |||
## Using a theme | |||
Now that you have the theme in your `themes` directory, you only need to tell | |||
Gutenberg to use it to get started by setting the `theme` variable of the | |||
Zola to use it to get started by setting the `theme` variable of the | |||
[configuration file](./documentation/getting-started/configuration.md). The theme | |||
name has to be name of the directory you cloned the theme in. | |||
For example, if you cloned a theme in `themes/simple-blog`, the theme name to use | |||
@@ -3,8 +3,8 @@ title = "Overview" | |||
weight = 10 | |||
+++ | |||
Gutenberg has built-in support for themes in a way that are easy to customise | |||
Zola has built-in support for themes in a way that are easy to customise | |||
but still easy to update if needed. | |||
All themes can use the full power of Gutenberg, from shortcodes to Sass compilation. | |||
All themes can use the full power of Zola, from shortcodes to Sass compilation. | |||
@@ -45,7 +45,7 @@ | |||
margin-left: 2rem; | |||
h1, h2, h3, h4, h5, h6 { | |||
.gutenberg-anchor { | |||
.zola-anchor { | |||
font-size: 1.25rem; | |||
visibility: hidden; | |||
margin-left: -2rem; | |||
@@ -55,7 +55,7 @@ | |||
} | |||
&:hover { | |||
.gutenberg-anchor { | |||
.zola-anchor { | |||
visibility: visible; | |||
} | |||
} | |||
@@ -7,17 +7,17 @@ | |||
<meta name="description" content="{% block description %}{{ config.description }}{% endblock description %}"> | |||
<meta name="author" content="{{ config.extra.author }}"> | |||
<title>{% block title %}{{ config.title }}{% endblock title %}</title> | |||
<link rel="stylesheet" href="{{ get_url(path="site.css", trailing_slash=false) }}"/> | |||
<link rel="icon" href="{{ get_url(path="favicon.ico", trailing_slash=false) }}"> | |||
<link rel="stylesheet" href="{{ get_url(path="site.css") }}"/> | |||
<link rel="icon" href="{{ get_url(path="favicon.ico") }}"> | |||
</head> | |||
<body> | |||
<header> | |||
<nav class="{% block extra_nav_class %}container{% endblock extra_nav_class %}"> | |||
<a class="header__logo white" href="{{ config.base_url }}">Gutenberg</a> | |||
<a class="header__logo white" href="{{ config.base_url }}">Zola</a> | |||
<a class="white" href="{{ get_url(path="./documentation/_index.md") }}" class="nav-link">Docs</a> | |||
<a class="white" href="{{ get_url(path="./themes/_index.md") }}" class="nav-link">Themes</a> | |||
<a class="white" href="https://github.com/Keats/gutenberg" class="nav-link">GitHub</a> | |||
<a class="white" href="https://github.com/getzola/zola" class="nav-link">GitHub</a> | |||
<div class="search-container"> | |||
<input id="search" type="search" placeholder="🔎 Search the docs"> | |||
@@ -44,7 +44,7 @@ | |||
<div class="selling-point"> | |||
<h2>No dependencies</h2> | |||
<p> | |||
Gutenberg comes as a single executable with Sass compilation, syntax highlighting, table of contents | |||
Zola comes as a single executable with Sass compilation, syntax highlighting, table of contents | |||
and many other features that traditionally require setting up a dev environment | |||
or adding some JavaScript libraries to your site. | |||
</p> | |||
@@ -62,7 +62,7 @@ | |||
<div class="selling-point"> | |||
<h2>Scalable</h2> | |||
<p> | |||
Gutenberg renders your whole site as static files, making it trivial to handle | |||
Zola renders your whole site as static files, making it trivial to handle | |||
any kind of traffic you will throw at it at no cost without having | |||
to worry about managing a server or a database. | |||
</p> | |||
@@ -80,7 +80,7 @@ | |||
<div class="selling-point"> | |||
<h2>Flexible</h2> | |||
<p> | |||
Gutenberg gets out of your way so you can focus on your content, be it a blog, | |||
Zola gets out of your way so you can focus on your content, be it a blog, | |||
a knowledge base, a landing page or a combination of them. | |||
</p> | |||
</div> | |||
@@ -88,7 +88,7 @@ | |||
<div class="selling-point"> | |||
<h2>Augmented Markdown</h2> | |||
<p> | |||
Gutenberg comes with <a href="{{ get_url(path="./documentation/content/shortcodes.md") }}">shortcodes</a> and | |||
Zola comes with <a href="{{ get_url(path="./documentation/content/shortcodes.md") }}">shortcodes</a> and | |||
<a href="{{ get_url(path="./documentation/content/linking.md") }}">internal links</a> | |||
to make it easier to write your content. | |||
</p> | |||
@@ -99,11 +99,11 @@ | |||
{% endblock content %} | |||
</div> | |||
<footer> | |||
©2017-2018 — <a class="white" href="https://vincent.is">Vincent Prouillet</a> and <a class="white" href="https://github.com/Keats/gutenberg/graphs/contributors">contributors</a> | |||
©2017-2018 — <a class="white" href="http://vincentprouillet.com">Vincent Prouillet</a> and <a class="white" href="https://github.com/getzola/zola/graphs/contributors">contributors</a> | |||
</footer> | |||
<script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js", trailing_slash=false) }}"></script> | |||
<script type="text/javascript" src="{{ get_url(path="search_index.en.js", trailing_slash=false) }}"></script> | |||
<script type="text/javascript" src="{{ get_url(path="search.js", trailing_slash=false) }}"></script> | |||
<script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") }}"></script> | |||
<script type="text/javascript" src="{{ get_url(path="search_index.en.js") }}"></script> | |||
<script type="text/javascript" src="{{ get_url(path="search.js") }}"></script> | |||
</body> | |||
</html> |
@@ -1,6 +1,6 @@ | |||
{% extends "themes.html" %} | |||
{% block title %}{{ page.title }} | Gutenberg {% endblock title %} | |||
{% block title %}{{ page.title }} | Zola {% endblock title %} | |||
{% block theme_content %} | |||
<div class="theme-info"> | |||
<img src="{{page.permalink}}screenshot.png" class="thumb"> | |||
@@ -8,7 +8,7 @@ | |||
{% block content %} | |||
<div class="themes-container"> | |||
{% block theme_content %} | |||
<h1>Gutenberg themes</h1> | |||
<h1>Zola themes</h1> | |||
<div class="themes"> | |||
{% for theme in section.pages %} | |||
<a class="theme" href="{{theme.permalink}}"> | |||
@@ -9,14 +9,14 @@ grade: devel # must be 'stable' to release into candidate/stable channels | |||
confinement: strict # use 'strict' once you have the right plugs and slots | |||
apps: | |||
gutenberg: | |||
zola: | |||
command: zola | |||
plugs: | |||
- network | |||
- network-bind | |||
parts: | |||
gutenberg: | |||
zola: | |||
plugin: rust | |||
rust-channel: stable | |||
build-packages: | |||