node.js实现markdowm转换成HTML

nodejs将md文件转为html文件 作为一名程序员;难免要写markdown文档; 但是写出来的md文档如果发给没装markdown阅读器的同事来看的话;就看起来太难受了; 于是就简单写了点脚本;一键将md文件转为html; 阅读详情

使用到的第三方包介绍

var marked = require('marked');
console.log(marked('I am using __markdown__.'));
// Outputs: <p>I am using <strong>markdown</strong>.</p>
  • browser-sync包 http://www.browsersync.cn/
    功能是将根目录自动启动服务器,监听服务器中指定文件,当文件内容发生改变时,自动刷新浏览器;
    例如:
// 引用 browser-Sync 模块
var browserSync = require("browser-sync");

// 将./app这个目录启动为服务器
browserSync({server: "./app"});

// 调用reload方法,刷新./app下文件core.css,注意传入的是文件名,不是路径
browserSync.reload("core.css");

当在命令行运行入口js文件时,自动启动服务器,监听3000端口
这里写图片描述


使用到的重要内置核心API



实现思路:

  1. 监听markdown文件是否发生变化
  2. 如果发生变化,读取md文件,并调用marked函数,将内容转换成HTMLconent
  3. 设计HTML模版,模版预留{{{style}}}和{{{content}}}
  4. 并将CSS文件读取写入模版,替换{{{style}}}
  5. 将HTMLconent替换{{{content}}}
  6. 启动browser-Sync服务器,进行浏览器自动刷新



具体代码

//Mrakdown文件自动转换
const fs = require('fs');
const path = require('path');
const util = require('util');
const marked = require('marked');
const browserSync = require("browser-sync");


var template = `<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <title>MD转HTML</title>
    <style>{{{style}}}</style>
</head>
<body>
  <div class="vs">
    {{{content}}}
  </div>
</body>
</html>`;
//接受需要转换的文件路径
const target = path.join(__dirname, process.argv[2] || '../README.md');

// 启动浏览器自动刷新服务器
browserSync({server: path.dirname(target)});

//监视文件变化
fs.watchFile(target, (curr, prev) => {
    console.log(`current file's stats: ${curr.size},previous file's stats: ${prev.size}, `);
    // 判断文件到底有没有变化
    if (curr.mtime === prev.mtime) {
        return false;
    }
    // 读取md文件转换成HTML
    fs.readFile(target, 'utf8',(error, content) => {
        if (error){
            throw error;
        }
        var html = marked(content);
        fs.readFile(path.join(__dirname, './github.css'), (error, css) => {
            html = template.replace('{{{content}}}', html).replace('{{{style}}}', css);
            // 将拼接好的HMTL文件保存在当前md文件目录里
            var filename = target.replace('.md', '.html');
            fs.writeFile(filename, html, 'utf8', () => {
                console.log('completed');
                browserSync.reload(path.basename(filename));
            });
        })

    });
});
常无欲以观 CAP 之妙,常有欲以观企业应用之徼 摘要: 在 SAP CAP 项目开发中,技术欲望常导致过早陷入微服务、事件驱动等技术细节,而忽视业务本质。CAP 的核心价值在于引导开发者回归业务语言与领域模型,通过 CDS 建模捕捉业务骨架而非数据库表结构。开发初期应保持「无欲」——专注领域对象与关系,让业务逻辑自然呈现;后期则需「有欲」——明确服务边界、权限控制等系统约束。CAP 的妙处在于平衡声明式建模与命令式扩展,避免过度技术化,真正实现「以业务观技术」而非「以技术扭曲业务」。 阅读详情

相关推荐

无为而无不为,SAP HANA 开发里的少写、少搬、少惊动

摘要:本文探讨了SAP HANA开发中的"无为"理念,强调数据建模应避免不必要的复杂层级和冗余处理。作者指出,许多性能问题源于过度设计,如多层临时表、重复汇总等,而真正高效的HANA开发应让数据在最适合的位置完成最少的操作。文章提出三个关键点:1)减少不必要的数据搬运,充分利用HANA的列式存储和聚合能力;2)通过语义建模让字段自带业务含义,减少重复解释;3)合理分层建模,保持各层职责清晰。理想的HANA开发不是写得越多越好,而是精准判断哪些逻辑应由数据库原生完成,哪些应留在应用层。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1111

在vue中使用marked解析markdown文件

1、安装marked npm install marked 2、在Vue中引用 <template> <div> <div v-html="output" class="html_output"></div> </div> </template> <script> import { marked } from "marked"; // 局部导入marked包 export default { nam

♀我爱摇滚,更爱金属乐♀ 3464

网络可视化工具netron详细安装流程

netron安装目录1.netron 简介2.不同操作系统下的安装使用方式2.1 在线版本:只要有浏览器就可以2.2 不同操作系统安装使用3.netron支持的网络框架4.netron测试演示 1.netron 简介 在实际的项目中,经过会遇到各种网络模型,需要我们快速去了解网络结构。如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构。 这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入输出,网络总体的架构,而且支持各种不同网络框架,简单好用。 2.不同操作系统下的安装使用方式 2.1

江南研习社 12万+

Marked: 一款高效、轻量级且全功能的Markdown解析器

它以其出色的性能、轻量级的体积和全面的功能支持而广受开发者们的喜爱。如果你正在寻找一款优秀的Markdown解析器,那么Marked绝对是一个值得考虑的选择。在Web开发中,Markdown已成为一种流行的轻量级标记语言,它允许人们使用简单的文本格式编写文档,并可轻松转换为HTML。Marked以其速度、轻量级和全面的功能支持而脱颖而出,成为开发者们的首选工具。:尽管Marked实现了所有支持的Markdown风格和规范中的功能,但它的体积仍然保持得很小。:Marked不支持IE11浏览器。

2800

豆包大模型API调用两种方法

ps: 因为是自用,所以这里图方便采用硬编码密钥的形式;如果有需求/安全风险,建议参考官方教程设置ARK_API_KEY环境变量的方式。坏处是:看别人的教程走了一大圈弯路hh;基础调用的话方法一就可以满足了,也比较方便快捷,容易上手。将 <Model> 替换为 Endpoint ID即可。创建就按照提示填写信息就行,需要实名认证,有免费额度。绿框框里就是Endpoint ID。

kkkkkkkkkasey的博客 1万+

ARM Cortex平台NEON指令集优化实战指南

本文为ARM Cortex平台开发者提供了一份全面的NEON指令集优化实战指南。文章从NEON的SIMD架构原理讲起,详细介绍了开发环境搭建、NEON内联函数与自动向量化两种核心编程方法、关键数据类型与指令,并通过图像饱和运算、矩阵乘法等实战案例,深入解析了性能调优技巧与常见避坑指南,旨在帮助开发者充分释放ARM处理器的并行计算潜力。

weixin_29162439的博客 260

用nodejs将markdowm文件转换成html页面

转载于:https://www.cnblogs.com/xiaoluoli/p/7078425.html

weixin_30678821的博客 249

LuaJit分析(十一)去除string.dump函数

因此即使我们的指令顺序被打乱,通过loadfile系统调用,再通过string.dump调用,可以得到字节码文件,再通过与标准的luajit生成的字节码文件比对,即可找出差异所在。Lua脚本中的string.dump函数用于生成字节码文件,根据对 luajit -b命令的分析可以得出,最终dump出字节码文件都是使用的string.dump函数。同时lj_libdef.h和lj_ffdef.h这两个文件都是自动生成的,在msvcbuild.bat中,使用如下命令生成。

a545958498的博客 1132

Markdown to PDF 转换器项目推荐

Markdown to PDF 转换器项目推荐 markdown-pdf :page_facing_up: Markdown to PDF converter 项目地址: https://gitcode.com/gh_mirro...

gitblog_00007的博客 501

STM32H743 ADC多通道采样实战:CubeMX配置+DMA传输避坑指南

本文详细介绍了STM32H743 ADC多通道采样的实战配置,包括CubeMX参数设置、DMA传输优化及常见问题解决方案。重点解析了ADC模块的核心特性、多通道采样序列配置、Cache一致性处理等关键技术,帮助开发者高效实现稳定可靠的模拟信号采集系统。

weixin_29175469的博客 611

【网络与爬虫 44】Canvas指纹伪造技术:突破浏览器图形渲染检测的终极指南

Canvas和WebGL指纹是现代反爬虫系统中最难绕过的检测技术之一,它们通过分析浏览器图形渲染的细微差异来识别用户设备。本文将深入解析Canvas和WebGL指纹的工作原理,探讨其在反爬虫检测中的应用,并提供多种有效的伪造和绕过策略,帮助开发者理解并应对这些高级检测技术。

熵数实验室 1206

打造一个 Markdown 编辑器:Electron 项目实战教程

如何搭建一个完整的 Electron 应用;使用与ipcMain实现文件交互;利用markedDOMPurify实现 Markdown 渲染与防注入;构建一个跨平台可用的 Markdown 编辑器。

2501_91537388的博客 1034

零基础学写《扫雷》游戏(Qt扫雷源码)

扫雷游戏是在windows系统中自带的游戏,他的游戏玩法其实很简单,20世纪初期电脑上没有啥游戏可以玩,所以扫雷游戏也算是当时是最常火爆的一个电脑游戏。以下文章详细介绍扫雷游戏的实现。实现语言为C++。

啊渊的专栏 1万+

学习计划

要学的技术 markdown git+github node+koa+gulp+less+ejs es5+es6+jQuery css+css3+bootstrap html+html5+jade createjs vue.js ps 要读的书 高性能JavaScript JavaScript高级程序设计(第三版) JavaScriptDOM编程艺术 要做的事情 通过仿站来提高自己的html+css

LXQSW的博客 446

IEC104协议学习专栏内容规划

IEC104协议的编程学习

sixtome 1110

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NPM 使用介绍

转载自下面的链接 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。

技术之路 778

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

React + Node.js『markdown 笔记本 』项目

该项目的主要功能是增删改查笔记,笔记可以使用 markdown 语法编写,笔记内容展示 markdown 语法编译后内容。

ladream的博客 948

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【marked】使用记录

导读:现在越来越多的项目接入了大模型,增加了AI问答的功能模块,前端需要展示类似于Markdown的格式的数据,Marked这个组件使用非常简单,能够直接将数据渲染到浏览器并且保留格式,还可以实现交互。这里记录一下使用过程。

qq_35227244的博客 649

Nodejs 第二十三章(Markdown 转 html)

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。即变量如果包含 ‘<’、‘>’、'&'等HTML字符,会被转义成字符实体,像。不会解析HTML标签,也不会将字符转义后输出。会转义HTML字符,那如果我们就是想输出一段HTML怎么办呢?html代码有了 但是没有通用的markdown的通用css。里面可以写任意的 js,用于流程控制,无任何输出。,为的是避免对输出的 HTML 代码做转义处理。通常用于输出富文本,即 HTML内容。,最好保证里面内容不要有HTML字符。

qq1195566313的博客 2384

【解决安装的marked包运行显示marked is not a function的问题】

【解决安装的marked包运行显示marked is not a function的问题】 这是npm包管理工具部分的练习,安装marked并进行测试查看效果。 按照步骤,我正确安装了marked,但在测试中报错:marked is not a function。 在自己能力范围内,并没有找到出错的原因,步骤都是按照视频流程进行的,感觉是无误的。最后请教老师,才解决了问题。 解决方法: 一:对exports进行说明: exports对象是当前模块的导出对象,⽤于导出模块公有⽅法和属性。 别的模块通过r

lt012345的博客 5570

Node下几十行代码实现炫酷的Markdow转HTML效果

经过一个阶段测试,终于找到两个 markdown 转 html 并实现代码高亮的工具,并以最简代码(几十行)实现了炫酷的展示效果。步骤很少,也很简单,零基础也应该一看就会。往下看吧......,需要安装有Node环境哦!

weixin_42398461的博客 1577

node.js require 自动执行脚本 并生成html,Node使用Selenium进行前端自动化操作的代码实现...

前言:最近项目中有类似的需求:需要对前端项目中某一个用户下的产品数据进行批量的处理。手动处理的流程大概是首先登录系统,获取到当前用户下的产品列表,点击产品列表的中产品项进入详情页,对该产品进行一系列的操作,然后保存退出。因为当前有20多万条数据,手动一条一条的处理不太现实,所以希望通过写脚本的方式来进行处理。需求分析其实这个需求还算比较简单,需要实现的点主要有三个,一是如何进行登录,获取登录信息,...

weixin_33328904的博客 522

使用marked和highlight.js对GPT接口返回的代码块渲染,高亮显示,支持复制,和选择不同的高亮样式

使用marked和highlight.js对GPT接口返回的代码块渲染,高亮显示,支持复制,和选择不同的高亮样式

burgessbin的博客 7043

nodejs开发html,nodejs 简单实现动态HTML的方法_白泊_前端开发者

动态替换1.实现的功能及原理实现了将,用户表单的数据,与原理:通过正则表达式,替换replace(正则表达式,value)的方式替换掉原模板数据,并输出到客户端。2.主要用到的方法和模块2.1文件操作模块 var fs=require(“fs”);方法:2.1.1 异步读取文件的方法fs.readFile(path,callback);参数说明:path:文件的路径(包含文件名称)callback...

weixin_33572707的博客 1698

Nodejs创建HTML、CSS、JS页面

const express = require('express'); const app = express(); const hostname = '127.0.0.1'; const port = 8999; const host = hostname + ':' + port; /** * 封装get请求 * @param {object} params 配置项 * @param ...

lihefei_coder的博客 4285

【vue+marked】marked

vue使用marked,以及相关问题

Qxn530的博客 5043
上一篇: 用node.js实现require.js
下一篇: node.js表单处理和文件上传
景洪在编程
博客等级 码龄9年 13粉丝 63原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值