AugusteVN.Razor.PrismJS
1.0.4
See the version list below for details.
dotnet add package AugusteVN.Razor.PrismJS --version 1.0.4
NuGet\Install-Package AugusteVN.Razor.PrismJS -Version 1.0.4
<PackageReference Include="AugusteVN.Razor.PrismJS" Version="1.0.4" />
paket add AugusteVN.Razor.PrismJS --version 1.0.4
#r "nuget: AugusteVN.Razor.PrismJS, 1.0.4"
// Install AugusteVN.Razor.PrismJS as a Cake Addin #addin nuget:?package=AugusteVN.Razor.PrismJS&version=1.0.4 // Install AugusteVN.Razor.PrismJS as a Cake Tool #tool nuget:?package=AugusteVN.Razor.PrismJS&version=1.0.4
Prism.js in Razor
The Prism.js syntax highlighter for HTML code blocks, encapsulated in Razor components.
Razor Components
The encapsulating components below, can be implemented on Razor pages or components.
<IncludePrism />
uses the JSRuntime
to import the prism.js
script at first render of this component's lifecycle method OnAfterRender
.
And loads the prism.css
link tag. I recommend to place this near the top of your Razor page or component.
<PrismHighlighter />
uses the JSRuntime
to invoke Prism.highlightAll
at first render of this component's lifecycle method OnAfterRender
.
I recommend to place this near the bottom of your Razor page or component, after the target code blocks and not before the <IncludePrism />
.
Usage Example
<IncludePrism />
<div>
@BlogPost.Body
</div>
<PrismHighlighter />
Extension Methods
To invoke importing prism.js
using the JSRuntime
or to invoke Prism.highlightAll
yourself, I included 2 extension methods.
InvokeImportPrismJsAsync
uses the JSRuntime
to import the prism.js
script.
InvokePrismHighlightAllAsync
uses the JSRuntime
to invoke Prism.highlightAll
.
Usage Example
@inject IJSRuntime JsRuntime
<textarea @onblur="HandleOnChange"></textarea>
@code {
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
Task.Run(() => JsRuntime.InvokeImportPrismJsAsync());
}
}
private void HandleOnChange(FocusEventArgs e)
{
Task.Run(() => JsRuntime.InvokePrismHighlightAllAsync());
}
}
To see it in action, watch: Markdown to HTML with C# .NET.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- Microsoft.AspNetCore.Components.Web (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Upgraded to 8.0.100.