mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
fix html toc parsing
Handle wrong notation such as header 3 under header 1 directly. Signed-off-by: Le Tan <tamlokveer@gmail.com>
This commit is contained in:
parent
ab91f755c0
commit
ae0130aa26
@ -298,16 +298,17 @@ void VEditTab::parseTocLi(QXmlStreamReader &xml, QVector<VHeader> &headers, int
|
|||||||
qWarning() << "error: TOC HTML <a> should be ended by </a>" << xml.name();
|
qWarning() << "error: TOC HTML <a> should be ended by </a>" << xml.name();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
VHeader header;
|
VHeader header(level, name, anchor, -1);
|
||||||
header.level = level;
|
|
||||||
header.name = name;
|
|
||||||
header.anchor = anchor;
|
|
||||||
header.lineNumber = -1;
|
|
||||||
headers.append(header);
|
headers.append(header);
|
||||||
} else {
|
} else {
|
||||||
// Error
|
// Error
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
} else if (xml.name() == "ul") {
|
||||||
|
// Such as header 3 under header 1 directly
|
||||||
|
VHeader header(level, "[Empty]", "#", -1);
|
||||||
|
headers.append(header);
|
||||||
|
parseTocUl(xml, headers, level + 1);
|
||||||
} else {
|
} else {
|
||||||
qWarning() << "error: TOC HTML <li> should contain <a> or <ul>" << xml.name();
|
qWarning() << "error: TOC HTML <li> should contain <a> or <ul>" << xml.name();
|
||||||
return;
|
return;
|
||||||
|
@ -12,6 +12,9 @@ enum VHeaderType
|
|||||||
|
|
||||||
struct VHeader
|
struct VHeader
|
||||||
{
|
{
|
||||||
|
VHeader() : level(1), lineNumber(-1) {}
|
||||||
|
VHeader(int level, const QString &name, const QString &anchor, int lineNumber)
|
||||||
|
: level(level), name(name), anchor(anchor), lineNumber(lineNumber) {}
|
||||||
int level;
|
int level;
|
||||||
QString name;
|
QString name;
|
||||||
QString anchor;
|
QString anchor;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user