MarkdownView: исправлен делегат и парсинг блоков
- Repeater delegate: убраны required property, заменены на property string blockType: model.type || "" и т.д. для html/code блоков (иначе QML Cannot create delegate когда у html нет codeId) - parseBlocks тест в mdparser_test.cpp: проверка 3 блоков (html/code/html) и highlighted - Убран console.log из MarkdownView::update
This commit is contained in:
@@ -105,6 +105,16 @@ int main(int argc, char *argv[])
|
||||
if (!probe(im, "<img") && !probe(im, "изображение"))
|
||||
return fail("картинка", im);
|
||||
|
||||
// CodeBlock отдельный компонент — parseBlocks
|
||||
auto blocks = p.parseBlocks("# Hello\n\n```cpp\nint x=1;\n```\n\nText", vault, fileDir);
|
||||
if (blocks.size() != 3) return fail("parseBlocks size", QString::number(blocks.size()));
|
||||
if (blocks[0].toMap().value("type").toString() != "html") return fail("block 0 type", blocks[0].toMap().value("type").toString());
|
||||
if (blocks[1].toMap().value("type").toString() != "code") return fail("block 1 type", blocks[1].toMap().value("type").toString());
|
||||
if (blocks[1].toMap().value("language").toString() != "C++" && blocks[1].toMap().value("language").toString() != "cpp") return fail("block 1 lang", blocks[1].toMap().value("language").toString());
|
||||
if (!blocks[1].toMap().value("code").toString().contains("int x=1;")) return fail("block 1 code", blocks[1].toMap().value("code").toString());
|
||||
if (blocks[1].toMap().value("highlighted").toString().isEmpty()) return fail("highlighted empty");
|
||||
if (blocks[2].toMap().value("type").toString() != "html") return fail("block 2 type");
|
||||
|
||||
std::printf("MDPARSER TEST OK\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user