Essay3.0发布,基于JavaScript的前后端同构博客系统
前言
转眼间距离我开源这个项目已经两年了,最初是奔着学习的目的开发了这个项目,后来一直记录自己的学习笔记。随着时间的增长,发现之前写的代码简直不忍直视,于是就有了重构的想法。这个过程有些漫长,竟然用了整整四个月的业余时间,但是为了能开发出自己心目中满意的博客系统,我还是决定入坑了
分类功能

为了方便查找文章,添加了分类功能。分类支持创建私有分类和公开分类,之所以开发这个功能,是为了方便写不能公开的文章,比如你可以创建一个日记分类。私有分类下的文章只有博主自己能看到,它在前台的显示效果如下图

进入详情页可以对文章进行编辑和删除操作

标签功能
一篇文章除了分类外,还可以为其添加标签,目的同样是为了快速查找文章。唯一的不同是,一篇文章可以有多个标签,但是只能有一个分类(也可以没有分类)。

发布文章

发布文章时,文章可以选择是否允许评论以及是否推荐到首页,如果不推荐到首页,那么它只在分类和标签下显示。为了防止内容丢失,添加了文章自动保存的功能。
单页功能

有时候你可能希望能自定义一些内容,比如在导航栏添加个”关于“栏目,内容是支持HTML的,所以相当于自定义个性网页
用户

其实博客系统是没有用户管理的,只不过评论功能是基于GitHub登录的,而GitHub的鉴权token是有效期的,所以为了能让用户长时间保持登录状态,就把数据保存到了数据库,由后端生成一个新的token
评论功能

评论功能是基于GitHub登录的,鉴权后可以对文章进行留言和点赞,当留言被回复后,用户会收到一封通知邮件。这些留言可以在后台看到
控制面板

其实这是个可有可无的功能,为了查看一些全局的信息还是简单做了下,比如可以在线查看数据库版本、Node版本。
整个项目在技术选型上,前端使用了Nuxt(主要是为了考虑SSR),后端使用的express,数据库是MongoDB。这些技术入门比较简单,但是要想掌握好,也是一个无底洞
结语
以上就是3.0的所有功能,如果发现了bug,欢迎在github上提issue,我将在第一时间修复
项目地址:https://github.com/wmui/essay
以上,感谢阅读!
Essay3.0发布,基于JavaScript的前后端同构博客系统的更多相关文章
- vue+node+mongodb前后端分离博客系统
感悟 历时两个多月,终于利用工作之余完成了这个项目的1.0版本,为什么要写这个项目?其实基于vuejs+nodejs构建的开源博客系统有很多,但是大多数不支持服务端渲染,也不支持动态标题,只是做到了前 ...
- 基于SAE+CodeIgniter3.0+管理端angularjs+前台amazeui的多用户博客系统V1.0--系统设计(一)
开发环境: 服务器系统:CentOS-6.x web服务器:Apache-2.2.x php版本:PHP-5.3.x 开发工具:sublime text 3 ,谷歌浏览器 数据库查询工具:phpmya ...
- 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)
岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...
- 基于 Express + MySQL + Redis 搭建多用户博客系统
1. 项目地址 https://github.com/caochangkui/node-express-koa2-project/tree/master/blog-express 2. 项目实现 Ex ...
- 构建基于Javascript的移动CMS——生成博客(二).路由
在有了上部分的基础之后.我们就能够生成一个博客的内容--BlogPosts Detail.这样就完毕了我们这个移动CMS的差点儿基本的功能了,有了上节想必对于我们来说要获取一个文章已经不是一件难的事情 ...
- 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...
- 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统
2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...
- 基于Microsoft Azure、ASP.NET Core和Docker的博客系统
欢迎阅读daxnet的新博客:一个基于Microsoft Azure.ASP.NET Core和Docker的博客系统 2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客 ...
- 26种基于PHP的开源博客系统
26种基于PHP的开源博客系统 来源:本站原创 PHP学习笔记 以下列举的PHP开源Blog系统中,除了我们熟知的WordPress之外,大多都没有使用过,其中一些已经被淘汰,或者有人还在使用.除了做 ...
随机推荐
- javaweb笔记
(1)web项目需复制web.xml文件 (2)需要复制classes文件 需要把bin里面的com----复制到classes中
- Java 状态模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述状态(State)模式的:状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模 ...
- Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- MySQL 连接不上本地数据库
1.打开 DOS 窗口,输入 mysql 连接命令时,提示报错 Cannot connect to MySQL server on 'localhost' (10061),如下图: 2.上面问题原因 ...
- 28、初识socket(subprocess模块)
经过近一个半月的学习我们已经度过了python基础的阶段,今天我们开始学习python网络编程,没有难以理解的逻辑,更注重的是记忆. 本篇导航: 客户端/服务器架构 scoket与网络协议 套接字 基 ...
- ReactNative如何在JS中引用原生自定义控件(rn变化太快,网上很多教程有坑,这个我研究后可用,特意分享)
直接写一个Demo例子,有相关功底的肯定明白,会对特别的地方进行提醒,本文基于https://blog.csdn.net/lintcgirl/article/details/53489490,但是按此 ...
- .NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...
- oracle去掉字段全部空格进行模糊查询
sql如下: select * from pwlp_law_person where replace(name,' ','') like replace('吕 刚',' ','');
- SpringBoot(十二):springboot2.0.2写测试用例
导入maven依赖: <dependency> <groupId>junit</groupId> <artifactId>junit</artif ...
- Android设置屏幕旋转后保存数据
1.onCreate()方法中最后判断需要保存的状态值 if(savedInstanceState != null){ mCurrentIndex = savedInstanceState.getIn ...