JS加载解析Markdown文档过程详解


Posted in Javascript onMay 19, 2020

网上有很多网站会通过.md文档来做页面内容,很好奇,这是怎么做的?

出于好奇,建了一个test.md文件:

# Hello World! 
asdfa 
asd 
*斜体文本* 
**粗体文本** 
***斜粗体文本*** 
分隔线(如下) 
***
* * *
****
- - -
-----------
GOOGLE.COM 
~~删除线~~ 
<u>下划线</u>

JS加载解析Markdown文档过程详解

用浏览器打开之后,结果就被原封不动的输出来了,浏览器根本不会解析这玩意... 跟阮老师的blog相差好大啊~呵呵~还是太天真了!

然后,发现:

JS加载解析Markdown文档过程详解

原来markdown文本还是需要用marked.js这么一个库来解析的!于是乎,依葫芦画个瓢

<!doctype html>
<html>
<head>
 <meta charset="utf-8"/>
 <title>md文档内容转成html显示</title>
</head>
<body>
 <div id="content" style="width: 500px;height: 500px;overflow: auto"></div>
 <div style="margin-top: 30px">
   <form name="form" action="" method="post">
    <select name="q">
      <option value="md/gs.md">公式</option>
      <option value="md/test.md">第一个Markdown文档</option>
    </select>
    <input type="button" value="显示" onclick="showMarkdown()">
  </form>
 </div>
 <script type="text/javascript" src='https://cdn.jsdelivr.net/npm/marked/marked.min.js'></script>
 <script type="text/javascript">
   function showMarkdown() {
     var f = form;
     var xmlhttp;
     if (window.XMLHttpRequest) {
       xmlhttp = new XMLHttpRequest();
     } else {
       xmlhttp = new ActiveXObject('Microsoft.XMLHttp');
     }

     xmlhttp.onreadystatechange = function() {
       if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
         document.getElementById('content').innerHTML = marked(xmlhttp.responseText);
       }
     }

     // 向服务器发送请求
     xmlhttp.open('GET', f.q.value, true);
     xmlhttp.send();
   }
 </script>
</body>
</html>

于是就有了下面的样子:

JS加载解析Markdown文档过程详解

原理就是用ajax请求,取到 .md文件里的内容,再通过marked.js提供的marked()方法将markdown语法的文本转成html文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
详解JavaScript基于面向对象之继承
Dec 13 Javascript
修改js confirm alert 提示框文字的简单实例
Jun 10 Javascript
js中 计算两个日期间的工作日的简单实例
Aug 08 Javascript
微信小程序 视图容器组件的详解及实例代码
Jan 19 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 #Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 #jQuery
jQuery AJAX应用实例总结
May 19 #jQuery
单线程JavaScript实现异步过程详解
May 19 #Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 #Javascript
JS使用for in有序获取对象数据
May 19 #Javascript
基于js实现数组相邻元素上移下移
May 19 #Javascript
You might like
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
js实现弹窗效果
2020/08/09 Javascript
python正则表达式面试题解答
2020/04/28 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
python requests库的使用
2021/01/06 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
精彩的大学生自我评价
2013/11/17 职场文书
九年级物理教学反思
2014/01/29 职场文书
护理专业自我鉴定
2014/01/30 职场文书
12月红领巾广播稿
2014/02/13 职场文书
创先争优个人承诺书
2014/08/30 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
停电放假通知
2015/04/14 职场文书
地道战观后感300字
2015/06/04 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫