bwets.Markdig.Extensions
0.1.4
dotnet add package bwets.Markdig.Extensions --version 0.1.4
NuGet\Install-Package bwets.Markdig.Extensions -Version 0.1.4
<PackageReference Include="bwets.Markdig.Extensions" Version="0.1.4" />
<PackageVersion Include="bwets.Markdig.Extensions" Version="0.1.4" />
<PackageReference Include="bwets.Markdig.Extensions" />
paket add bwets.Markdig.Extensions --version 0.1.4
#r "nuget: bwets.Markdig.Extensions, 0.1.4"
#:package bwets.Markdig.Extensions@0.1.4
#addin nuget:?package=bwets.Markdig.Extensions&version=0.1.4
#tool nuget:?package=bwets.Markdig.Extensions&version=0.1.4
bwets.Markdig.Extensions
Modular Markdig extensions for rendering rich Markdown to HTML — admonitions (incl. GitHub/Obsidian callouts), mermaid diagrams, code syntax highlighting, Obsidian wiki links, hidden comments, and inline tags — where each capability is independently activatable and ships its own self-contained CSS/JS assets.
Targets .NET Standard 2.0.
Install
dotnet add package bwets.Markdig.Extensions
Two ways to use it
1. Pipeline extensions (pure Markdig)
Activate the parsers/renderers on a MarkdownPipelineBuilder:
using Markdig;
using bwets.Markdig.Extensions;
var pipeline = new MarkdownPipelineBuilder()
.UseAdvancedExtensions()
.UseAdmonitions() // Docusaurus :::, MkDocs !!!/???, and GitHub/Obsidian > [!note] callouts
.UseMermaid() // ```mermaid blocks -> <pre class="mermaid">
.UseWikiLinks() // [[Page]], [[Page|alias]], [[Page#Heading]], ![[image.png]]
.UseObsidianComments() // hide %%…%% comments
.UseObsidianTags() // #tag -> <span class="tag">
.Build();
var html = Markdown.ToHtml(markdown, pipeline);
Note: these only affect the produced HTML markup. To actually render mermaid diagrams or highlight code you also need the client-side assets — that's what the HTML feature model below provides.
2. HTML features (config + assets in one place)
MarkdownHtmlFeatures bundles each feature's Markdig configuration and the CSS/JS it needs,
and composes them into a page. The host decides how assets are delivered.
using Markdig;
using bwets.Markdig.Extensions.Html;
var features = new MarkdownHtmlFeatures()
.UseSyntaxHighlighting(extendedLanguages: true) // base ~38 vs extended ~190 + Razor
.UseMermaid()
.UseAdmonitions();
var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions();
features.Configure(pipeline); // wire up parsers/renderers
var html = Markdown.ToHtml(markdown, pipeline.Build());
// Compose the page. Choose how the assets are delivered:
var delivery = MarkdownAssetDelivery.Inline; // or External
var page =
"<!doctype html><html><head>" + features.RenderHead(delivery) + "</head><body>" +
html + features.RenderBodyEnd(delivery) +
"</body></html>";
Asset delivery
| Delivery | What it does | Good for |
|---|---|---|
Inline |
Embeds CSS/JS directly into the page (<style> / <script>) |
Web pages, anywhere a temp file cache isn't available |
External |
Emits <link> / <script src>; you write features.Assets next to the page |
Desktop/WebView hosts that want small HTML + cached files |
When delivering externally, write the files yourself:
foreach (var asset in features.Assets)
File.WriteAllText(Path.Combine(outputDir, asset.FileName), asset.Content);
Features
| Feature | Activation | Notes |
|---|---|---|
| Admonitions | UseAdmonitions() |
Docusaurus :::type[title]…:::, MkDocs !!! type "title" / collapsible ??? type, and GitHub/Obsidian > [!type] title callouts (collapsible > [!type]-) |
| Mermaid | UseMermaid() |
```mermaid → diagrams; bundles the all-in-one mermaid runtime |
| Syntax highlighting | UseSyntaxHighlighting(extendedLanguages) |
highlight.js; choose the common ~38 languages or the full ~190 + Razor |
| Wiki links | UseWikiLinks() |
[[Page]], [[Page\|alias]], [[Page#Heading]]; image embeds ![[img.png]], note embeds ![[Note]] → links. Emitted as standard links with a wikilink class |
| Obsidian comments | UseObsidianComments() |
Hides inline %%…%% and %%-fenced comment blocks |
| Obsidian tags | UseObsidianTags() |
#tag, #nested/tag → <span class="tag">; ignores C# and all-numeric #123 |
See docs/ for details on each feature.
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Markdig (>= 1.3.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.