#include "utility.hpp"
std::optional<std::string> article::get(const std::string& key) const
{
const auto itr = m_symbols.find(key);
if (itr == end(m_symbols))
{
std::cerr << "Warning: getting invalid value for: " << key << std::endl;
return {};
}
return itr->second;
}
std::string article::get_filename() const
{
return m_symbols.find("filename")->second;
}
std::string article::get_date() const
{
return get("date").value_or("0000-00-00");
}
std::string article::get_title() const
{
return get("title").value_or(get_filename());
}
std::string article::get_language() const
{
return get("language").value_or("en");
}
void article::print_nav(std::ostream& ost)
{
using namespace hemplate; // NOLINT
static const char* base = "https://dimitrijedobrota.com/blog";
ost << html::div()
.add(html::nav()
.add(html::a("<-- back", {{"class", "back"}}))
.add(html::a("index", {{"href", base}}))
.add(html::a("hime -->", {{"href", "/"}})))
.add(html::hr());
ost << html::nav()
.add(html::a("<-- back", {{"class", "back"}}))
.add(html::a("index", {{"href", base}}))
.add(html::a("home -->", {{"href", "/"}}));
}
void article::print_categories(std::ostream& ost,