🚀 This is a pretty big release for Cleaver, the following changes and additions have been added:
- 📜 Markdown is now compiled with parsedown-extra, giving you the ability to add things like class names easily to your content
- 🏗 The command
php cleaverhas been replaced with
php cleaver build, and the CLI system has been overhauled to use Symfony's Console Command component
- 🏗 You can specify single pages to build by referencing either the content item or the output path in the build command (e.g.
php cleaver build posts/2020/test-post.json)
- The entire site's content files are imported under a
$cleavervariable as a Laravel collection, giving you the ability to sort, filter, and loop through parts of your site's content for things like article category pages
- 👀 External JSON files can now be imported into content by storing them in a
resources/datadirectory and then referencing their path in your content file's JSON (see hello-world.json for an example of this)
- External URLs that return JSON can be imported into content by adding them under any heading in your content's JSON file, as long as the url is prepended with
- 💻 The BrowserSync feature has been modified to work alongside webpack-dev-server, running
npm run watchwill spin up that server on port
:8080while the hot-reload version of your site will be available at port
- 🏗 By default, tailwind's build-in purge system has been added in to remove any unused classes from the rendered CSS. This can be disabled by clearing out the
purgearray in tailwind.config.js
- ✅ The
pathvariable can be excluded from JSON and Markdown files, and will auto-generate based on the location and filename of your content files. For example, a file at
resources/content/posts/2020/test.jsonwill render at
- 💅 The CLI output shown while building a site has been updated for both style and substance. Error messages, build times, and runtime hints are more clear and helpful
⚡️ Updates package.json dependencies.
⚡️ Updates conflict with markdown
$contentvariable and new Collection added in 1.4. Changes markdown content variable to
- 📦 Uses the Symfony Finder package in FileEngine->getContentFiles() instead of scandir. This enables recursive directory searching, ignoring dotfiles, and filtering out just json and markdown files all in one line.
- ➕ Adds a basePath variable to the main Cleaver class, enabling nested or differently-organized codebases to access the content/dist directories by modifying a single line.
- ➕ Adds a $content variable to every single view, containing a Collection (via the tightenco/collect package) that contains all content across the entire site. Allows you to filter/map/sort pages and content previews for something like a latests posts page.
⚡️ Updates Laravel Mix to the latest version.
➕ Adds new initial/demo page layout and content.
Modified FileEngine to use Symfony's Filesystem component.
🎉 Initial release!