<!DOCTYPE html>

MVC markdown


  • MVC开发Markdown编辑器(1)

    • 前言
    • 安装
    • 解析
    • 结束语

前言

想在近段时间通过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则可有可无

  1. js解析mdd

    1. var markdown = new MarkdownDeep.Markdown();
    2. md.ExtraMode = true;
    3. md.SafeMode = true;
    4. md.MarkdownInHtml = true;
    5. var output = md.Transform(content);

    到此为止,解析完成。是不是很简单!
    第一行是生成一个markdown对象,第二到第四行设置一些属性,第五行解析输出
    PS:如果有谁对mmd比较了解希望能说明下mmd属性具体作用

  2. .net解析mdd

    这里有两种方法

    1. 通过Nuget安装MarkdownDeepHelper,这是一个封装好的helper类,拿来直接在view中通过@Html.Markdown(something)来解析并返回MvcHtmlString
    2. 自己写个扩展方法实现MarkdownDeepHelper,两种方法其实都一样,因为代码量真的很少,.net的代码和js代码几乎完全一样。
    1. public static class MarkdownHelper
    2. {
    3. /// <summary>
    4. /// 生成一个私有静态实例
    5. /// </summary>
    6. private static Markdown markdown = new Markdown();
    7. /// <summary>
    8. /// 解析成Html并返回.
    9. /// </summary>
    10. /// <param name="helper">该方法扩展自HtmlHelper</param>
    11. /// <param name="text">需要被解析的字符串</param>
    12. /// <returns>The HTML representation of the supplied Markdown.</returns>
    13. public static IHtmlString Markdown(this HtmlHelper helper, string text)
    14. {
    15. // 通过Tranform方法解析字符串
    16. string html = markdown.Transform(text);
    17. markdown.ExtraMode = true;
    18. markdown.SafeMode = true;
    19. markdown.MarkdownInHtml = true;
    20. // 返回MvcHtmlString,防止被编码
    21. return new MvcHtmlString(html);
    22. }
    23. }

    在通过View中引入MarkdownHelper命名空间即可通过@Html.Markdown(something)解析 是不是和前者完全一样
    到此为止解析完成。

结束语

已经2点多了,实时预览放在下一次了。睡觉
PS:如果有哪些写的不对或不好的地方欢迎大家指点

转载于:https://www.cnblogs.com/Jack-Blog/p/4518670.html

MVC开发Markdown编辑器(1)相关推荐

  1. 解决自媒体一键多平台发布,从零开发Markdown编辑器(一)

    前言 在这个人人都是自媒体的时代,为了扩大个人影响力同时预防文章被盗版至其他平台,多平台发布文章就成了创作者们的一大痛点,为了解决这一痛点就需要将文章的编辑到发布无缝集成. 现在要实现这一功能,开发一 ...

  2. ASP.net mvc开发中使用纯html如何创建FCKeditor编辑器的使用

    http://www.cnblogs.com/esshs/archive/2008/12/03/1346326.html FCKeditor下载路径: http://sourceforge.net/p ...

  3. 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器

    2021SC@SDUSC 本文并不涉及自己设计一套 Markdown 渲染组件的部分,Markdown 渲染组件可通过 marked 和 highlight.js 自行实现.但本文重点在于如何使用 E ...

  4. 原创|我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)

    原始冲动 搜小说 https://biqi.org/ 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typora这款神器,但无奈Typora太过国际化,在 ...

  5. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-8.使用mavoneditor(vue的markdown编辑器),并批量上传图片

    技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-8.使用mavoneditor(vue的markdown编辑器),并批量上传图片 技能学习:学习使用php(tp6框架) + ...

  6. 使用 Vue3 + vite + elementUI 开发一个 Utools Markdown 编辑器插件

    文章目录 目的 开发文档整理 基础工具的集成 初始化项目 框架引入 按需引用和 SASS 引入验证 utools 开发配置 调试和打包插件 功能实现 依赖库的安装调用 布局实现 Editor.vue ...

  7. python在线编辑器最新_Editor.md 二次开发-markdown在线编辑器

    需求分析 经常需要在网络论坛发布文章进行宣传良心工作室最新免费服务,但每个论坛的编写格式存在差异,给发布带来了很大的障碍. 最近markdown格式的兴起,给广大发布者带来了福音,一种文档格式大部分网 ...

  8. django admin使用在前端_Django| 给你博客装个Markdown编辑器

    小白学Django系列: 小白学Django第一天| MVC.MVT以及Django的那些事 小白学Django第二天| Django原来是这么玩的! 小白学Django第三天| 一文带你快速理解模型 ...

  9. lisp协议instand_分享|Linux 上 10 个最好的 Markdown 编辑器

    在这篇文章中,我们会点评一些可以在 Linux 上安装使用的最好的 Markdown 编辑器. 你可以在 Linux 平台上找到非常多的 的 Markdown 编辑器,但是在这里我们将尽可能地为您推荐 ...

最新文章

  1. 顺序表应用4:元素位置互换之逆置算法
  2. f-GAN简介:GAN模型的生产车间
  3. 安装Vuecli新版本正常,但是显示版本是低版本
  4. c++利用初始化列表在类内部和类外部定义构造函数的区别
  5. ESP32开发 3.bat批处理文件,批量删除编译后的build文件夹,方便Git上传分享
  6. ip地址怎么设置才有效_如果想减肥,怎么拆解目标才是有效的?
  7. 怎样的数据分析才有价值
  8. java中的scanner用法
  9. Integration Services 学习(5):容器
  10. comps电磁场模拟软件_|Mentor Graphics IE3D(电磁场仿真软件)下载v15.0官方版 - 欧普软件下载...
  11. 风变编程python小课课件_待风变编程的 Python 网课是什么? Python 网课怎么
  12. Codeforces D. Berserk And Fireball(贪心)
  13. 普通PC通过USB转485串口 ModBus-RTU通信协议控制伺服电机
  14. 魔方复原(BFS+剪枝)
  15. 什么是3G工程师,3G工程师知识储备
  16. android第三方上传文件,安卓和苹果终于打通!互传文件无需借助第三方,一碰就能传...
  17. 适合python的vim设置
  18. windows设置有线访问内网,无线访问外网
  19. 利用Java8新特性stream流给集合中的某个属性赋值
  20. 数据挖掘实战(2)——糖尿病数据集(回归问题)

热门文章

  1. linux 5.8 yum源,Centos5.8 |linux yum源不能用报404错误
  2. ESP32串口转WiFi双天线ESP32-S模组
  3. 克隆树莓Raspberry Pi Mode4 的TF卡
  4. 基于STC8H8K64U声音信标采集和处理算法
  5. 2017-2019年全国大学生智能汽车竞赛获奖数据分析
  6. ZLAN串口转接以太网ZLSN3003S
  7. java 虚拟打印机_Java 通过物理、虚拟打印机打印Word文档
  8. mysql 主被切换_mysql 主从切换
  9. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎
  10. nginx lua连接mysql_OpenResty的安装和在nginx中使用lua直接访问mysql达到数据接口的统一...