最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Razor TagHelper實現(xiàn)Markdown轉(zhuǎn)HTML的方法

 更新時間:2017年12月14日 15:15:39   作者:ZKEASOFT  
下面小編就為大家分享一篇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ī)范,極大地推進(jìn)了動態(tài)可重復(fù)性研究的歷史進(jìn)程。

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)文章

最新評論

宣城市| 南和县| 那坡县| 当阳市| 库尔勒市| 恩平市| 弥渡县| 东方市| 余干县| 夏邑县| 吉安市| 平湖市| 原平市| 湟源县| 淮滨县| 西宁市| 新巴尔虎左旗| 扶余县| 云南省| 乌兰察布市| 迭部县| 鱼台县| 望奎县| 新余市| 香格里拉县| 雅江县| 西藏| 菏泽市| 昌黎县| 永定县| 连城县| 驻马店市| 揭阳市| 额敏县| 孙吴县| 梅州市| 和田市| 吉木乃县| 吴桥县| 北宁市| 长春市|