溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Razor TagHelper中將Markdown轉(zhuǎn)換為HTML

發(fā)布時(shí)間:2021-02-22 17:30:00 來源:億速云 閱讀:127 作者:戴恩恩 欄目:開發(fā)技術(shù)

這篇文章主要介紹了怎么在Razor TagHelper中將Markdown轉(zhuǎn)換為HTML,億速云小編覺得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來看看吧!

Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語言,通過簡(jiǎn)單的標(biāo)記語法,它可以使普通文本內(nèi)容具有一定的格式。

用途

Markdown的語法簡(jiǎn)潔明了、學(xué)習(xí)容易,而且功能比純文本更強(qiáng),因此有很多人用它寫博客。世界上最流行的博客平臺(tái)WordPress和大型CMS如Joomla、Drupal都能很好的支持Markdown。完全采用Markdown編輯器的博客平臺(tái)有Ghost和Typecho。

用于編寫說明文檔,并且以“README.MD”的文件名保存在軟件的目錄下面。

除此之外,現(xiàn)在由于我們有了RStudio這樣的神級(jí)編輯器,我們還可以快速將Markdown轉(zhuǎn)化為演講PPT、Word產(chǎn)品文檔、LaTex論文甚至是用非常少量的代碼完成最小可用原型。在數(shù)據(jù)科學(xué)領(lǐng)域,Markdown已經(jīng)被確立為科學(xué)研究規(guī)范,極大地推進(jìn)了動(dòng)態(tài)可重復(fù)性研究的歷史進(jìn)程。

TagHelper

寫一個(gè)Razor TagHelper來實(shí)現(xiàn)Markdown轉(zhuǎn)HTML,這里需要使用到CommonMark. NET這個(gè)類庫。

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加入這個(gè)TagHelper,像這樣

@addTagHelper *, ZKEACMS.Message

然后就可以直接使用了

<markdown>@item.CommentContent</markdown>

以上就是億速云小編為大家收集整理的怎么在Razor TagHelper中將Markdown轉(zhuǎn)換為HTML,如何覺得億速云網(wǎng)站的內(nèi)容還不錯(cuò),歡迎將億速云網(wǎng)站推薦給身邊好友。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI