Loading debian/changelog +6 −0 Original line number Diff line number Diff line libhtmlpp (20260426) unstable; urgency=medium * Emit <!DOCTYPE html> automatically in print() when root element is <html> -- Jan Koester <jan.koester@tuxist.de> Sat, 26 Apr 2026 08:00:00 +0200 libhtmlpp (20260417) unstable; urgency=medium * Add HTML4 DOCTYPE ignore and auto-fix unclosed tags on parsing Loading src/html.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -2068,6 +2068,16 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) const Element *el=&element; // Emit <!DOCTYPE html> when the root element is <html> if (el->getType() == HtmlEl) { const std::string &tag = static_cast<const HtmlElement*>(el)->getTagname(); if (tag == "html") { output.append("<!DOCTYPE html>"); if (formated) output.append("\n"); } } auto isContainer = [](const std::string &tagname) { for(size_t i=0; i<ContainerTypes.size(); ++i){ if(tagname==ContainerTypes[i]) Loading Loading
debian/changelog +6 −0 Original line number Diff line number Diff line libhtmlpp (20260426) unstable; urgency=medium * Emit <!DOCTYPE html> automatically in print() when root element is <html> -- Jan Koester <jan.koester@tuxist.de> Sat, 26 Apr 2026 08:00:00 +0200 libhtmlpp (20260417) unstable; urgency=medium * Add HTML4 DOCTYPE ignore and auto-fix unclosed tags on parsing Loading
src/html.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -2068,6 +2068,16 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) const Element *el=&element; // Emit <!DOCTYPE html> when the root element is <html> if (el->getType() == HtmlEl) { const std::string &tag = static_cast<const HtmlElement*>(el)->getTagname(); if (tag == "html") { output.append("<!DOCTYPE html>"); if (formated) output.append("\n"); } } auto isContainer = [](const std::string &tagname) { for(size_t i=0; i<ContainerTypes.size(); ++i){ if(tagname==ContainerTypes[i]) Loading