All Versions
Latest Version
Avg Release Cycle
92 days
Latest Release
767 days ago

Changelog History
Page 2

  • v1.0.0-alpha20 Changes

    July 05, 2018
    • โšก๏ธ Update to move from using netstandard1.3 to netstandard2.0. This shouldn't affect many people since netstandard 2.0 is the recommended version and brings back some missing APIs from before. This mean's we've dropped explict support for net46 (since the lowest supported by netstandard2.0 is net461) however net45 will work just fine.
  • v1.0.0-alpha19 Changes

    July 02, 2018
    • โž• Added the ability to skip HTML encoding by default without using triple {{{ tags. We're trusting you developers! (thanks to @Elringus for the request) #23
      To use this feature when passing render settings to the render method add the following:

      var stubble = new StubbleBuilder().Build();var result = await stubble.RenderAsync("{{Html}}\n{{{Html}}}", new { Html = "<b>Bold!</b>"}, new RenderSettings{ SkipHtmlEncoding = true});Assert.Equal("<b>Bold!</b>\n<b>Bold!</b>", result);

    • Migrated to portable PDBs which allow debugging on unix systems and now you can use sourcelink to debug the source on github! #11

  • v1.0.0-alpha18 Changes

    July 01, 2018


    ๐Ÿ“ฆ So we now have a compilation renderer which will allow you to compile your mustache templates to strongly typed functions. This currently doesn't work with the Lambda portion of the spec however has massive speed improvements over standard rendering for templates that don't change too often. This is exposed as an extension package and can be included my going to nuget and looking for Stubble.Compilation. For more details on this feature please checkout the readme or look at the docs here.

    ๐Ÿ”ง Configuration Rework

    ๐Ÿ— Configuring a renderer has now changed and there is a specific settings builder class which is configured in a Configure method on the renderer builder itself. We recommend that all extensions adding extension methods for settings add them to IRendererSettingsBuilder since they will be easily discoverable by users. For more details on this please see the extension docs here.

    Migration from the old method to the new method would look something like this

    var loader = // Setup custom template loader herevar builder = new StubbleBuilder() .SetTemplateLoader(loader) .SetPartialTemplateLoader(loader) .Build();// Becomesvar builder = new StubbleBuilder() .Configure(settings =\>settings.SetTemplateLoader(loader) .SetPartialTemplateLoader(loader); ) .Build();

    Strong Naming

    ๐Ÿ“ฆ I've removed the strong naming from the core Stubble.Core package due to it requiring people to add binding redirects which can cause all kinds of problems. If you require strong naming we suggest you use strongnamer to resolve anything requiring strong naming to be present.

  • v1.0.0-alpha17 Changes

    October 02, 2017

    ๐Ÿš€ A small release containing two small fixes. I'm currently at work for some changes and then we'll be in Beta and the API will stabilise.

    • Accessing nested values didn't return the correct values on data misses #17 (Thanks to @schmitch)
    • Accessing nested values with Throw on Data Miss flag being set didn't work
  • v1.0.0-alpha16 Changes

    May 09, 2017

    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.


    ๐Ÿš€ 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.

  • v1.0.0-alpha15 Changes

    August 16, 2016

    ๐Ÿš€ This release improves the internal speed of core Stubble processes resulting in less garbage created and less CPU wasted