Releases: stakx-io/stakx
Version 0.2.1 "Jittery Lynx"
New
- Added new
case_insensitive
flag to theorder
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"
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
andtoc
Twig filters
Version 0.2.0 Beta 2
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
andtoc
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
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 thetitle
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 Twigdump()
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
JailedDocument
s into the Twigdump()
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
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 defunctwatch
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
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
, andgroup
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
andtoc
Twig filters now better support HTML5 and are more robust - The
basename
andfilename
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"
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
, andredirects
for when they are in Datasets
Version 0.1.2 "Watchful Bandicoot"
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
Version 0.1.2 Beta 1
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 theselect
Twig filter - Added new
sha1
andmd5
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 newabsolute
boolean- When set to true, the generated URL takes
url
from your_config.yml
and prepends it to the URL
- When set to true, the generated URL takes
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"
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 fordraft: true
in the FrontMatter of ContentItems. Any "draft" will not have a file written to the build folder and will not appear in thecollections
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 filebasename
- 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 previousstakx-io/stakx
package has been deleted. JailObject
have been renamed toJailedDocument
- 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
orcollections
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