Git Product home page Git Product logo

cpptemplater's Introduction

CppTemplater

Work in Progress

CppTemplater is a library and a tool to help create templates of files (mainly for web development) that are compiled to C++ files.

Who to compile?

cmake . && make

How to use?

# cpptemplater -i my_project --namespace lzcoders::templater::test --class index --parent-class web_page_renderer <EOF
<html>
    <head><title><%!page_title()%></title></title>
    <body>
        <% for (int i = 0; i < 9; i++) { %>
            <h<%!i%>>This is an H<%!i%> header</h<%!i%>
        <% } %>
    </body>
</html>
<%e
/* This is written at the bottom of the file. No other output can be
   generated after this section.
*/
lzcoders::web::route::register("/", lzcoders::templater::test::index());
EOF

This will generate the following output:

#include <my_project>
namespace lzcoders::templater::test {
class index : public web_page_renderer {
public:
template<class OStream> OStream& render(OStream& result) {
result << "<html>\n    <head><title>" << (page_title()) << "</title></title>\n    <body>\n        ";
for (int i = 0; i < 9; i++) { result << "\n            <h" << (i) << ">This is an H" << (i) << " header</h" << (i) << "\n        ";
} result << "\n    </body>\n</html>\n";
return result;
}
};
}

/* This is written at the bottom of the file. No other output can be
   generated after this section.
*/
lzcoders::web::route::register("/", lzcoders::templater::test::index());

cpptemplater's People

Contributors

laparca avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.