diff options
Diffstat (limited to 'content/themes/creating-a-theme.md')
-rw-r--r-- | content/themes/creating-a-theme.md | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/content/themes/creating-a-theme.md b/content/themes/creating-a-theme.md new file mode 100644 index 0000000..b01577c --- /dev/null +++ b/content/themes/creating-a-theme.md @@ -0,0 +1,72 @@ ++++ +title = "Creating a theme" +weight = 30 ++++ + +Creating a theme is exactly like creating a normal site with Zola, except you +will want to use many [Tera blocks](https://tera.netlify.com/docs#inheritance) to +allow users to easily modify it. + +## Getting started +As mentioned, a theme is just like any site; start by running `zola init MY_THEME_NAME`. + +The only thing needed to turn that site into a theme is to add a `theme.toml` configuration file with the +following fields: + +```toml +name = "my theme name" +description = "A classic blog theme" +license = "MIT" +homepage = "https://github.com/getzola/hyde" +# The minimum version of Zola required +min_version = "0.4.0" +# An optional live demo URL +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 Zola +[extra] + +# The theme author info: you! +[author] +name = "Vincent Prouillet" +homepage = "https://vincent.is" + +# If this is porting a theme from another static site engine, provide +# the info of the original author here +[original] +author = "mdo" +homepage = "http://markdotto.com/" +repo = "https://www.github.com/mdo/hyde" +``` + +A simple theme you can use as an example is [Hyde](https://github.com/Keats/hyde). + +## Working on a theme +As a theme is just a site, you can simply use `zola serve` and make changes to your +theme, with live reload working as expected. + +Make sure to commit every directory (including `content`) in order for other people +to be able to build the theme from your repository. + +## Submitting a theme to the gallery + +If you want your theme to be featured in the [themes](@/themes/_index.md) section +of this site, the theme will require two more things: + +- `screenshot.png`: a screenshot of the theme in action with a max size of around 2000x1000 +- `README.md`: a thorough README explaining how to use the theme and any other information +of importance + +The first step is to make sure that the theme meets the following three requirements: + +- have a `screenshot.png` of the theme in action with a max size of around 2000x1000 +- have a thorough `README.md` explaining how to use the theme and any other information +of importance +- be of reasonably high quality + +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. + |