From 9dd660d66e23f02716d4b2bad84ac86764de71a6 Mon Sep 17 00:00:00 2001 From: "Felix \"xq\" Queißner" Date: Sat, 20 Nov 2021 15:02:03 +0100 Subject: Improves caching api related to urls, implements fragment handling, fixes #237 --- src/renderers/htmlrenderer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/renderers/htmlrenderer.cpp') diff --git a/src/renderers/htmlrenderer.cpp b/src/renderers/htmlrenderer.cpp index 23f720e..c6e15ad 100644 --- a/src/renderers/htmlrenderer.cpp +++ b/src/renderers/htmlrenderer.cpp @@ -109,6 +109,10 @@ static void renderRecursive(RenderState & state, GumboNode const & node, int nes bool process_header = false; QString header_text; + // Fetch the original `id` attribute if any + char const * const header_id = getAttribute(element, "id"); + QString const anchor = (header_id != nullptr) ? QString(header_id) : QString("header-%1").arg(state.header_count); + switch(element.tag) { // Stripped tags @@ -173,7 +177,7 @@ static void renderRecursive(RenderState & state, GumboNode const & node, int nes process_header = true; state.header_text = &header_text; } - stream += "<" + QString::fromUtf8(gumbo_normalized_tagname(element.tag)) + QString(" id=\"header-%1\">").arg(state.header_count); + stream += "<" + QString::fromUtf8(gumbo_normalized_tagname(element.tag)) + " id=\"" + anchor + "\">"; break; default: @@ -192,7 +196,6 @@ static void renderRecursive(RenderState & state, GumboNode const & node, int nes QRegularExpression regex { "\\s+", QRegularExpression::DotMatchesEverythingOption }; QString const header = header_text.replace(regex, " "); - QString const anchor = QString("header-%1").arg(state.header_count); switch(element.tag) { case GUMBO_TAG_H1: -- cgit v1.2.3