Diet-NG 1.0.0 released

Sönke Ludwig via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Sep 25 01:43:16 PDT 2016


Am 24.09.2016 um 02:49 schrieb Jinx:
> On Friday, 23 September 2016 at 11:47:23 UTC, Sönke Ludwig wrote:
>> The Diet template language is aimed at providing a way to define
>> procedurally generated HTML/XML pages (or other output formats), with
>> minimal visual noise. Syntax and feature set are heavily inspired by
>> pug <https://pugjs.org/>, but instead of JavaScript, all expressions
>> and statements are D statements, and everything that can be done at
>> compile-time is done at compile-time.
>>
>> The library is now considered ready for (careful) production use and
>> can be used with the latest pre-release versions of vibe.d (just add
>> it as a dependency to your project and vibe.d will use it for
>> rendering Diet templates automatically).
>>
>> For more information about the improvements of this library over the
>> original implementation that (still) comes with vibe.d, see the
>> original announcement:
>> https://forum.dlang.org/thread/nn4m62$14r5$1@digitalmars.com
>>
>>
>> Source/DUB package:
>>
>> https://code.dlang.org/packages/diet-ng
>> https://github.com/rejectedsoftware/diet-ng
>
> Does this basically convert the dt file in to a d file with a embedded
> html output statements?
>
> e.g.,
>
> dt file
> html1
> d1
> html2
> d2
>
> corresponding d file:
>
> output(html1);
> d1
> output(html2);
> d2
>
> output outputs the html text directly and the d code is executed. Of
> course, I guess some fixups need to happen on the html code for embedded
> variables and such.
>
> Just wondering about how it is done conceptually.
>
>
>

Yeah, that's the gist of it. A real-world example with some "dynamic" 
content:

html
   head
     title Hello #{"World"}

->

_diet_output.put("<html><head></head><title>Hello ");
_diet_output.htmlEscape("World");
_diet_output.put("</title></html>");


More information about the Digitalmars-d-announce mailing list