A complete development toolchain with dynamic site routing and Markdown support for PHP websites.
Ziggurat consists of two parts:
- Ziggurat Core: a PHP-based URL router that reads specific metadata in PHP files to index and create a dynamic page structure. The core also provides other features like templating, listing child-pages and built-in Markdown support.
- Ziggurat Toolchain: a Node-based toolchain that utilizes Gulp to compile and generate a deployment-ready build of the website.
Ziggurat core:
- Templating using PHP
- Hierarchical page organisation
- Simple page routing
- Page list querying (for listing sub-pages)
- Page indexing and caching (using SQLite3, with JSON plaintext fallback)
- Basic HTML minification
- Output compression using Zlib
- Markdown in pages with the help of Parsedown
- Lazy loading image ratio calculation for
padding-toptrick - Automatic sitemap generator
Ziggurat toolchain:
- Live server with PHP support using BrowserSync and gulp-connect-php
- SCSS to CSS prefixing and compilation using Autoprefixer and node-sass
- ES6 uglification and transpilation to ES5 using Rollup and Terser
- SVG inlining (for SCSS and HTML)
- Automatic image resizing and optimization with Sharp and pngquant
- Favicons/manifest generation using Favicons
There are a few examples available in the examples folder of Ziggurat GitHub repo. To see Ziggurat in action you can take a look at my personal website.
- Deployment integration?
- Hook for custom templating engine?
- Automatic pages/posts list (done: 2019-04-19)
- Add example project (done: 2019-04-20)
- Favicon generation (done: 2019-04-21)
- Generate sitemap automatically (done: 2019-05-04)
- Better configurability with config.json (done: 2019-08-28)
- Custom page status handling for error and 404 pages (done: 2019-08-29)
Please consider donating if you think Ziggurat is helpful to you or that my work is valuable. I am happy if you can buy me a cup of coffee. ☕️