当前位置: 首页 > article >正文

Markdown转HTML

来源: https://juejin.cn/post/7310787455112445987

Markdown

一种简单易用的标记语言,旨在使纯文本格式化变得简单且易于阅读,它的设计目标是使文档易于阅读和书写同时保持格式的清晰和简洁

为什么会有Markdown转HTML的需求

尽管 Markdown 本身非常方便,但在某些情况下,将其转换为 HTML 是必要的
博客和网站:许多博客平台和静态站点生成器是使用markdown编写的内容,然后将其转换为HTML以在网页上展示
文档手册:技术文档、用户手册等经常使用 Markdown 编写,然后转换为 HTML 以便在网页上查看
等等

怎么转

EJS

一款强大的JavaScript引擎模板,它可以帮助我们在HTML中嵌入动态内容,文档地址:https://ejs.bootcss.com/

<% '脚本' 标签,用于流程控制,无输出。
<%_ 删除其前面的空格符
<%= 输出数据到模板(输出是转义 HTML 标签)
<%- 输出非转义的数据到模板
<%# 注释标签,不执行、不输出内容
<%% 输出字符串 '<%'
%> 一般结束标签
-%> 删除紧随其后的换行符
_%> 将结束标签后面的空格符删除

marked

Markdown解析器和编译器,它可以将Markdown语法转换为HTML标记

const marked = require('marked')
marked.parse(readme.toString()) //调用parse即可

BrowserSync

实时预览和同步您的网页更改

新建项目marked

新建文件夹marked,再执行npm init -y
分别安装ejs,marked,browser-sync

npm install ejs
npm install marked
npm install brower-sync

新建template.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><%=title %></title>
    <link rel="stylesheet" href = "./index.css"></link>
</head>
<body>
    <%- content %>
</body>
</html>

新建index.js

// 用于渲染ejs模板
const ejs = require('ejs'); 
// 读写文件
const fs = require('node:fs'); 
// markdown解析器和编译器,将markdown语法解析为html标记
const marked = require('marked'); 
// 同步读取README.md'件全部内容
const readme = fs.readFileSync('README.md');
// 启动本地服务器实时预览和同步网页的更改
const browserSync = require('browser-sync'); 
// 定义打开浏览器的函数
const openBrowser =  () => {
    // 创建一个浏览器同步实例
    const browser = browserSync.create()
    browser.init({
        server: {
            baseDir: './',//设置基础目录为当前目录
            index: 'index.html',//设置默认页面为 index.html
        }
    })
    return browser
}
// 渲染template.ejs模板,并将markdown内容作为参数传递给模板
ejs.renderFile('template.ejs', {
    content: marked.parse(readme.toString()),
    title:'markdown to html'
},(err,data)=>{
    if(err){
        // 如果出现错误打印错误信息
        console.log(err)
    }
    // fs创建一个写入流
    let writeStream = fs.createWriteStream('index.html')
    // 将渲染后的html内容写入到index.html文件中
    writeStream.write(data)
// 结束写入
    writeStream.end()
    // 监听写入完成事件,调用回调函数,打开浏览器
    writeStream.on('finish',()=>{
        openBrowser()
    })
})     

执行node index.js目录下就会生成index.html,并在浏览器打开


http://www.kler.cn/a/382698.html

相关文章:

  • 安全工程师入侵加密货币交易所获罪
  • 【网络】自定义协议——序列化和反序列化
  • 实现GUI界面中的logo图片的编码与隐藏
  • ElasticNet Regressor(弹性网络回归) --- 论文实战
  • 掌握歌词用词技巧:写歌词的方法与艺术表达,妙笔生词AI智能写歌词软件
  • 机器学习—前向传播的一般实现
  • 前深度学习时代-经典的推荐算法
  • 《JVM第7课》堆区
  • qt QTextStream详解
  • ssm基于Web的汽车客运订票系统的设计与实现+vue
  • 解决return code from pthread_create() is 22报错问题
  • 《运维网络安全》
  • 对比Java和TypeScript中的服务注册和查找机制
  • 在 JavaScript 中,`Array.prototype.filter` 方法用于创建一个新数组,该数组包含通过测试的所有元素
  • 机器人助力Bridge Champ游戏:1.4.2版本如何提升玩家体验
  • java 实训第12天 (git版本控制继续)
  • 【无标题】特征降维的常见方法
  • 3D互动+AR试戴,重塑线上珠宝营销新体验!
  • 【题解】—— LeetCode一周小结44
  • 效果框架(效果ID3DXEffect)
  • ML 系列:机器学习和深度学习的深层次总结( 19)— PMF、PDF、平均值、方差、标准差
  • 浮动路由:实现出口线路的负载均衡冗余备份。
  • 【软考】错题分析1105
  • ONLYOFFICE 8.2深度测评——助力自动化办公
  • 2024系统架构师---论软件系统架构风格论文
  • Linux grep命令详解(多图、多示例)