How to implement D to HTML pages ?

Andrea Fontana nospam at example.com
Wed Oct 3 07:44:55 UTC 2018


On Tuesday, 2 October 2018 at 18:27:04 UTC, Aurélien Plazzotta 
wrote:
> Thank you both for all the links! I guess DiamondMVC is very 
> powerful but I would rather avoid using such heavy artillery. 
> I'm expecting the learning curve to be very long.

I currently use two libraries I wrote to keep things easy.

https://code.dlang.org/packages/arrogant
https://code.dlang.org/packages/reserved

The first one is a html5 parser. So you don't need any template, 
you can directly read html and then edit them just like you are 
used to do in js, for example.

For example:
    auto src = `<html><head></head><body><div>Hello 
World</div></body></html>`;
    auto arrogant = Arrogant();
    auto tree = arrogant.parse(src);

    // Change div content from "Hello World!" to "Hello D!"
    tree.byTagName("div").front.innerText = "Hello D!";

    // Print the edited html
    writeln(tree.document);

The second library is a scgi library that allow you to send data 
to any webserver that support scgi (f.e. nginx). It works like 
php:

import reserved;

@ReservedResponse
private void response(Request req, Output output)
{
    output ~= "Hello ";

    if ("name" in req.get)
       output ~= req.get["name"];
    else
       output ~= "World";

    // Using the library above you can do something like this 
instead:
    // output ~= tree.document;
}

mixin Reserved!"awesome_d_webservice";

So if you combine those two libraries you can output a 
validated/well-formed html5 document in a easy way.

Andrea


More information about the Digitalmars-d-learn mailing list