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; }