更新日志
CodeWF.Markdown · Avalonia Markdown 渲染控件
来源仓库文件 UpdateLog.md · 同步于 2026-10-01
12.1.2.13 12.1.2.13 (2026-10-01)
- 🐛[修复]-修复标题等容器内含行内代码(自定义字号、基线对齐、背景)的文本被选中后渲染移位的问题:Avalonia 12.1
SelectableTextBlock构造选区前景色覆盖时会用控件级 FontSize 与默认 BaselineAlignment 重建 Run 属性,导致选中的行内代码按容器字号放大并下沉、背景块丢失。新增MarkdownSelectableTextBlock子类只替换选中部分前景色,完整保留 Run 原有属性,主控件与 Lite 控件同步修复。关联:dotnet9/Vex#3。 - 🧪[测试]-新增选区属性覆盖构建的回归测试,覆盖混合字号、部分选中和空选区场景。
12.1.2.11 12.1.2.11 (2026-09-23)
- 🐛[修复]-将 Avalonia 12.1.3 使用的 SkiaSharp、HarfBuzzSharp、Svg.Skia 和 Svg.Controls.Skia.Avalonia 依赖对齐到兼容版本,并替换 SkiaSharp 4 专用绘制 API,避免运行时混用不兼容的 Skia 原生库。
12.1.2.2 12.1.2.2 (2026-09-20)
- 🚀[新增]-NuGet 包统一支持
net8.0;net10.0;net11.0,并发布新版本。
12.1.1.3 12.1.1.3 (2026-08-13)
- 🔨[优化]-升级
Svg.Skia至 5.2.1、Svg.Controls.Skia.Avalonia至 12.0.0.15。 - 🔨[优化]-统一锁定 SkiaSharp 4.151.1 与 HarfBuzzSharp 14.2.1.2 及各平台原生资产,避免 SVG、Avalonia 与导出链路混用不同版本。
12.0.4.3 12.0.4.3 (2026-06-08)
- 🔨[优化]-补齐根目录 logo.svg、logo.png、logo.ico 三件套,子工程通过 MSBuild Link 引用根 logo,避免维护多份图标副本。
- 🔨[优化]-统一目标框架:NuGet 包项目支持
net8.0;net10.0,Demo、App、测试与内部应用项目升级到net11.0/net11.0-windows。 - 🔨[优化]-保留运行时帮助、Markdown 示例、内置备忘录和业务设计文档,仅收敛仓库级重复文档入口。
12.0.4.2 12.0.4.2 (2026-06-08)
- 统一版本号维护入口,只在仓库根目录
Directory.Build.props中定义<Version>。 - 清理英文/双语文档入口,后续仅维护简体中文文档。
- 完善 NuGet 发布配置,补充 Source Link、符号包和标签格式规范。
12.0.3.17 12.0.3.17 - 2026-05-27
- 🔨[优化]-
MarkdownHtmlConverter粘贴转换会先识别内容是否为网页富文本,普通 diff、XML 和代码文本不再被当作 HTML 段落折叠空白。 - 🔨[优化]-当剪贴板把代码包成
div/span等布局 HTML 时,会保留原始换行和缩进,避免 XML、git diff 等内容粘贴后丢失格式。 - 🧪[测试]-补充纯 diff、纯 XML、布局 HTML 包裹代码和布局 HTML 包裹 diff 的粘贴转换回归测试。
12.0.3.15 12.0.3.15 - 2026-05-27
- 🐛[修复]-修复
MarkdownViewer同一行内混合加粗、斜体、删除线时强调样式没有稳定应用到对应文本片段的问题,避免整行样式只跟随首个字符或行内强调不生效。 - 🐛[修复]-默认正文字体族补充中文字体回退,修复中文普通文本后面的行内加粗在 Avalonia 字体回退下显示成普通字重的问题。
- 🐛[修复]-同步修复
CodeWF.Markdown.Lite的强调样式下沉逻辑,保持主控件与 Lite 控件行内样式行为一致。 - 🧪[测试]-新增行内样式与默认中文字体回退测试,覆盖同一段落中普通文本与加粗、斜体、删除线混排场景。
12.0.3.14 12.0.3.14 - 2026-05-27
- 😄[新增]-新增
MarkdownHtmlConverter和MarkdownHtmlClipboard.Html2Markdown(string htmlContent),宿主编辑器可在粘贴前把网页复制得到的 HTML 转为 Markdown。 - 🔨[优化]-内置 HTML 转 Markdown 覆盖标题、段落、链接、图片、列表、引用、代码块和表格等常见文章结构,不额外引入第三方包。
- 🧪[测试]-补充普通 HTML、表格/图片、CF_HTML 片段标记和 Windows 剪贴板 UTF-8 偏移的转换回归测试。
12.0.3.13 12.0.3.13 - 2026-05-25
- 🔨[优化]-PDF 导出改为写入可选择的 PDF 文本,不再把整页 Markdown 压平成位图切片写入 PDF。
- 🔨[优化]-PDF 导出会包含用于复制粘贴的 Unicode 文本映射,保留页眉页脚,并把 Markdown 图片作为 PDF 图片内容嵌入。
- 🧪[测试]-补充 PDF 回归测试,验证纯文本 PDF 包含字体和 ToUnicode 数据,并且不包含整页图片对象。
- 🧪[测试]-包版本提升到 12.0.3.13,并验证 Vex 可消费本地打包的
CodeWF.Markdown与CodeWF.Markdown.Themes包。
12.0.3.12 12.0.3.12 - 2026-05-25
- 😄[新增]-新增
CopyKind、MarkdownSocialCopyRenderer、MarkdownSocialCopyProfiles和MarkdownSocialCopyProfile,微信公众号、知乎、稀土掘金以及后续发布目标可复用同一套 Markdown 到 inline HTML 的渲染链路。 - 😄[新增]-新增
MarkdownHtmlClipboardExtensions,Avalonia 应用可直接调用TrySetMarkdownHtmlAsync(markdown, themeName, targetName, typographySize),宿主侧只需要传当前 Markdown、排版主题和目标平台。 - 🔨[优化]-自媒体复制 HTML 现在会嵌入本地图片,内置主题名通过
MarkdownExportStyle.Resolve解析,CF_HTML 继续复用公共剪贴板写入能力,目标尾注和工具名文案改为读取多语言资源。 - 🧪[测试]-包版本提升到 12.0.3.12,并在 Vex 使用本地 NuGet 包消费前验证
CodeWF.Markdown.Tests41 项通过。
12.0.3.11 12.0.3.11 - 2026-05-25
- 😄[新增]-新增
ExportKind以及更高层的MarkdownDocumentExporter.Export、ExportMarkdown、ExportFileAPI,宿主应用可按导出类型一站式导出 Markdown 字符串或 Markdown 文件。 - 😄[新增]-新增
MarkdownTypographyThemeRegistry,支持应用注册自定义排版主题;内置主题继续保持字符串常量,方便扩展第三方主题 Key。 - 🔨[优化]-新增
MarkdownExportStyle.FromResources与MarkdownThemes.CreateExportStyle,导出和自定义自媒体复制样式可复用同一套排版资源字典,应用自定义主题也能参与样式解析。
12.0.3.10 12.0.3.10 - 2026-05-25
- 😄[新增]-新增
MarkdownDocumentExporter、MarkdownExportDocument和MarkdownExportStyle,为宿主应用提供可复用的 PNG、图像型 PDF、Word.docx一站式导出 API。 - 🔨[优化]-将图像型 PDF/PNG 与 Word 导出实现下沉到
CodeWF.Markdown;Word 导出会把图片嵌入word/media,并改用 SkiaSharp 读取图片尺寸,不再要求 Avalonia UI 平台初始化。 - 🧪[测试]-补充 Word 导出测试,验证 Markdown 中的
data:image图片会嵌入生成的.docx包。
12.0.3.9 12.0.3.9 - 2026-05-25
- 😄[新增]-新增
MarkdownHtmlClipboard富 HTML 剪贴板公共能力,统一生成 CF_HTML 字节偏移和 Windows 原生HTML Format字节数据,便于微信公众号、知乎、稀土掘金等编辑器按富文本粘贴。 - 🧪[测试]-补充片段标记规范化和 UTF-8 CF_HTML 偏移测试。
12.0.3.8 12.0.3.8 - 2026-05-25
- 😄[新增]-新增 Markdown 图片源公共加载能力,支持
data:image、本地路径、file://与 HTTP(S) URL,并按ImageBasePath处理 URL 解码后的相对路径回退。 - 😄[新增]-新增可复用的图片栅格化辅助能力,统一处理 SVG 预览、GIF 首帧静态 PNG 输出和位图转 PNG 规范化,便于导出链路嵌入图片而不重复维护预览控件逻辑。
- 🔨[优化]-完整版
MarkdownImage控件改为复用公共图片加载与栅格化能力,同时保留实时预览中的 GIF 动画播放。 - 🔨[优化]-补充
data:image、URL 编码相对本地图、HTTP 图片加载、SVG 栅格化和 GIF 首帧 PNG 输出测试。
12.0.3.6 12.0.3.6 - 2026-05-23
- 😄[新增]-通过
AnimatedImage.Avalonia支持 Markdown 图片块、行内图片和图片预览窗口中的 GIF 动画播放。 - 😄[新增]-
MarkdownViewer.ImageBasePath支持把相对图片路径按当前文档路径解析,不再落到程序基目录。 - 🔨[优化]-保留 SVG 动画控件路径,并继续使用栅格兜底计算尺寸与预览安全回退。
- 🔨[优化]-补充 GIF 动画依赖的裁剪保留配置和第三方开源审计说明。
12.0.3.2 12.0.3.2 - 2026-05-20
- 🔨[优化]-先合并远端最新
12.0.3.1发布更新,再应用本地依赖调整。 - 🔨[优化]-示例应用将
Semi.Avalonia.AvaloniaEdit替换为源码开放的Avalonia.AvaloniaEdit。 - 🔨[优化]-移除完整版示例应用中的
AvaloniaEditSemiTheme,避免继续依赖 Semi AvaloniaEdit 主题包。 - 🔨[优化]-测试依赖升级到最新稳定版:
Microsoft.NET.Test.Sdk 18.5.1、xunit 2.9.3、xunit.runner.visualstudio 3.1.5。 - 🔨[优化]-同步更新英文和简体中文开源依赖审计说明。
12.0.3.1 12.0.3.1 - 2026-05-16
- 😄[新增]-新增内部
MarkdownMathView用于公式渲染,使数学公式前景色跟随当前 Markdown 主题。 - 🔨[优化]-更新完整版和 Lite 示例应用中的横向滑动图片 Markdown,改用 CodeWF 截图示例。
- 🔨[优化]-为示例应用补充 Markdown、主题、SVG 及相关程序集的裁剪保留配置,改善裁剪发布兼容性。
- 🔨[优化]-更新
publishbase.bat,按运行时和项目名输出到稳定发布目录,并在缺少预期可执行文件时失败退出。 - 🔨[优化]-将共享包版本提升到
12.0.3.1,并通过根构建属性统一 Markdown 包版本配置。 - 🔨[优化]-更新 SVG 与运行时辅助依赖基线,包括
Svg.Controls.Skia.Avalonia、Svg.Skia和YY-Thunks。
12.0.2.7 12.0.2.7 - 2026-05-13
- 😄[新增]-新增
CodeWF.Markdown.Lite,提供基础 Markdown Viewer,直接包引用仅包含Avalonia和Markdig。 - 🔨[优化]-Lite 渲染支持常用标题、段落、列表、任务列表、引用、表格、位图图片、纯文本代码块和复制按钮。
- 😄[新增]-新增
CodeWF.Markdown.Lite.Themes,模板和排版主题资源与CodeWF.Markdown.Themes保持一致,仅引用 Lite Viewer 程序集。 - 😄[新增]-新增
CodeWF.Markdown.Lite.Sample,以简体中文保留编辑预览和多预览主题演示,移除多语言切换和 AvaloniaEdit 依赖。 - 🔴[修复]-修复 Lite 行内文本继承问题,标题字号等排版资源现在可正确生效。
- 🔴[修复]-修复完整版增量渲染中块级主题绑定未及时释放的问题,连续切换 Markdown 文件时旧控件引用可正常清理。
- 🔨[优化]-改进完整版与 Lite 的图片清理逻辑,图片被替换或控件离开可视树时会取消未完成加载并释放位图。
- 🔨[优化]-调整完整版图片预览窗口,使预览窗口独立持有位图,Markdown 切换时 Viewer 图片资源可安全释放。
- 🔨[优化]-已对完整版和 Lite 示例应用执行重复 Markdown 切换与滚动压力测试,清理后未发现内存溢出或 CPU 飙高。
- 🔨[优化]-更新解决方案、打包脚本和发布脚本,纳入 Lite 包线。
- 🔨[优化]-删除各工程目录下的
UpdateLog.md,后续统一维护根目录更新日志。
12.0.2.6 12.0.2.6 - 2026-05-12
- 😄[新增]-
MarkdownViewer新增TypographyTheme与TypographySize,支持单个 Viewer 独立覆盖排版主题和尺寸。 - 😄[新增]-
MarkdownThemes新增TypographySize,并提供紧凑型排版资源,用于收紧字号、行高和块间距。 - 🔨[优化]-示例应用调整为 Tab 结构,新增多 Viewer 排版演示,支持全局设置和单个 Viewer 设置联动。
- 🔴[修复]-修复继承排版资源时复用已有父级
ResourceDictionary导致的运行期异常。 - 🔨[优化]-更新 Markdown 包版本和依赖基线,配合新的排版配置能力发布。
12.0.2.5 12.0.2.5 - 2026-05-09
- 🔨[优化]-将 Markdown 包和示例应用的多语言资源从
Lang.Avalonia.Resx替换为Lang.Avalonia.Json。 - 🔨[优化]-JSON 语言资源复制到输出目录
I18n并随 NuGet content files 分发,AOT 发布后语言切换可正常工作。 - 🔨[优化]-更新强类型语言键生成模板和示例启动注册,统一使用 JSON 语言资源。
12.0.2.4 12.0.2.4 - 2026-05-08
- 🔨[优化]-将 CodeWF.Markdown 包和示例从原
CodeWF.AvaloniaControls仓库拆分为独立仓库。 - 🔨[优化]-保留完整 Markdown 控件、主题、示例和测试项目。
- 🔨[优化]-移除已废弃的低依赖版本包、配套主题和示例应用。
- 🔨[优化]-更新解决方案、打包脚本、发布脚本、README 文件和仓库协作说明,仅保留完整 Markdown 包线。
- 😄[新增]-新增简体中文更新日志,用于记录仓库级发布变更。
2026-06-08 仓库规范整理
- 统一文档维护入口:每个仓库只保留根目录
README.md和根目录UpdateLog.md,清理重复日志、英文文档和语言切换入口。 - 统一版本维护入口:包版本只在仓库根目录
Directory.Build.props的<Version>节点维护,移除散落的程序集版本配置。 - 不再维护
global.json,SDK 选择交给本机或 CI 环境;NuGet 包和应用的目标框架在项目文件中明确声明。 - 统一 NuGet 包文档入口:包 README 统一引用仓库根
README.md,更新日志统一引用仓库根UpdateLog.md。