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 afbeeldingenIUriSavingHandler— interface voor aangepaste callbacks voor het opslaan van URI’sGroupDocsMarkdownException— algemene conversie‑exceptionInvalidFormatException— beschadigd of niet‑herkend bestandsformaatDocumentProtectedException— verkeerd of ontbrekend wachtwoord
Nieuwe statische methoden op MarkdownConverter
ToMarkdown(string sourcePath)and overloads withLoadOptions/ConvertOptionsToFile(string sourcePath, string outputPath)and overloadsGetInfo(string sourcePath)and overloadsGetSupportedFormats()- Async variants:
ToMarkdownAsync,ToFileAsync,GetInfoAsync
Nieuwe instantiemethoden op MarkdownConverter
GetDocumentInfo()ConvertAsync()and overloads
Nieuwe eigenschappen op ConvertOptions
ImageExportStrategy(replacesExportStrategy)UriExportStrategyHeadingLevelOffsetIncludeFrontMatterFlavorMaxColumns,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 doorIImageExportStrategyenIUriExportStrategyDocumentConverterOptions— hernoemd naarConvertOptionsDocumentConverterResult— hernoemd naarConvertResult
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" // 
};
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).