MVC开发Markdown编辑器(1)
MVC markdown
前言
想在近段时间通过mvc开发个人博客,编辑器希望是markdown风格的,这样写文字会很方便。首先先解决在.net下markdown编辑器的实现,查了许多资料,有许多开源的markdown解析引擎,我暂且用的是在Nuget排名较高的Markdowndeep来解析,语法非常简单,几句代码轻松解析。
PS:接下来若出现mdd即代表MarkdownDeep
安装
在Nuget中通过Install-Package MarkdownDeep.Full命令来安装完整版的Markdowndeep
其中包括js版本和.net版本
或者通过Install-Package MarkdownDeep.NET命令来安装
只含安装.net版本
解析
安装完成后在Script文件中会加入几个mdd的包

MarkdownDeepLib.min.js是用来解析的,mdd_styles.css是默认的一些样式,通过js解析需要引入MarkdownDeepLib.min.js,css则可有可无
js解析mdd
var markdown = new MarkdownDeep.Markdown();md.ExtraMode = true;md.SafeMode = true;md.MarkdownInHtml = true;var output = md.Transform(content);
到此为止,解析完成。是不是很简单!
第一行是生成一个markdown对象,第二到第四行设置一些属性,第五行解析输出
PS:如果有谁对mmd比较了解希望能说明下mmd属性具体作用.net解析mdd
这里有两种方法
- 通过Nuget安装
MarkdownDeepHelper,这是一个封装好的helper类,拿来直接在view中通过@Html.Markdown(something)来解析并返回MvcHtmlString - 自己写个扩展方法实现MarkdownDeepHelper,两种方法其实都一样,因为代码量真的很少,.net的代码和js代码几乎完全一样。
public static class MarkdownHelper{/// <summary>/// 生成一个私有静态实例/// </summary>private static Markdown markdown = new Markdown();/// <summary>/// 解析成Html并返回./// </summary>/// <param name="helper">该方法扩展自HtmlHelper</param>/// <param name="text">需要被解析的字符串</param>/// <returns>The HTML representation of the supplied Markdown.</returns>public static IHtmlString Markdown(this HtmlHelper helper, string text){// 通过Tranform方法解析字符串string html = markdown.Transform(text);markdown.ExtraMode = true;markdown.SafeMode = true;markdown.MarkdownInHtml = true;// 返回MvcHtmlString,防止被编码return new MvcHtmlString(html);}}
在通过View中引入MarkdownHelper命名空间即可通过
@Html.Markdown(something)解析 是不是和前者完全一样
到此为止解析完成。- 通过Nuget安装
结束语
已经2点多了,实时预览放在下一次了。睡觉
PS:如果有哪些写的不对或不好的地方欢迎大家指点
MVC开发Markdown编辑器(1)的更多相关文章
- MVC开发Markdown编辑器(2)
MVC开发Markdown编辑器(2) MVC Markdown 实时预览 我希望实现一个在线实时预览的Markdown编辑器,左边是编辑处,右边是实时预览界面. 准备工作 引入相关js和css 这里 ...
- 用nw.js开发markdown编辑器-已完成功能介绍
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/10/29/hexomd-introduction 文章目录 1. 功能列表 ...
- Markdown编辑器开发记录(二):Markdown编辑器的使用与开发入门
Markdown编辑器的使用与开发入门 在部门做技术分享的时候简单整理了一下手里的资料 1 是什么 1.1 Markdown是一种轻量级标记语言 Markdown是一种轻量级标记语言,创始人为约翰·格 ...
- Markdown编辑器开发记录(一):开发的初衷和初期踩的坑
先说下选择Markdown编辑器的原因,我们进行平台开发,需要很多的操作手册和API文档,要在网站中展示出来就需要是HTML格式的文件,但是由于内容很多,不可能全部由技术人员进行文档的编写,如果是只有 ...
- 自己动手开发更好用的markdown编辑器-04(实时预览)
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/04/25/hexomd-04/ 程序打包 文章目录 1. 打开新窗口 ...
- 原创|我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)
原始冲动 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typore这款神器,但无奈Typore太过国际化,在国内水土不服,无法满足我的一些需求. 比如实 ...
- 我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 原始冲动 最近一 ...
- 自己动手开发更好用的markdown编辑器-07(扩展语法)
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im/2015/05/19/hexomd-07/ 文章目录 1. 准备工作 2. 目录语法 ...
- 好用的Markdown编辑器一览 readme.md 编辑查看
https://github.com/pandao/editor.md https://pandao.github.io/editor.md/examples/index.html Editor.md ...
随机推荐
- 30天轻松学习javaweb_通过telnet连接http服务器
telnet是windows自带的网络连接工具,可以用于连接任何服务器. 通过Telnet连接服务端 Telnet localhost 8080GET /news/1.html HTTP/1.1Hos ...
- Java拾穗
1.Class.forName("com.wzh.test.loadClass"); Class.forName("com.mysql.jdbc.Driver" ...
- Python标准库10 多进程初步 (multiprocessing包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经见过了使用subprocess包来创建子进程,但这个包有两个很大的局限性: ...
- [Flex] as3xls读取excel,修改保存单表(一)
经过大神修改过的as3xls支持中文,并可以修改保存单一sheet,保存后原有的excel样式均会消失,目前仅能如此. <?xml version="1.0" encodin ...
- console,和自己定义事件
console.log这个指令是在浏览器控制台输出日志,用来调试程序 跟alert 类似 但不像alert那样会打断程序.
- git向gitHub上push和pull数据.
1.在gitHub上首先建立仓储.这个过程就不在啰嗦了. 2.注意上图中右下角的https,ssh等东西. 3.向git上传的工具特别多.我这里用的cygwin. 至于cygwin自己到网上去下载.安 ...
- java 数据结构
二叉树: 存储结构:顺序存储结构和链式存储结构 二叉树的先根遍历的递归与非递归算法 二叉树的中根遍历的递归与非递归算法 二叉树的后根遍历的递归与非递归算法 二叉树的层次遍历的递归与非递归算法 e.g. ...
- 查看用户的SQL执行历史
程序开发少不来SQL,基本都是基于SQL开发,程序仅仅起一个流程控制的作用.但是数据库本身存在许多内置的视图或者内置的表,如果打算研究SQL执行的效率已经SQL执行的历史记录,通过这些视图可以知道. ...
- PHP截取IE浏览器并缩小原图的方法
这篇文章主要介绍了PHP截取IE浏览器并缩小原图的方法,涉及PHP调用com组件实现图像截取的相关技巧,需要的朋友可以参考下 本文实例讲述了PHP截取IE浏览器并缩小原图的方法.分享给大家供大家参考, ...
- git小操作之checkout、stash
git checkout会带上当前changed但没有commit的内容到目标分支 git stash用来暂存当前改动,并且会退代码到上一个commit:git stash pop则取出所stash的 ...