Simplify HTML::Properties class

This commit is contained in:
Jacob 2024-06-17 21:08:50 +02:00
parent 8dc3c47f12
commit 71ceaa517c
3 changed files with 157 additions and 162 deletions

View file

@ -186,14 +186,14 @@ docpp::HTML::Section getCSS() {
}
docpp::HTML::Section getNavbar(docpp::HTML::Section& e) {
docpp::HTML::Section navbar(docpp::HTML::Tag::Div, {{docpp::HTML::Property{{"class", "navbar"}}}});
docpp::HTML::Section navbar(docpp::HTML::Tag::Div, {{docpp::HTML::Property{"class", "navbar"}}});
docpp::HTML::Section span(docpp::HTML::Tag::Span, {});
span.push_back({docpp::HTML::Tag::Empty, {}, "speedie.site\n"});
const auto append_to_span = [&](const std::string& img, const std::string& url, const std::string& text) {
span.push_back({docpp::HTML::Tag::Img, {{docpp::HTML::Property{{"src", img}}, docpp::HTML::Property{{"width", "16"}}, docpp::HTML::Property{{"height", "16"}}}}, ""});
span.push_back({docpp::HTML::Tag::A, {{docpp::HTML::Property{{"href", url}}}}, text});
span.push_back({docpp::HTML::Tag::Img, {{docpp::HTML::Property{"src", img}, docpp::HTML::Property{"width", "16"}, docpp::HTML::Property{"height", "16"}}}, ""});
span.push_back({docpp::HTML::Tag::A, {{docpp::HTML::Property{"href", url}}}, text});
};
append_to_span("img/home.png", "/", "Home");
@ -210,11 +210,11 @@ docpp::HTML::Section getNavbar(docpp::HTML::Section& e) {
docpp::HTML::Section getHead() {
docpp::HTML::Section e{docpp::HTML::Tag::Head};
docpp::HTML::Element content_type{docpp::HTML::Tag::Meta, {{docpp::HTML::Property{{"http-equiv", "content-type"}}, docpp::HTML::Property{{"content", "text/html; charset=utf-8"}}}}};
docpp::HTML::Element charset{docpp::HTML::Tag::Meta, {{docpp::HTML::Property{{"charset", "UTF-8"}}}}};
docpp::HTML::Element favicon(docpp::HTML::Tag::Link, {{docpp::HTML::Property{{"rel", "icon"}}, docpp::HTML::Property{{"type", "image/x-icon"}}, docpp::HTML::Property{{"href", "/img/favicon.svg"}}}});
docpp::HTML::Element description(docpp::HTML::Tag::Meta, {{docpp::HTML::Property{{"name", "description"}}, docpp::HTML::Property{{"content", "Welcome to my personal website."}}}});
docpp::HTML::Element author(docpp::HTML::Tag::Meta, {{docpp::HTML::Property{{"name", "author"}}, docpp::HTML::Property{{"content", "speedie"}}}});
docpp::HTML::Element content_type{docpp::HTML::Tag::Meta, {{docpp::HTML::Property{"http-equiv", "content-type"}, docpp::HTML::Property{"content", "text/html; charset=utf-8"}}}};
docpp::HTML::Element charset{docpp::HTML::Tag::Meta, {{docpp::HTML::Property{"charset", "UTF-8"}}}};
docpp::HTML::Element favicon(docpp::HTML::Tag::Link, {{docpp::HTML::Property{"rel", "icon"}, docpp::HTML::Property{"type", "image/x-icon"}, docpp::HTML::Property{"href", "/img/favicon.svg"}}});
docpp::HTML::Element description(docpp::HTML::Tag::Meta, {{docpp::HTML::Property{"name", "description"}, docpp::HTML::Property{"content", "Welcome to my personal website."}}});
docpp::HTML::Element author(docpp::HTML::Tag::Meta, {{docpp::HTML::Property{"name", "author"}, docpp::HTML::Property{"content", "speedie"}}});
docpp::HTML::Element title(docpp::HTML::Tag::Title, {}, "speedie's site");
docpp::HTML::Section css{docpp::HTML::Tag::Style};
@ -229,13 +229,13 @@ docpp::HTML::Section getHead() {
}
docpp::HTML::Section getMain() {
docpp::HTML::Section content(docpp::HTML::Tag::Div, {{docpp::HTML::Property{{"class", "content"}}}});
docpp::HTML::Section content(docpp::HTML::Tag::Div, {{docpp::HTML::Property{"class", "content"}}});
content.push_back({docpp::HTML::Tag::H2, {}, "Hello world!"});
content.push_back({docpp::HTML::Tag::P, {}, "Hello there! This is a replica of my old website, using docpp to generate the HTML. With that said. This only provides the index page, so many links are not functional. This is more to show off that docpp can be used to generate a proper website."});
content.push_back({docpp::HTML::Tag::H3, {}, "Links"});
docpp::HTML::Section links(docpp::HTML::Tag::Div, {{docpp::HTML::Property{{"class", "links"}}}});
docpp::HTML::Section links(docpp::HTML::Tag::Div, {{docpp::HTML::Property{"class", "links"}}});
docpp::HTML::Section table(docpp::HTML::Tag::Table);
static const auto append_to_table = [&](const std::string& img, const std::string& url, const std::string& short_text, const std::string& long_text) {
@ -243,8 +243,8 @@ docpp::HTML::Section getMain() {
docpp::HTML::Section td{docpp::HTML::Tag::Td};
docpp::HTML::Section td2{docpp::HTML::Tag::Td};
td.push_back({docpp::HTML::Tag::Img, {{docpp::HTML::Property{{"src", img}}, docpp::HTML::Property{{"width", "16"}}, docpp::HTML::Property{{"height", "16"}}}}, ""});
td.push_back({docpp::HTML::Tag::A, {{docpp::HTML::Property{{"href", url}}}}, short_text});
td.push_back({docpp::HTML::Tag::Img, {{docpp::HTML::Property{"src", img}, docpp::HTML::Property{"width", "16"}, docpp::HTML::Property{"height", "16"}}}, ""});
td.push_back({docpp::HTML::Tag::A, {{docpp::HTML::Property{"href", url}}}, short_text});
td2.push_back({docpp::HTML::Tag::Empty, {}, long_text + "\n"});
tr.push_back(td);

View file

@ -262,11 +262,6 @@ namespace docpp {
* @param value The value of the property
*/
Property(const std::string& key, const std::string& value) : property(std::make_pair(key, value)) {};
/**
* @brief Construct a new Property object
* @param property The property to set
*/
explicit Property(const std::pair<std::string, std::string>& property) : property(property) {};
/**
* @brief Construct a new Property object
* @param property The property to set

View file

@ -449,151 +449,151 @@ void docpp::HTML::Section::set_properties(const Properties& properties) {
std::unordered_map<docpp::HTML::Tag, std::pair<std::string, docpp::HTML::Type>> docpp::HTML::get_tag_map() {
return {
{Tag::Empty, {"", docpp::HTML::Type::Text}},
{Tag::Empty_No_Formatting, {"", docpp::HTML::Type::Text_No_Formatting}},
{Tag::Abbreviation, {"abbr", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Abbr, {"abbr", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Acronym, {"acronym", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Address, {"address", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Applet, {"applet", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Anchor, {"a", docpp::HTML::Type::Non_Self_Closing}},
{Tag::A, {"a", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Article, {"article", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Area, {"area", docpp::HTML::Type::Non_Closed}},
{Tag::Aside, {"aside", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Audio, {"audio", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Base, {"base", docpp::HTML::Type::Non_Closed}},
{Tag::Basefont, {"basefont", docpp::HTML::Type::Non_Closed}},
{Tag::Bdi, {"bdi", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Bdo, {"bdo", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Bgsound, {"bgsound", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Big, {"big", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Blockquote, {"blockquote", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Body, {"body", docpp::HTML::Type::Non_Self_Closing}},
{Tag::B, {"b", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Bold, {"b", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Br, {"br", docpp::HTML::Type::Non_Closed}},
{Tag::Break, {"br", docpp::HTML::Type::Non_Closed}},
{Tag::Button, {"button", docpp::HTML::Type::Non_Closed}},
{Tag::Caption, {"caption", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Canvas, {"canvas", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Center, {"center", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Cite, {"cite", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Code, {"code", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Colgroup, {"colgroup", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Column, {"col", docpp::HTML::Type::Non_Closed}},
{Tag::Col, {"col", docpp::HTML::Type::Non_Closed}},
{Tag::Data, {"data", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Datalist, {"datalist", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dd, {"dd", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dfn, {"dfn", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Define, {"dfn", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Delete, {"del", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Del, {"del", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Details, {"details", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dialog, {"dialog", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dir, {"dir", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Div, {"div", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dl, {"dl", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Dt, {"dt", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Embed, {"embed", docpp::HTML::Type::Non_Closed}},
{Tag::Fieldset, {"fieldset", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Figcaption, {"figcaption", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Figure, {"figure", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Font, {"font", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Footer, {"footer", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Form, {"form", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Frame, {"frame", docpp::HTML::Type::Self_Closing}},
{Tag::Frameset, {"frameset", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Head, {"head", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Header, {"header", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H1, {"h1", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H2, {"h2", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H3, {"h3", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H4, {"h4", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H5, {"h5", docpp::HTML::Type::Non_Self_Closing}},
{Tag::H6, {"h6", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Hr, {"hr", docpp::HTML::Type::Non_Closed}},
{Tag::Hgroup, {"hgroup", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Html, {"html", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Iframe, {"iframe", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Image, {"img", docpp::HTML::Type::Non_Closed}},
{Tag::Img, {"img", docpp::HTML::Type::Non_Closed}},
{Tag::Input, {"input", docpp::HTML::Type::Self_Closing}},
{Tag::Ins, {"ins", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Isindex, {"isindex", docpp::HTML::Type::Non_Closed}},
{Tag::Italic, {"i", docpp::HTML::Type::Non_Self_Closing}},
{Tag::I, {"i", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Kbd, {"kbd", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Keygen, {"keygen", docpp::HTML::Type::Non_Closed}},
{Tag::Label, {"label", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Legend, {"legend", docpp::HTML::Type::Non_Self_Closing}},
{Tag::List, {"li", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Li, {"li", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Link, {"link", docpp::HTML::Type::Non_Closed}},
{Tag::Main, {"main", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Mark, {"mark", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Marquee, {"marquee", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Menuitem, {"menuitem", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Meta, {"meta", docpp::HTML::Type::Non_Closed}},
{Tag::Meter, {"meter", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Nav, {"nav", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Nobreak, {"nobr", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Nobr, {"nobr", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Noembed, {"noembed", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Noscript, {"noscript", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Object, {"object", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Optgroup, {"optgroup", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Option, {"option", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Output, {"output", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Paragraph, {"p", docpp::HTML::Type::Non_Self_Closing}},
{Tag::P, {"p", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Param, {"param", docpp::HTML::Type::Non_Closed}},
{Tag::Phrase, {"phrase", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Pre, {"pre", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Progress, {"progress", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Quote, {"q", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Q, {"q", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Rp, {"rp", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Rt, {"rt", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Ruby, {"ruby", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Outdated, {"s", docpp::HTML::Type::Non_Self_Closing}},
{Tag::S, {"s", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Sample, {"samp", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Samp, {"samp", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Script, {"script", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Section, {"section", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Small, {"small", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Source, {"source", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Spacer, {"spacer", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Span, {"span", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Strike, {"strike", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Strong, {"strong", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Style, {"style", docpp::HTML::Type::Non_Closed}},
{Tag::Sub, {"sub", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Subscript, {"sub", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Sup, {"sup", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Superscript, {"sup", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Summary, {"summary", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Svg, {"svg", docpp::HTML::Type::Non_Closed}},
{Tag::Table, {"table", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Tbody, {"tbody", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Td, {"td", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Template, {"template", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Tfoot, {"tfoot", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Th, {"th", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Tr, {"tr", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Thead, {"thead", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Time, {"time", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Title, {"title", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Track, {"track", docpp::HTML::Type::Non_Closed}},
{Tag::Tt, {"tt", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Underline, {"u", docpp::HTML::Type::Non_Self_Closing}},
{Tag::U, {"u", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Var, {"var", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Video, {"video", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Wbr, {"wbr", docpp::HTML::Type::Non_Closed}},
{Tag::Xmp, {"xmp", docpp::HTML::Type::Non_Self_Closing}},
{Tag::Empty, {"", Type::Text}},
{Tag::Empty_No_Formatting, {"", Type::Text_No_Formatting}},
{Tag::Abbreviation, {"abbr", Type::Non_Self_Closing}},
{Tag::Abbr, {"abbr", Type::Non_Self_Closing}},
{Tag::Acronym, {"acronym", Type::Non_Self_Closing}},
{Tag::Address, {"address", Type::Non_Self_Closing}},
{Tag::Applet, {"applet", Type::Non_Self_Closing}},
{Tag::Anchor, {"a", Type::Non_Self_Closing}},
{Tag::A, {"a", Type::Non_Self_Closing}},
{Tag::Article, {"article", Type::Non_Self_Closing}},
{Tag::Area, {"area", Type::Non_Closed}},
{Tag::Aside, {"aside", Type::Non_Self_Closing}},
{Tag::Audio, {"audio", Type::Non_Self_Closing}},
{Tag::Base, {"base", Type::Non_Closed}},
{Tag::Basefont, {"basefont", Type::Non_Closed}},
{Tag::Bdi, {"bdi", Type::Non_Self_Closing}},
{Tag::Bdo, {"bdo", Type::Non_Self_Closing}},
{Tag::Bgsound, {"bgsound", Type::Non_Self_Closing}},
{Tag::Big, {"big", Type::Non_Self_Closing}},
{Tag::Blockquote, {"blockquote", Type::Non_Self_Closing}},
{Tag::Body, {"body", Type::Non_Self_Closing}},
{Tag::B, {"b", Type::Non_Self_Closing}},
{Tag::Bold, {"b", Type::Non_Self_Closing}},
{Tag::Br, {"br", Type::Non_Closed}},
{Tag::Break, {"br", Type::Non_Closed}},
{Tag::Button, {"button", Type::Non_Closed}},
{Tag::Caption, {"caption", Type::Non_Self_Closing}},
{Tag::Canvas, {"canvas", Type::Non_Self_Closing}},
{Tag::Center, {"center", Type::Non_Self_Closing}},
{Tag::Cite, {"cite", Type::Non_Self_Closing}},
{Tag::Code, {"code", Type::Non_Self_Closing}},
{Tag::Colgroup, {"colgroup", Type::Non_Self_Closing}},
{Tag::Column, {"col", Type::Non_Closed}},
{Tag::Col, {"col", Type::Non_Closed}},
{Tag::Data, {"data", Type::Non_Self_Closing}},
{Tag::Datalist, {"datalist", Type::Non_Self_Closing}},
{Tag::Dd, {"dd", Type::Non_Self_Closing}},
{Tag::Dfn, {"dfn", Type::Non_Self_Closing}},
{Tag::Define, {"dfn", Type::Non_Self_Closing}},
{Tag::Delete, {"del", Type::Non_Self_Closing}},
{Tag::Del, {"del", Type::Non_Self_Closing}},
{Tag::Details, {"details", Type::Non_Self_Closing}},
{Tag::Dialog, {"dialog", Type::Non_Self_Closing}},
{Tag::Dir, {"dir", Type::Non_Self_Closing}},
{Tag::Div, {"div", Type::Non_Self_Closing}},
{Tag::Dl, {"dl", Type::Non_Self_Closing}},
{Tag::Dt, {"dt", Type::Non_Self_Closing}},
{Tag::Embed, {"embed", Type::Non_Closed}},
{Tag::Fieldset, {"fieldset", Type::Non_Self_Closing}},
{Tag::Figcaption, {"figcaption", Type::Non_Self_Closing}},
{Tag::Figure, {"figure", Type::Non_Self_Closing}},
{Tag::Font, {"font", Type::Non_Self_Closing}},
{Tag::Footer, {"footer", Type::Non_Self_Closing}},
{Tag::Form, {"form", Type::Non_Self_Closing}},
{Tag::Frame, {"frame", Type::Self_Closing}},
{Tag::Frameset, {"frameset", Type::Non_Self_Closing}},
{Tag::Head, {"head", Type::Non_Self_Closing}},
{Tag::Header, {"header", Type::Non_Self_Closing}},
{Tag::H1, {"h1", Type::Non_Self_Closing}},
{Tag::H2, {"h2", Type::Non_Self_Closing}},
{Tag::H3, {"h3", Type::Non_Self_Closing}},
{Tag::H4, {"h4", Type::Non_Self_Closing}},
{Tag::H5, {"h5", Type::Non_Self_Closing}},
{Tag::H6, {"h6", Type::Non_Self_Closing}},
{Tag::Hr, {"hr", Type::Non_Closed}},
{Tag::Hgroup, {"hgroup", Type::Non_Self_Closing}},
{Tag::Html, {"html", Type::Non_Self_Closing}},
{Tag::Iframe, {"iframe", Type::Non_Self_Closing}},
{Tag::Image, {"img", Type::Non_Closed}},
{Tag::Img, {"img", Type::Non_Closed}},
{Tag::Input, {"input", Type::Self_Closing}},
{Tag::Ins, {"ins", Type::Non_Self_Closing}},
{Tag::Isindex, {"isindex", Type::Non_Closed}},
{Tag::Italic, {"i", Type::Non_Self_Closing}},
{Tag::I, {"i", Type::Non_Self_Closing}},
{Tag::Kbd, {"kbd", Type::Non_Self_Closing}},
{Tag::Keygen, {"keygen", Type::Non_Closed}},
{Tag::Label, {"label", Type::Non_Self_Closing}},
{Tag::Legend, {"legend", Type::Non_Self_Closing}},
{Tag::List, {"li", Type::Non_Self_Closing}},
{Tag::Li, {"li", Type::Non_Self_Closing}},
{Tag::Link, {"link", Type::Non_Closed}},
{Tag::Main, {"main", Type::Non_Self_Closing}},
{Tag::Mark, {"mark", Type::Non_Self_Closing}},
{Tag::Marquee, {"marquee", Type::Non_Self_Closing}},
{Tag::Menuitem, {"menuitem", Type::Non_Self_Closing}},
{Tag::Meta, {"meta", Type::Non_Closed}},
{Tag::Meter, {"meter", Type::Non_Self_Closing}},
{Tag::Nav, {"nav", Type::Non_Self_Closing}},
{Tag::Nobreak, {"nobr", Type::Non_Self_Closing}},
{Tag::Nobr, {"nobr", Type::Non_Self_Closing}},
{Tag::Noembed, {"noembed", Type::Non_Self_Closing}},
{Tag::Noscript, {"noscript", Type::Non_Self_Closing}},
{Tag::Object, {"object", Type::Non_Self_Closing}},
{Tag::Optgroup, {"optgroup", Type::Non_Self_Closing}},
{Tag::Option, {"option", Type::Non_Self_Closing}},
{Tag::Output, {"output", Type::Non_Self_Closing}},
{Tag::Paragraph, {"p", Type::Non_Self_Closing}},
{Tag::P, {"p", Type::Non_Self_Closing}},
{Tag::Param, {"param", Type::Non_Closed}},
{Tag::Phrase, {"phrase", Type::Non_Self_Closing}},
{Tag::Pre, {"pre", Type::Non_Self_Closing}},
{Tag::Progress, {"progress", Type::Non_Self_Closing}},
{Tag::Quote, {"q", Type::Non_Self_Closing}},
{Tag::Q, {"q", Type::Non_Self_Closing}},
{Tag::Rp, {"rp", Type::Non_Self_Closing}},
{Tag::Rt, {"rt", Type::Non_Self_Closing}},
{Tag::Ruby, {"ruby", Type::Non_Self_Closing}},
{Tag::Outdated, {"s", Type::Non_Self_Closing}},
{Tag::S, {"s", Type::Non_Self_Closing}},
{Tag::Sample, {"samp", Type::Non_Self_Closing}},
{Tag::Samp, {"samp", Type::Non_Self_Closing}},
{Tag::Script, {"script", Type::Non_Self_Closing}},
{Tag::Section, {"section", Type::Non_Self_Closing}},
{Tag::Small, {"small", Type::Non_Self_Closing}},
{Tag::Source, {"source", Type::Non_Self_Closing}},
{Tag::Spacer, {"spacer", Type::Non_Self_Closing}},
{Tag::Span, {"span", Type::Non_Self_Closing}},
{Tag::Strike, {"strike", Type::Non_Self_Closing}},
{Tag::Strong, {"strong", Type::Non_Self_Closing}},
{Tag::Style, {"style", Type::Non_Closed}},
{Tag::Sub, {"sub", Type::Non_Self_Closing}},
{Tag::Subscript, {"sub", Type::Non_Self_Closing}},
{Tag::Sup, {"sup", Type::Non_Self_Closing}},
{Tag::Superscript, {"sup", Type::Non_Self_Closing}},
{Tag::Summary, {"summary", Type::Non_Self_Closing}},
{Tag::Svg, {"svg", Type::Non_Closed}},
{Tag::Table, {"table", Type::Non_Self_Closing}},
{Tag::Tbody, {"tbody", Type::Non_Self_Closing}},
{Tag::Td, {"td", Type::Non_Self_Closing}},
{Tag::Template, {"template", Type::Non_Self_Closing}},
{Tag::Tfoot, {"tfoot", Type::Non_Self_Closing}},
{Tag::Th, {"th", Type::Non_Self_Closing}},
{Tag::Tr, {"tr", Type::Non_Self_Closing}},
{Tag::Thead, {"thead", Type::Non_Self_Closing}},
{Tag::Time, {"time", Type::Non_Self_Closing}},
{Tag::Title, {"title", Type::Non_Self_Closing}},
{Tag::Track, {"track", Type::Non_Closed}},
{Tag::Tt, {"tt", Type::Non_Self_Closing}},
{Tag::Underline, {"u", Type::Non_Self_Closing}},
{Tag::U, {"u", Type::Non_Self_Closing}},
{Tag::Var, {"var", Type::Non_Self_Closing}},
{Tag::Video, {"video", Type::Non_Self_Closing}},
{Tag::Wbr, {"wbr", Type::Non_Closed}},
{Tag::Xmp, {"xmp", Type::Non_Self_Closing}},
};
}