【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

SSD寿命和写放大测试

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

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

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

springboot集成

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

wordpress我的个人网站搭建

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

一套流程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;执行这些…

pytorch工具——认识pytorch

目录 pytorch的基本元素操作创建一个没有初始化的矩阵创建一个有初始化的矩阵创建一个全0矩阵并可指定数据元素类型为long直接通过数据创建张量通过已有的一个张量创建相同尺寸的新张量利用randn_like方法得到相同尺寸张量&#xff0c;并且采用随机初始化的方法为其赋值采用.si…

压力测试-商场项目

1.压力测试 压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷&#xff0c;是通过搭建与实际环境相似的测试环境&#xff0c;通过测试程序在同一时间内或某一段时间内&#xff0c;向系统发送预…

项目:点餐系统1

项目简介&#xff1a;实现一个http点餐系统服务器&#xff0c;能够支持用户在浏览器访问服务器获取餐馆首页&#xff0c;进行菜品以及订单管理。 具体模型如下&#xff1a; 用户分类&#xff1a; 管理员&#xff1a;进行订单以及菜品管理&#xff08;菜品&订单的增删改查&a…

STM32MP157驱动开发——按键驱动(异步通知)

文章目录 “异步通知 ”机制&#xff1a;信号的宏定义&#xff1a;信号注册 APP执行过程驱动编程做的事应用编程做的事异步通知方式的按键驱动程序(stm32mp157)button_test.cgpio_key_drv.cMakefile修改设备树文件编译测试 “异步通知 ”机制&#xff1a; 信号的宏定义&#x…

protobuf安装教程

protobuf安装 一&#xff0c;Windows下安装下载protobuf配置环境变量检查是否安装成功 二&#xff0c;Linux下安装下载protobuf安装protobuf检查是否安装成功 一&#xff0c;Windows下安装 下载protobuf 下载地址 本次下载以v21.11为例&#xff0c;根据自己需求下载即可。 配…