网站首页 > 技术文章 正文
前言
大家好,我是汪小成。
最近发现了一个非常优秀的Markdown编辑器,可以将Markdown即时渲染成微信公众号图文,让我们不用再为微信公众号排版发愁。只要你会基本的 Markdown 语法,就能做出一篇样式简洁而又美观大方的微信图文。
项目源码地址:
https://github.com/doocs/md
编辑器在线体验地址:
https://doocs.github.io/md/
使用谷歌浏览器打开编辑器效果更佳。
编辑器功能特性
- 支持Markdown所有基础语法、数学公式
- 支持mermaid图表渲染
- 提供了丰富的代码块高亮主题
- 允许自定义主题色和CSS样式,灵活个性化定制展示效果
- 支持阿里云、腾讯云、七牛云等多种图床,也支持自定义图床
- 支持文件导入、导出
我体验了一下,很是满意。
正好自己有云服务器,就按照文档中的部署流程在自己的服务器上部署了一套,访问地址是:https://md.ddcherry.cn 。
有兴趣的朋友可以体验一下。
效果图预览
下面来说一下私有化部署。
私有化部署
前置条件
- 一台云服务器
- Nginx:
- 域名(可选)
部署步骤
1、下载源码
git clone https://github.com/doocs/md.git
在命令行中执行上面的命令下载项目源码。
2、安装项目依赖
# 安装依赖
npm i
3、构建项目
# 构建项目(无/md前缀)
npm run build:h5-netlify:only
从项目的package.json中可以看到项目是有两种构建方式:
- npm run build:only:带/md前缀
- npm run build:h5-netlify:only:不带/md前缀
我使用的是这种构建方式,因为我是直接给项目分配了一个子域名。
构建成功后会在项目跟目录下生成dist文件夹。
4、上传至云服务器
将dist文件夹上传到云服务器。
笔者要存放的的云服务器位置是
/www/wwwroot/md.ddcherry.cn/dist。
为了之后上传方便,我编写了一个deploy.sh文件,每次执行sh deploy.sh命令直接自动构建、自动上传至云服务器。
deploy.sh文件中上传dist文件夹到云服务器的代码如下:
# 定义变量
SERVER_IP="你的服务器IP"
SERVER_USER="登录用户名"
SERVER_PASS="密码"
REMOTE_PATH="云服务器项目存放目录"
LOCAL_DIST="dist"
sshpass -p "$SERVER_PASS" rsync -avz --delete $LOCAL_DIST/ $SERVER_USER@$SERVER_IP:$REMOTE_PATH/
5、域名解析(可选)
登录自己的账号配置域名解析。
6、配置Nginx
修改Nginx配置文件,添加项目配置。
笔者云服务器上之前安装了宝塔面板,所以直接使用宝塔部署了项目,没有手动配置Ngnix。这一块就不贴代码了,防止误导读者。
这样就可以通过域名访问项目啦。
后期计划
- 个性化:根据自己的喜好、审美修改项目代码
猜你喜欢
- 2025-07-23 零基础入门AI智能体:智能体介绍(智能体类型)
- 2025-07-23 最新PDF转markdown软件MonkeyOCR整合包,文档图片解析工具
- 2025-07-23 Python轻松实现markdown转网页,完美支持mermaid图表、latex公式
- 2025-07-23 iPadOS 26备忘录再升级:支持通话录音转录、Markdown导出
- 2025-07-23 一款能打破 Markdown 天花板的神器 —— Quarkdown
- 2025-07-23 网上的好文章,一键转存成 Markdown,永久阅读!
- 2025-04-26 3款 .NET 开源的编辑器,包含代码、文本和Markdown编辑功能!
- 2025-04-26 Markdown 格式如何转换成 Word?
- 2025-04-26 jupyter lab修改默认文件目录
- 2025-04-26 PDF文件转markdown格式软件Marker1.6.1版整合包下载
- 1517℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 594℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
-
- PS所有滤镜的说明(六)(ps滤镜详解)
- 5款小白也能用的在线图片编辑器!电商效率飙升就靠它!
- Java变量(java变量有什么作用)
- Java面试常见问题:Java注解(java中的面试题)
- Java编程入门第一课:HelloWorld(java编程从入门到实践)
- Java基础教程:Java继承概述(java里继承的概述)
- java基础之——访问修饰符(private/default/protected/public)
- 如何规划一个合理的JAVA项目工程结构
- 将机器指令翻译成 JavaScript -- 终极目标
- Web 服务器基准测试:Go vs. Node.js vs. Nim vs. Bun
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)