记个人博客工程从设计到落地(一)
记个人博客工程从设计到落地(一)
链接: github/meteor1.分析 1.1问题
开发期:3.17-3.31 | 实际开发(9day)
原先用
vuepress
构建静态博客工程之后,在个性化主题改造上花费的时间远远比博客文章的攥写要多,实为本末倒置。而且静态类博客在更新后总是需要本地跑一次命令以得到新的静态页面,操作繁琐稍感不便。
而且博客搭建或者主题开发本身也有一定的技术门槛。
总的来说,静态博客不太契合我的需求。
1.2解析
首先个人博客主要是个人使用,作为个人展示和资料归档。
而我的真实需求则更偏向于个人应用:在思否等平台上写文章做分享,在个人博客里归档整理和以及满足个性化需求。
因为本职属于前端,所以对于应用的挑剔会比较怪异和容易钻牛角尖。
同时也因为开发经验的问题,在实际落地中总会有各种问题产生而连带影响写博客的坚持度。
1.3期望
- 免费白嫖最好
- 数据存储更安全可信
- 文章攥写与发布能更快捷
- 高度个性化的同时有明确的优先级
- foolish design
- focus on doc
- free blog
方案一 Plan1(纯前端):在git上开辟仓库存储博客文章,然后创建一个静态页面站点动态地利用GitHub-api从github上拉取博客文章并展示。
静态页面站点的前端开发计划由博客数驱动,每20个增量启动一批开发计划,循序渐进,由博客数驱动前端开发。
- 利
- 白嫖数据库和服务器
- 弊
- 数据存储相对而言不太安全
- 且博客地址与路由文件的同步处理不太智能
前端分别实现个人博客站点和博客管理平台,最后内网穿透暴露到外网访问。开发进度还是同方案一由博客数驱动。
- 利
- 数据存储安全可靠,文章发布更便捷智能
- 弊
- 开发周期大大增加
- 有必要考虑后端安全
- 高并发(不考虑)
方案二
。2.细化 2.1思路设计
确认目标
- 本地数据库
- 博客前后端
- 博客可视化管理
- 博客展示带类目、标签
- 提供书签收集功能
- 提供事件记录功能
- 本地前后端服务常驻
- 博客管理平台新建与管理文章并同步更新数据库
- 博客前端调用后端渲染
- 优雅降级(优先针对Chrome-pc)
- 博客数驱动设计,设计驱动前端,前端驱动后端
- 前端 vue+element+front-matter(vue-cli4.2)
- 后端 node+express/koa
- 数据库 MongoDB
- 自动化 python
- 网络 内网穿透
物理空间
- 文章目录
- 程序目录
- 数据库目录
- 博客-用于存储博客实体
- 类目-用于存储博客类型目实体,与博客关联
- 标签-用于存储博客标签实体,与博客关联
- 书签-用于存储书签实体
- 记录-用于存储各维度的记录实体
- 文章crud
- 类目crud
- 标签crud
- 书签crud
- 记录crud
- 日志埋点
- 开始页-用于初始化配置
- 个人首页-博客说明
- 文章页-分类目展示博客
- 临时博客页-分享时指定文章使用
- 书签页-综合书签集
- 记录页-个人数据记录
- 页首-导航与检索
- 页尾-应用信息与版权
- 日志埋点
前端路由
export const routes = [
{
path: '/',
name: 'meteor',
redirect:'/start'
},
{
//开始页
path: '/start',
name: 'Start',
component: () => import('../views/start/Start.vue')
},
{
//分享页
path: '/sharePage',
name: 'SharePage',
component: () => import('../views/share/SharePage.vue')
},
{
name:'Page',
path:'/page',
redirect:'/page/home',
component: () => import('@/components/layout/Page.vue'),
children:[
{
//主页
path: 'home',
name: 'Home',
component: () => import('../views/page/home/Home.vue')
},
{
//博客页
path: 'blog',
name: 'Blog',
component: () => import('../views/page/blog/Blog.vue')
},
{
//书签页
path: 'bookmark',
name: 'BookMark',
component: () => import('@/components/layout/Blank.vue'),
redirect:'/page/bookmark/daily',
children:[
{
//常用书签
path: 'daily',
name: 'Daily',
component: () => import('../views/page/bookmark/BookMark.vue')
},
{
//开发书签
path: 'devil',
name: 'Devil',
component: () => import('../views/page/bookmark/BookMark.vue')
}
]
},
{
//记录页
path: 'record',
name: 'Record',
redirect:'/page/record/recLog',
component: () => import('../views/page/record/Record.vue'),
children:[
{
//开发日志
path: 'recLog',
name: 'RecLog',
component: () => import('../views/page/record/RecLog.vue')
},
{
//动漫
path: 'animate',
name: 'Animate',
component: () => import('../views/page/record/RecMedia.vue')
},
{
//书籍
path: 'book',
name: 'Book',
component: () => import('../views/page/record/RecMedia.vue')
},
{
//影视剧
path: 'movie',
name: 'Movie',
component: () => import('../views/page/record/RecMedia.vue')
},
{
//旅行
path: 'recMap',
name: 'RecMap',
component: () => import('../views/page/record/RecMap.vue')
},
{
//票据
path: 'recTicket',
name: 'RecTicket',
component: () => import('../views/page/record/RecTicket.vue')
},
]
}
]
}
];
截图
- 开始页-白天
文章图片
- 开始页-黑夜
文章图片
- 首页
文章图片
- 页脚
文章图片
- 博客页
文章图片
- 书签页
文章图片
3.开发计划_最后更新:
2020/03/31
开发日志C0_零纪元
2020/03/17-2020/03/31
- 相关技术点回顾与深入
- 博客设计
- 前端部分场景
排序不分先后
- 前端
- 页首 √
- 页脚 √
- 开始页 √
- 首页 √
- 博客页 √
- 书签页 √
- 引入 element-scroll 滚动条 √
- 回到顶部 √
- 背景粒子动画particles √
- 地理位置获取 √
- 当地日出日落时间获取 √
- 多端适配(@media)
- 浏览器兼容(主要适配safari)
- 天气获取
- 页首搜索功能
- bookmark页快速检索
- blog分享页开发
- blog查看窗口开发
- record页开发
- 加载页
- 个人信息页
- 管理平台
- 评论功能(valine)
- ...
- 后端
- all
- 数据库
- all
推荐阅读
- 大数据|个人信息治理与可视化
- 程序员|29岁vivo员工吐槽(看完阿里P9大牛的“Java成长笔记”我悟了)
- 程序员|29岁vivo员工吐槽(学java笔记本配置)
- JavaScript|JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】
- web安全|【网络安全】记一次简单渗透测试实战
- 再记一次 应用服务器 CPU 暴高事故分析
- codeforces竞赛|Codeforces Round #810 (Div. 2)【比赛记录】
- 投稿|海天前脚出事,李锦记后脚迎来阿里靖捷
- 投稿|李锦记明日换帅,阿里张勇前助手接棒,会是跨越海天的新开始吗?
- 单片机|用CubeMX开发HAL学习记录(二)——串口通讯基础知识