v2.0.0 Release: Pages!


We're absolutely ecstatic to present to you the fresh-off-the-software-press v2.0.0 release of our platform! This isn't just a bump in the version number or some behind-the-scenes tinkering. No, my friends, this is a revolution for writers and website creators alike, ready to charge up your creative engines!

Let's dive right in and explore these thrilling additions and enhancements:

Redefining the 'Pages' and 'Front Matter' Concept

Our vision has always been a website abundant with vibrant pages. Previously, these pages sprung from markdown with front matter. But we've realized that our code's class Frontmatter was donning many hats, including handling content metadata and calculated properties.

Time for a paradigm shift! Let's call a spade a spade. Front matter will solely parse from content, while Page ascends as the principal entity. We've cleared the clutter by removing an internal "page-lite" class in favor of front matter. Yes, even the system-generated pages like tags now employ front matter to shape the full page.

This reinvention might disrupt compatibility from previous ABI, thus flagged as Breaking Changes and boosting the major version to the groundbreaking 2.

Discover the Power of Plain Content and Word Count

In a nod to all future literary prodigies, our Pages now can bare it all – outputting the text in its raw, untarnished form, free from the confines of HTML and markdown tags. To bask in this authenticity in your template, simply use {{ page.Plain }}.

Also, say hello to the new word count functionality, powered by {{ page.WordCount }}.

As like any other page variable, they are case-sensitive.

Fine-tune your sucos.yaml to include Description and Copyright information, making your website even more enticing to SEO algorithms. Implement these in your templates with {{ page.Site.Description }} and {{ page.Site.Copyright }}.

Taking Control with Forced Expired Pages

By default, SuCoS smartly sidesteps pages marked with a past ExpiredDate yaml tag. However, we believe in giving you control. Override this feature by simply setting the -e or -expired flag in the command line.

Shifting Gears: Everything is Now Internal

In our relentless quest to maximize security and performance, we've transitioned most of the code from public to internal. In the C# universe, this means that while our code remains internally visible, it isn't exposed to the public. The only outlier here is our testing suite, which needs access to do its thing – testing!

Power-Packed Performance Enhancements

We've introduced a multitude of optimizations, mainly avoiding thread locking, to serve you a robust, performance-oriented system. Enjoy a smoother, faster experience!

Raising the Bar with Improved Test Coverage

We've pushed the test coverage envelope to now encompass 63%+ of the code, ensuring it stands strong even in rare scenarios. A slew of testing sites has been set up to simulate a wide variety of these scenarios. But wait, there's more to come! Stay tuned.