博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
markdown解析与着色
阅读量:5139 次
发布时间:2019-06-13

本文共 1516 字,大约阅读时间需要 5 分钟。

markdown解析与着色

简介

最近在调整博客园博客样式,使用markdown发表的博客。这个不要太好用,有道云+markdown简直绝配,可以发在任何支持markdwon的博客网站,样式基本不会走形,博客园对自定义样式也支持的很好。之前写过一个篇可以看到效果。

代码怎么像这样的效果呢?

image

其实很简单就是解析+着色

markdown解析

markdown的解析暂时查到就有四种javascript库:

  1. marked
  2. mdjs
  3. HyperDown
  4. strapdown

而这四种插件的使用也很简单,引用好js库后直接解析加载的markdwon文件将其放入document中就ok,javascript代码如下:

$.ajax({    type: "get",    //url: "/Content/markdown/demo.md",    url: "@Url.Action("MarkdonwFile")",    async: false,    dataType: "text",    success: function (response, status, request) {        $('#mdjsDemo').html(Mdjs.md2html(response));//mdjs        $('#markedDemo').html(marked(response)); //marked        var parser = new HyperDown;        $('#hyperDownDemo').html(parser.makeHtml(response));//HyperDown    }});

由于ajax不能直接请求md文件,暂时不知道什么原因先不理会,服务器代码如下:

public ActionResult MarkdonwFile(){    //返回markdown文件    var mk = AppDomain.CurrentDomain.BaseDirectory + "Content/markdown/demo.md";    return File(mk,"text/plain");}

效果如下:

解析好的markdown

highlight 着色

markdown经解析后其中code是html默认的样式黑白两色,看着不舒服,可以试用highlight进行着色。

highlight的使用也非常简单引用库并调用hljs.initHighlightingOnLoad()即可,代码如下:

highlight支持着色的语言非常多,样式也很很丰富。

highlight 动态着色

效果如下:

highlight 样式切换

cdnjs上可以获取highlight的js脚本和css样式,可是css样式很多一个个粘贴很麻烦。所以想了个方法自动生成<option></option>项。

在上可以看到js和css是一个如下列表:

highlight 风格css获取

简单分析后,可以用如下代码拼接所有的option

$('.library-url').toArray().filter(item = >{    return $(item).html().endsWith('.css')}).reduce((tmp, item) = >{    return tmp + ''})

效果如下:

样式获取结果

参考

转载于:https://www.cnblogs.com/ricolee/p/markdown-parse.html

你可能感兴趣的文章
转载 C#文件中GetCommandLineArgs()
查看>>
list control控件的一些操作
查看>>
LVM快照(snapshot)备份
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
npm 常用指令
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
iOS按钮长按
查看>>
CSS属性值currentColor
查看>>
[Leetcode|SQL] Combine Two Tables
查看>>