summaryrefslogtreecommitdiffstats
path: root/content/themes/creating-a-theme.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/themes/creating-a-theme.md')
-rw-r--r--content/themes/creating-a-theme.md72
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.
+