JS加載解析Markdown文檔過程詳解
網(wǎng)上有很多網(wǎng)站會(huì)通過.md文檔來做頁面內(nèi)容,很好奇,這是怎么做的?
出于好奇,建了一個(gè)test.md文件:
# Hello World! asdfa asd *斜體文本* **粗體文本** ***斜粗體文本*** 分隔線(如下) *** * * * **** - - - ----------- GOOGLE.COM ~~刪除線~~ <u>下劃線</u>
用瀏覽器打開之后,結(jié)果就被原封不動(dòng)的輸出來了,瀏覽器根本不會(huì)解析這玩意... 跟阮老師的blog相差好大啊~呵呵~還是太天真了!
然后,發(fā)現(xiàn):
原來markdown文本還是需要用marked.js這么一個(gè)庫來解析的!于是乎,依葫蘆畫個(gè)瓢
<!doctype html> <html> <head> <meta charset="utf-8"/> <title>md文檔內(nèi)容轉(zhuǎn)成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">第一個(gè)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); } } // 向服務(wù)器發(fā)送請(qǐng)求 xmlhttp.open('GET', f.q.value, true); xmlhttp.send(); } </script> </body> </html>
于是就有了下面的樣子:
原理就是用ajax請(qǐng)求,取到 .md文件里的內(nèi)容,再通過marked.js提供的marked()方法將markdown語法的文本轉(zhuǎn)成html文檔。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nodejs+axios爬取html出現(xiàn)中文亂碼并解決示例
- js+html+css實(shí)現(xiàn)簡單電子時(shí)鐘
- 使用Javascript在HTML中顯示實(shí)時(shí)時(shí)間
- JS+HTML實(shí)現(xiàn)經(jīng)典游戲吃豆人
- JavaScript markdown 編輯器實(shí)現(xiàn)雙屏同步滾動(dòng)
- JavaScript+Node.js寫一款markdown解析器
- js正則匹配markdown里的圖片標(biāo)簽的實(shí)現(xiàn)
- Vuejs中使用markdown服務(wù)器端渲染的示例
- 一文詳解JavaScript?如何將?HTML?轉(zhuǎn)成?Markdown
相關(guān)文章
JS實(shí)現(xiàn)即點(diǎn)即編輯功能代碼
以前在網(wǎng)上都看到過類似的功能,不過沒自己想要實(shí)現(xiàn)過,這次剛好做靜態(tài)頁面中有這樣的一個(gè)需求,就試著自己做做看,做完發(fā)現(xiàn)也不是什么很難的事情。2008-10-10微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)穿透和阻止?jié)L動(dòng)的方法
這篇文章主要介紹了微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)穿透和阻止?jié)L動(dòng)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較【冒泡、選擇、插入排序】
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較,結(jié)合實(shí)例形式詳細(xì)總結(jié)分析了javascript排序算法中的冒泡、選擇、插入等排序算法原理與操作技巧,需要的朋友可以參考下2019-02-02JavaScript實(shí)現(xiàn)AOP詳解(面向切面編程,裝飾者模式)
下面小編就為大家分享一篇JavaScript實(shí)現(xiàn)AOP的方法(面向切面編程,裝飾者模式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12JS的遞增/遞減運(yùn)算符和帶操作的賦值運(yùn)算符的等價(jià)式
JS的遞增/遞減運(yùn)算符和帶操作的賦值運(yùn)算符的等價(jià)式...2007-12-12