gocms 目标
暂时只是开发来自用,后期有空慢慢增加功能。根据名字都知道,是打算开发成一个内容管理平台,目前算是一个简单的博客。
特点
- 前后端分离,方便扩展。
- 集成七牛云存储
- 使用 markdown 编辑文章
- 支持文章下面添加章节
演示
后台效果:

前台效果:
gocms 源码
开发语言
后端接口:
golang+mongodb,主要用到的库:gin,mgo
前台界面
vuejs, 界面并非原创,模仿 zetcode.com 很早就知道这个网站,一直很喜欢他简洁的风格,上面有很多教程,推荐给大家,不过全是英文的。
后台界面
采用 vue-admin-template 感谢作者为我们提供这么方便的后台管理界面。
seo 处理
前台是 vuejs 开发的 SPA 应用,官方有 SSR 可以解决,不过看了一下要从一开始就使用,我也没深入学过 vuejs,外加项目已经开发好了,所以考虑另辟蹊径。本质就是要搜索引擎获取到渲染后的 html 代码,这东西通过 python 很容易实现,毕竟做爬虫是 python 的强项,于是搜索一番搞定了。
1.用 python 写个接口,返回指定 url 渲染后的 html 代码。
2.nginx 判断 UA,如果是搜索引擎的蜘蛛,就转发到我们 python 的接口上获取渲染后的数据。
流程
- 如果是正常用户请求,就直接返回前台界面,前台界面自动调用接口返回数据,渲染显示。
- 如果是搜索引擎,nginx转发到seo 处理程序,处理程序模拟人去访问前台界面,把渲染后的 html 返回给搜索引擎
公开代码的意义
这是初学 mongodb,第一次用 go 和 mongodb 做的作品,里面很多知识我想很多初学的朋友都会遇到,比如 给子文档添加元素,更新子元素,当初也搜了不少资料。所以这个项目也许可以对需要的朋友有一点帮助。 之所以不是说开源,是因为开源项目不仅有代码还要有配套的文档,所以只能算公开代码而已。