Skip to content

Releases: glaciers-in-archives/snowman

0.6.1

11 Apr 08:49
Compare
Choose a tag to compare

Snowman 0.6.1 ⛄

This is a patch release fixing an issue causing the get_remote function to expect two arguments instead of the intended one. It also improves Windows support and brings a quality of life improvement to view definitions.

Screenshot from 2021-10-12 00-17-09

Changes 🎈

Bug fixes 🪲

  • On Windows, paths to queries in views.yaml do longer need double slashes(\\) #100
  • get_remote now only expects one parameter as prior to 0.6.0.

Other changes 🍿

  • There can now be spaces surrounding references to variables in views.yaml. #102

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.7.0 🗺

Let us know what we should include in Snowman 0.7.0 either by raising an issue or opening a discussion.

Note that there is currently a discussion open regarding a potential breaking change for math template functions and there is a plan to change the interface of the cache CLI command.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.6.0

12 Mar 11:17
Compare
Choose a tag to compare

Snowman 0.6.0 ⛄

This release is the sixth non-experimental release of Snowman, a static site generator for SPARQL backends. This release brings you support for forwarding multiple arguments to include and include_text, under the hood template functions has been reworked to ensure test-ability, and the SPARQL-client from a third-party dependency has been replaced with our own.

Screenshot from 2021-10-12 00-17-09

Features and changes 🎈

Breaking changes ⚠️

  • mul and add now only takes two arguments instead of an unlimited number.
  • Multi-page path targets can no-longer start or end with ..

Here are some of the most notable changes:

CLI 🛠

  • Most of the output from the build command has been removed. Non-warnings/errors can still be enabled by passing the new --verbose option.
  • The build command will now exit if a bad multi-page path target is being referenced instead of quietly replace the illegal pattern with underscores.

Template functions 🛠

  • include and include_text can now take an unlimited set of arguments. #79
  • contains is a new template function for checking if a string contains another string. #94
  • get_remote and get_remote_with_config now supports URL arguments of other types than string(such as iri). #89
  • add and mul now only supports two arguments at a time.

Documentation 📄

  • The template functions include and include_text has been documented. #85
  • The limit argument of replace has been documented. #84
  • There are new documentation regarding Snowman development itself.
  • The build command flag config has been documented.
  • The template functions has_suffix and has_prefix has been documented. #82

Bug fixes 🪲

  • The template functions to_json and from_json are now available in child templates as intended. #90

Other changes 🍿

  • / can now be used in multi-page path targets.
  • Multi-page path targets can no longer be empty.
  • Multi-page path targets can no-longer start or end with ..

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.7.0 🗺

Let us know what we should include in Snowman 0.7.0 either by raising an issue or opening a discussion.

Note that there is currently a discussion open regarding a potential breaking change for math template functions and there is a plan to change the interface of the cache CLI command.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.5.0

18 Aug 13:18
5eaa6f5
Compare
Choose a tag to compare

Snowman 0.5.0 ⛄

This release is the fifth non-experimental release of Snowman, a static site generator for SPARQL backends. This release is a rather small one given our release history but it brings you a new --conflig build parameter as well as two important bugs fix next to various changes to the documentation.

Screenshot from 2021-10-12 00-17-09

Features and changes 🎈

There are no breaking changes in this release.

Here are some of the most notable changes:

CLI 🛠

  • A new --config flag for the build command which allows you to points to other configuration files than the default snowman.yaml.

Documentation 📄

  • Added documentation for Go's built in print template function
  • Removed an obsolete note about functions not understanding RDF terms
  • Added documentation for the view option unsafe. Thank you @mzeinstra! ⭐

Template functions 🛠

  • Added int which casts values to integers.

Bug fixes 🪲

  • Fixed a bug causing site files from previous build runs not to clear
  • Fixed a bug causing the query template function to incorrectly inject parameters if called with more than one has been fixed. #68 Thank you @LvanWissen! ⭐

Known issues

  • Snowman 0.4.0 appears to have introduced a dependency on LibC, this is not intended. If you are affected, either install a matching LibC version or build Snowman from source on your target platform. #72

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.6.0 🗺

Let us know what we should include in Snowman 0.6.0 either by raising an issue or opening a discussion.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.4.0

28 Mar 11:50
Compare
Choose a tag to compare

Snowman 0.4.0 ⛄

This release is the fourth non-experimental release of Snowman, a static site generator for SPARQL backends. This release-cycle has focused on advanced template improvements and features that allow one to access remote or system resources. We can't wait to see what you will do with this new set of capabilities!

Screenshot from 2021-10-12 00-17-09

Features and changes 🎈

There are no breaking changes in this release.

Here are some of the most notable changes:

Template features 🛠

  • New read_file template function for reading local files.
  • New current_view template function for accessing configuration of the current view being rendered.
  • New get_remote template function for fetching information from remote URLs.
  • New from_json template function which parses JSON.
  • New re_replace template function which can be used to replace substrings with Regular Expressions.
  • The query template function now takes an unlimited number of arguments.

Documentation 📄

  • A new example showing how to make nested lists with a single SPARQL query.
  • A new example showing how to fetch and parse remote JSON.
  • A new example showing how to read the project's query files.

Bug fixes 🪲

  • Fixed a bug causing very large project builds to fail on UNIX systems.

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.5.0 🗺

Let us know what we should include in Snowman 0.5.0 either by raising an issue or opening a discussion.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.3.1

20 Mar 15:35
Compare
Choose a tag to compare

Snowman 0.3.1 ⛄

This release is a security release for Snowman, a static site generator for SPARQL backends. It resolves an issue with multipage views which could lead to a malicious actor in control of a SPARQL endpoint, creating files outside of your project directory.

Features and changes 🎈

Breaking changes

You can no longer use the following characters in the variables used to render multipage view at a given path: ~ / / / : / * / ? / " / < / > / |

If such a character is present Snowman will replace it with _.

Security issue explanation

Snowman's multipage views take an argument to decide the path in which to render a file.

 -  output: "prints/{{qid}}.html"

Using versions prior to 0.3.1 one could escape out of the project directory with variable values such as ../.., which would result in Snowman rendering pages outside of the intended directory. This could be used by a malicious actor if they controlled the contents of your SPARQL endpoint.

How to check if you are affected

If you use a SPARQL endpoint in which you trust the contents and which hasen't suffered breaches you should not be affected. It can still be good to verify this using the following steps.

You can find suspicious data by searching the contents of your SPARQL cache files which Snowman stores in your project directory under .snomwan/cache. Search these files for patterns like ../ and inspect the results.

If you have a lot of data in your cache directory or want to review the files related to the query used to generate multipage views. Then you can inspect the content of such files using the Snowman cache command(snowman cache <name-of-query>).

If you are in a temporary or sandboxed environment such as a container you can build your site as usual and inspect the Rendered page at messages as these will display the full path.

Acknowledgments

This issue was discovered and reported by @lucaswerkmeister. ⭐

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.4.0 🗺

Snowman 0.4.0 has yet to reach feature freeze.

Snowman 0.4.0 milestone.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.3.0

18 Mar 08:45
Compare
Choose a tag to compare

Snowman 0.3.0 ⛄

This release is the third non-experimental release of Snowman, a static site generator for SPARQL backends.

Screenshot from 2021-10-12 00-17-09

Features and changes 🎈

There are no breaking changes in this release.

This release brings a series of productivity features and template improvements. Here are some of the most notable changes:

Productivity features 🏇

  • snowman new is a new command which can scaffold a new Snowman project. #33

Template features 🛠

  • New trim template function. #36
  • New has_prefix and has_suffix template functions #38
  • New version template function. #44
  • You can now use {{continue}} and {{break}} in loops.

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.4.0 🗺

Snowman 0.4.0 has yet to reach feature freeze.

Snowman 0.4.0 milestone.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.2.0

23 Nov 12:16
Compare
Choose a tag to compare

Snowman 0.2.0 ⛄

This release is the second non-experimental release of Snowman, a static site generator for SPARQL backends.

Screenshot from 2021-10-12 00-17-09

Features and changes 🎈

There are no breaking changes in this release.

This release brings a series of productivity features, template improvements, bug fixes, and documentation improvements. Here are some of the most notable changes:

Productivity features 🏇

  • snowman build prints a warning when it writes to a file twice. #19
  • snowman cache can now invalidate unused cache items. #5
  • snowman build --static now lets you build only static files. #23

Template features 🛠

  • All string functions as well as query, and safe_html now tries to cast any given arguments to a string.
  • New to_json template function. #20
  • New type template function.

Documentation ✍️

  • The readme has been copyedited. Thank you @hughlilly!
  • There is a new example showcasing Snowman's multilingual capabilities.
  • There is a new example showcasing Snowman's configuration options.
  • The snowman server command has been documented.

Bug fixes 🐛

  • snowman server did not display an error if the port or address were already in use. #22
  • cache invalidation did not print its actions.

Installing Snowman 🌨

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you, you can build it from source. If you think we should provide pre-built binaries for additional platforms, consider raising an issue.

Roadmap and Snowman 0.3.0 🗺

While Snowman 0.3.0 has yet to reach feature freeze, it's already in the works. Some planned features include:

  • Cached includes. #32 (in progress)
  • Add a command to scaffold a working project. #33
  • Several new template functions. (#35 #36 #37 #38)

Snowman 0.3.0 milestone.

Discuss 💬

You can discuss this release or other aspects of Snowman in the forum.

0.1.0

12 Oct 13:49
Compare
Choose a tag to compare

Snowman 0.1.0

This release is the first non-experimental release of Snowman, a static site generator for SPARQL backends.

Screenshot from 2021-10-12 00-17-09

Snowman's templating system comes with RDF and SPARQL tailored functions and features and takes its data from SPARQL queries. Snowman is designed to allow RDF-based projects to use SPARQL in the user-facing parts of their stack, even at scale. While Snowman today drops the "experimental" warning it's already in use and powers both projects rendering simple SKOS vocabularies as well as projects rendering complex knowledge bases.

Installing Snowman

Download the binary for your OS/architecture, rename it to "snowman", and place it in a directory on your path. Alternatively, place it in your project folder and execute it with the ./ prefix.

We provide binaries for six architectures/operation systems, if none of these are suitable for you you can build it from source. If you think we should provide pre-built binaries for additional platforms consider raising an issue.

Getting started with Snowman

The Snowman README contains a tutorial-like introduction to Snowman. There are also several example projects available:

Known issues

  • View templates using layouts inherit block values 🐛 #8
  • snowman server does not print an error message when the server port is already in use 🐛 #22

Roadmap and Snowman 0.2.0

Snowman 0.2.0 focuses on developer experience. Some highlights include:

  • Add a template function that can convert data to JSON #20
  • snowman cache should be able to invalidate unused cache items #5
  • Snowman should print a warning when it overwrites files #19

Snowman 0.2.0 milestone.

This release does not mean that Snowman is stable it does however mean that one will have consistent releases to which one can pin their projects. Breaking changes will be announced at least one version ahead of the change.

Discuss

You can discuss this release or other aspects of Snowman in the forum.