From 78b7d60abfd0c7eb5148e2b519ba9ee67f081a98 Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Sun, 23 Jun 2024 14:30:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ast=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WsNovelParser/htmlprint.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/WsNovelParser/htmlprint.cpp b/WsNovelParser/htmlprint.cpp index 7c574c6..5b3eff4 100644 --- a/WsNovelParser/htmlprint.cpp +++ b/WsNovelParser/htmlprint.cpp @@ -564,11 +564,13 @@ VisitMode printer::AstGenerate::mode() const { return VisitMode::FirstParent; } +#include bool printer::AstGenerate::visit(std::shared_ptr syntax_element) { switch ((NovelNode)syntax_element->element()->typeMark()) { case NovelNode::GlobalElement:{ auto body = doc.createElement(u8"ast"); doc.appendChild(body); + body.setAttribute(u8"time", QDateTime::currentDateTime().toString(u8"yyyyMMdd_hhmmss")); element_stack.append(body); }break; case NovelNode::Document: break; @@ -665,6 +667,17 @@ bool printer::AstGenerate::visit(std::shared_ptr s append_tokens(dom_article, article_node); }break; + case NovelNode::RankDeclaration:{ + auto ast_element = element_stack.first(); + auto rank_node = std::dynamic_pointer_cast(syntax_element->element()); + auto dom_rank = doc.createElement(u8"rank"); + ast_element.appendChild(dom_rank); + + dom_rank.setAttribute(u8"rank", rank_node->rankNumber()); + dom_rank.setAttribute(u8"doc-path", rank_node->filePath()); + + append_tokens(dom_rank, rank_node); + }break; default: break; }