startgitStatic page generator for git repositories |
git clone git://git.dimitrijedobrota.com/startgit.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
document.cpp (2917B)
0 #include "document.hpp" 1 2 #include <hemplate/html.hpp> 3 4 #include "arguments.hpp" 5 6 namespace startgit 7 { 8 9 void document::render(std::ostream& ost, const content_t& content) const 10 { 11 using namespace hemplate::html; // NOLINT 12 using hemplate::html::div; 13 using hemplate::html::link; 14 15 ost << element { 16 doctype {}, 17 html { 18 {{"lang", "en"}}, 19 head { 20 title {m_title}, 21 22 metaUTF8 {}, 23 metaName {"author", m_author}, 24 metaName {"description", m_desc}, 25 metaName {"viewport", "width=device-width, initial-scale=1"}, 26 27 linkStylesheet {args.resource_url + "/css/index.css"}, 28 linkStylesheet {args.resource_url + "/css/colors.css"}, 29 30 m_has_feed ? element { 31 linkRss {"RSS feed", m_relpath + "rss.xml"}, 32 linkAtom {"Atom feed", m_relpath + "atom.xml"}, 33 } : element {}, 34 35 linkIcon {"32x32", args.resource_url + "/img/favicon-32x32.png"}, 36 linkIcon {"16x16", args.resource_url + "/img/favicon-16x16.png"}, 37 }, 38 body { 39 input {{ 40 {"type", "checkbox"}, 41 {"id", "theme_switch"}, 42 {"class", "theme_switch"}, 43 }}, 44 div { 45 {{"id", "content"}}, 46 main { 47 label {{ 48 {"class", "switch_label"}, 49 {"for", "theme_switch"}, 50 }}, 51 content(), 52 }, 53 }, 54 script {{{"src", args.resource_url + "/scripts/main.js"}}}, 55 script { 56 "function switchPage(value) {" 57 " let arr = window.location.href.split('/');" 58 " arr[4] = value;" 59 " history.replaceState(history.state, '', arr.join('/'));" 60 " location.reload();" 61 "}" 62 }, 63 style {" table { " 64 " margin-left: 0;" 65 " background-color: inherit;" 66 " border: none" 67 "} select { " 68 " color: var(--theme_fg1);" 69 " background-color: inherit;" 70 " border: 1px solid var(--theme_bg4);" 71 "} select option {" 72 " color: var(--theme_fg2) !important;" 73 " background-color: var(--theme_bg3) !important;" 74 "} .add {" 75 " color: var(--theme_green);" 76 "} .del {" 77 " color: var(--theme_red);" 78 "} .inline {" 79 " white-space: pre;" 80 "}"}, 81 }, 82 }, 83 }; 84 } 85 86 } // namespace startgit