Trio v3.0.0: Permalinkns And Other Goodies
Lots of goodies for you in this release.
New features make this the most productive release of Trio yet, and major bug fixes make this the most stable release of Trio to date!
Though originally intended to provide flexibility as to where you wish to target the generation of your article pages, Trio's permalink implementation is general enough to be used for other use cases as well, such as grouping your fragment files into easily recognizable and manageable sub folders of root/source/fragments. Trio allows you to declare your permalinks in the trio.json configuration file as well as in individual fragments.
New! You now have total control as to how you structure your blogs.
* breaking change!
The source/fragments/blog folder, including the source/fragments/blog/tag, source/fragments/blog/category and the source/fragments/blog/archive folders are now gone. The articles folder is now a direct child of source/fragments, and that's where it always should have been.
This is a breaking change and you might have to modify your projects' blogs to conform to this change, but it is one that I hope you will all come to appreciate as you realize the flexibility that this, along with the new Permalinks feature, now affords you. I am truly sorry for any inconvenience that this may have caused you.
* Tip #1: You can continue to use the blog folder to host your generated blog exactly as prior versions of Trio had done.
To do so, you first have to make the source/fragments/blog/articles folder a direct child folder of the source/fragments folder. Then, you must add a permalink in trio.json that will direct Trio to generate your article pages in either the public/blog folder or in the release/blog/ folder, depending on which command you use to generate your project, which can be either build or release, respectively, as shown below:
permalinks: [ "articles: blog" ]
* Tip #2: You can use an approach similar to Tip #1 above to name your generated blog's folder to something other than blog, such as to myblog, for example.
To do so, move the articles folder out of the blog folder as described above. Then, like above, you must add a permalink in trio.json, but this one will trigger Trio to generate your articles, categores, tags and archive pages in a folder called myblog:
permalinks: [ "articles, blog: myblog" ]
New! Incremental Build Now Watches trio.json For Changes.
Now, when building incrementally while watching for changes, and you make changes in your project's trio.json configuration file, Trio will run a one-off build so that your changes can be applied to your site. You no longer have to terminate your incremental build, then run a one-off build to apply the changes you made in trio.json to your site, and then start another incremental build.
New! Enhanced Collection Dataset Validation.
* breaking change!
Beginning with v3, Trio can now property validate and generate warning messages when an item in a collection dataset is missing one or both of its required properties, namely its page name, and the data associated with that page.
This is a breaking changes, and I am truly very sorry for any inconvenience that this may have caused you, but I hope you agree that insuring the data integrity of these dataset items is very important.
Improved Consistent Formating For Error And Warning Messages.
A lot of cruft had built up regarding how error and warning messages were formatted. This version of Trio has attempted to address that by providing a more consistent format for both error and warning messages.
Major Bug Fixes
Fixed - A bug (issue #98) that prevented you from creating a new project at the command line from within the new project's target folder.
Fixed - A bug (issue #94) that would cause incremental build with watch to break when you would rename a fragment. Now, when you rename a fragment, Trio will run a one-off build to insure that its cache accurately represents the current state of your project.
Fixed - A bug (issue #93) that would sometimes prevent articles from being generated if they didn't declare a category in their front matter.
Upgrading From An Older Version Of Trio.
Whenever you upgrade to a new version of Trio, you should always run a one-off build to insure that Trio's cache is updated to its current expectations:
$ trio build | b
Please see the changelog for details.