v1.1.0 Release

2023-06-22

We are thrilled to announce the latest release of SuCoS, v1.1.0. The first automated weekly release. This version comes chock-full of new features that will significantly improve your user experience and streamline your content management process. The primary features introduced include:

Let's take a closer look at these updates!

Markdown Extras

The power of Markdig, our reliable Markdown parser, just got an upgrade! Now, its default setting includes all built-in extensions. This means you can now create tables, citations, figures, mathematical formulas, auto-links, and more with ease and precision.

For example, to create a simple table, use the following format:

| Header 1 | Header 2 |
| -------- | -------- |
| Row 1    | Row 2    |

will become:

Header 1 Header 2
Row 1 Row 2

Params

The Params feature allows all site and page YAML values without matching attributes in the FrontMatter or Site classes to be placed in a dictionary Params. This opens the door for using custom fields in your templates. Here's how you can do it:

Create your content as shown below:

---
Title: My Page
MyCustomValue: HELLO
---

This is the *Markdown* content.

And use the custom value in your template:

<!-- It will create <span>HELLO</span> -->
<span>{{ page.Params.MyCustomValue }}</span>

URL with Liquid tokens

We've added a feature that enables Content URL fields to be parsed as a mini Liquid template. This means you can now use other content values, like title, path, or tags, to generate unique URLs. This feature provides a more efficient and dynamic URL creation process.

---
Title: My Page
Type: page
URL: "{{ page.Type }}/{{ page.Title }}" # it will become "/page/my-page"
---

This is the *Markdown* content.

Content URL Aliases

This feature allows content to have multiple URLs pointing to the same page. It's particularly useful when you're transitioning from legacy or old URLs or when you're generating small bitly-like alternatives. Like regular URLs, aliases can also use tokens.

For example, define your aliases in the content file:

---
Title: My Page
Aliases:
  - /legacy-url
  - /short-url
  - "{{ page.Type }}/{{ page.Title }}"
---

This is the *Markdown* content.

Content Date, PublishDate, ExpiryDate and LastMod

We've added support for these four date fields in the content front matter. Now, you can easily manage your content's publish and expiry dates, as well as track their last modification.

Important: SuCoS now ignore content that have Date or PublishDate set in the future, as well ExpiryDate that is earlier than the current time. Use the Future command to include them

-f/--Future command line option

We have introduced a new build and serve command line option to include posts from the future (Date or PublishDate values later than the current time). This is particularly handy when you want to preview posts that will be displayed at a later time.

As we continue to improve SuCoS, we appreciate your feedback on these new features. Please feel free to share your thoughts and experiences as you explore SuCoS

Section pages

The very first folder inside content defines each content's Section. Pages, blog, tags... Now SuCoS automatically creates a page for each section. So you can now use ht<span>tp://</span>example.com /blog to get a list of all blog posts, by default.