MarkdownHelp.Skia
0.1.0-alpha.6
dotnet add package MarkdownHelp.Skia --version 0.1.0-alpha.6
NuGet\Install-Package MarkdownHelp.Skia -Version 0.1.0-alpha.6
<PackageReference Include="MarkdownHelp.Skia" Version="0.1.0-alpha.6" />
<PackageVersion Include="MarkdownHelp.Skia" Version="0.1.0-alpha.6" />
<PackageReference Include="MarkdownHelp.Skia" />
paket add MarkdownHelp.Skia --version 0.1.0-alpha.6
#r "nuget: MarkdownHelp.Skia, 0.1.0-alpha.6"
#:package MarkdownHelp.Skia@0.1.0-alpha.6
#addin nuget:?package=MarkdownHelp.Skia&version=0.1.0-alpha.6&prerelease
#tool nuget:?package=MarkdownHelp.Skia&version=0.1.0-alpha.6&prerelease
MarkdownHelp.Skia
여러 UI 프레임워크가 공유하는 Markdown layout·paint 라이브러리다. Markdig로
Markdown을 해석하고 RichTextKit, CSharpMath, SkiaSharp로 재생 가능한
MarkdownRenderFrame(SKPicture)을 만든다.
IMarkdownFrameCanvas는 Avalonia, WPF, WinUI, Uno 화면 adapter가 구현하는 최소
공개 계약이다. MarkdownCanvasSession은 이 계약의 frame 소유권, 50–400% 확대,
논리 크기와 화면 extent 계산을 공유한다. UI 기반 클래스, 무효화 방식과 visual
lifetime은 프레임워크마다 다르므로 인터페이스에 포함하지 않는다.
IMarkdownFrameCanvas canvas = platformCanvas;
canvas.SetFrame(renderer.CreateFrame(markdown, 900));
canvas.SetZoom(1.5f);
제품 렌더링 경로에는 PNG 인코딩, 임시 파일, 저장소 경로가 없다. 호스트는
CreateFrame의 결과를 자신이 소유한 SKCanvas에 직접 재생한다. 프레임은 벡터
그리기 명령이므로 확대할 때 문자가 저해상도 PNG처럼 깨지지 않는다. Noto Sans와
Noto Sans KR 기본 폰트는 어셈블리에 포함된다.
using var renderer = new SkiaMarkdownRenderer();
using var frame = renderer.CreateFrame(markdown, width: 900, OpenAsset);
frame.Draw(hostCanvas, scale: 1.5f);
렌더 스레드가 UI 수명과 독립적으로 frame을 재생하는 host는 frame.Retain() lease를
scene operation이 끝날 때까지 보관한다. 그래서 resize나 detach가 이전 frame을
교체해도 진행 중인 replay의 native picture가 먼저 해제되지 않는다.
현재 지원 범위:
- 제목, 문단, 굵게·기울임, 링크 표시, inline code, 인용문
- 순서/글머리/중첩 목록, 정렬 표, fenced code, 상대 이미지
- inline/display TeX 수식
flowchart/graph의TD,TB,LRMermaid subset- host canvas에서 임의 배율로 vector replay
PNG는 화면 비교와 증거 생성에만 필요하다. 해당 인코더는 제품 프로젝트가 아니라
examples/MarkdownHelp.DemoSupport에 격리되어 있다.
정식 제품 버전 전 남은 범위는 링크 hit-test/활성화 정책, 부분 텍스트 선택, 구조화된 접근성 tree, 전체 Mermaid 문법이다. 현재 Avalonia adapter는 문서 단위 접근성 이름을 제공하지만 문서 내부 구조까지 노출하지는 않는다.
| 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 was computed. 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 was computed. 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. |
-
net8.0
- CSharpMath.SkiaSharp (>= 1.0.0-pre.1)
- Markdig (>= 0.37.0)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- Topten.RichTextKit (>= 0.4.167)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on MarkdownHelp.Skia:
| Package | Downloads |
|---|---|
|
MarkdownHelp.Wpf
Reusable direct Skia canvas control for MarkdownHelp in WPF applications. |
|
|
MarkdownHelp.WinUI
Reusable direct Skia canvas control for MarkdownHelp in WinUI 3 applications. |
|
|
MarkdownHelp.Uno
Reusable direct Skia canvas control for MarkdownHelp in Uno Platform applications. |
|
|
MarkdownHelp.Avalonia
Reusable Markdown help views, tooltips, guided overlays, and windows for Avalonia applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.6 | 81 | 8/5/2026 |
| 0.1.0-alpha.5 | 88 | 8/5/2026 |