aboutsummaryrefslogtreecommitdiff
path: root/src/TemplateManager.hpp
blob: 1d98c50e2eebef22ae398379e184dd5fedea911b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef TEMPLATEMANAGER_H
#define TEMPLATEMANAGER_H 1

#include "Content.hpp"
#include "Filesystem.hpp"

#include <inja/inja.hpp>

class TemplateManager
{
public:
    TemplateManager();
    ~TemplateManager()
    {
    }

    void ParseTemplates(Filesystem & fs);
    void AddInjaCallback(std::string functionName, std::size_t numberOfArgs, inja::CallbackFunction function);
    void AddVoidInjaCallback(std::string functionName, std::size_t numberOfArgs, inja::VoidCallbackFunction function);
    bool TemplateExists(std::string const & templatePath);
    bool RenderTemplate(std::string const & templatePath, RenderData const & rd, std::string & out);

private:
    inja::TemplateStorage m_Templates;
    inja::Environment m_Inja;
};

#endif