Stati
An extensible static site generator in PHP that can work with any existing jekyll site and get the same results.
Install
Option 1
If you already have composer installed, the easiest way to install stati is to just run this command:
composer global require stati/stati>=0.5.8This will download and install Stati in the ~/.composer folder. Make sure ~/.composer/vendor/bin/ is in your $PATH so that you can run stati from anywhere on your filesystem.
Option 2
Alternatively, you can download the latest release
Make the file executable with chmod a+x ./stati (on Linux and MacOS)
If you want, you can then move it somewhere in your path (something like /usr/local/bin for example).
You can try copy/pasting the command below to do all of this in one easy step:
curl -o stati https://raw.githubusercontent.com/jfoucher/stati/0.5.8/build/stati && chmod a+x stati && mv stati /usr/local/bin/statiRunning
Once the install is complete, change to your website directory and run stati build to generate your site, or stati serve to serve it locally. You can also use stati s or stati b as shortcuts
Options
Both the generate and the serve command have the following options available:
-
--watchshortcut-wThis makes Stati watch your filesystem for changes. If it detects that one of your source files has changed, it will automatically regenerate your site. -
--no-cacheshortcut-ncCompletely deletes the Stati cache before generating your site.
The serve command has this additional option:
--portshortcut-pThe port to use for serving your website. For examplestati serve --port=8080will make your site available onhttps://localhost:8080/.
Requirements
If your highlight your code with {% highlight %} {% endhighlight %} blocks, you must have pygmentize in your path, i.e. install pygments globally
If you use sass or scss, the sass or scss commands must be available.
Plugins
Stati uses plugins extensively, even for some core functionality. Required plugins are installed automatically by composer, but if you want to install a specific plugin, you just have to run composer require stati/plugin-name or composer global require stati/plugin-name depending on whether you installed Stati locally or globally.
Alternatively, just copy the .phar file in the _plugins/ directory of your website, just like for Jekyll.
Contributing
Try Stati with your site and let me know what fails by opening an issue on Github.
The plugin architecture, based on the Symfony Event dispatcher, allows plugin authors to hook into various points in the site generation lifecycle to modify the output.
Please check the plugin documentation
Status
I run Stati on themes I can find, mostly from jekyllthemes.org you can view the results on the Report page