22

前端如何实现.md文件转换成.html文件

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzI0MzIyMDM5Ng%3D%3D&%3Bmid=2649830907&%3Bidx=2&%3Bsn=f180d6dbd5414d5d68b190ce58570ecc
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

qyYfmij.gif!mobile

.md文件是markdown的一种标记语言,和html比较起来,更简单快捷,主要体现在:标记符的数量和书写上。

标记符的数量:html文档需要用到数量繁多的标记符,再辅以css来控制样式和排版,而markdown文档只需要四个基本的标记符号就能完成同样的事。

标记符的书写:HTML文档内容需要同时标记开始和结束这是一个网页,而markdown文档则只要在开始位置标记即可# 这是一个md文档。

下面介绍如何实现将.md文件转换成.html文件。

方式一:使用i5ting_toc插件

需要先安装npm(安装node.js后会自带npm),然后才能安装i5ting插件:

<span>npm install i5ting_toc -g</span>

执行命令行生成html文件,在输入前要进入到对应根目录下:

<span>i5ting_toc -f **.md</span>

需要注意的是:写md文档的特殊符号时记得添加空格。

小技巧:如何快速在当前目录打开cmd?选择当前目录,按住shift,然后鼠标右键在此处打开命令窗口(在此处打开powerShell窗口)。

方式二:使用gitbook

同样先需要安装node,然后运行

<span>npm i gitbook gitbook-cli -g</span>

生成md文件,这个命令会生成相应的md的文件,然后在相应的文件里写你的内容即可:

<span><span>gitbook</span> init</span>

md转html,生成一个_doc目录,打开就可以看到你html文件了。

<span><span>gitbook</span> build</span>

方式三:利用前端代码

实现原理是采用node.js搭建服务器,读取md文件转化为html片断。浏览器发送ajax请求获取片段后再渲染生成html网页。  

node代码

var express = require('express');
var http = require('http');
var fs = require('fs');
var bodyParser = require('body-parser');
var marked = require('marked'); // 将md转化为html的js包
var app = express();


app.use(express.static('src')); //加载静态文件
var urlencodedParser = bodyParser.urlencoded({ extended: false });


app.get('/getMdFile',urlencodedParser, function(req, res) {
var data = fs.readFileSync('src/test.md', 'utf-8'); //读取本地的md文件
res.end(JSON.stringify({
body : marked(data)
}));
} );


//启动端口监听
var server = app.listen(8088, function () {
var host = server.address().address;
var port = server.address().port;
console.log("应用实例,访问地址为 http://%s:%s", host, port)
});

前端 html:

<div id="content">
    <h1 class="title">md-to-HTML web app</h1>
    <div id="article">
    </div>
</div>
<script type="text/JavaScript" src="js/jquery-1.11.3.min.js"></script>
<script>
    var article = document.getElementById('article');
    $.ajax({
        url: "/getMdFile", success: function(result) {  
            console.log('数据获取成功');
            article.innerHTML = JSON.parse(result).body;
        }, error: function (err) {
            console.log(err);
            article.innerHTML = '<p>获取数据失败</p>';
        }
    });
</script>

本文完~ meUVJj7.jpg!mobile

最后

  • 欢迎加我微信(winty230),拉你进技术群,长期交流学习...

  • 欢迎关注「前端Q」,认真学前端,做个专业的技术人...

i2E7RrU.png!mobile

点个 在看 支持我吧

URNVfq.gif!mobile

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK