在ASP.NET Core Mvc集成MarkDown的方法
這幾天在做文章編輯,首先就想到了markdown,它比其它的都要新,而且很好用,相對于其它的html編輯器,好久不更新,要好得多,哦~對了我現(xiàn)在已經(jīng)用上新版的Edge了,經(jīng)過很多朋友測試,性能比谷歌瀏覽器都要好很多,并且資源消耗也相對來說小。

一.前提
好吧,言歸正傳,你首先需要下載MarkDown的相關(guān)樣式腳本資源,下載完畢之后拖放你的ASP.NET Core Mvc 項目中的wwwroot中。
二.初始化
在頁面中我們理所當(dāng)然需要引用css 腳本資源,隨后調(diào)用它的初始化方法。
<script src="~/js/jquery-1.10.2.min.js"></script> <link href="~/Lib/MarkDown/css/editormd.css" rel="external nofollow" rel="stylesheet" /> <link href="~/Lib/MarkDown/css/editormd.preview.css" rel="external nofollow" rel="stylesheet" /> <script src="~/Lib/MarkDown/js/editormd.js"></script> <link href="~/lib/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" />
我們的Html部分也很簡單,它只需要一個Textarea盒子。
<div id="test-editormd">
<textarea id="articleContent" style="display: none;">@Html.Raw(html)</textarea>
</div>
調(diào)用markdown的初始化方法也很簡單,我們通常這么做。
$(function () {
testEditor = editormd("test-editormd", {
width: "99%",
height: 640,
syncScrolling: "single",
path: "/Lib/MarkDown/lib/",
saveHTMLToTextarea: true,
emoji: true
});
});
到了這里,我就會問?我如何獲取我的html呢?這很簡單只要通過testEditor.getHTML()方法就可以了,那么你一定就會知道如何獲取markdown了getMarkdown(),這兩個方法取決你想保存什么,如果你是保存了html,那么你就無需通過asp.net core htmlhelper 的@Html.Raw來進(jìn)行轉(zhuǎn)義,如果是markdown,您當(dāng)然需要這么干。
三.優(yōu)化
有時候我們想要上傳咱們自己服務(wù)器的圖片,經(jīng)過發(fā)現(xiàn),這個image上傳的彈窗就在/lib/MarkDown/plugins/image-dialog中,我們仔細(xì)發(fā)現(xiàn)就可以進(jìn)行改造。

好的,這一切都非常簡單了,你自己發(fā)揮,我們只要保存成功,就很簡單了,你可以操作這個js的任何東西,只要不破壞它的btn相關(guān)方法。隨后,你可以寫一個上傳圖片的Api來操作。
public class FileUploadController : Controller
{
private IWebHostEnvironment en;
public FileUploadController(IWebHostEnvironment en) { this.en = en; }
public IActionResult Index() { return View(); }
[HttpPost]
public async Task<IActionResult> UploadF()
{
var files = Request.Form.Files;
string filename = files[0].FileName;
string fileExtention = System.IO.Path.GetExtension(files[0].FileName);
string path = Guid.NewGuid().ToString() + fileExtention;
string basepath = en.WebRootPath;
string path_server = "/upfile/" + path;
using (FileStream fstream = new FileStream(basepath+path_server, FileMode.OpenOrCreate, FileAccess.ReadWrite))
// using (FileStream fstream = System.IO.File.Create(newFile)) //兩種都可以使用
{
await files[0].CopyToAsync(fstream);
}
return Ok(new { code = 200, msg = "上傳成功!" ,filepath = path_server});
}
}
在我的項目中,我一般喜歡截取文章中的第一個圖片作為的banner部分,ok這一切只需要一個helper。
public static string[] GetHtmlImageUrlList(string sHtmlText)
{
// 定義正則表達(dá)式用來匹配 img 標(biāo)簽
Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches = regImg.Matches(sHtmlText);
int i = 0;
string[] sUrlList = new string[matches.Count];
// 取得匹配項列表
foreach (Match match in matches)
sUrlList[i++] = match.Groups["imgUrl"].Value;
return sUrlList;
}

到此這篇關(guān)于在ASP.NET Core Mvc集成MarkDown的方法的文章就介紹到這了,更多相關(guān)ASP.NET Core Mvc集成MarkDown內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 如何在Asp.Net Core中集成ABP Dapper
- 如何在Asp.Net Core中集成Refit
- asp.net core集成CKEditor實現(xiàn)圖片上傳功能的示例代碼
- asp.net core 使用 TestServer 來做集成測試的方法
- asp.net core集成JWT的步驟記錄
- Asp.Net Core利用xUnit進(jìn)行主機級別的網(wǎng)絡(luò)集成測試詳解
- asp.net core集成MongoDB的完整步驟
- ASP.NET Core與NLog集成的完整步驟
- ASP.NET Core+Docker+Jenkins實現(xiàn)持續(xù)集成的完整實例
- asp.net core 2.0 webapi集成signalr(實例講解)
- asp.net core集成kindeditor實現(xiàn)圖片上傳功能
- ASP.NET Core 集成 React SPA應(yīng)用的步驟
相關(guān)文章
ASP.NET實現(xiàn)讀取Excel內(nèi)容并在Web上顯示
這篇文章主要介紹了ASP.NET實現(xiàn)讀取Excel內(nèi)容并在Web上顯示,很實用的一個技巧,需要的朋友可以參考下2014-08-08
ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解
本文詳細(xì)講解了ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
asp.net core razor自定義taghelper的方法
這篇文章主要介紹了asp.net core razor自定義taghelper的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
asp.net基于JWT的web api身份驗證及跨域調(diào)用實踐
這篇文章主要介紹了asp.net基于JWT的web api身份驗證及跨域調(diào)用實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07

