Stubble v1.0.0-alpha16 Release Notes

Release Date: 2017-05-09 // over 5 years ago
  • Semver...yeah we follow semver

    ๐Ÿš€ Well it's been awhile since I last made a release and this one is quite the change.
    ๐Ÿ“œ I've pretty much overhauled the whole underlying architecture for parsing and rendering.

    โšก๏ธ Most of the public facing interfaces have stayed the same or gained new functionality so you should just be able to update and have the exact same experience unless you're using custom extensions for parsing or rendering.

    Full Spec compatibility!

    โœ… Stubble is now fully spec compliant including the often ignored tests regarding whitespace in a template.
    โœ… This shouldn't affect your rendering in the slightest but perhaps make them look slightly better, however those expecting specific whitespace in their templates may have porting issues.

    ๐Ÿ“œ Non-regex parser

    ๐Ÿ“œ We've gotten rid of our old Regex based parser and replaced it with a good old fashioned string scanner.
    โœ… This means that our parsing creates less garbage, is much faster (without caching) and allowed us to fix the ignored whitespace spec tests making us fully compliant.

    Visitor pattern based renderer

    ๐Ÿ“œ We've also adjusted our rendering based on this new parser.
    ๐Ÿ“œ Since we can register new tag parsers with our parser we needed a way to render these efficiently.

    The new renderer works on registering tag renderers with a core rendering engine.
    0๏ธโƒฃ In the box we have our standard string renderer which will be the default, we do however provide extension points for users to change the renderer.

    Did anyone say function compilation rendering engine?

    Benchmark Overhaul

    ๐Ÿ‘ In the beginning we rolled our own benchmarks because we didn't know any better.
    Now in the future we've found BenchmarkDotNet which is an excellent library for micro-benchmarking and handles a lot of the complicated work of fair and effective benchmarking.
    โœ… Because of this our benchmarks are now fairer and closer to reality and allow us to easily test our progress over time.

    Mentions

    ๐Ÿš€ Much of the work in this release was inspired heavily by Markdig.
    We even borrowed some of their internal pieces to make our renderer as efficient as we possibly could.
    ๐Ÿš€ If you like the work we've done in this release perhaps you'd like to go star their project too as its pretty great.