mstch abstraction in template done
This commit is contained in:
parent
90e7427c4b
commit
2b66d58138
|
@ -5,10 +5,11 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <mstch/mstch.hpp>
|
||||||
|
|
||||||
namespace lxs {
|
namespace lxs {
|
||||||
namespace templ {
|
namespace templ {
|
||||||
using TemplateContext = void*;
|
using TemplateContext = mstch::node;
|
||||||
|
|
||||||
TemplateContext make_string(std::string);
|
TemplateContext make_string(std::string);
|
||||||
TemplateContext make_map(std::map<std::string, TemplateContext>);
|
TemplateContext make_map(std::map<std::string, TemplateContext>);
|
||||||
|
|
|
@ -1,14 +1,44 @@
|
||||||
#include "Lexesis/template.h"
|
#include "Lexesis/template.h"
|
||||||
|
#include "mstch/mstch.hpp"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
namespace lxs {
|
namespace lxs {
|
||||||
namespace templ {
|
namespace templ {
|
||||||
|
|
||||||
|
TemplateContext make_string(std::string _string) {
|
||||||
|
return mstch::node(_string);
|
||||||
|
}
|
||||||
|
|
||||||
|
TemplateContext make_map(std::map<std::string, TemplateContext> _map) {
|
||||||
|
// return mstch::node(_map); -> g++ goes mental..
|
||||||
|
mstch::map result;
|
||||||
|
for(auto& item: _map) {
|
||||||
|
result[item.first] = item.second;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
TemplateContext make_array(std::vector<TemplateContext> _array) {
|
||||||
|
return mstch::node(_array);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Template::Template(std::string filename) : m_filename(filename)
|
Template::Template(std::string filename) : m_filename(filename)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Template::~Template()
|
Template::~Template()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void Template::render(std::ostream&, TemplateContext&)
|
void Template::render(std::ostream& out, TemplateContext& context) {
|
||||||
{}
|
std::ifstream file;
|
||||||
|
file.open (m_filename);
|
||||||
|
std::stringstream tmplt;
|
||||||
|
tmplt << file.rdbuf();
|
||||||
|
file.close();
|
||||||
|
out << mstch::render(tmplt.str(),context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue