Go Markdown 博客系统

convee · · 590 次点击 · · 开始浏览    

## Go Markdown 博客系统 > Golang 练手项目 > 基于 Go 语言实现的 Markdown 博客系统 ### 技术栈 * 前端框架:bootstrap * 语言:go * 网络库:标准库 net/http * 配置文件解析库 [Viper](https://github.com/spf13/viper) * 日志库zap:https://github.com/uber-go/zap * elasticsearch:https://github.com/olivere/elastic/v7 * mysql:https://github.com/go-sql-driver/mysql * redis:https://github.com/go-redis/redis * 文件存储:阿里云 oss、cdn * markdown editor:https://github.com/pandao/editor.md * pprof 性能调优 * 包管理工具 [Go Modules](https://github.com/golang/go/wiki/Modules) * 后台登录:cookie * 使用 make 来管理 Go 工程 * 使用 shell(startup.sh) 脚本来管理进程 * 使用 YAML 文件进行多环境配置 ### 目录结构 ```shell ├── Makefile # 项目管理文件 ├── conf # 配置文件统一存放目录 ├── internal # 业务目录 │ ├── handler # http 接口 │ ├── pkg # 内部应用程序代码 │ └── routers # 业务路由 ├── logs # 存放日志的目录 ├── static # 存放静态文件的目录 ├── tpl # 存放模板的目录 ├── main.go # 项目入口文件 ├── pkg # 公共的 package ├── tests # 单元测试 └── startup.sh # 启动脚本 ``` ### 功能模块 #### 后台 * 文章管理:文章增删改查 * 页面管理:页面增删改查,可自定义 markdown 页面 * 分类管理:分类增删改查 * 标签管理:标签列表 #### 前台 * 文章列表:倒序展示文章、可置顶 * 内容页面:markdown 内容展示 * 标签页面:按标签文章数量排序 * 关于页面:个人说明 * 阅读清单:个人阅读书籍 * 站内搜索:支持文章标题、描述、内容、分类、标签模糊搜索 ## 开发规范 遵循: [Uber Go 语言编码规范](https://github.com/uber-go/guide/blob/master/style.md) ### 常用命令 - make help 查看帮助 - make dep 下载 Go 依赖包 - make build 编译项目 - make tar 打包文件 ### 部署流程 * 依赖环境: * * mysql * * redis * * elasticsearch * 克隆仓库 ``` # 下载安装,可以不用是 GOPATH git clone https://github.com/convee/goblog.git # 进入到下载目录 cd goblog # 生成环境配置文件 cd conf # 修改 mysql、redis、elasticsearch 配置 # 导入初始化 sql 结构 mysql -u root -p > create database blog; > set names utf8mb4; > use blog; > source blog.sql; # 下载依赖 make dep # 编译 make build # 运行 ./goblog dev.yml ``` * 访问首页 http://localhost:9091 * 访问后台 http://localhost:9091/admin 用户名:convee.@admin.cn 密码:123456 * 演示站:https://convee.cn

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

590 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传