hemplateSimple XML template engine |
git clone git://git.dimitrijedobrota.com/hemplate.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | |
commit | ee98b9c229f2c28adaa21872a0b72d1b4869b26b |
parent | 98d956c2a2f6c96dff5b0aa4f0c7934ed57c9bb6 |
author | Dimitrije Dobrota <mail@dimitrijedobrota.com> |
date | Mon, 24 Jun 2024 18:50:29 +0200 |
Add RSS and Atom classes under namespace
Diffstat:M | .clang-tidy | | | +- |
M | include/hemplate/classes.hpp | | | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- |
M | test/source/hemplate_test.cpp | | | ++++++------ |
3 files changed, 76 insertions(+), 8 deletions(-)
diff --git a/.clang-tidy b/.clang-tidy
@@ -147,7 +147,7 @@ CheckOptions:
- key: 'readability-identifier-naming.TemplateTemplateParameterCase'
value: 'CamelCase'
- key: 'readability-identifier-naming.TypeAliasCase'
value: 'lower_case'
value: 'camelBack'
- key: 'readability-identifier-naming.TypedefCase'
value: 'lower_case'
- key: 'readability-identifier-naming.TypeTemplateParameterCase'
diff --git a/include/hemplate/classes.hpp b/include/hemplate/classes.hpp
@@ -6,6 +6,8 @@
#include "hemplate/elementBoolean.hpp"
#include "hemplate/hemplate_export.hpp"
namespace hemplate {
template<std::size_t N>
struct string_literal
{
@@ -27,7 +29,7 @@ struct tag
static char const* get_name() { return Name.data(); }
};
namespace hemplate {
namespace html {
using a = elementBoolean<tag<"a">>;
using abbr = elementBoolean<tag<"abbr">>;
@@ -142,4 +144,70 @@ using var = elementBoolean<tag<"var">>;
using video = elementBoolean<tag<"video">>;
using wbr = elementAtomic<tag<"wbr">>;
} // namespace html
namespace rss {
using author = elementBoolean<tag<"author">>;
using category = elementBoolean<tag<"category">>;
using cloud = elementAtomic<tag<"cloud">>;
using comments = elementBoolean<tag<"comments">>;
using copyright = elementBoolean<tag<"copyright">>;
using description = elementBoolean<tag<"description">>;
using docs = elementBoolean<tag<"docs">>;
using enclosure = elementAtomic<tag<"enclosure">>;
using generator = elementBoolean<tag<"generator">>;
using guid = elementBoolean<tag<"guid">>;
using height = elementBoolean<tag<"height">>;
using image = elementBoolean<tag<"image">>;
using language = elementBoolean<tag<"language">>;
using lastBuildDate = elementBoolean<tag<"lastBuildDate">>;
using link = elementBoolean<tag<"link">>;
using managingEditor = elementBoolean<tag<"managingEditor">>;
using name = elementBoolean<tag<"name">>;
using pubDate = elementBoolean<tag<"pubDate">>;
using rating = elementBoolean<tag<"rating">>;
using skipDays = elementBoolean<tag<"skipDays">>;
using skipHours = elementBoolean<tag<"skipHours">>;
using source = elementBoolean<tag<"source">>;
using textinput = elementBoolean<tag<"textinput">>;
using title = elementBoolean<tag<"title">>;
using ttl = elementBoolean<tag<"ttl">>;
using url = elementBoolean<tag<"url">>;
using webMaster = elementBoolean<tag<"webMaster">>;
using width = elementBoolean<tag<"width">>;
using atomLink = elementAtomic<tag<"atom:link">>;
} // namespace rss
namespace atom {
using author = elementBoolean<tag<"author">>;
using category = elementBoolean<tag<"category">>;
using content = elementBoolean<tag<"content">>;
using contributor = elementBoolean<tag<"contributor">>;
using div = elementBoolean<tag<"div">>;
using entry = elementBoolean<tag<"entry">>;
using feed = elementBoolean<tag<"feed">>;
using generator = elementBoolean<tag<"generator">>;
using icon = elementBoolean<tag<"icon">>;
using id = elementBoolean<tag<"id">>;
using intervalBlock = elementBoolean<tag<"intervalBlock">>;
using link = elementBoolean<tag<"link">>;
using logo = elementBoolean<tag<"logo">>;
using meterReading = elementBoolean<tag<"meterReading">>;
using name = elementBoolean<tag<"name">>;
using published = elementBoolean<tag<"published">>;
using readingType = elementBoolean<tag<"readingType">>;
using rights = elementBoolean<tag<"rights">>;
using source = elementBoolean<tag<"source">>;
using subtitle = elementBoolean<tag<"subtitle">>;
using summary = elementBoolean<tag<"summary">>;
using title = elementBoolean<tag<"title">>;
using update = elementBoolean<tag<"update">>;
using updated = elementBoolean<tag<"updated">>;
using usagePoint = elementBoolean<tag<"usagePoint">>;
} // namespace atom
} // namespace hemplate
diff --git a/test/source/hemplate_test.cpp b/test/source/hemplate_test.cpp
@@ -11,15 +11,15 @@ int main()
{"class", "home_ul"},
{"style", "margin-bottom: 1em"}});
std::cout << html() << std::endl;
std::cout << ul("Won't see", ul_attrs)
std::cout << html::html() << std::endl;
std::cout << html::ul("Won't see", ul_attrs)
.set("style", "margin-top: 1em")
.set("class", "center")
.add(li("Item 1", li_attrs).set("class", "item1"))
.add(li("Item 2", li_attrs).set("class", "item2"))
.add(html::li("Item 1", li_attrs).set("class", "item1"))
.add(html::li("Item 2", li_attrs).set("class", "item2"))
<< std::endl;
std::cout << meta() << std::endl;
std::cout << html() << std::endl;
std::cout << html::meta() << std::endl;
std::cout << html::html() << std::endl;
return 0;
}