using namespace biaweb;
int main (int argc, char *argv[]) {
-
-// if (argc == 2)
-// {
-// std::shared_ptr<DocumentTree> tree (new DocumentTree (argv[1]));
-// tree.get()->set_stub ("");
-// tree.get()->set_markdown_summary ("# Hello there\n\n\
-// These are some contents for this page.");
-
-// std::shared_ptr<DocumentTree> a1 (new DocumentTree("Child a1"));
-// std::shared_ptr<DocumentTree> a2 (new DocumentTree("Child a2"));
-// std::shared_ptr<DocumentTree> a3 (new DocumentTree("Child a3"));
-// std::shared_ptr<DocumentTree> a4 (new DocumentTree("Child a4"));
-// std::shared_ptr<Document> d2 (new Document ("Another document"));
-// d2.get()->set_creation_date (124012);
-// std::shared_ptr<Document> d1 (new Document("Test Document"));
-// d1.get()->set_creation_date (100000);
-// d1.get()->set_markdown_content ("# Heading \n\nThis is some text, hello world");
-// d2.get()->set_markdown_content ("Some document \n\nThis is some document");
-// a1.get()->add_document (d2.get());
-// a1.get()->add_document (d1.get());
-// a3.get()->add_child (a4.get());
-// a1.get()->add_child (a2.get());
-// a1.get()->add_child (a3.get());
-// tree.get()->add_child (a1.get());
-// std::cout << a3.get()->stub_hierarchy () << a3.get()->get_stub () << std::endl;
-// tree.get()->visualize_tree ();
-// tree.get()->create_tree_html ("/home/hari/Projects/BiaWeb2/templates",
-// convert_title (argv[1]));
-// }
-// // else {
-// // std::cout << "Usage: " << argv[0] << " <main tree>" << std::endl;
-
+ // Compute the speed of generating the document tree and output HTML from sources
std::chrono::steady_clock::time_point t1 (std::chrono::steady_clock::now());
- DocumentTree tree ("");
- tree.document_tree_builder ("Test/Reviews");
- tree.visualize_tree ();
+
+ // An empty document tree
+ std::unique_ptr<DocumentTree> tree (new DocumentTree (""));
+ tree.get()->document_tree_builder ("Test/Reviews");
+ tree.get()->visualize_tree ();
Template tpl ("templates");
- tree.create_tree_html (&tpl, "Test/Out");
+ tree.get()->create_tree_html (&tpl, "Test/Out");
std::chrono::steady_clock::time_point t2 (std::chrono::steady_clock::now());
std::chrono::duration<double> dur (t2 - t1);
- std::cout << dur.count () << std::endl;
-
-// // }
-
- // Document doc;
- // SideBar items;
- // std::string title, contents, sidetitle;
- // std::cout << "Enter document title: ";
- // std::getline (std::cin, title);
- // std::cout << "Enter markdown file of document: ";
- // std::getline (std::cin, contents);
- // while (1) {
- // std::string name, url;
- // std::cout << "Enter a sidebar item text (empty to end): ";
- // std::getline (std::cin, name);
- // if (name.empty()) break;
- // std::cout << "Enter a sidebar item URL: ";
- // std::getline (std::cin, url);
- // SideBarItem item (name, url);
- // items.add_sidebar_item (item);
- // }
- // std::cout << "Enter heading for sidebar: ";
- // std::getline (std::cin, sidetitle);
- // items.set_title (sidetitle);
- // doc.set_title (title);
- // std::ifstream f (contents);
- // std::string markdown_contents ( (std::istreambuf_iterator<char> (f)),
- // (std::istreambuf_iterator<char> ()) );
-
- // doc.set_markdown_content (markdown_contents);
- // doc.add_side_bar (items);
-
- // doc.output_to_html ();
+ std::cout << GENERATED_IN << dur.count () << std::endl;
return 0;
}
// Just the required fields to build the item
std::string title;
std::string url;
+ std::string desc;
std::time_t ctime;
std::time_t mtime;
public:
DocListItem (std::string title, std::string url,
- std::time_t ctime, std::time_t mtime ) {
+ std::time_t ctime, std::time_t mtime, std::string desc ) {
this->title = escape_html (title);
this->url = url;
this->ctime = ctime;
this->mtime = mtime;
+ this->desc = desc;
+ }
+
+ std::string get_desc () {
+ return this->desc;
+ }
+
+ void set_desc (std::string desc) {
+ this->desc = escape_html (desc);
}
std::time_t get_mtime() {
m = *std::localtime (&this->mtime);
std::string outputhtml = fmt::format (templstr, fmt::arg("url", this->url),
- fmt::arg("doctitle", this->title),
+ fmt::arg("doctitle", this->title),
+ fmt::arg("desc", this->desc),
fmt::arg("cdate", c),
fmt::arg("mdate", m));