HTML转为md,使用node将md转义为html

想将md转义为html,本质上就是利用正则将md语句转义为html语句,这里我们利用现有的转义库 marked

首先

新建一个空的仓库 mdToHtml

mkdir mdToHtml

cd mdToHtml/

npm init

下载marked, 新建文件

npm i marked

touch index.js

touch test.md

test.md

### 标题

index.js

// 首先引入我们需要用到的模块

const fs = require("fs")

const path = require("path")

const marked = require("marked")

// md文件路径

const filepath = path.join(__dirname, 'test.md')

// fs 读取文件内容

fs.readFile(filepath, "utf8", (err, data) => {

if (err) {

console.log(err);

return;

}

let html = marked(data);

console.log(data, html)

})

打开控制台输入 node index.js

a84ece8aeb2d

image.png

现在已经将md语句转换为html标签了,接下来,我们那用模版字符串,生成一个完整的html页面

首先下载ejs

创建模版字符串

const ejs = require('ejs')

const template = `

Md to Html

`

let pageHtml = ejs.render(template,{html})

console.log(data, html,pageHtml)

内容已经产生了,结下来就需要生成文件,并将内容写入文件了,还是利用fs模块

// fs.mkdir 创建目录

fs.mkdir('Public', function (error) {

if (error) {

console.log(error);

return false;

}

console.log('创建目录成功');

})

//fs.writeFile 写入文件(会覆盖之前的内容)(文件不存在就创建) utf8参数可以省略

fs.writeFile('Public/index.html', pageHtml, 'utf8', function (error) {

if (error) {

console.log(error);

return false;

}

console.log('写入成功');

})

运行脚本

a84ece8aeb2d

image.png

生成如下目录

.

├── Public

│ └── index.html

├── README.md

├── index.js

├── node_modules

│ ├── ejs

│ └── marked

├── package-lock.json

├── package.json

└── test.md

查看Public/index.html文件

a84ece8aeb2d

image.png

浏览器中查看

a84ece8aeb2d

image.png

更方便一点,我们可以用fs的监听md文件的变化,自动执行脚本

fs.watch(filepath,( function () {

var count = 0;

return function(){

count++;

console.log("文件" + filepath + " 内容刚刚改变。。第" + count + "次" );

// todo

})

fs.watch的最大缺点就是不支持子文件夹的侦听,并且在很多情况下会侦听到两次事件(很多编辑器在保存的时侯是先把原文件清空,再进行保存,因此会触发两次文件夹改变事件)。因此需要一些开源的模块来监听文件夹目录的改变。感兴趣的同学可以自己找一下解决方案。

完整代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值