网站首页 > 技术文章 正文
mdnice 是啥
参考官方站点 https://mdnice.com/
可以很方便地用markdown编写各种文章,并支持复制到公众号等平台。
不过官方的需要登录,还需要会员。
查了下,这个是开源的,不过很久没更新了。 具体开源的版本支持什么可以部署起来看下。开源地址:https://github.com/mdnice/markdown-nice
基本环境信息
这个开源的版本上一次更新都是2019年左右了。这期间,nodejs已经更新到20版本了,里面的很多包还是很老的,在node20的版本安装会各种错误。
笔者实验了20,18,16还有14的很多版本,都出现包依赖错误(本身也不是前端出生,所以没有去调原始的代码)
最终测试了,node 14.18.2 版本可以将git上master的这个分支代码部署起来。
整个环境的信息如下:
硬件:windows wsl2
操作系统:ubuntu 22.04
node版本:v14.18.2
npm版本:6.14.15
部署步骤
- git上拉取代码
git clone https://mirror.ghproxy.com/https://github.com/mdnice/markdown-nice.git
拉取下来,目录结构如下
- 安装
cd markdown-nice
# 很多文章直接写了npm install,但是我这里出现软件包的安装报错
# 这里单独安装了husky这个包
npm install husky@3.1.0 --ignore-scripts
npm install
- 启动
npm run start
启动成功之后,可以通过http://ip:3000端口来进行访问
但是这里发现一个问题,没有主题。只有默认的主题,官方参考的各种各主题都没有。
主题补全
参考这里,进行主题补全。
- 下载对应主题文件localThemeList.json
- 工程本地新建主题文件 在src目录下,新建一个json目录,将下载到的主题文件放到这里
- 修改目录配置,引入这里的主题数据编辑src--> Menuleft--> Theme.js文件:在第10行以后,插入如下代码
// eslint-disable-next-line import/extensions
import localThemeData from "../../json/localThemeList";
在60行左右,主题数据部分:
} else {
// 否则默认主题
response = await axios.get(THEME_API());
if (!response.data.success) {
throw new Error();
}
remoteThemelist = response.data.data.themeList;
}
这部分修改为如下,将从互联网请求主题改成本地导入的主题
} else {
remoteThemelist = localThemeData
// 否则默认主题
// response = await axios.get(THEME_API());
// if (!response.data.success) {
// throw new Error();
// }
// remoteThemelist = response.data.data.themeList;
}
然后重新npm install即可看到各种可选的主题了。
nginx部署
- 打包 前面通过npm install安装了所有依赖的包,接下来执行
npm run build
即可完成打包,打包完成之后,生成build目录,目录下内容如下:
- nginx配置 将上一步中打包的所有文件,放到/usr/share/nginx/mdnice/(这个目录是nginx配置的,可以根据实际情况修改)下。
root@localhost:/usr/share/nginx/mdnice# ls -lrt
total 64
-rwxr-xr-x 1 root root 329 Mar 30 2021 manifest.json
-rw-rw-r-- 1 root root 4253 Mar 30 2021 favicon.svg
drwxr-xr-x 2 root root 4096 Mar 30 2021 workbox-v3.6.3
drwxr-xr-x 4 root root 4096 Mar 30 2021 static
-rw-r--r-- 1 root root 1635 Mar 30 2021 service-worker.js
-rw-r--r-- 1 root root 11891 Mar 30 2021 precache-manifest.94758d437f0fb198ac94873d546c4d07.js
-rw-r--r-- 1 root root 4558 Mar 30 2021 index.html
-rw-r--r-- 1 root root 18935 Mar 30 2021 asset-manifest.json
新建mdnice.conf的nginx配置
cat /etc/nginx/conf.d/mdnice.conf
server {
listen 18000; # 端口换成你自己的
server_name localhost;
charset utf-8;
location / {
root /usr/share/nginx/mdnice/; # mdnice的目录,根据实际情况修改
index index.html index.htm;
}
}
然后浏览器访问:http://ip:18000即可访问了(端口换成你自己的)。
如果觉得自己折腾麻烦的,可以给我留言,我把打包好的发布版本发给你。
猜你喜欢
- 2024-10-09 教你快速录制gif动图(动图录屏怎么弄?)
- 2024-10-09 简单实用且好看!基于electron的的开源图床工具
- 2024-10-09 ubuntu 环境下 ruby 环境快速搭建
- 2024-10-09 史上最全的实际操作的!git+jenkins+k8s 自动化部署运维
- 2024-10-09 HTTP压测工具wrk安装与使用(鲁班工具官网下载安装)
- 2024-10-09 基于docker安装myip开源工具查询本机ip和测试本机网络
- 2024-10-09 重玩 40 年前的经典游戏小蜜蜂,这次通关了源码
- 2024-10-09 open sora1.2容器构建教程指南(容器部署openstack)
- 2024-10-09 clang编译器简介(clang编译器下载)
- 2024-10-09 简单漂亮的(图床工具)开源图片上传工具——PicGo
- 04-29kali2021ping 外网不通
- 04-29我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- 04-29注册下载啊
- 04-29Spring 中三种 BeanName 生成器!
- 04-29mysql学习9:创建数据库
- 04-29Linux之yum源详解
- 04-29夏日终曲/请以你的名字呼唤我/Call me by your name(无剧透)
- 04-29注释竟然还有特殊用途?一文解惑 //go:linkname 指令
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)