New Features:
- **Multiple column layouts** are now available for all page content. To use it, Inside a markdown header, use <kbd>splitsection</kbd> class to split the content into different sections. Bestatic will pass these sections separately (along with your corresponding headings and section index numbers) to your templates. You can then utilize all Jinja2 logic systems to customize your content into dynamic multiple columns (using Bootstrap CSS or something similar). We will soon update [Bestatic themes](https://www.bestaticpy.com/themes/) to take advantage of this feature.
- Users can now define their own **Shortcodes** (i.e., _macros_ that can convert simple snippets in contents into per-defined HTML markup) for markdown processing by writing custom Python functions and including them in <kbd>_shortcodes</kbd> directory.
- In addition to per-existing "tags", users can now define **custom taxonomies** (for e.g., categories, authors, movies, etc.), generate list page for each of those, and process additional data for each of these taxonomies from .yaml files in <kbd>_includes/yamls</kbd> directory. As a result, multiple authors can now have custom pages with their biography and list of authored articles.
- The main <kbd>config.yaml</kbd> has been renamed as <kbd>bestatic.yaml</kbd>. Old <kbd>config.yaml</kbd> would still work for now, but it will eventually be depreciated.
- Slugs now will be generated automatically as per the filename (of course, user is free to customize it, as usual) when <kbd>bestatic newpage</kbd> or <kbd>bestatic newpost</kbd> would be used.
- Dates and times can now be formatted in the <kbd>bestatic.yaml</kbd> using the strftime format (see [this](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes) and [this](https://strftime.org/) for reference) to display those as per users' choice. The "%B %d, %Y" format has been set as a fallback option.
- Custom extensions and extension configurations now can be added via <kbd>bestatic.yaml</kbd> file. All [python-markdown extensions](https://python-markdown.github.io/extensions/) and
[Pymdown extensions](https://facelessuser.github.io/pymdown-extensions/) can be used now, along with their individual configurations.
- The character length of post summary can now be defined in <kbd>bestatic.yaml</kbd> file.
- Single posts can be used as homepage.
- **Navigation** can now be simply defined in <kbd>bestatic.yaml</kbd> file. It can be as nested as required. With proper themes, users will no longer need to manually edit templates to define the navigation links.
- For post items, URL parameter can now be completely user defined (e.g., "blog", "news", "articles", etc.), configurable via <kbd>bestatic.yaml</kbd> file. "Posts" will now be the fallback option.
- In addition to previous slug and next slug, each post has access to previous and next titles of the posts.
- Included [markdown-include](https://github.com/cmacmackin/markdown-include) extension in the Bestatic package so that one markdown file can add content from another markdown file.
- The **fuse-search** tool has been rewritten to include user-defined search-index file link.
- Page type contents now can have access to all the Post type content data. This can be enabled in <kbd>bestatic.yaml</kbd> file.
Bug fixes:
- The newline attribute has been removed from the sitemap.xml files.
- Tags field can now be empty (if the user chooses to not use any tag).
- Faulty caching in Bestatic development server has been fixed (which often created issues with Chromium-based browsers).
- Time zone can now be set in <kbd>bestatic.yaml</kbd> file. The UTC has been set as a fallback option.
- Post summaries on list page will no longer have unprocessed HTML tags.
- [Project Sites](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites) on GitHub and GitLab can now be better deployed using -p or --projectsite flag.
Documentation and themes will be updated accordingly soon.
As usual, Bestatic can be downloaded and installed from the [GitHub release page](https://github.com/tatsatb/bestatic/releases/latest), or [Snap store](https://snapcraft.io/bestatic), or [Flathub](https://flathub.org/apps/com.bestaticpy.bestatic), or [PyPI](https://pypi.org/project/Bestatic/).
Detailed installation instructions, quickstart guide, and user manual are available on our [official documentation](https://www.bestaticpy.com/docs/).