将markdown格式的changeLog转换为HTML文件

浅浅的花香味﹌ 2022-05-20 00:43 350阅读 0赞

将markdown格式的changeLog转换为HTML文件

主要是用marked.js来实现markdown文本的解析

1.安装marked.js

  1. npm install marked --save

2.需要转换成HTML的markdown文件

  1. <a name="1.1.4"></a>
  2. ## 1.1.4 (2018-05-15)
  3. ### Bug Fixes
  4. * 修改了登录界面的样式
  5. ### Features
  6. * 增加了访客模式的功能(需要验证码登录)
  7. <a name="1.1.3"></a>
  8. ## 1.1.3 (2018-05-10)
  9. ### Bug Fixes
  10. * 调整角色栏的样式为自适应
  11. ### Features
  12. * 增加menu根据权限显示的功能
  13. * 角色栏设置成可配置项目
  14. * 设置角色栏为不可选
  15. * 增加登录页面“记住我”的功能
  16. <a name="1.1.2"></a>
  17. ## 1.1.2 (2018-05-09)
  18. ### Bug Fixes
  19. * 调整页面的样式:
  20. 1. 调整swiper-slide整版显示数目
  21. 2. 调整menu和swiper 为自适应
  22. * 解决缩小页面无法正常显示的bug
  23. ### Features
  24. * 增加支持4K的标识
  25. * 增加权限功能
  26. <a name="1.1.0"></a>
  27. ## 1.1.0 (2018-05-07)
  28. ### Bug Fixes
  29. * 安装Bable Polyfill,使其兼容IE
  30. ### Features
  31. * 增加copyright
  32. * 优化页面部分样式
  33. * 增加swiper的功能

3.用于生成HTML文件的模板

模板里的@markdown是用来替换的,可以在<head>中引入css样式

changeLog.css文件可以自己定义。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>ChangeLog</title>
  6. <link href='./css/changeLog.css' rel='stylesheet' type='text/css' />
  7. </head>
  8. <body class='typora-export os-windows'>
  9. <div id='write' class = 'is-node'>
  10. @markdown
  11. </div>
  12. </body>
  13. </html>

4.markdown自动生成HTML文件的脚本

调用marke("md")就能解析markdown文本, 用fs.watchFile实时监听,如果markdown文件被修改,可以实时更新HTML里面的内容,生成HTML文件的路径和名字都可自定义

  1. const fs = require('fs');
  2. const marked = require('marked');
  3. var path = require('path');
  4. let fileArray = path.resolve(__dirname, '../CHANGELOG.md');
  5. function changeLog(filePath) {
  6. fs.watchFile(path.resolve(__dirname, '../CHANGELOG.md'), (curr, prev)=> { // 读取HTML模板文件 fs.readFile(path.resolve(__dirname, '../static/changeLog/template.html'), 'utf8', (err, template) => { if (err) { throw err; } else { fs.readFile(filePath, 'utf8', (err, markContent) => { if (err) { throw err; } else { let htmlStr = marked(markContent.toString()); template = template.replace('@markdown', htmlStr); //用来去掉issue的超链接,可以参考 template = template.replace(/\(<a.*>\)/g, ''); template = template.replace(/\(\[.*\)/g, ''); template.match(/((<a.*href.*">)((\d\.)+[\d]+)(<\/a>))/); // console.log(RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$4); template = template.replace(RegExp.$1,RegExp.$3); //输出HTML文件 fs.writeFile(path.resolve(__dirname, '../static/changeLog/CHANGELOG.html'), template, err => { if (err) { throw err; } else { console.log("success"); } }) } }) } }) }) } (function changeFile() { changeLog(fileArray); })();

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Excel文件转换Html

    背景 我的工作有时会涉及到财务数据的处理。我们大家都知道,Excel文件在处理数据中很流行并且被广泛使用。Excel让我们可以将存储在里面的数据进行数学计算。我在工作中使