使用案例:
var marked = require('marked')console.log(marked('I am using __markdown__.'))// Outputs: <p>I am using <strong>markdown</strong>.</p>
var marked = require('marked')marked.setOptions({renderer: new marked.Renderer(),gfm: true,tables: true,breaks: false,pedantic: false,sanitize: false,smartLists: true,smartypants: false})console.log(marked('I am using __markdown__.'))
<!doctype html><html><head> <meta charset="utf-8"/> <title>Marked in the browser</title> <script src="lib/marked.js"></script></head><body> <div id="content"></div> <script> document.getElementById('content').innerHTML =marked('# Marked in browser\n\nRendered by **marked**.') </script></body></html>
使用ajax请求本地md文件
注意1,如果是POST请求,要设置请求头,因为xhr ajax默认content-type是text/plain,而一般ajax请求或者表单的content-type是application/x-www-form-urlencoded,要注意后端可以解析的content-type格式
关于ajax content-type详细内容看这里 传送门
注意2,XMLHttpRequest在IE8以下不兼容,IE8以下使用ajax的方法是ActiveXObject('Microsoft.XMLHttp'),所以可以做一下兼容:
当然也可以用try-catch
执行结果是:
在JavaScript中解析markdown需要用到一些js解析库,目前比较流行的是marked.js和showdown.js 二者比较
根据github上的star和bootcdn上的使用情况,选择marked作为解析库
解析结果:(红色部分是引用,也就是md语法">")
结果显而易见,没有样式
所以接下来要布置一下md渲染的样式,这里采用 github-markdown-css ,同时将展示md内容的标签附上样式class="markdown-body",渲染结果如下:
经过上面三步,已经可以成功请求到本地的markdown文件。回过头来看整个过程,觉得xhr ajax请求应该封装成一个外部函数来调用。