История: diff прямо в Просмотре версии + код не в одну строку
- Подсветка: highlight() отдаёт <br/> вместо сырых \n (RichText их схлопывал — код был одной строкой); plainToRich для fallback-путей - MdParser.parseBlocksWithDiff(old,new): поблочный LCS-diff с fence-aware разбивкой, change same/del/add, изменённые блоки в цветном div (красный/зелёный как в diff), codeId для копирования сохранены - MarkdownView.compareMarkdown: при задании рендерит версию с подсветкой отличий - История: Просмотр версии сравнивается со свежим содержимым с диска (workdirContent), легенда на обеих вкладках - Тесты: <br/>, порядок del/add, тинты, identical без подсветки
This commit is contained in:
@@ -28,6 +28,14 @@ public:
|
||||
const QString &vaultRoot,
|
||||
const QString &fileDir);
|
||||
|
||||
// Те же блоки, но версия oldMd с подсветкой отличий от newMd (для «Истории»).
|
||||
// Каждый блок дополнительно имеет change:"same"/"del"/"add" (del — только в old,
|
||||
// add — только в new); изменённые блоки обёрнуты в цветной div прямо в html/highlighted.
|
||||
Q_INVOKABLE QVariantList parseBlocksWithDiff(const QString &oldMd,
|
||||
const QString &newMd,
|
||||
const QString &vaultRoot,
|
||||
const QString &fileDir);
|
||||
|
||||
Q_INVOKABLE QString getCodeBlock(const QString &id) const;
|
||||
Q_INVOKABLE void copyToClipboard(const QString &text) const;
|
||||
Q_INVOKABLE QString highlightedCode(const QString &code, const QString &language) const;
|
||||
|
||||
Reference in New Issue
Block a user