Razor TagHelper實現(xiàn)Markdown轉(zhuǎn)HTML的方法
Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語言,通過簡單的標(biāo)記語法,它可以使普通文本內(nèi)容具有一定的格式。
用途
Markdown的語法簡潔明了、學(xué)習(xí)容易,而且功能比純文本更強,因此有很多人用它寫博客。世界上最流行的博客平臺WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown編輯器的博客平臺有Ghost和Typecho。
用于編寫說明文檔,并且以“README.MD”的文件名保存在軟件的目錄下面。
除此之外,現(xiàn)在由于我們有了RStudio這樣的神級編輯器,我們還可以快速將Markdown轉(zhuǎn)化為演講PPT、Word產(chǎn)品文檔、LaTex論文甚至是用非常少量的代碼完成最小可用原型。在數(shù)據(jù)科學(xué)領(lǐng)域,Markdown已經(jīng)被確立為科學(xué)研究規(guī)范,極大地推進了動態(tài)可重復(fù)性研究的歷史進程。
TagHelper
寫一個Razor TagHelper來實現(xiàn)Markdown轉(zhuǎn)HTML,這里需要使用到CommonMark. NET這個類庫。
namespace ZKEACMS.Message.TagHelps { [HtmlTargetElement("markdown", TagStructure = TagStructure.NormalOrSelfClosing)] [HtmlTargetElement(Attributes = "markdown")] public class MarkdownTagHelper : TagHelper { public ModelExpression Content { get; set; } public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (output.TagName == "markdown") { output.TagName = null; } output.Attributes.RemoveAll("markdown"); var content = await GetContent(output); var markdown = WebUtility.HtmlEncode(WebUtility.HtmlDecode(content)); var html = CommonMarkConverter.Convert(markdown); output.Content.SetHtmlContent(html ?? ""); } private async Task GetContent(TagHelperOutput output) { if (Content == null) return (await output.GetChildContentAsync()).GetContent(); return Content.Model?.ToString(); } } }
使用方式
首先要在_ViewImports.cshtml加入這個TagHelper,像這樣
@addTagHelper *, ZKEACMS.Message
然后就可以直接使用了
<markdown>@item.CommentContent</markdown>
以上這篇Razor TagHelper實現(xiàn)Markdown轉(zhuǎn)HTML的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET?Core6.0-wwwroot文件夾無法訪問解決方法
ASP.NET?Core項目中的wwwroot文件夾被視為Web根文件夾,本文主要介紹了ASP.NET?Core6.0-wwwroot文件夾無法訪問解決方法,具有一定的參考價值,感興趣的可以了解一下2024-09-09ASP.NET讓FileUpload控件支持瀏覽自動上傳功能的解決方法
這篇文章主要介紹了ASP.NET讓FileUpload控件支持瀏覽自動上傳功能的解決方法,很實用的技巧,需要的朋友可以參考下2014-07-07Asp.Net服務(wù)器發(fā)送HTTP標(biāo)頭后無法設(shè)置內(nèi)容類型的問題解決
這篇文章主要給大家介紹了Asp.Net服務(wù)器發(fā)送HTTP標(biāo)頭后無法設(shè)置內(nèi)容類型問題的解決方法,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05一步步打造簡單的MVC電商網(wǎng)站BooksStore(1)
這篇文章主要和大家一起一步步打造一個簡單的MVC電商網(wǎng)站,MVC電商網(wǎng)站BooksStore第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04asp.net FileUpload控件實現(xiàn)文件格式判斷與文件大小限制
這篇文章主要介紹了有關(guān)asp.net fileupload控件判斷文件格式,以及進行文件大小限制的方法,可以在web.config中配置,也可以在.cs文件中實現(xiàn),需要的朋友參考下2014-11-11輕松解決asp.net用戶ASPNET登錄失敗問題的方法分享
這篇文章介紹了asp.net用戶ASPNET登錄失敗問題的方法,有需要的朋友可以參考一下2013-11-11