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