We zijn verheugd de release van GroupDocs.Markdown for .NET 26.3 aan te kondigen, beschikbaar vanaf maart 2026. Deze grote update introduceert een herontworpen openbare API, een aangepaste DOM‑gebaseerde Markdown-renderer, volledige controle over het Markdown‑dialect, async‑ondersteuning en een reeks bug‑fixes. Daarnaast worden per‑TFM runtime NuGet‑pakketten toegevoegd en wordt ondersteuning voor .NET 8 en .NET 10 geboden.

Wat is nieuw in deze release

Sleutel Categorie Samenvatting
MARKDOWNNET-33 Functie NuGet‑pakket opgesplitst in per‑TFM runtime‑pakketten
MARKDOWNNET-31 Functie Ondersteuning voor .NET 8 en .NET 10 toegevoegd
MARKDOWNNET-30 Functie Aangepaste DOM‑gebaseerde Markdown-renderer
MARKDOWNNET-29 Functie Conversiewaarschuwingen en uniform foutmodel
MARKDOWNNET-28 Functie Relatieve afbeeldingspaden en afbeeldingsvervanging
MARKDOWNNET-27 Functie Kopniveau‑offset en generatie van YAML‑front‑matter
MARKDOWNNET-26 Functie Controle over Markdown‑dialect en spreadsheet‑renderopties
MARKDOWNNET-25 Functie Documentinspectie zonder conversie
MARKDOWNNET-24 Functie Async‑API
MARKDOWNNET-23 Functie Statische gemaks‑methoden en formatdetectie
MARKDOWNNET-20 Verbetering API herzien en herontwerpen
MARKDOWNNET-8 Functie Ondersteuning voor het vervangen van afbeeldingen tijdens conversie naar Markdown
MARKDOWNNET-35 Bug‑Fix Kwaliteits- en functionele problemen

Wijzigingen in de openbare API

Nieuwe openbare typen

  • DocumentInfo — documentmetadata (formaat, paginatelling, titel, auteur, encryptiestatus)
  • MarkdownFlavor — enum voor doel‑Markdown‑dialect (GitHub, CommonMark)
  • IImageSavingHandler — interface voor aangepaste callbacks voor het opslaan van afbeeldingen
  • IUriSavingHandler — interface voor aangepaste callbacks voor het opslaan van URI’s
  • GroupDocsMarkdownException — algemene conversie‑exception
  • InvalidFormatException — beschadigd of niet‑herkend bestandsformaat
  • DocumentProtectedException — verkeerd of ontbrekend wachtwoord

Nieuwe statische methoden op MarkdownConverter

  • ToMarkdown(string sourcePath) and overloads with LoadOptions/ConvertOptions
  • ToFile(string sourcePath, string outputPath) and overloads
  • GetInfo(string sourcePath) and overloads
  • GetSupportedFormats()
  • Async variants: ToMarkdownAsync, ToFileAsync, GetInfoAsync

Nieuwe instantiemethoden op MarkdownConverter

  • GetDocumentInfo()
  • ConvertAsync() and overloads

Nieuwe eigenschappen op ConvertOptions

  • ImageExportStrategy (replaces ExportStrategy)
  • UriExportStrategy
  • HeadingLevelOffset
  • IncludeFrontMatter
  • Flavor
  • MaxColumns, MaxRows, SheetSeparator, IncludeHiddenSheets

Nieuwe eigenschappen op ConvertResult

  • Warnings — niet‑fatale conversiewaarschuwingen

Nieuwe eigenschappen op ExportImagesToFileSystemStrategy en CustomImagesStrategy

  • ImagesRelativePath — bepaalt het pad dat wordt geschreven in Markdown‑afbeeldingsreferenties

Nieuwe methoden op CustomImageSavingArgs

  • SetReplacementImage(Stream imageStream) — vervangt afbeeldingsinhoud

Verwijderde typen

  • IExportStrategy — vervangen door IImageExportStrategy en IUriExportStrategy
  • DocumentConverterOptions — hernoemd naar ConvertOptions
  • DocumentConverterResult — hernoemd naar ConvertResult

Doorbrekende wijzigingen

Hernoemde typen

Voor Na
DocumentConverterOptions ConvertOptions
DocumentConverterResult ConvertResult

FileFormat Enum

Familieniveau‑waarden (FileFormat.WordProcessing, FileFormat.Spreadsheet) zijn vervangen door specifieke formaten (FileFormat.Docx, FileFormat.Xlsx, enz.). Nieuwe items: FileFormat.Txt, FileFormat.Chm.

ConvertOptions en LoadOptions gescheiden

ConvertOptions erft niet langer van LoadOptions. Wachtwoord‑ en format‑hints worden geplaatst op 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);

Afbeeldings- en URI-strategieën gesplitst

Enkele ExportStrategy‑eigenschap vervangen door twee getypeerde eigenschappen:

var options = new ConvertOptions
{
    ImageExportStrategy = new ExportImagesToFileSystemStrategy("images"),
    UriExportStrategy = new CustomUriExportStrategy(handler)
};

Delegates vervangen door interfaces

CustomImagesStrategy en CustomUriExportStrategy accepteren nu de interfaces IImageSavingHandler en IUriSavingHandler in plaats van delegate‑callbacks.

LoadOptions.Extension en LoadOptions.MimeType zijn intern

Gebruik new LoadOptions(FileFormat.Docx) in plaats van Extension of MimeType direct in te stellen.

Nieuwe functies

Aangepaste DOM‑gebaseerde Markdown-renderer

De bibliotheek delegeert de Markdown‑generatie niet langer aan een externe export. Een aangepaste renderer loopt het document‑objectmodel knoop voor knoop door en produceert direct Markdown, waardoor volledige controle over elk aspect van de uitvoer mogelijk is.

Word/PDF/Ebook/Text/CHM‑documenten worden gerenderd met ondersteuning voor alinea’s, koppen (H1‑H6), vet, cursief, doorhalen, inline‑code, geordende en ongeordende lijsten met inspringen, tabellen (GFM‑pijpsyntaxis of CommonMark‑code‑blok fallback), hyperlinks en afbeeldingen.

Spreadsheets worden gerenderd met cel‑voor‑cel rastertraversie, getypte waardeformattering, werkblad‑secties, kolom‑/rij‑afkapping met ellipsis‑indicatoren, filteren van verborgen werkbladen en aangepaste blad‑scheidingstekens.

Statische gemaks‑methoden

Eén‑regel conversiemethoden die resource‑beheer automatisch afhandelen:

string md = MarkdownConverter.ToMarkdown("report.docx");
MarkdownConverter.ToFile("report.docx", "report.md");
IReadOnlyList<FileFormat> formats = MarkdownConverter.GetSupportedFormats();

Async‑API

Async‑tegenhangers voor alle statische en instantiemethoden met ondersteuning voor CancellationToken:

string md = await MarkdownConverter.ToMarkdownAsync("report.docx");
await MarkdownConverter.ToFileAsync("large.pdf", "output.md");
DocumentInfo info = await MarkdownConverter.GetInfoAsync("report.docx");

Documentinspectie zonder conversie

Haal documentmetadata op zonder een volledige conversie uit te voeren:

DocumentInfo info = MarkdownConverter.GetInfo("report.docx");
Console.WriteLine($"{info.FileFormat}, {info.PageCount} pages, by {info.Author}");

Markdown‑dialectcontrole

Richt op een specifiek Markdown‑dialect:

var options = new ConvertOptions { Flavor = MarkdownFlavor.GitHub }; // pipe tables, strikethrough
var options = new ConvertOptions { Flavor = MarkdownFlavor.CommonMark }; // tables as code blocks

Spreadsheet‑renderopties

Volledige controle over hoe spreadsheets naar Markdown worden gerenderd:

var options = new ConvertOptions
{
    MaxColumns = 8,
    MaxRows = 50,
    SheetSeparator = "\n---\n",
    IncludeHiddenSheets = false
};

Kopniveau‑offset en YAML‑front‑matter

Stel een offset voor kopniveaus in en voeg YAML‑front‑matter toe:

var options = new ConvertOptions
{
    HeadingLevelOffset = 2,       // # Title  ->  ### Title
    IncludeFrontMatter = true     // prepend YAML metadata
};

Conversiewaarschuwingen en uniform foutmodel

Alle Convert()‑methoden werpen nu een uitzondering bij falen. ConvertResult bevat niet‑fatale waarschuwingen:

ConvertResult result = converter.Convert();
foreach (string w in result.Warnings)
    Console.WriteLine(w);  // e.g. "Worksheet 'Data' truncated at 50 rows."

Afbeeldingsvervanging en relatieve paden

Vervang afbeeldingen tijdens conversie en beheer pad‑referenties:

var strategy = new ExportImagesToFileSystemStrategy("c:/output/images")
{
    ImagesRelativePath = "images"  // ![](images/img-001.png)
};

Renderen van inhoudsopgave

Documenten met een inhoudsopgave worden gerenderd als nette lijsten in plaats van ruwe veldcodes:

- Introduction
- 1.  Executive Summary
- 2.  Company Overview

Code‑voorbeeld

string md = MarkdownConverter.ToMarkdown("report.docx");
MarkdownConverter.ToFile("report.docx", "report.md");
IReadOnlyList<FileFormat> formats = MarkdownConverter.GetSupportedFormats();

Hoe de update te verkrijgen

NuGet

Upgrade naar het nieuwste GroupDocs.Markdown‑pakket via NuGet (bijv. Install-Package GroupDocs.Markdown).

Bronnen