【EasyBlog】基于React+AntD+NextJS+NestJS+MySQL打造的开源博客系统

news/2024/9/21 18:54:14

Github项目地址:https://github.com/fecommunity/easy-blog, 欢迎Star。

Easy-Blog

Easy-Blog 是一套集成文章发表、页面创建、知识库管理、博客后台管理等功能于一体的博客系统。

首页-浅色主题

首页-暗黑主题

文章阅读

后台管理

✨ 特性

  • 📦 技术栈:基于 React + MySQL + NestJS + NextJS 构建
  • 🌈 组件化:基于 antd 的交互语言和视觉风格
  • 🌍 国际化:支持中英文切换,国际化配置管理能力
  • 🌞 黑白主题:支持亮色和暗黑模式主题自由切换
  • 🖌️ 创作管理:内置 MarkDown 编辑器,支持文章写文章、分类目录管理,标签管理
  • 📃 页面管理:支持自定义新页面
  • 💬 评论管理:支持内容评论管理
  • 📷️ 媒体管理:支持文件本地上传和 OSS 文件上传
  • ...

⌨️ 本地开发

环境准备

$ git clone --depth=1 https://github.com/fecommnity/easy-blog.git
$ cd easy-blog
$ npm i -g pnpm
$ pnpm i

配置文件

项目启动后会加载根目录下的 .env 配置文件,请确保MySQL数据库服务和下面的配置保持一致,并提前创建好 easy_blog 数据库

DB_HOST=127.0.0.1 // 数据库地址
DB_PORT=3306 // 端口
DB_USER=admin // 用户名
DB_PASSWD=admin // 密码
DB_DATABASE=easy_blog // 数据库

环境准备好后,执行启动命令:

$ pnpm run dev

打开浏览器访问 http://127.0.0.1:3001

🔗 链接

  • 首页
  • 高热度网
  • 报告问题
  • 参与共建
  • next.js 源码
  • nest.js 源码

强烈推荐阅读 《提问的智慧》、《如何向开源社区提问题》 和 《如何有效地报告 Bug》、《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。

👥 社区互助

如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。

通过 WeChat 联系,可通过搜素微信号 red_tea_v2 或扫码加入 ,并备注来源。

通过 GitHub Discussions 提问时,建议使用 Q&A 标签。

通过 Stack Overflow 或者 Segment Fault 提问时,建议加上 easy-blog 标签。

  1. GitHub Discussions
  2. Stack Overflow(英文)
  3. Segment Fault(中文)

Email: admin@gaoredu.com

如果您觉得项目还不错,Github项目地址:https://github.com/fecommunity/easy-blog, 欢迎Star。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

为啥chrome查看到网页,只有5000多行,应该有1万多行才对

大家好,我是皮皮。 一、前言 前几天在Python白银交流群【磐奚鸟】问了一个Python网络爬虫处理的问题,这里拿出来给大家分享下。二、实现过程 这里【惜君】给了一个指导,可能网站有限制数据量。这里【瑜亮老师】发现了问题所在,如下图所示:数据方面确实存在,顺利地解决了粉…

Maven 使用方法

MavenMaven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),其表现于一个XML文件(pom.xml),其中包含了项目的基本学习,依赖关系,插件配置,构建路径等等为什么使用Maven导入第三方jar包更便捷:之前我们在使用第三方框架时我们会把jar包复制粘贴到WEB-IN…

CIDR与ICMP

CIDR CIDP:无类域间路由/超网 将多个小的子网,用一个相对更大的地址范围进行概括,以此实现表项的优化 如何求cidr后的ip 1.将子网转换成2进制: 0000 1010.0000 0001.0000 0000.0000 0000——10.1.0.0 0000 1010.0000 0001.0000 0001.0000 0000——10.1.1.0 0000 1010.0000 …

lightgbm的输出到低是怎么来的

结论:假设有100棵树,总输出就是100棵树每个输入所对应的输出叶子结点之和1 可以打印出每个样本在每棵树上所属的叶子结点id2 可以打印每棵树每个叶子结点的输出 3 找到每棵树对应叶子结点,加起来 4 查看该样本的模型输出,发现是一致的 5 可以画图每棵树的结构图,方便理解

使用vscode和markdown写博客

博客创建事要Reason 最近因为在做学校的实训项目,真正接触到了实际开发,遇到了不少的问题,由于之前也有在scdn上写博客的习惯(实际写的很乱,而且个人不是很喜欢csdn哈QAQ),所以想要重新维护一个规整的个人博客,于是此博客应允而出。Condition 在了解之后,发现博客园的…

CSP-S 2024

CSP-S 2024 游记初赛 感觉没啥好写的,毕竟弱省不是保龄都能过吗? Day -1 周五,一天有 \(\frac{10}{13}\) 都是奥赛,遂打模拟赛。 传送门。 题都不是不可做题,改得挺快,觉得明天初赛了就看了看初赛题,但没啥动力,半颓状态过了一晚。 晚上做了个诡异的梦。梦里又做了个梦…

适用于 VitePress 的公告插件开发实记

开发了一个适用于 VitePress 站点的公告插件 vitepress-plugin-announcement前言 笔者维护的 VitePress 博客主题在近1年多的时间里集成了非常多功能,不少用户希望将里面的部分功能分离出来,方便在其它 VitePress 站点也可以独立使用。 其中分离的第一个组件类型的就是呼声较…