From 8cb0702614418afc2a9e1ff8e725f30d308d007d Mon Sep 17 00:00:00 2001 From: liyepan Date: Thu, 22 Oct 2026 17:58:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20v0.5.0=20=E2=80=94=E2=80=94=20=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=20PDF=EF=BC=88=E5=B8=A6=E9=A2=84=E8=A7=88=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 导出 - 文件 → 导出 PDF…(Ctrl+E)先弹出预览窗口,确认后点「保存 PDF…」选路径 - A4 纸、16mm 页边距;预览和导出共用同一个 QTextDocument,页宽一致 - 只用 Qt 自带的 QPrinter / QTextDocument,没有引入外部 PDF 库 排版 - 新增 MarkdownRenderer:把 Markdown 解析成排版好的富文本文档 - 支持标题、列表 / 任务列表、引用、围栏代码块、行内代码、 粗体 / 斜体 / 删除线、链接;图片输出 alt 文字,表格暂按原文 - 代码块带底色、引用带竖线、分隔线画成横线 其它 - 用用户更新后的 logo.png 重新生成了 ico / icns / png - docs/screenshot-export.png 与 README 同步 --- README.md | 21 +- VoiletMark.pro | 8 +- docs/screenshot-export.png | Bin 0 -> 98249 bytes logo.png | Bin 3615 -> 3649 bytes packaging/voiletmark.icns | Bin 7874 -> 8031 bytes packaging/voiletmark.ico | Bin 270622 -> 270622 bytes packaging/voiletmark.png | Bin 5728 -> 5774 bytes src/ExportDialog.cpp | 107 ++++++++++ src/ExportDialog.h | 24 +++ src/MainWindow.cpp | 12 ++ src/MainWindow.h | 2 + src/MarkdownRenderer.cpp | 405 +++++++++++++++++++++++++++++++++++++ src/MarkdownRenderer.h | 13 ++ 13 files changed, 588 insertions(+), 4 deletions(-) create mode 100644 docs/screenshot-export.png mode change 100644 => 100755 logo.png create mode 100644 src/ExportDialog.cpp create mode 100644 src/ExportDialog.h create mode 100644 src/MarkdownRenderer.cpp create mode 100644 src/MarkdownRenderer.h diff --git a/README.md b/README.md index bbd2bbd..037f9b4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 一个轻量的跨平台 Markdown 编辑器,基于 **Qt 5 / C++17** 构建。 -当前版本 **0.4.0**。 +当前版本 **0.5.0**。 ## 界面 @@ -14,6 +14,10 @@ ![源代码模式](docs/screenshot-source.png) +导出 PDF 前先给一个预览窗口,确认无误再选路径保存: + +![导出 PDF](docs/screenshot-export.png) + ## 功能 ### 编辑 @@ -56,6 +60,16 @@ 按钮在源码模式下会变成 ``。 +### 导出 PDF + +**文件 → 导出 PDF…**(`Ctrl+E`)会先弹出预览窗口,里面就是最终排版; +点「保存 PDF…」选个位置即可。A4 纸、16mm 页边距,预览和导出用的是同一份 +排版文档,所见即所得。 + +导出用的是 Qt 自带的 `QPrinter` + `QTextDocument`,不需要额外的 PDF 库。 +支持标题、列表(含任务列表)、引用、代码块、行内代码、粗体 / 斜体 / 删除线、 +链接;图片只输出 alt 文字,表格暂时按原文输出。 + ### 文件 - 新建、打开、保存、另存为、最近打开(最多 8 条) @@ -152,6 +166,7 @@ VoiletMark --screenshot a.png # 渲染窗口截图后退出(调试 / 视觉 | `Ctrl+N` / `Ctrl+O` / `Ctrl+S` | 新建 / 打开 / 保存 | | `Ctrl+Shift+S` | 另存为 | | `Ctrl+Shift+O` | 打开文件夹 | +| `Ctrl+E` | 导出 PDF(先预览) | | `Ctrl+B` | 显示 / 隐藏侧栏 | | `Ctrl+Shift+M` | 源代码模式 | | `Ctrl+1` ~ `Ctrl+6` | 设为 1–6 级标题(再按取消) | @@ -170,7 +185,9 @@ src/ ├── ThemeManager.{h,cpp} 四种主题模式 + 系统检测 + 调色板 / QSS 生成 ├── MainWindow.{h,cpp} 菜单、文件读写、文件夹侧栏、状态栏、设置 ├── MarkdownEditor.{h,cpp} 编辑器控件:行号、缩进、标题 / 代码块命令、源码模式 -└── MarkdownHighlighter.{h,cpp} Markdown 着色与就地渲染(隐藏标记、标题缩放) +├── MarkdownHighlighter.{h,cpp} Markdown 着色与就地渲染(隐藏标记、标题缩放) +├── MarkdownRenderer.{h,cpp} 导出用的 Markdown → 富文本文档转换 +└── ExportDialog.{h,cpp} PDF 预览与保存对话框 logo.png 图标源文件 resources.qrc 窗口图标资源 diff --git a/VoiletMark.pro b/VoiletMark.pro index 2d0bb45..88188fd 100644 --- a/VoiletMark.pro +++ b/VoiletMark.pro @@ -1,8 +1,8 @@ TEMPLATE = app TARGET = VoiletMark -VERSION = 0.4.0 +VERSION = 0.5.0 -QT += core gui widgets +QT += core gui widgets printsupport CONFIG += c++17 warn_on @@ -22,12 +22,16 @@ SOURCES += \ src/MainWindow.cpp \ src/MarkdownEditor.cpp \ src/MarkdownHighlighter.cpp \ + src/MarkdownRenderer.cpp \ + src/ExportDialog.cpp \ src/ThemeManager.cpp HEADERS += \ src/MainWindow.h \ src/MarkdownEditor.h \ src/MarkdownHighlighter.h \ + src/MarkdownRenderer.h \ + src/ExportDialog.h \ src/ThemeManager.h # Linux 桌面集成:make install 之后能在应用菜单里找到 diff --git a/docs/screenshot-export.png b/docs/screenshot-export.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3c4c0bb6e711ba99a3519148758b8a162051db GIT binary patch literal 98249 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 literal 3615 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 diff --git a/packaging/voiletmark.icns b/packaging/voiletmark.icns index 9ee87c3c45c30efac8fee3bf1ad01b30f18933a8..619fe5a4706fe42c4f9b3b83a5468bd5e9e5d79e 100644 GIT binary patch literal 8031 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 I|2b#=FS?_3w*UYD diff --git a/packaging/voiletmark.ico b/packaging/voiletmark.ico index b5eff535f00326abf65d24f79f94d1a97abb169a..cb28243cda1be731fb5dc6f749f0f92ccc179d5b 100644 GIT binary patch literal 270622 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 SArJx~5CS0(0wJ(v68L|L*sF~I diff --git a/packaging/voiletmark.png b/packaging/voiletmark.png index 099c01f9cde06e433f280ef3cb7fbfebea30365e..2d36fe1b64054cf8d02949e7647814ac248ece21 100644 GIT binary patch literal 5774 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 diff --git a/src/ExportDialog.cpp b/src/ExportDialog.cpp new file mode 100644 index 0000000..3772ac3 --- /dev/null +++ b/src/ExportDialog.cpp @@ -0,0 +1,107 @@ +#include "ExportDialog.h" + +#include "MarkdownRenderer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +ExportDialog::ExportDialog(const QString &markdown, const QString &documentName, + const QString &startDirectory, QWidget *parent) + : QDialog(parent) + , m_documentName(documentName) + , m_startDirectory(startDirectory) +{ + setWindowTitle(tr("导出 PDF — %1") + .arg(documentName.isEmpty() ? tr("未命名") : documentName)); + resize(900, 840); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setContentsMargins(16, 16, 16, 12); + layout->setSpacing(10); + + m_document = new QTextDocument(this); + MarkdownRenderer::render(markdown, m_document); + // A4 去掉 16mm 页边距后的正文宽度(96dpi 下的像素): + // 预览和打印用同一个页宽,看到的就是导出的样子。 + m_document->setPageSize(QSizeF(672.76, 1001.57)); + + m_preview = new QTextBrowser(this); + m_preview->setFrameShape(QFrame::NoFrame); + m_preview->setOpenExternalLinks(true); + m_preview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_preview->setFixedWidth(700); + m_preview->setDocument(m_document); + m_preview->setStyleSheet(QStringLiteral( + "QTextBrowser { background: #ffffff; color: #1f2328;" + " border: 1px solid #d8dde3; border-radius: 4px; }")); + + QHBoxLayout *center = new QHBoxLayout; + center->addStretch(1); + center->addWidget(m_preview); + center->addStretch(1); + layout->addLayout(center, 1); + + QLabel *hint = new QLabel(tr("A4 纸、16mm 页边距,内容和预览一致。"), this); + hint->setForegroundRole(QPalette::PlaceholderText); + + QPushButton *saveButton = new QPushButton(tr("保存 PDF…"), this); + saveButton->setDefault(true); + QPushButton *closeButton = new QPushButton(tr("关闭"), this); + + QHBoxLayout *buttons = new QHBoxLayout; + buttons->addWidget(hint); + buttons->addStretch(1); + buttons->addWidget(closeButton); + buttons->addWidget(saveButton); + layout->addLayout(buttons); + + connect(closeButton, &QPushButton::clicked, this, &QDialog::reject); + connect(saveButton, &QPushButton::clicked, this, &ExportDialog::savePdf); +} + +void ExportDialog::savePdf() +{ + QString suggested = m_documentName.isEmpty() + ? tr("未命名") + : QFileInfo(m_documentName).completeBaseName(); + suggested += QStringLiteral(".pdf"); + + QString target = QFileDialog::getSaveFileName( + this, tr("保存 PDF"), QDir(m_startDirectory).filePath(suggested), + tr("PDF 文件 (*.pdf)")); + if (target.isEmpty()) + return; + + if (!target.endsWith(QStringLiteral(".pdf"), Qt::CaseInsensitive)) + target += QStringLiteral(".pdf"); + + QPrinter printer(QPrinter::HighResolution); + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setOutputFileName(target); + printer.setPageSize(QPageSize(QPageSize::A4)); + printer.setPageMargins(QMarginsF(16, 16, 16, 16), QPageLayout::Millimeter); + printer.setDocName(QFileInfo(target).completeBaseName()); + + m_document->print(&printer); + + if (!QFileInfo::exists(target) || QFileInfo(target).size() <= 0) { + QMessageBox::warning(this, tr("导出失败"), + tr("没能写出「%1」,换个位置再试一次。") + .arg(QDir::toNativeSeparators(target))); + return; + } + + QMessageBox::information(this, tr("导出完成"), + tr("已保存到\n%1").arg(QDir::toNativeSeparators(target))); + accept(); +} diff --git a/src/ExportDialog.h b/src/ExportDialog.h new file mode 100644 index 0000000..cc6e2d2 --- /dev/null +++ b/src/ExportDialog.h @@ -0,0 +1,24 @@ +#pragma once + +#include + +class QTextBrowser; +class QTextDocument; + +/// “导出 PDF”窗口:上方是排版后的预览,下方保存为 PDF。 +class ExportDialog : public QDialog +{ + Q_OBJECT + +public: + ExportDialog(const QString &markdown, const QString &documentName, + const QString &startDirectory, QWidget *parent = nullptr); + +private: + void savePdf(); + + QTextBrowser *m_preview = nullptr; + QTextDocument *m_document = nullptr; + QString m_documentName; + QString m_startDirectory; +}; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ab24f91..af24b1e 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1,5 +1,6 @@ #include "MainWindow.h" +#include "ExportDialog.h" #include "MarkdownEditor.h" #include "ThemeManager.h" @@ -133,6 +134,10 @@ void MainWindow::createActions() m_saveAsAction->setShortcut(QKeySequence(QStringLiteral("Ctrl+Shift+S"))); connect(m_saveAsAction, &QAction::triggered, this, [this] { saveFileAs(); }); + m_exportPdfAction = new QAction(tr("导出 PDF…"), this); + m_exportPdfAction->setShortcut(QKeySequence(QStringLiteral("Ctrl+E"))); + connect(m_exportPdfAction, &QAction::triggered, this, &MainWindow::exportPdf); + m_quitAction = new QAction(tr("退出"), this); m_quitAction->setShortcut(QKeySequence::Quit); connect(m_quitAction, &QAction::triggered, this, &QWidget::close); @@ -269,6 +274,7 @@ void MainWindow::createMenus() fileMenu->addSeparator(); fileMenu->addAction(m_saveAction); fileMenu->addAction(m_saveAsAction); + fileMenu->addAction(m_exportPdfAction); fileMenu->addSeparator(); fileMenu->addAction(m_quitAction); @@ -536,6 +542,12 @@ bool MainWindow::saveFileAs() return writeToFile(path); } +void MainWindow::exportPdf() +{ + ExportDialog dialog(m_editor->toPlainText(), displayName(), startDirectory(), this); + dialog.exec(); +} + bool MainWindow::writeToFile(const QString &path) { QString text = m_editor->toPlainText(); diff --git a/src/MainWindow.h b/src/MainWindow.h index f6f8ac7..361c68d 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -56,6 +56,7 @@ private: void selectInSidebar(const QString &path); QStringList scanFolder() const; void setSourceModeEnabled(bool enabled); + void exportPdf(); void changeZoom(int direction); void resetZoom(); @@ -92,6 +93,7 @@ private: QAction *m_openAction = nullptr; QAction *m_saveAction = nullptr; QAction *m_saveAsAction = nullptr; + QAction *m_exportPdfAction = nullptr; QAction *m_quitAction = nullptr; QAction *m_undoAction = nullptr; diff --git a/src/MarkdownRenderer.cpp b/src/MarkdownRenderer.cpp new file mode 100644 index 0000000..175bfda --- /dev/null +++ b/src/MarkdownRenderer.cpp @@ -0,0 +1,405 @@ +#include "MarkdownRenderer.h" + +#include +#include +#include +#include +#include +#include +#include + +namespace { + +QStringList proseFamilies() +{ + return {QStringLiteral("Noto Sans CJK SC"), QStringLiteral("Source Han Sans SC"), + QStringLiteral("WenQuanYi Micro Hei"), QStringLiteral("Microsoft YaHei"), + QStringLiteral("PingFang SC"), QStringLiteral("Segoe UI"), + QStringLiteral("DejaVu Sans")}; +} + +QStringList monoFamilies() +{ + return {QStringLiteral("JetBrains Mono"), QStringLiteral("Cascadia Code"), + QStringLiteral("Source Han Mono SC"), QStringLiteral("Noto Sans Mono CJK SC"), + QStringLiteral("Sarasa Mono SC"), QStringLiteral("Consolas"), + QStringLiteral("DejaVu Sans Mono")}; +} + +QColor hex(const char *value) +{ + return QColor(QString::fromLatin1(value)); +} + +struct Style +{ + QColor text = hex("#1f2328"); + QColor heading = hex("#11151a"); + QColor muted = hex("#5b6570"); + QColor rule = hex("#d0d7de"); + QColor codeText = hex("#b4295a"); + QColor codeBg = hex("#f3f4f6"); + QColor link = hex("#0969da"); + QColor marker = hex("#0969da"); +}; + +constexpr qreal kBodySize = 11.5; +constexpr qreal kCodeSize = 10.5; + +class Renderer +{ +public: + explicit Renderer(QTextDocument *document) + : m_document(document) + , m_cursor(document) + { + } + + void run(const QString &markdown); + +private: + void beginBlock(const QTextBlockFormat &blockFormat, const QTextCharFormat &charFormat); + void renderHeading(int level, const QString &text); + void renderParagraph(const QString &text, int quoteDepth); + void renderListItem(const QString &marker, const QString &text, int indentLevel); + void renderCodeBlock(const QStringList &lines); + void renderRule(); + void renderInline(const QString &text, const QTextCharFormat &base); + + QTextCharFormat bodyFormat(const QColor &color = QColor()) const; + QTextCharFormat codeFormat() const; + + QTextDocument *m_document = nullptr; + QTextCursor m_cursor; + bool m_firstBlock = true; + Style m_style; +}; + +QTextCharFormat Renderer::bodyFormat(const QColor &color) const +{ + QTextCharFormat format; + format.setFontFamilies(proseFamilies()); + format.setFontPointSize(kBodySize); + format.setForeground(color.isValid() ? color : m_style.text); + return format; +} + +QTextCharFormat Renderer::codeFormat() const +{ + QTextCharFormat format; + format.setFontFamilies(monoFamilies()); + format.setFontFixedPitch(true); + format.setFontPointSize(kCodeSize); + format.setForeground(m_style.codeText); + format.setBackground(m_style.codeBg); + return format; +} + +void Renderer::beginBlock(const QTextBlockFormat &blockFormat, const QTextCharFormat &charFormat) +{ + if (m_firstBlock) { + m_cursor.setBlockFormat(blockFormat); + m_cursor.setBlockCharFormat(charFormat); + m_firstBlock = false; + } else { + m_cursor.insertBlock(blockFormat, charFormat); + } + m_cursor.setCharFormat(charFormat); +} + +void Renderer::renderHeading(int level, const QString &text) +{ + static const qreal scales[6] = {2.0, 1.55, 1.3, 1.15, 1.05, 1.0}; + QTextBlockFormat blockFormat; + blockFormat.setLineHeight(135, QTextBlockFormat::ProportionalHeight); + blockFormat.setTopMargin(level <= 2 ? 20 : 14); + blockFormat.setBottomMargin(8); + + QTextCharFormat format; + format.setFontFamilies(proseFamilies()); + format.setFontPointSize(kBodySize * scales[qBound(1, level, 6) - 1]); + format.setFontWeight(QFont::Bold); + format.setForeground(m_style.heading); + + beginBlock(blockFormat, format); + m_cursor.insertText(text, format); +} + +void Renderer::renderParagraph(const QString &text, int quoteDepth) +{ + QTextBlockFormat blockFormat; + blockFormat.setLineHeight(150, QTextBlockFormat::ProportionalHeight); + blockFormat.setBottomMargin(8); + if (quoteDepth > 0) { + blockFormat.setLeftMargin(18 + (quoteDepth - 1) * 16); + } + beginBlock(blockFormat, bodyFormat(quoteDepth > 0 ? m_style.muted : QColor())); + + if (quoteDepth > 0) { + QTextCharFormat bar = bodyFormat(m_style.rule); + bar.setFontWeight(QFont::Bold); + m_cursor.insertText(QStringLiteral("│ "), bar); + } + renderInline(text, bodyFormat(quoteDepth > 0 ? m_style.muted : QColor())); +} + +void Renderer::renderListItem(const QString &marker, const QString &text, int indentLevel) +{ + QTextBlockFormat blockFormat; + blockFormat.setLineHeight(150, QTextBlockFormat::ProportionalHeight); + blockFormat.setBottomMargin(6); + blockFormat.setLeftMargin(18 + indentLevel * 18); + blockFormat.setTextIndent(-14); + beginBlock(blockFormat, bodyFormat()); + + QTextCharFormat markerFormat = bodyFormat(m_style.marker); + markerFormat.setFontWeight(QFont::DemiBold); + m_cursor.insertText(marker + QLatin1Char(' '), markerFormat); + renderInline(text, bodyFormat()); +} + +void Renderer::renderCodeBlock(const QStringList &lines) +{ + QTextBlockFormat blockFormat; + blockFormat.setLineHeight(135, QTextBlockFormat::ProportionalHeight); + blockFormat.setTopMargin(6); + blockFormat.setBottomMargin(10); + blockFormat.setLeftMargin(14); + blockFormat.setRightMargin(14); + blockFormat.setBackground(m_style.codeBg); + + const QTextCharFormat format = codeFormat(); + QStringList content = lines; + if (content.isEmpty()) + content << QString(); + + for (int index = 0; index < content.size(); ++index) { + QTextBlockFormat lineFormat = blockFormat; + lineFormat.setTopMargin(index == 0 ? 6 : 0); + lineFormat.setBottomMargin(index == content.size() - 1 ? 10 : 0); + beginBlock(lineFormat, format); + const QString line = content.at(index); + m_cursor.insertText(line.isEmpty() ? QStringLiteral(" ") : line, format); + } +} + +void Renderer::renderRule() +{ + QTextBlockFormat blockFormat; + blockFormat.setLineHeight(140, QTextBlockFormat::ProportionalHeight); + blockFormat.setTopMargin(6); + blockFormat.setBottomMargin(12); + beginBlock(blockFormat, bodyFormat(m_style.rule)); + + QTextCharFormat format = bodyFormat(m_style.rule); + format.setFontPointSize(8); + m_cursor.insertText(QString(60, QChar(0x2500)), format); +} + +void Renderer::renderInline(const QString &text, const QTextCharFormat &base) +{ + struct Rule { + QRegularExpression pattern; + int kind; + }; + + static const QVector rules = { + {QRegularExpression(QStringLiteral("`([^`\\n]+)`")), 0}, + {QRegularExpression(QStringLiteral("!\\[([^\\]]*)\\]\\(([^)]*)\\)")), 1}, + {QRegularExpression(QStringLiteral("\\[([^\\]]*)\\]\\(([^)]*)\\)")), 2}, + {QRegularExpression(QStringLiteral("\\*\\*\\*([^*]+)\\*\\*\\*")), 3}, + {QRegularExpression(QStringLiteral("\\*\\*([^*]+)\\*\\*")), 4}, + {QRegularExpression(QStringLiteral("__([^_]+)__")), 4}, + {QRegularExpression(QStringLiteral("\\*([^*]+)\\*")), 5}, + {QRegularExpression(QStringLiteral("(?]+)>")), 7}, + }; + + int position = 0; + while (position < text.size()) { + int bestStart = -1; + int bestKind = -1; + QRegularExpressionMatch best; + for (const Rule &rule : rules) { + const QRegularExpressionMatch match = rule.pattern.match(text, position); + if (!match.hasMatch()) + continue; + if (bestStart < 0 || match.capturedStart() < bestStart) { + bestStart = match.capturedStart(); + bestKind = rule.kind; + best = match; + } + } + + if (bestStart < 0) { + m_cursor.insertText(text.mid(position), base); + break; + } + if (bestStart > position) + m_cursor.insertText(text.mid(position, bestStart - position), base); + + const QString content = best.capturedLength(1) > 0 ? best.captured(1) : best.captured(0); + switch (bestKind) { + case 0: { // 行内代码 + m_cursor.insertText(content, codeFormat()); + break; + } + case 1: { // 图片:显示 alt + QTextCharFormat format = base; + format.setForeground(m_style.muted); + format.setFontItalic(true); + m_cursor.insertText(content.isEmpty() ? QStringLiteral("[图片]") : content, format); + break; + } + case 2: { // 链接 + QTextCharFormat format = base; + format.setForeground(m_style.link); + format.setFontUnderline(true); + format.setAnchor(true); + format.setAnchorHref(best.captured(2)); + m_cursor.insertText(best.captured(1), format); + break; + } + case 3: { // 粗斜体 + QTextCharFormat format = base; + format.setFontWeight(QFont::Bold); + format.setFontItalic(true); + m_cursor.insertText(content, format); + break; + } + case 4: { // 粗体 + QTextCharFormat format = base; + format.setFontWeight(QFont::Bold); + format.setForeground(m_style.heading); + m_cursor.insertText(content, format); + break; + } + case 5: { // 斜体 + QTextCharFormat format = base; + format.setFontItalic(true); + m_cursor.insertText(content, format); + break; + } + case 6: { // 删除线 + QTextCharFormat format = base; + format.setFontStrikeOut(true); + format.setForeground(m_style.muted); + m_cursor.insertText(content, format); + break; + } + default: { // 裸链接 + QTextCharFormat format = base; + format.setForeground(m_style.link); + format.setFontUnderline(true); + format.setAnchor(true); + format.setAnchorHref(best.captured(1)); + m_cursor.insertText(best.captured(1), format); + break; + } + } + + position = bestStart + best.capturedLength(); + } +} + +void Renderer::run(const QString &markdown) +{ + const QStringList lines = markdown.split(QLatin1Char('\n')); + + static const QRegularExpression headingPattern(QStringLiteral("^(#{1,6})\\s+(.*)$")); + static const QRegularExpression fencePattern(QStringLiteral("^\\s{0,3}(?:```|~~~)(.*)$")); + static const QRegularExpression quotePattern(QStringLiteral("^\\s{0,3}(>+)\\s?(.*)$")); + static const QRegularExpression bulletPattern( + QStringLiteral("^(\\s*)[-+*]\\s+\\[([ xX])\\]\\s?(.*)$")); + static const QRegularExpression listPattern( + QStringLiteral("^(\\s*)([-+*]|\\d{1,9}[.)])\\s+(.*)$")); + static const QRegularExpression rulePattern( + QStringLiteral("^\\s{0,3}(?:(?:\\*\\s*){3,}|(?:-\\s*){3,}|(?:_\\s*){3,})$")); + + int index = 0; + while (index < lines.size()) { + const QString line = lines.at(index); + + const QRegularExpressionMatch fence = fencePattern.match(line); + if (fence.hasMatch()) { + QStringList code; + ++index; + while (index < lines.size() && !fencePattern.match(lines.at(index)).hasMatch()) + code << lines.at(index++); + if (index < lines.size()) + ++index; // 跳过闭合围栏 + renderCodeBlock(code); + continue; + } + + if (line.trimmed().isEmpty()) { + ++index; + continue; + } + + const QRegularExpressionMatch heading = headingPattern.match(line); + if (heading.hasMatch()) { + renderHeading(heading.capturedLength(1), heading.captured(2).trimmed()); + ++index; + continue; + } + + if (rulePattern.match(line).hasMatch()) { + renderRule(); + ++index; + continue; + } + + const QRegularExpressionMatch quote = quotePattern.match(line); + if (quote.hasMatch()) { + renderParagraph(quote.captured(2).trimmed(), quote.capturedLength(1)); + ++index; + continue; + } + + const QRegularExpressionMatch task = bulletPattern.match(line); + if (task.hasMatch()) { + const int indent = task.captured(1).size() / 2; + const bool done = task.captured(2).compare(QLatin1String("x"), Qt::CaseInsensitive) == 0; + renderListItem(done ? QStringLiteral("☑") : QStringLiteral("☐"), + task.captured(3), indent); + ++index; + continue; + } + + const QRegularExpressionMatch list = listPattern.match(line); + if (list.hasMatch()) { + const int indent = list.captured(1).size() / 2; + QString marker = list.captured(2); + if (marker.size() == 1 && (marker == QLatin1String("-") || marker == QLatin1String("+") + || marker == QLatin1String("*"))) + marker = QStringLiteral("•"); + renderListItem(marker, list.captured(3), indent); + ++index; + continue; + } + + renderParagraph(line, 0); + ++index; + } +} + +} // namespace + +void MarkdownRenderer::render(const QString &markdown, QTextDocument *document) +{ + if (!document) + return; + + document->clear(); + + QFont body; + body.setFamilies(proseFamilies()); + body.setPointSizeF(kBodySize); + document->setDefaultFont(body); + document->setDocumentMargin(0); + + Renderer renderer(document); + renderer.run(markdown); +} diff --git a/src/MarkdownRenderer.h b/src/MarkdownRenderer.h new file mode 100644 index 0000000..3772903 --- /dev/null +++ b/src/MarkdownRenderer.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +class QTextDocument; + +/// 把 Markdown 渲染成排版好的 QTextDocument,供导出预览和打印 PDF 共用。 +/// 不依赖任何外部库,只是在这里做一遍块级 / 行内解析。 +namespace MarkdownRenderer { + +void render(const QString &markdown, QTextDocument *document); + +} // namespace MarkdownRenderer