Skip to content

Releases: stakx-io/stakx

Version 0.2.1 "Jittery Lynx"

04 Jul 02:09
c5b3114
Compare
Choose a tag to compare

New

  • Added new case_insensitive flag to the order filter (#101)
  • A new highlighter.line_numbers configuration file option has been added to render line numbers in markup code blocks (#105, #112)
  • Added ability to highlight specific lines in markup code blocks (#105, #112)
  • Add new global redirects Twig variable to keep track of all redirects used in a site (#113)
  • Collection items can now have assets tied to them either automatically by linking images or using the assets directive in FrontMatter (#116)
  • Introduce new anchors Twig filter (#120) to let you add anchors to HTML headings

Fixes

  • Added PHP 7.4 support where Parsedown threw deprecation warnings (#111)

Changes

  • Improve the Sass compilation time by using scssphp's new built-in cache capabilities instead of our custom workaround

Development

  • The core filesystem classes have been updated to have a unified way of handling paths, files, and directories (#115)

Version 0.2.0 "Guilty Ocelot"

01 Oct 06:50
7b90155
Compare
Choose a tag to compare

The next major release of stakx is ready and has been battle tested with the complete redesign of the BZFlag.org website. 🎉 🎉

Here are the changes since the last beta release:

Changes

  • The serve command has been marked as experimental due to some known bugs that are not easy to fix
  • The minimum version of PHP required is now 5.6
  • Our SCSS library has been updated with bug fixes and speed improvements

Fixes

  • Unicode characters are now preserved in the summary and toc Twig filters

Version 0.2.0 Beta 2

14 Apr 23:18
719042b
Compare
Choose a tag to compare
Version 0.2.0 Beta 2 Pre-release
Pre-release

Changes

  • The MIME list used in the development web server has been extended to use Symfony's list

Fixes

  • Highlighting code in PHP 7.3 no longer causes an infinite loop
  • Fix the summary and toc Twig filters failing under rare conditions when a <body> tag existed in the HTML given to it
  • "File aware" exceptions display more helpful messages when running under the serve command
  • Redirects now work correctly when using the serve command
  • Fix support for extra /s added to permalinks via Front Matter variables (#99)

Development

  • Updated Twig to use namespaces after a breaking change caused stakx to fail with an updated version of Twig
  • The development web server now uses Symfony's router instead of nikic's FastRoute

Version 0.2.0 Beta 1

12 Dec 07:10
Compare
Choose a tag to compare
Version 0.2.0 Beta 1 Pre-release
Pre-release

The first beta for the upcoming stakx 0.2.0 release with a lot of bug fixes and improvements. We've entered a feature freeze, so that's it! It's only bug fixes from here on out.

New

  • The url() Twig filter can now link to Repeater PageViews (#78)
  • Twig now has a new global template called repeaters to access all of the Repeater PageViews; these PageViews are indexed based on the title FrontMatter value just like Static PageViews.
  • Added new slug Twig filter
  • The 500 error page in the serve command now shows more useful information about the exception that was thrown
  • Sass Asset Engine now caches the Sass AST it builds inside of .stakx-cache/. Using the --use-cache flag will enable stakx to read this cache and only rebuild the updated Sass (#91)
  • The url() Twig filter can now handle external URLs without breaking them (#95)

Changes

  • Passing a JailedDocument into the Twig dump() filter will now output useful information; such as, all of the accessible FrontMatter and whitelisted methods.
  • Heading IDs inside of the markdown engine now use the same algorithm as the Twig slug() filter
  • Underscore folders inside of themes are now automatically ignored (#87)
  • The Sass compiler has been updated to better handle AST caching especially during serve and --use-cache
  • The where() Twig filter logic has been simplified and longer works recursively, which was "undefined behavior" to begin with

Fixes

  • Feeding JailedDocuments into the Twig dump() filter will no longer cause an infinite loop
  • Sass is correctly updated and compiled during the serve command; you no longer need to restart the server to get your Sass to recompile (#86)
  • FrontMatter from Dynamic PageViews are now accessible through children DataItems (#93); information from the DataItem will override PageView FrontMatter
  • DataItems part of Datasets now have the filePath variable to match ContentItems
  • Accidentally treating a JailedDocument as a string in Twig no longer crashes the compiler; it now throws a hidden warning instead
  • Fixed possible route shadowing caused by permalinks being registered in the wrong order

Development

  • The ReadableDocument object now has support for getting and setting metadata available to stakx internals
  • The serve infrastructure has been refactored and has had a lot of renaming to have more intuitive names
  • CompileProcess events have been renamed and split up into separate events for each PageView type and now contain more useful information
  • highlight.php has been updated to use 9.13.1 language definitions

Version 0.2.0 Alpha 2

19 Sep 07:05
Compare
Choose a tag to compare
Version 0.2.0 Alpha 2 Pre-release
Pre-release

A second alpha fixing bugs and introducing new features that are ready for testing.

New

  • Add new serve command to take the place of the defunct watch command
  • Your *.scss.twig files now support the @theme directive to import partials relative to your theme's _sass folder

Fixes

  • Nested folders inside of _sass no longer throw errors

Version 0.2.0 Alpha 1

01 Jul 00:14
791f3ea
Compare
Choose a tag to compare
Version 0.2.0 Alpha 1 Pre-release
Pre-release

The first alpha tag of the next major release of stakx with a rebuilt core, Scss support, and Twig improvements.

Deprecations

  • The watch command has been removed
  • The --no-conf flag has been removed; all sites now need a configuration file

New

  • FrontMatter now has "complex variables," meaning you can inject variables from your site's configuration file into any FM block
  • The select, order, where, and group Twig filters have support for dot notation to access nested data in arrays
  • Make use Symfony's Event Dispatcher throughout our core to dispatch events for core and possibly third-party plugins
  • Add Scss and source map support in a _sass folder

Change

  • The "working directory" of websites is now relative to the given configuration file
  • Dynamic PageViews are no longer accessible through Twig

Fixes

  • Twig files through {% include %} are now treated as dependencies for the watch functionality
  • The summary and toc Twig filters now better support HTML5 and are more robust
  • The basename and filename variables are available in FrontMatter

Development

  • A lot of restructuring and moving of namespaces
  • All references to files are now handled by a dedicated File object
  • Add Symfony container, which will autowrite classes and support dependency injection
  • Use the official highlight.php library again, which is now maintained again
  • Templating has been abstracted out into interfaces; a new Twig to stakx bridge has been created
  • Updated to Symfony 3.4.x components
  • Abstracted out data transformers into separate classes with an interface for DataItems
  • Twig filters and functions are now handled through the container
  • Improved cross-platform support for file paths used internally
  • Markup engines have been abstracted out into interfaces and separate classes
  • Standardized filesystem reads and writes throughout core
  • The internal Service singleton uses bitwise flags instead of an array of arbitrary keys

Version 0.1.3 "Pacifist Tasmanian Devil"

17 Feb 00:38
Compare
Choose a tag to compare

A maintenance release with small bug fixes.

New

  • Added new toc filter that will pick out headings from given HTML and make them into an unordered list

Change

  • All HTML headings now have IDs generated for them in markdown content

Fixes

  • Parsing HTML isn't the same as XML, so filters like summary have been made more robust and knowledgable about HTML
  • ContentItems not being a part of a collection no longer crashes the watch command
  • DataItems now correctly have access to basename, permalink, targetFile, and redirects for when they are in Datasets

Version 0.1.2 "Watchful Bandicoot"

27 Jun 21:54
Compare
Choose a tag to compare

For this release, all effort was focused on stabilizing the watch command and getting it out of its experimental phase.

Here's the changelog since the beta 1 release:

New

  • Add new build.preserveCase option to the configuration file which allows you to preserve the case of a permalink path. This option defaults to false meaning all permalinks are still converted to lower case. (#55)
  • ContentItems now support a redirect_from option in the FrontMatter to have custom redirects on a per ContentItem basis (#26)

Fixes

  • Watching a folder with spaces in any part of the path works as intended
  • The target folder is automatically excluded and will no longer have a nested version of itself (#54)
  • The basename attribute is now available in ContentItems that don't have a parent PageView set (#53)

Version 0.1.2 Beta 1

21 Jun 21:13
Compare
Choose a tag to compare
Version 0.1.2 Beta 1 Pre-release
Pre-release

There have been a number of useful and significant changes so far but there's still more to come before a stable 0.1.2 is released.

New

  • You can define custom syntax highlighting definitions for your own languages
  • Added new zip Twig filter
  • Added new ignore_null option to the select Twig filter
  • Added new sha1 and md5 Twig filters

Changes

  • Improve Twig dependency detection in PageViews
    • Collections and datasets with an underscore in the name are now handled correctly
  • Add more languages to our syntax highlighter
  • More helpful error messages are now outputted during the watch command
  • The url Twig filter has received a new absolute boolean
    • When set to true, the generated URL takes url from your _config.yml and prepends it to the URL

Fixes

  • The where Twig filter correctly checks against ArrayAccess objects
  • Correctly handle file paths in Twig's {% extends %} during watch while on Windows
  • Fix asset tracking on Windows during the watch command
  • Files that were {% import %}'d in Twig templates now rebuild during watch
  • Empty files created during watch no longer through an error. Errors are only thrown now after you're editing the file
  • Markdown headings created with === or --- now have IDs rendered in the HTML

Development

  • Internal interfaces have been renamed
    • JailedDocumentInterface -> JailableDocument
    • TwigDocumentInterface -> TwigDocument

Version 0.1.1 "Eccentric Wallaby"

29 Apr 07:24
a7a1f44
Compare
Choose a tag to compare

Here's a minor release with bug fixes, new features, and an improved watch command (it's still experimental and needs to be refined).

New

  • Introduced new import keyword, which allows you to import other configuration files for different dev environments (#42)
  • Introduce new --use-drafts option to the build command, which looks for draft: true in the FrontMatter of ContentItems. Any "draft" will not have a file written to the build folder and will not appear in the collections array in Twig (#45)
  • The watch function now supports more external tools in addition to polling the file system
    • watchmedo (Cross platform pything shell utility)
    • fswatch (Cross-platform file change monitor with multiple backends)
    • inotifywait (Linux shell utility)
    • inotify (Php PECL extension)
  • Add new --profile option to show stats on time spent on each Twig template
  • Two new default FrontMatter keys have been added to all FrontMatter documents
    • filename - the full name of the file
    • basename - the name of the file without the extension
  • All data is now housed in DataItem objects that can be used for more information about the data file (#48)
  • Dynamic PageViews now support a new dataset FrontMatter key that will allow you to use DataItems in a DataSet the same way as ContentItems in a Collection (#48)
  • Introduce new select() Twig filter that will extract the values from the respective keys of an array of elements and flatten the items in addition to removing duplicate values
  • In addition to DataItem folders, ContentItem and PageView folders can now use the .example extension (#33)

Changes

  • The name on Packagist has been changed to stakx/stakx. Since there wasn't any usage, the previous stakx-io/stakx package has been deleted.
  • JailObject have been renamed to JailedDocument
  • Generic Twig runtime errors have been improved to provide more user-friendly information

Fixes

  • Permalinks with several periods or FrontMatter variables containing periods would fail to build
  • stakx now sets exit values greater than 0 when a website fails to build
  • Using watch will now compile changes to parent templates now
  • Line numbers shown in Twig errors have been corrected to be accurate
  • Assets are now copied correctly during the watch process; a notice of an undefined index of 'prefix' has been silenced
  • PageViews accessing either data or collections directly are now recompiled when the respective content is updated (#16)

Development

  • Restructured the project to be PSR-4 complaint
  • Change visibility of tracking class functions
  • Always use realpath() in FileExplorer
  • The menu Twig variable is now handled by its own class
  • All file writing has been moved to a dedicated Compiler class
  • PageManager class has been refactored to solely handle PageViews and nothing else
  • Explicit file locks aren't used for writing files anymore
  • A lot of namespaces for internal classes have been changed
  • Build settings have begun to be moved to Service singleton for global access to settings