diff --git a/src/html_dumper.cpp b/src/html_dumper.cpp index 9122a723a..6674080a2 100644 --- a/src/html_dumper.cpp +++ b/src/html_dumper.cpp @@ -1,6 +1,7 @@ #include "html_dumper.h" #include "libkiwix-resources.h" #include "tools/otherTools.h" +#include "tools.h" namespace kiwix { @@ -15,6 +16,23 @@ HTMLDumper::~HTMLDumper() { } +namespace { + +kainjow::mustache::list getTagList(std::string tags) +{ + const auto tagsList = kiwix::split(tags, ";", true, false); + kainjow::mustache::list finalTagList; + for (auto tag : tagsList) { + if (tag[0] != '_') + finalTagList.push_back(kainjow::mustache::object{ + {"tag", tag} + }); + } + return finalTagList; +} + +} // unnamed namespace + std::string HTMLDumper::dumpPlainHTML() const { kainjow::mustache::list booksData; @@ -24,12 +42,14 @@ std::string HTMLDumper::dumpPlainHTML() const const auto bookDescription = bookObj.getDescription(); const auto langCode = bookObj.getCommaSeparatedLanguages(); const auto bookIconUrl = rootLocation + "/catalog/v2/illustration/" + bookId + "/?size=48"; + const auto tags = bookObj.getTags(); std::string faviconAttr = "style=background-image:url(" + bookIconUrl + ")"; booksData.push_back(kainjow::mustache::object{ {"title", bookTitle}, {"description", bookDescription}, {"langCode", langCode}, - {"faviconAttr", faviconAttr} + {"faviconAttr", faviconAttr}, + {"tagList", getTagList(tags)} }); } diff --git a/static/templates/no_js_library_page.html b/static/templates/no_js_library_page.html index 69f1c6ecc..2db51a0d6 100644 --- a/static/templates/no_js_library_page.html +++ b/static/templates/no_js_library_page.html @@ -40,6 +40,10 @@ .book__wrapper:hover { transform: scale(1.0); } + + .tag__link { + pointer-events: none; + } @@ -57,7 +61,11 @@
{{langCode}}
-
TO DO: TAGS
+
+ {{#tagList}} + {{tag}} + {{/tagList}} +
{{/books}}