You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 5.5KB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # zola (né Gutenberg)
  2. [![Build Status](https://travis-ci.com/getzola/zola.svg?branch=master)](https://travis-ci.com/getzola/zola)
  3. [![Build status](https://ci.appveyor.com/api/projects/status/i0ufvx2sdm2cmawo/branch/master?svg=true)](https://ci.appveyor.com/project/Keats/zola/branch/master)
  4. A fast static site generator in a single binary with everything built-in.
  5. Documentation is available on [its site](https://www.getzola.org/documentation/getting-started/installation/) or
  6. in the `docs/content` folder of the repository and the community can use [its forum](https://zola.discourse.group).
  7. ## Comparisons with other static site generators
  8. | | Zola | Cobalt | Hugo | Pelican |
  9. |:-------------------------------:|:---------:|--------|------|---------|
  10. | Single binary | ✔ | ✔ | ✔ | ✕ |
  11. | Language | Rust | Rust | Go | Python |
  12. | Syntax highlighting | ✔ | ✔ | ✔ | ✔ |
  13. | Sass compilation | ✔ | ✔ | ✔ | ✔ |
  14. | Assets co-location | ✔ | ✔ | ✔ | ✔ |
  15. | i18n | ✕ | ✕ | ✔ | ✔ |
  16. | Image processing | ✔ | ✕ | ✔ | ✔ |
  17. | Sane & powerful template engine | ✔ | ~ | ~ | ✔ |
  18. | Themes | ✔ | ✕ | ✔ | ✔ |
  19. | Shortcodes | ✔ | ✕ | ✔ | ✔ |
  20. | Internal links | ✔ | ✕ | ✔ | ✔ |
  21. | Link checker | ✔ | ✕ | ✕ | ✔ |
  22. | Table of contents | ✔ | ✕ | ✔ | ✔ |
  23. | Automatic header anchors | ✔ | ✕ | ✔ | ✔ |
  24. | Aliases | ✔ | ✕ | ✔ | ✔ |
  25. | Pagination | ✔ | ✕ | ✔ | ✔ |
  26. | Custom taxonomies | ✔ | ✕ | ✔ | ✕ |
  27. | Search | ✔ | ✕ | ✕ | ✔ |
  28. | Data files | ✔ | ✔ | ✔ | ✕ |
  29. | LiveReload | ✔ | ✕ | ✔ | ✔ |
  30. | Netlify support | ~ | ✕ | ✔ | ✕ |
  31. | Breadcrumbs | ✔ | ✕ | ✕ | ✔ |
  32. | Custom ouput formats | ✕ | ✕ | ✔ | ? |
  33. ### Supported content formats
  34. - Zola: markdown
  35. - Cobalt: markdown
  36. - Hugo: markdown, asciidoc, org-mode
  37. - Pelican: reStructuredText, markdown, asciidoc, org-mode, whatever-you-want
  38. ### Template engine explanation
  39. 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.
  40. 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.
  41. ### Pelican notes
  42. Many features of Pelican are coming from plugins, which might be tricky
  43. to use because of version mismatch or lacking documentation. Netlify supports Python
  44. and Pipenv but you still need to install your dependencies manually.
  45. ## Contributing
  46. As the documentation site is automatically built on commits to master, all development
  47. should happen on the `next` branch, unless it is fixing the current documentation.
  48. If you want a feature added or modified, please open an issue to discuss it before doing a PR.
  49. ### Adding syntax highlighting languages and themes
  50. #### Adding a syntax
  51. Syntax highlighting depends on submodules so ensure you load them first:
  52. ```bash
  53. $ git submodule update --init
  54. ```
  55. Zola only works with syntaxes in the `.sublime-syntax` format. If your syntax
  56. is in `.tmLanguage` format, open it in Sublime Text and convert it to `sublime-syntax` by clicking on
  57. Tools > Developer > New Syntax from ... and put it at the root of `sublime_syntaxes`.
  58. You can also add a submodule to the repository of the wanted syntax:
  59. ```bash
  60. $ cd sublime_syntaxes
  61. $ git submodule add https://github.com/elm-community/SublimeElmLanguageSupport
  62. ```
  63. Note that you can also only copy manually the updated syntax definition file but this means
  64. Zola won't be able to automatically update it.
  65. You can check for any updates to the current packages by running:
  66. ```bash
  67. $ git submodule update --remote --merge
  68. ```
  69. And finally from the root of the components/config crate run the following command:
  70. ```bash
  71. $ cargo run --example generate_sublime synpack ../../sublime_syntaxes ../../sublime_syntaxes/newlines.packdump
  72. ```
  73. #### Adding a theme
  74. A gallery containing lots of themes is located at https://tmtheme-editor.herokuapp.com/#!/editor/theme/Agola%20Dark.
  75. More themes can be easily added to Zola, just make a PR with the wanted theme added in the `sublime_themes` directory
  76. and run the following command from the root of the components/config:
  77. ```bash
  78. $ cargo run --example generate_sublime themepack ../../sublime_themes ../../sublime_themes/all.themedump
  79. ```
  80. You should see the list of themes being added.