3e1221064b
* Add ignored_content to the Config structure. * Use the GlobSet crate to parse the glob patterns into a matcher, which is created once at program initialization. If there are no patterns in ignored_content, an empty globber is created, which excludes no files. This is consistent with the existing behaviour of Gutenberg, before this feature was added. * Bail if there are any errors in the glob patterns. * Add a call to the globber in page.rs to actually do the filtering. * Update documentation. A note on the Config structure ------------------------------ * I had to remove the PartialEq derive from the Config structure as it does not work for the GlobSet type. No harm is done, Config does not need to be PartialEq anyway, since there is no need to sort Configs. * The implementation follows the pattern of the existing config settings in that it uses an Option<...>. This would appear unnecessary, in that an empty vec could be used as the default, but it appears to be needed by the TOML parsing. A better approach would be to use a separate SerializableConfig and map to/from a Config struct. This would also allow the elimination of most, if not all, of the other Options in the Config structure, but that ought to be another PR. |
||
---|---|---|
ci | ||
completions | ||
components | ||
docs | ||
src | ||
sublime_syntaxes | ||
sublime_themes | ||
test_site | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
netlify.toml | ||
README.md |
Gutenberg
An opinionated static site generator written in Rust.
Documentation is available on its site or
in the docs/content
folder of the repository.
Example sites
- vincent.is: https://gitlab.com/Keats/vincent.is
- code<future
- http://t-rex.tileserver.ch (https://github.com/pka/t-rex-website/)
- adrien.is: https://github.com/Fandekasp/fandekasp.github.io
- Philipp Oppermann's blog: https://github.com/phil-opp/blog_os/tree/master/blog
- seventeencups: https://github.com/17cupsofcoffee/seventeencups.net
- j1m.net: https://gitlab.com/jwcampbell/j1mnet
- vaporsoft.net: https://github.com/piedoom/vaporsoft
- bharatkalluri.in: https://github.com/BharatKalluri/Blog
- verpeteren.nl
- atlasreports.nl
- groksome.com
- tuckersiemens.com: https://github.com/reillysiemens/tuckersiemens.com
Contributing
As the documentation site is automatically built on commits to master, all development
should happen on the next
branch, unless it is fixing the current documentation.
If you want a feature added or modified, please open an issue to discuss it before doing a PR.
Adding syntax highlighting languages and themes
Adding a syntax
Syntax highlighting depends on submodules so ensure you load them first:
$ git submodule update --init
Gutenberg only works with syntaxes in the .sublime-syntax
format. If your syntax
is in .tmLanguage
format, open it in Sublime Text and convert it to sublime-syntax
by clicking on
Tools > Developer > New Syntax from ... and put it at the root of sublime_syntaxes
.
You can also add a submodule to the repository of the wanted syntax:
$ cd sublime_syntaxes
$ git submodule add https://github.com/elm-community/SublimeElmLanguageSupport
Note that you can also only copy manually the updated syntax definition file but this means Gutenberg won't be able to automatically update it.
You can check for any updates to the current packages by running:
$ git submodule update --remote --merge
And finally from the root of the components/rendering crate run the following command:
$ cargo run --example generate_sublime synpack ../../sublime_syntaxes ../../sublime_syntaxes/newlines.packdump ../../sublime_syntaxes/nonewlines.packdump
Adding a theme
A gallery containing lots of themes is located at https://tmtheme-editor.herokuapp.com/#!/editor/theme/Agola%20Dark.
More themes can be easily added to gutenberg, just make a PR with the wanted theme added in the sublime_themes
directory
and run the following command from the root of the components/rendering:
$ cargo run --example generate_sublime themepack ../../sublime_themes ../../sublime_themes/all.themedump
You should see the list of themes being added.