So I finally got around having time in my life to work with
Diamond, which also meant fixing a few things in it, such as
making it compatible with the latest version of DMD.
Version 2.0.4 includes the following additions:
* Support for escaped expressions using @$=expression;
* Compiles with latest version of DMD (Fixed an issue with
* New view functionality for rendering (View the wiki for more
* Redirection functionality for controllers (View the wiki for
Dub: https://code.dlang.org/packages/diamond (Currently waiting
for the registry to update, so manual fetches from Github are
required until the registry updates to 2.0.4 -- been waiting the
past 2 hours or so and it seems like the registry has some issues
atm. so hopefully that's fixed soon.)
Previous releases can be found here:
-- To people who hasn't seen this project before --
What is Diamond?
Diamond is a MVC / Template library written in Diamond. It was
written originally as an alternative to the Diet templates in
vibe.d, but now its functonality and capabilities are far beyond
What does Diamond depend on?
Diamond can be used stand-alone without depending on any
third-party libraries, other than the standard library Phobos. It
has 3 types of usage, websites and webservices, where it's used
on-top of vibe.d and as a stand-alone mvc/template library.
What is the dependency to vibe.d?
Diamond was originally written to be used in a hobby project as
an alternative syntax to the "standard" diet templates. Thus it
was originally build on-top vibe.d as a pure website template. It
has now evolved to be able to run stand-alone however.
What syntax does Diamond use?
Diamond is heavily inspired by the ASP.NET razor syntax, but
still differs a lot from it. You can read more about that in the
wiki under Syntax Reference or the comparison with ASP.NET Razor
What advantages does Diamond have over Diet?
It let's you control the markup entirely, can be integrated with
any-type of D code, not limited to vibe.d and can be used as
standard template library for any type of project such as email
templates etc. It also allows for special rendering, easy
controller implementations and management of request data,