vibed: how to use pure HTML instead of template engine?

Rikki Cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 8 04:56:28 PDT 2015


On 8/05/2015 10:49 p.m., Chris wrote:
> On Friday, 8 May 2015 at 10:20:35 UTC, Rikki Cattermole wrote:
>> On 8/05/2015 10:17 p.m., Chris wrote:
>>> On Thursday, 7 May 2015 at 19:51:20 UTC, yawniek wrote:
>>>>
>>>> On Thursday, 7 May 2015 at 18:59:13 UTC, Suliman wrote:
>>>>> 1. Do I need write "./public/" ? In examples often simply "public/"
>>>> will work too. even "public"
>>>> it goes trough Path struct, see:
>>>> https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/inet/path.d
>>>>
>>>>
>>>>
>>>>
>>>>> 2. What incoming parameters ("HTTPServerRequest req,
>>>>> HTTPServerResponse res") mean? Why I should to specify them?
>>>>
>>>> HTTPServerRequest contains all data that the client sends, e.g.
>>>> headers, cookies, source ip etc.
>>>> see:
>>>> https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/http/server.d#L584
>>>>
>>>>
>>>>
>>>> HTTPServerResponse is the response you send back.
>>>> https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/http/server.d#L788
>>>>
>>>>
>>>>
>>>> you woud want to set at least its body, as you do below
>>>>
>>>>> 3. Why code with: "res.writeBody("Hello, World!", "text/plain");"
>>>>> and "router.get("*", serveStaticFiles("./public/"));" also work, but
>>>>> my variant (see code above) do not load say that page not found?
>>>>
>>>> what exactely does not work? please link code (ideally
>>>> https://gist.github.com/ )
>>>>
>>>>> 4. How to specify page that I need to load, why in examples there is
>>>>> only link to folder like public? But what if I want to load
>>>>> public/foo.html?
>>>>
>>>> public servers public files, its more or less a static webserver which
>>>> checks if a file exists and then serves that.
>>>>
>>>> if you want to dynamically modify content you send you need to use the
>>>> templating or do your own string magic.
>>>>
>>>>
>>>> generally it seems you do not fully understand the concept of how
>>>> these web frameworks work. i think you should either read vibe.d's
>>>> source code or more read how other such frameworks work e.g.
>>>> http://www.sinatrarb.com/documentation.html has pretty good
>>>> documentations and books that explain the inner workings (but mind,
>>>> ruby is a dynamically typed language).
>>>>
>>>> then i also can recommend that you check out vibe.d's github
>>>> repositories and read trough all the example projects that come with
>>>> it. e.g.
>>>> https://github.com/rejectedsoftware/vibe.d/tree/11578aa956a9b3b0e305d655f9668a867fdd89bd/examples/app_skeleton
>>>>
>>>>
>>>
>>> I'd say it is a bit hard to get into vibe.d just like that. I had to
>>> work out a lot of things myself simply because it's web server
>>> technology cast in D. Most of the difficulties are not D but
>>> understanding the whole web server thing. But I have to say vibe.d is
>>> very very good once you know your way around. Maybe we should set up
>>> some tutorials with common tasks so developers can concentrate on D
>>> instead of the web.
>>
>> I was thinking maybe a vibe.d manual using leanpub's systems. Assuming
>> it was hosted on Github and set to be free. It would work out rather
>> well and because you can embed other files into the book, examples can
>> be made kinda like they are now in vibe.d's repo runnable. But also
>> contained in the manual inline. All syntax highlighted and all.
>
> Yeah, I think we need a dedicated page with tutorials (covering most use
> cases) for vibe.d. It's great, I love it, but nobody knows about it and
> it's hard to use. You have to go through all the examples/source code to
> do simple things - and things keep changing.
>
> Maybe even powerful vibe.d boilerplate projects you can set up with dub,
> e.g. a project that already contains `serveStaticFiles` and stuff like
> that.
>
> dub init myproject vibe.d --server=[minimal | query | noui]

https://github.com/rikkimax/skeleton

dub run skeleton -- d92c66c539f0d35ea6cc at rikkimax/example.lua

May not work, I thought 0.0.2 was working turns out had small bug. It'll 
be a little while before dub repo updates to 0.0.3. But otherwise it 
should just output hello chris from that.
https://gist.github.com/rikkimax/d92c66c539f0d35ea6cc

> Stuff like that. Maybe with DlangIDE support.
>
> And stubs with explanations, e.g. "How do I handle queries?" (req.query)
> etc. A one stop shop for vibe.d. I'd hate to see it ignored only because
> it's not accessible. Maybe it's time to bundle things up anyway.
> dub/dvm/dlangIDE/dlangUI/vibe.d. It's right there in front of us and we
> all speak the same language :-)



More information about the Digitalmars-d-learn mailing list