Pagination allows you to create multiple files from a single template. The main goal of this change is to introduce a preprocessor that looks for pagination information in a file's metadata and turns that file into multiple files.
Permalink
Inspired by 11ty, I changed the :permalink to allow for embedded Elixir to enable devs to change the output path of the generated files.
Data
While testing against my personal website, I found that making the global data available in every template created a memory leak and consistently blew up the beam. Because of that, I had to remove the global data from the templates, which is a breaking change. You can still call Data.global() from any template, so the mechanism to automatically load data from a folder is still very useful.
Performance
My personal use-case for this feature is very compute-intensive, so while debugging my issues, I also introduced some optimizations: both the AddLayout preprocessor and the include helper were calling a Node process that was only delegating the call to another function. This meant that one process blocked simultaneous renders to a layout or a file being included for no good reason. So I fixed it.
Pagination allows you to create multiple files from a single template. The main goal of this change is to introduce a preprocessor that looks for pagination information in a file's metadata and turns that file into multiple files.
Permalink
Inspired by 11ty, I changed the
:permalink
to allow for embedded Elixir to enable devs to change the output path of the generated files.Data
While testing against my personal website, I found that making the global data available in every template created a memory leak and consistently blew up the beam. Because of that, I had to remove the global data from the templates, which is a breaking change. You can still call
Data.global()
from any template, so the mechanism to automatically load data from a folder is still very useful.Performance
My personal use-case for this feature is very compute-intensive, so while debugging my issues, I also introduced some optimizations: both the
AddLayout
preprocessor and theinclude
helper were calling aNode
process that was only delegating the call to another function. This meant that one process blocked simultaneous renders to a layout or a file being included for no good reason. So I fixed it.Closes https://github.com/still-ex/still/issues/175