We’re pleased to announce the release of GroupDocs.Markdown for .NET 26.3, available as of March 2026. This major update introduces a redesigned public API, a custom DOM‑based Markdown renderer, full Markdown flavor control, async support, and a range of bug fixes. It also adds per‑TFM runtime NuGet packages and support for .NET 8 and .NET 10.
今回のリリースの新機能
| キー | カテゴリ | 概要 |
|---|---|---|
| MARKDOWNNET-33 | 機能 | NuGet パッケージを TFM ごとのランタイム パッケージに分割 |
| MARKDOWNNET-31 | 機能 | .NET 8 と .NET 10 のサポートを追加 |
| MARKDOWNNET-30 | 機能 | カスタム DOM ベースの Markdown レンダラー |
| MARKDOWNNET-29 | 機能 | 変換時の警告と統一エラーモデル |
| MARKDOWNNET-28 | 機能 | 相対画像パスと画像置換 |
| MARKDOWNNET-27 | 機能 | 見出しレベルオフセットと YAML フロントマター生成 |
| MARKDOWNNET-26 | 機能 | Markdown 方言制御とスプレッドシートレンダリングオプション |
| MARKDOWNNET-25 | 機能 | 変換せずにドキュメント情報を取得 |
| MARKDOWNNET-24 | 機能 | 非同期 API |
| MARKDOWNNET-23 | 機能 | 静的便利メソッドとフォーマット検出 |
| MARKDOWNNET-20 | 強化 | API の見直しと再設計 |
| MARKDOWNNET-8 | 機能 | Markdown 変換時の画像置換サポート |
| MARKDOWNNET-35 | バグ修正 | 品質および機能上の問題の修正 |
パブリック API の変更
新しいパブリック型
DocumentInfo— ドキュメントメタデータ(フォーマット、ページ数、タイトル、作者、暗号化状態)MarkdownFlavor— 対象となる Markdown 方言(GitHub、CommonMark)を表す列挙型IImageSavingHandler— カスタム画像保存コールバック用インターフェイスIUriSavingHandler— カスタム URI 保存コールバック用インターフェイスGroupDocsMarkdownException— 一般的な変換例外InvalidFormatException— 破損または認識できないファイル形式DocumentProtectedException— パスワードが間違っている、または未設定
MarkdownConverter の新しい静的メソッド
ToMarkdown(string sourcePath)とLoadOptions/ConvertOptionsのオーバーロードToFile(string sourcePath, string outputPath)とそのオーバーロードGetInfo(string sourcePath)とそのオーバーロードGetSupportedFormats()- 非同期バリアント:
ToMarkdownAsync、ToFileAsync、GetInfoAsync
MarkdownConverter の新しいインスタンスメソッド
GetDocumentInfo()ConvertAsync()とそのオーバーロード
ConvertOptions の新しいプロパティ
ImageExportStrategy(ExportStrategyの代替)UriExportStrategyHeadingLevelOffsetIncludeFrontMatterFlavorMaxColumns、MaxRows、SheetSeparator、IncludeHiddenSheets
ConvertResult の新しいプロパティ
Warnings— 致命的でない変換警告
ExportImagesToFileSystemStrategy と CustomImagesStrategy の新しいプロパティ
ImagesRelativePath— Markdown の画像参照に書き込まれるパスを制御
CustomImageSavingArgs の新しいメソッド
SetReplacementImage(Stream imageStream)— 画像コンテンツを置換
削除された型
IExportStrategy—IImageExportStrategyとIUriExportStrategyに置き換えられたDocumentConverterOptions—ConvertOptionsに名称変更DocumentConverterResult—ConvertResultに名称変更
破壊的変更
変更前 | 変更後
| 変更前 | 変更後 |
|---|---|
DocumentConverterOptions |
ConvertOptions |
DocumentConverterResult |
ConvertResult |
FileFormat 列挙型
ファミリーレベルの値(FileFormat.WordProcessing、FileFormat.Spreadsheet)は、特定のフォーマット(FileFormat.Docx、FileFormat.Xlsx など)に置き換えられました。新しいエントリ: FileFormat.Txt、FileFormat.Chm。
ConvertOptions と LoadOptions の分離
ConvertOptions はもはや LoadOptions を継承しません。パスワードやフォーマットヒントは LoadOptions に設定します:
var loadOptions = new LoadOptions(FileFormat.Docx) { Password = "secret" };
var convertOptions = new ConvertOptions { HeadingLevelOffset = 1 };
using var converter = new MarkdownConverter("file.docx", loadOptions);
var result = converter.Convert(convertOptions);
画像と URI のストラテジーの分割
単一の ExportStrategy プロパティは、2つの型付きプロパティに置き換えられました:
var options = new ConvertOptions
{
ImageExportStrategy = new ExportImagesToFileSystemStrategy("images"),
UriExportStrategy = new CustomUriExportStrategy(handler)
};
デリゲートがインターフェイスに置き換えられた
CustomImagesStrategy と CustomUriExportStrategy は、デリゲートコールバックの代わりに IImageSavingHandler と IUriSavingHandler インターフェイスを受け取ります。
LoadOptions.Extension と LoadOptions.MimeType は内部実装
Extension や MimeType を直接設定する代わりに、new LoadOptions(FileFormat.Docx) を使用してください。
新機能
カスタム DOM ベースの Markdown レンダラー
このライブラリは、Markdown の生成をサードパーティのエクスポートに委任しなくなりました。カスタムレンダラーがドキュメントオブジェクトモデルをノードごとに走査し、直接 Markdown を生成するため、出力のすべての側面を完全に制御できます。
Word/PDF/Ebook/Text/CHM ドキュメント は、段落、見出し(H1‑H6)、太字、斜体、取り消し線、インラインコード、入れ子可能な順序付き・順序なしリスト、テーブル(GFM パイプ構文または CommonMark コードブロックのフォールバック)、ハイパーリンク、画像をサポートしてレンダリングされます。
スプレッドシート は、セル単位のグリッド走査、型付き値のフォーマット、ワークシートセクション、列・行の省略(省略記号付き)、非表示シートのフィルタリング、カスタムシート区切り文字を使用してレンダリングされます。
静的便利メソッド
リソース管理を自動的に処理するワンライナー変換メソッド:
string md = MarkdownConverter.ToMarkdown("report.docx");
MarkdownConverter.ToFile("report.docx", "report.md");
IReadOnlyList<FileFormat> formats = MarkdownConverter.GetSupportedFormats();
非同期 API
CancellationToken 対応の、すべての静的およびインスタンスメソッドの非同期バージョン:
string md = await MarkdownConverter.ToMarkdownAsync("report.docx");
await MarkdownConverter.ToFileAsync("large.pdf", "output.md");
DocumentInfo info = await MarkdownConverter.GetInfoAsync("report.docx");
変換せずにドキュメント情報を取得
完全な変換を行わずにドキュメントメタデータを取得します:
DocumentInfo info = MarkdownConverter.GetInfo("report.docx");
Console.WriteLine($"{info.FileFormat}, {info.PageCount} pages, by {info.Author}");
Markdown 方言制御
特定の Markdown 方言を対象にします:
var options = new ConvertOptions { Flavor = MarkdownFlavor.GitHub }; // pipe tables, strikethrough
var options = new ConvertOptions { Flavor = MarkdownFlavor.CommonMark }; // tables as code blocks
スプレッドシートレンダリングオプション
スプレッドシートが Markdown にレンダリングされる方法を完全に制御します:
var options = new ConvertOptions
{
MaxColumns = 8,
MaxRows = 50,
SheetSeparator = "\n---\n",
IncludeHiddenSheets = false
};
見出しレベルオフセットと YAML フロントマター
var options = new ConvertOptions
{
HeadingLevelOffset = 2, // # Title -> ### Title
IncludeFrontMatter = true // prepend YAML metadata
};
変換警告と統一エラーモデル
すべての Convert() メソッドは失敗時に例外をスローします。ConvertResult は致命的でない警告を保持します:
ConvertResult result = converter.Convert();
foreach (string w in result.Warnings)
Console.WriteLine(w); // e.g. "Worksheet 'Data' truncated at 50 rows."
画像置換と相対パス
変換時に画像を置換し、パス参照を制御します:
var strategy = new ExportImagesToFileSystemStrategy("c:/output/images")
{
ImagesRelativePath = "images" // 
};
目次のレンダリング
目次を含むドキュメントは、生のフィールドコードではなく、整然としたリストとしてレンダリングされます:
- Introduction
- 1. Executive Summary
- 2. Company Overview
コード例
string md = MarkdownConverter.ToMarkdown("report.docx");
MarkdownConverter.ToFile("report.docx", "report.md");
IReadOnlyList<FileFormat> formats = MarkdownConverter.GetSupportedFormats();
アップデートの取得方法
NuGet
NuGet を介して最新の GroupDocs.Markdown パッケージにアップグレードしてください(例: Install-Package GroupDocs.Markdown)。