Dealing with C++ web views

Posted by Jeffrey on Stack Overflow See other posts from Stack Overflow or by Jeffrey
Published on 2012-10-31T16:58:55Z Indexed on 2012/10/31 17:00 UTC
Read the original article Hit count: 155

Filed under:
|
|
|

I'm working, as an hobby (before any one rage out of their mind, I'm just trying to study C++ regarding something I love: web. I'm not trying to reinvent your precious wheel, and I'm not trying to create the new web technology. I just have the time to go for it.), creating a web CGI C++ library. I'm at a pretty good point, but in the future I see one big problem: views.

I'm used to the great <body><?php echo "Hey!"; ?></body> embedded php, but there's no such thing in C++, so I'm wondering:

How would you deal with views? Would you create a simple find-replace-variable templating system and deal with thousands of partial views? For example:

View view;
view.load("header.html");
view.load("nav.html");
view.load("post_start.html");
for (int i = 0; i < 10; i++) {
    std::map<std::string, std::string> post;
    Post p(i);
    post = p.get();
    view.load(post_view.html, post); // p is passed as argument and every `{% varname %}` in the html will be replaced with its value inside the map
}
view.load(post_end.html);
view.load(footer);

Would you create a simple templating system? So that we can deal with this C++ code:

std::vector<std::map<std::string, std::string>> posts;
Posts p;
posts = p.getAll();
view.load(posts.html, posts);

and then this HTML/TPL:

<html>
...
<body>
    <h2> Posts </h2>
    {% for (i = 0; i < 10; i++): %}
        <div class="post">...</div>
    {% endfor %}
</body>
</html>

Is there any other way? What is the best way to do this? (And no, I don't think this is subjective question)

© Stack Overflow or respective owner

Related posts about php

Related posts about c++