【NodeJs】如何将Markdown文件生成HTML文件在线浏览

经常用的编辑器是Markdown,有自带预览排版效果功能的,预览的是HTML网页,如果想要将它转换成HTML网页文件,要怎么做呢。

首先,借助Node的插件来做,在使用前,确保电脑已安装了NodeJS应用,

初始化项目

用VSCode或者HBuilderX开发工具建一个项目(文件夹),例如项目名如md_to_html

如果用VSCode开发工具,可以安装一个叫Markdown Preview的插件,打开md文件的预览窗口点鼠标右键菜单会看到自带一些功能,如下图,其中的HTML(offline)可以用
在这里插入图片描述
如果不采用上面的简单操作完成,那么继续往下看,

在项目跟目录下打开集成终端,输入以下命令,初始化配置

npm init

初始化项目完成,会看到生成了一个package.json文件,这是项目配置,例如下图
在这里插入图片描述

安装markdown-it

接着,输入以下命令,安装Node需要的工具库 markdown-it,

如下命令,安装完成会出现上图中的node_modules文件夹

npm install markdown-it --save

然后,写一个测试文件test.js,代码如下,同上图中的md_to_html.js文件

var fs = require('fs');
var markdowner = require('markdown-it');var md = new markdowner({html:true,prefix:'code-'
});console.time();var sourcedata = '# html world';var html = md.render(sourcedata||'');fs.writeFileSync('./test.html', html);console.timeEnd();

看上面的代码里, sourcedata就是存储的Markdown文档的内容,如果直接从文档中读取,可以改成代码如fs.readFileSync('./test.md')读取

生成HTML文件

输入命令,执行脚本应用,没错的话,会生成一个test.html文件,同上图中的md_to_html.html文件

node test.js

看看生成的HTML文件,源代码没问题,用浏览器打开就会报错,如下图
在这里插入图片描述

index.html这个文件名错了,但浏览器默认是打开这个文件的

浏览HTML文件

要放在web服务器上才行,解决打不开问题,就安装一个express框架Express 中文网,输入以下命令

npm install express --save

创建一个public文件夹,把生成的html文件放在这个文件夹里,

在项目根目录下写一个文件app.js,引入express框架的脚本,代码如下

const express = require('express')
const app = express()
const port = 3000app.use(express.static('public'))
app.get('/', (req, res) => {res.send('hello wolrd')
})app.listen(port, () => {console.log(`Example app listening on port ${port}`)
})

然后,输入以下命令,运行脚本app.js,就能打开一个web本地站点服务器
在这里插入图片描述

如上图所示,表示已正确打开web服务器

最后,打开浏览器,输入地址http://localhost:3000/md_to_html.html,这里在线预览成功了。

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux相关指令(上)

常见指令: 1 pwd:查看用户当前所在目录 以下面的路径为例: 2 ls:对于目录,该命令列出该目录下的所有子目录与文件。 对于文件,将列出文件名以及其他信息 ls-l(or ll):列…

【西安交通大学】:融合传统与创新的学府之旅

【西安交通大学】:融合传统与创新的学府之旅 引言历史与发展学校特色学科优势院系专业校园环境与设施学生生活与社团活动校友荣誉与成就未来发展展望总结🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注&…

Huge and Efficient! 一文了解大规模预训练模型高效训练技术

本文分为三部分介绍了大模型高效训练所需要的主要技术,并展示当前较为流行的训练加速库的统计。文章也同步发布在AI Box知乎专栏(知乎搜索 AI Box专栏),欢迎大家在知乎专栏的文章下方评论留言,交流探讨! 引…

效率与质量兼备的6个设计工具!

今天本文为大家推荐的这6个设计工具,将帮助设计师实现高效工作,同时也更好地展示自己的创作力,一起来看看吧! 1、即时设计 即时设计是一款国内的设计工具,它为设计师提供了非常多实用的设计功能和精致的设计素材&…

【C++】开源:grpc远程过程调用(RPC)配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍grpc远程过程调用(RPC)配置与使用。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜…

【转载+修改】pytorch中backward求梯度方法的具体解析

原则上,pytorch不支持张量对张量的求导,它只支持标量对张量的求导 我们先看标量对张量求导的情况 import torch xtorch.ones(2,2,requires_gradTrue) print(x) print(x.grad_fn)输出,由于x是被直接创建的,也就是说它是一个叶子节…

Linux查看内存的几种方法

PS的拼接方法 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head 进程的 status 比如说你要查看的进程pid是33123 cat /proc/33123/status VmRSS: 表示占用的物理内存 top PID:进程的ID USER:进程所有者 PR:进程的优先级别&#x…

python内置函数

https://www.runoob.com/python/python-built-in-functions.html https://www.runoob.com/python3/python3-function.html

【FLV】AVC+AAC的FLV解析过程及pts、dts计算

【flv解析】Audio Specific Config 协议及解析重新温习下flv的解析。针对h264 和aac 组成的FLV基础工具 从evbuffer 中获取数据是要同步删除的。看起来网络发来的flv是大端的数据。//进行大小端转换并取值 unsigned int getU32(evbuffer *buf) {unsigned char pbuf[4] = {

SSD寿命和写放大测试

一、简述 SSD寿命规格,业界标准为TBW,TBW指的是Terabyte Writteb写入的兆兆字节,也有定义为Total Bytes Written,SSD使用寿命结束之前指定工作量可以写入SSD的总数据量,用来表达固态硬盘的寿命指标。 因为 SSD 使用 N…

同步、异步、阻塞、非阻塞

一、概念 同步与异步(线程间调用)的区别:关注的是调用方与被调用方之间的交互方式。同步调用会等待被调用方的结果返回,而异步调用则不会等待结果立即返回,可以通过回调或其他方式获取结果。 阻塞非阻塞(…

腾讯云高IO型云服务器CPU型号处理器主频性能

腾讯云服务器高IO型CVM实例CPU处理器主频性能说明,高IO型云服务器具有高随机IOPS、高吞吐量、低访问延时等特点,适合对硬盘读写和时延要求高的高性能数据库等I/O密集型应用,腾讯云服务器网分享高IO型云服务器IT5和IT3的CPU处理器说明&#xf…

springboot集成

maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>org.apache.commons</groupId><artifactId>…

qt5.15.2 交叉编译总结

最近项目需要&#xff0c;qt源码需要交叉编译&#xff0c;以前对这块不是很熟悉&#xff0c;从开始的一脸懵逼到最终成功编译出qt源码库&#xff0c;还是有了很多收获&#xff0c;分享给大家&#xff0c;希望对大家有所帮助。 交叉编译详解 还是先说交叉编译的思想。这里我以…

优化 PHP 数据库查询性能

优化 PHP 数据库查询性能可以从以下几个方面入手&#xff1a; 使用索引&#xff1a;在数据库中创建适当的索引可以大大提高查询性能。索引可以加快数据的查找速度&#xff0c;特别是在大型数据库中。选择合适的数据类型&#xff1a;选择正确的数据类型可以减少存储空间的占用&…

wordpress我的个人网站搭建

WordPress介绍 WordPress是一个功能强大且易于使用的网站管理平台。它是基于PHP和MySQL构建的&#xff0c;可以在各种不同的主机上运行。 wordpress对服务器的要求 需求最低版本要求PHP7.4 或更高版本MySQL5.6 或更高版本Web服务器任意&#xff08;如&#xff1a;Apache、Ng…

在CSDN学Golang云原生(Kubernetes Service)

一&#xff0c;service的定义与基本用法 在 Kubernetes 中&#xff0c;Service 是一种抽象概念&#xff0c;用于定义一组 Pod 并为它们提供访问入口。通过 Service&#xff0c;您可以将多个 Pod 组合成一个逻辑单元&#xff0c;并使用标签选择器来确定哪些 Pod 属于该 Service…

一套流程6个步骤,教你如何正确采购询价

采购询价&#xff08;RFQ&#xff09;是一种竞争性投标文件&#xff0c;用于邀请供应商或承包商就标准化或重复生产的产品或服务提交报价。 询价通常用于大批量/低价值项目&#xff0c;买方必须提供技术规格和商业要求&#xff0c;该文件有时也称为招标书或投标邀请书。询价流…

git恢复删除的分支

1.查看被删除的分支 git remote prune --dry-run origin 被删除的分支是191 2.找到被删除分支的最后一次提交记录的commit SHA值 git reflog 最后一次提交的commit SHA值是3fa7532 3.恢复分支 git checkout -b xiaomeng 3fa7532 4.恢复成功后提交到远端&#xff0c;over&…

ubuntu20.04 安装 docker engine

打开docker官网 点击上图中间的Linux&#xff0c;会是这样&#xff1a; 点击上图的左边栏的 Docker Engine,点击install, 点击 Ubuntu&#xff0c;会是这样&#xff1a; 把页面翻下来&#xff0c;先按照 Insstallation methods 中的 set up thre repository&#xff0c;执行这些…