OfficeIMO.MarkdownRenderer is the host-oriented rendering package for OfficeIMO.Markdown. It builds full HTML shells, renders body fragments, parses renderer-owned Markdown documents, and produces update scripts for WebView2 and browser-based document/chat surfaces.
dotnet add package OfficeIMO.MarkdownRendererFor the first-party IntelligenceX preset pack:
dotnet add package OfficeIMO.MarkdownRenderer.IntelligenceXusing OfficeIMO.MarkdownRenderer;
var options = MarkdownRendererPresets.CreateStrict();
string shellHtml = MarkdownRenderer.BuildShellHtml("Markdown", options);
string bodyHtml = MarkdownRenderer.RenderBodyHtml("""
# Hello
This is rendered through OfficeIMO.MarkdownRenderer.
""", options);using OfficeIMO.MarkdownRenderer;
var options = MarkdownRendererPresets.CreateStrict();
webView.NavigateToString(MarkdownRenderer.BuildShellHtml("Markdown", options));
await webView.ExecuteScriptAsync(MarkdownRenderer.RenderUpdateScript(markdownText, options));using OfficeIMO.Markdown;
using OfficeIMO.MarkdownRenderer;
var options = MarkdownRendererPresets.CreateRelaxed();
MarkdownRendererParseResult result = MarkdownRenderer.ParseDocumentResult(markdownText, options);
foreach (var diagnostic in result.PreProcessorDiagnostics) {
Console.WriteLine($"{diagnostic.Stage}: {diagnostic.ProcessorName} changed={diagnostic.Changed}");
}
MarkdownDoc document = result.Document;
foreach (var heading in document.GetHeadingInfos()) {
Console.WriteLine($"{heading.Text} -> {heading.Anchor}");
}using OfficeIMO.Markdown;
using OfficeIMO.MarkdownRenderer;
var options = MarkdownRendererPresets.CreateStrict();
options.MaxBodyHtmlBytes = 512 * 1024;
options.BodyHtmlOverflowHandling = OverflowHandling.RenderError;
string bodyHtml = MarkdownRenderer.RenderBodyHtml(markdownText, options);using OfficeIMO.Markdown;
using OfficeIMO.MarkdownRenderer;
var options = MarkdownRendererPresets.CreateStrict();
options.Mermaid.Enabled = true;
options.HtmlOptions.Prism ??= new PrismOptions();
options.HtmlOptions.Prism.Enabled = true;
options.EnableCodeCopyButtons = true;
options.EnableTableCopyButtons = true;
string shellHtml = MarkdownRenderer.BuildShellHtml("Investigation", options);
string updateScript = MarkdownRenderer.RenderUpdateScript(markdownText, options);- Builds a complete HTML shell for Markdown surfaces.
- Renders HTML body fragments for hosts that own their own shell.
- Produces incremental update scripts and streaming-friendly body output.
- Exposes strict, portable, minimal, relaxed, and transcript-oriented presets.
- Supports AST document transforms, pre-parse normalization, HTML post-processing, and plug-in/feature-pack registration.
- Keeps optional client-side features such as Mermaid, charts, math, Prism, and copy buttons in shell assets rather than managed runtime dependencies.
OfficeIMO.MarkdownRendererhosts and renders Markdown output.- The Markdown model and parser belong in
OfficeIMO.Markdown. - WPF/WebView2 control integration belongs in
OfficeIMO.MarkdownRenderer.Wpf. - IntelligenceX-specific presets and aliases belong in
OfficeIMO.MarkdownRenderer.IntelligenceX. - PDF output belongs in
OfficeIMO.Markdown.Pdf.
- OfficeIMO.Markdown
- OfficeIMO.Markdown.Html
- OfficeIMO.MarkdownRenderer.Wpf
- OfficeIMO.MarkdownRenderer.IntelligenceX
- OfficeIMO.MarkdownRenderer.SamplePlugin
- Targets:
netstandard2.0,net8.0,net10.0. - License: MIT.
- Repository: EvotecIT/OfficeIMO