X-Git-Url: https://harishankar.org/repos/?p=biaweb2.git;a=blobdiff_plain;f=biawebdocument.hpp;h=39721076dbe33eca14b68e7bf67e3b13e51788d5;hp=3fc15e1a2771480f8df3729daf5b5f573e4681a9;hb=HEAD;hpb=a302a25538bc69491c4844ef065c6b50e098387a diff --git a/biawebdocument.hpp b/biawebdocument.hpp index 3fc15e1..3972107 100644 --- a/biawebdocument.hpp +++ b/biawebdocument.hpp @@ -8,11 +8,11 @@ #include #include #include -#include #include "biawebutil.hpp" #include "biawebsidebar.hpp" #include "biawebstrings.hpp" #include "biawebnavigationbit.hpp" +#include "biawebtemplate.hpp" // class to represent a biaweb document which can have a file name, title, description, // keywords, content and sidebar items @@ -101,8 +101,8 @@ namespace biaweb { return this->cdate; } - // output the document to HTML using the templates in templatedir - void output_to_html (std::string templatedir, std::string path); + // output the document to HTML using the template specified + void output_to_html (Template *t, std::string path); // set the content portion of document as raw HTML content void set_content (std::string content) { @@ -182,10 +182,9 @@ namespace biaweb { this->mdate = this->cdate; // read the rest of contents std::string line; - std::getline (infile, line); while (! infile.eof ()) { - contents.append (line + "\n"); std::getline (infile, line); + contents.append (line + "\n"); } this->set_markdown_content (contents); } @@ -195,26 +194,20 @@ namespace biaweb { } // output the document using the provided template - void Document::output_to_html (std::string templatedir, std::string path) + void Document::output_to_html (Template *t, std::string path) { - // read the main template file - std::ifstream tpl (templatedir + "/main.tpl.html"); - std::string templstr ( (std::istreambuf_iterator (tpl)), - (std::istreambuf_iterator ()) ); - tpl.close (); + std::string templstr = t->get_main_tpl (); + // read the style template file - std::ifstream style (templatedir + "/style.tpl.css"); - std::string stylesheet ( (std::istreambuf_iterator (style)), - (std::istreambuf_iterator ())); - style.close (); + std::string stylesheet = t->get_style_tpl (); // first render the sidebars std::string sidebartext; for (SideBar bar : sidebars) { - sidebartext += bar.to_html (templatedir); + sidebartext += bar.to_html (t); } // render the navigation bit - std::string navbit_str = this->navbit.to_html (templatedir); + std::string navbit_str = this->navbit.to_html (t); // time of creation and modification struct std::tm c, m;