StardustDL.RazorComponents.Markdown
0.0.3.28
dotnet add package StardustDL.RazorComponents.Markdown --version 0.0.3.28
NuGet\Install-Package StardustDL.RazorComponents.Markdown -Version 0.0.3.28
<PackageReference Include="StardustDL.RazorComponents.Markdown" Version="0.0.3.28" />
paket add StardustDL.RazorComponents.Markdown --version 0.0.3.28
#r "nuget: StardustDL.RazorComponents.Markdown, 0.0.3.28"
// Install StardustDL.RazorComponents.Markdown as a Cake Addin #addin nuget:?package=StardustDL.RazorComponents.Markdown&version=0.0.3.28 // Install StardustDL.RazorComponents.Markdown as a Cake Tool #tool nuget:?package=StardustDL.RazorComponents.Markdown&version=0.0.3.28
RazorComponents.Markdown
Razor component for Markdown rendering.
Online demo:
Features
- Abbreviations
- Auto identifiers
- Citations
- Custom containers
- Definition lists
- Emphasis extras
- Figures
- Footers
- Footnotes
- GridTables
- Mathematics
- Media links
- Youtube
- Bilibili
- Netease music
- Pipe tables
- Task lists
- Diagrams, flowcharts
- Auto links
- Smarty pants
- Emoji
- Code highlighting
- Delay rendering for less CPU intensive
Usage
Add the newest package on NuGet.
dotnet add package StardustDL.RazorComponents.Markdown
Install
This project is built on Modulight.
Here are the example codes, which based on the instructions from Usage and Use Razor Component Modules. See demo for details.
WebAssembly
// in App.razor
<Modulight.Modules.Client.RazorComponents.UI.ResourceDeclare />
// in Program.cs
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddModules(builder =>
{
builder.UseRazorComponentClientModules().AddMarkdownModule();
});
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// Attention: RunAsyncWithModules
await builder.Build().RunAsyncWithModules();
}
Razor Pages
// in Startup: void ConfigureServices(ISeviceCollection services)
using StardustDL.RazorComponents.Markdown;
services.AddModules(builder => {
builder.UseRazorComponentClientModules().AddMarkdownModule();
});
// Generic hosting. (provided by package Modulight.Modules.Hosting, need to add this package)
// in Program: Task Main(string[] args)
using Microsoft.Extensions.Hosting;
await CreateHostBuilder(args).Build().RunAsyncWithModules();
Using
<StardustDL.RazorComponents.Markdown.MarkdownRenderer
Value="@MarkdownText"
Class="your class"
Style="your styles"
RenderInterval="@TimeSpan.FromSeconds(10)"/>
Parameters:
Value
Raw Markdown (String
)Class
class attributeStyle
style attributeRenderInterval
Delay rendering interval (TimeSpan
), defaultnull
for no delay.
Configuration
Use IMarkdownComponentService
to configure.
Attention: The configuration will be changed in next version.
Service.EnableCodeHighlight = true;
Service.EnableDiagrams = true;
Service.EnableMathematics = true;
If you want to customize Markdown's parser pipeline, you can inherit inherit MarkdownComponentService
and override the method GetPipeline()
.
If you want to customize the all things, you can inherit inherit MarkdownComponentService
and override the method RenderHTML(string)
.
For custom IMarkdownComponentService
, use the codes below to inject services.
// before AddModules
builder.Services.AddSingleton<IMarkdownComponentService, MarkdownComponentService>();
Preview
Here are some screenshots from the demo project.
Header
Code with highlighting
Extensions
Mathematics
Diagram
Dependencies
License
Apache-2.0
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. 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. |
-
net5.0
- Markdig (>= 0.25.0)
- Microsoft.AspNetCore.Components.Web (>= 5.0.7)
- Modulight.Modules.Client.RazorComponents (>= 0.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.