CodeWF.Markdown
12.0.3.11
See the version list below for details.
dotnet add package CodeWF.Markdown --version 12.0.3.11
NuGet\Install-Package CodeWF.Markdown -Version 12.0.3.11
<PackageReference Include="CodeWF.Markdown" Version="12.0.3.11" />
<PackageVersion Include="CodeWF.Markdown" Version="12.0.3.11" />
<PackageReference Include="CodeWF.Markdown" />
paket add CodeWF.Markdown --version 12.0.3.11
#r "nuget: CodeWF.Markdown, 12.0.3.11"
#:package CodeWF.Markdown@12.0.3.11
#addin nuget:?package=CodeWF.Markdown&version=12.0.3.11
#tool nuget:?package=CodeWF.Markdown&version=12.0.3.11
CodeWF.Markdown
Avalonia Markdown viewer controls, typography themes, and a runnable sample app split from CodeWF.AvaloniaControls into a standalone repository.
简体中文 | English
| Package | NuGet | Downloads |
|---|---|---|
| CodeWF.Markdown | ||
| CodeWF.Markdown.Themes |
Packages
CodeWF.Markdown: full Markdown viewer with common Markdown elements, code highlighting, image preview, SVG/image support, math rendering hooks, localization, and incremental rendering.CodeWF.Markdown.Themes: default templates and typography themes forCodeWF.Markdown.
Image Loading And Export Helpers
CodeWF.Markdown also exposes shared Markdown image utilities for host applications that export Markdown to offline files. MarkdownImageSourceLoader loads data:image URIs, local paths, file:// URIs, and HTTP(S) images, resolving relative paths against the current Markdown document path and trying URL-decoded filenames. MarkdownImageRasterizer converts loaded SVG, GIF first frames, and other bitmap formats to static PNG bytes so PDF, PNG, Word, or other export pipelines can embed images without reimplementing viewer-specific loading logic.
MarkdownDocumentExporter provides one-call export helpers for host applications:
MarkdownDocumentExporter.ExportMarkdown(
markdown,
ExportKind.Pdf,
"Simple",
"article.pdf");
MarkdownDocumentExporter.ExportFile(
@"C:\docs\article.md",
ExportKind.Word,
MarkdownThemes.CreateExportStyle("Simple", "Normal"),
"article.docx");
var document = new MarkdownExportDocument(markdown, filePath, fileName);
MarkdownDocumentExporter.Export(document, ExportKind.Png, "article.png");
The built-in PNG/PDF/Word exporters reuse the shared image loader and rasterizer. Word output embeds image parts under word/media, while image-based PDF output renders the document with resolved images before writing PDF pages.
Rich HTML Clipboard Helpers
MarkdownHtmlClipboard creates reusable rich HTML clipboard payloads for host applications that copy Markdown-rendered HTML into web editors such as WeChat Official Account, Zhihu, and Juejin. It writes text/html, macOS public.html, and Windows HTML Format data; the Windows payload is UTF-8 CF_HTML bytes with correct fragment offsets, so Chromium-based editors can paste styled HTML instead of showing the raw markup as plain text.
Installation
Install-Package CodeWF.Markdown
Install-Package CodeWF.Markdown.Themes
Usage
Add the theme package in App.axaml:
<Application
xmlns="https://github.com/avaloniaui"
xmlns:markdown="https://codewf.com">
<Application.Styles>
<FluentTheme />
<markdown:MarkdownThemes />
</Application.Styles>
</Application>
Set TypographyTheme and TypographySize on MarkdownThemes for app defaults, or on MarkdownViewer for per-viewer overrides. Omitted values default to Basic and Normal.
<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:md="https://codewf.com">
<ScrollViewer
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto">
<md:MarkdownViewer
Markdown="{Binding Markdown}"
TypographyTheme="Simple"
TypographySize="Small" />
</ScrollViewer>
</UserControl>
The sample app shows live editing, file loading, theme switching, and incremental rendering stress scenarios.
Custom Typography Themes
Built-in theme names stay as string constants such as MarkdownTypographyThemes.Simple instead of an enum because host applications can register their own theme keys. A custom theme can reuse the same resource keys used by the built-in themes:
MarkdownTypographyThemeRegistry.Register(
"MyCompanyBlue",
() => new ResourceDictionary
{
[MarkdownStyleKeys.TextBrushResource] = new SolidColorBrush(Color.Parse("#1F2937")),
[MarkdownStyleKeys.MutedTextBrushResource] = new SolidColorBrush(Color.Parse("#64748B")),
[MarkdownStyleKeys.AccentBrushResource] = new SolidColorBrush(Color.Parse("#0E88EB")),
[MarkdownStyleKeys.BorderBrushResource] = new SolidColorBrush(Color.Parse("#BFDBFE")),
[MarkdownStyleKeys.ParagraphFontSizeResource] = 16d,
[MarkdownStyleKeys.ParagraphLineHeightResource] = 28d,
[MarkdownStyleKeys.Heading1FontSizeResource] = 32d,
[MarkdownStyleKeys.CodeBlockFontSizeResource] = 13d
});
MarkdownThemes.OverrideTypographyResources(
Application.Current!,
"MyCompanyBlue",
MarkdownTypographySizes.Normal);
var exportStyle = MarkdownThemes.CreateExportStyle("MyCompanyBlue");
MarkdownDocumentExporter.ExportMarkdown(markdown, ExportKind.Pdf, exportStyle, "article.pdf");
Applications that need complete control can still build and pass a MarkdownExportStyle directly. Applications that keep custom XAML resource dictionaries can register () => new MyCompanyMarkdownResources() so preview, PNG/PDF/Word export, and social-copy HTML styling resolve from the same typography resources.
Repository Layout
src/CodeWF.Markdown: full Markdown viewer packagesrc/CodeWF.Markdown.Themes: full viewer templates and typography themessrc/CodeWF.Markdown.Sample: full viewer sample apptests/CodeWF.Markdown.Tests: rendering and diff service testsCodeWF.Markdown.slnx: solution view for Markdown projects, sample, and tests
Build
dotnet restore CodeWF.Markdown.slnx
dotnet build CodeWF.Markdown.slnx --no-restore
To create NuGet packages:
.\pack.bat
To publish the sample app for win-x64 and linux-x64:
.\publish_Markdown.bat
License
MIT. See LICENSE.
Third-Party Open Source Audit
Checked on 2026-05-23 with NuGet metadata, restored project.assets.json, and upstream source/license links. MIT / Apache-2.0 / BSD are preferred.
Remediation:
- Replaced
Semi.Avalonia.AvaloniaEditwith the open-sourceAvalonia.AvaloniaEditpackage. - Removed
AvaloniaEditSemiThemefrom the full sample app; editor rendering now relies on the open AvaloniaEdit control and the repository's own Markdown themes.
| Package | License | Source | Status |
|---|---|---|---|
AnimatedImage.Avalonia |
Apache-2.0 | https://github.com/whistyun/AnimatedImage | Approved |
Avalonia / Avalonia.Desktop / Avalonia.Fonts.Inter / Avalonia.Themes.Fluent |
MIT | https://github.com/AvaloniaUI/Avalonia | Approved |
Avalonia.AvaloniaEdit |
MIT | https://github.com/AvaloniaUI/AvaloniaEdit | Approved |
CommunityToolkit.Mvvm |
MIT | https://github.com/CommunityToolkit/dotnet | Approved |
Lang.Avalonia.Json |
MIT | https://github.com/dotnet9/Lang.Avalonia | Approved |
Markdig |
BSD-2-Clause | https://github.com/xoofx/markdig | Approved |
Semi.Avalonia |
MIT | https://github.com/irihitech/Semi.Avalonia | Approved, only the open core package is used by the sample |
Svg.Controls.Skia.Avalonia / Svg.Skia |
MIT | https://github.com/wieslawsoltes/Svg.Skia | Approved |
Sylinko.CSharpMath.Avalonia |
MIT | https://github.com/Sylinko/CSharpMath.Avalonia | Approved |
TextMateSharp / TextMateSharp.Grammars |
MIT | https://github.com/danipen/TextMateSharp | Approved |
VC-LTL |
EPL-2.0 | https://github.com/Chuyu-Team/VC-LTL5 | Source-open; approved under the source-traceable non-preferred license rule |
YY-Thunks |
MIT | https://github.com/Chuyu-Team/YY-Thunks | Approved |
Microsoft.NET.Test.Sdk |
MIT | https://github.com/microsoft/vstest | Approved, test-only |
xunit / xunit.runner.visualstudio |
Apache-2.0 | https://github.com/xunit/xunit | Approved, test-only |
Transitive dependencies from Avalonia, AnimatedImage, SkiaSharp, Svg.Skia, CSharpMath, and TextMateSharp were checked and are source-open under MIT/BSD-style licenses. Active project files no longer contain Semi.Avalonia.AvaloniaEdit.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
-
net10.0
- AnimatedImage.Avalonia (>= 2.1.4)
- Avalonia (>= 12.0.3)
- Lang.Avalonia.Json (>= 12.0.3.1)
- Markdig (>= 1.2.0)
- Svg.Controls.Skia.Avalonia (>= 12.0.0.9)
- Svg.Skia (>= 4.9.0)
- Sylinko.CSharpMath.Avalonia (>= 12.0.0)
- TextMateSharp (>= 2.0.3)
- TextMateSharp.Grammars (>= 2.0.3)
-
net11.0
- AnimatedImage.Avalonia (>= 2.1.4)
- Avalonia (>= 12.0.3)
- Lang.Avalonia.Json (>= 12.0.3.1)
- Markdig (>= 1.2.0)
- Svg.Controls.Skia.Avalonia (>= 12.0.0.9)
- Svg.Skia (>= 4.9.0)
- Sylinko.CSharpMath.Avalonia (>= 12.0.0)
- TextMateSharp (>= 2.0.3)
- TextMateSharp.Grammars (>= 2.0.3)
-
net8.0
- AnimatedImage.Avalonia (>= 2.1.4)
- Avalonia (>= 12.0.3)
- Lang.Avalonia.Json (>= 12.0.3.1)
- Markdig (>= 1.2.0)
- Svg.Controls.Skia.Avalonia (>= 12.0.0.9)
- Svg.Skia (>= 4.9.0)
- Sylinko.CSharpMath.Avalonia (>= 12.0.0)
- TextMateSharp (>= 2.0.3)
- TextMateSharp.Grammars (>= 2.0.3)
-
net9.0
- AnimatedImage.Avalonia (>= 2.1.4)
- Avalonia (>= 12.0.3)
- Lang.Avalonia.Json (>= 12.0.3.1)
- Markdig (>= 1.2.0)
- Svg.Controls.Skia.Avalonia (>= 12.0.0.9)
- Svg.Skia (>= 4.9.0)
- Sylinko.CSharpMath.Avalonia (>= 12.0.0)
- TextMateSharp (>= 2.0.3)
- TextMateSharp.Grammars (>= 2.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CodeWF.Markdown:
| Package | Downloads |
|---|---|
|
CodeWF.Markdown.Themes
CodeWF.Markdown 的配套排版主题资源,内置多套公众号/技术文档风格,并适配 Avalonia 明暗主题。Typography themes for CodeWF.Markdown. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.0.3.16 | 94 | 5/27/2026 |
| 12.0.3.14 | 117 | 5/27/2026 |
| 12.0.3.13 | 106 | 5/25/2026 |
| 12.0.3.12 | 93 | 5/25/2026 |
| 12.0.3.11 | 100 | 5/25/2026 |
| 12.0.3.9 | 98 | 5/25/2026 |
| 12.0.3.8 | 99 | 5/25/2026 |
| 12.0.3.7 | 98 | 5/24/2026 |
| 12.0.3.6 | 105 | 5/23/2026 |
| 12.0.3.3 | 107 | 5/22/2026 |
| 12.0.3.2 | 119 | 5/20/2026 |
| 12.0.3.1 | 110 | 5/16/2026 |
| 12.0.2.6 | 120 | 5/12/2026 |
| 12.0.2.5 | 144 | 5/8/2026 |
| 12.0.2.3 | 114 | 5/5/2026 |
| 12.0.2.1 | 102 | 5/5/2026 |
| 12.0.2 | 102 | 5/4/2026 |