Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Todo列表 #14

Open
40 of 49 tasks
smallpath opened this issue Apr 18, 2017 · 22 comments
Open
40 of 49 tasks

Todo列表 #14

smallpath opened this issue Apr 18, 2017 · 22 comments

Comments

@smallpath
Copy link
Owner

smallpath commented Apr 18, 2017

readme里更新TODO不方便编辑和讨论,现在单独提到issue里,欢迎看到的大家提feature request

TODO

  • front

    • disqus评论
    • vue1.0升级至vue2.0
    • vuex单向数据流
    • 服务端渲染
    • 客户端谷歌统计
    • 服务端sitemap定时任务
    • 服务端rss定时任务
    • 组件级缓存
    • Loading组件
    • 侧边栏图片
    • 服务端谷歌统计
    • 全局404页面
    • 文章toc
    • 页面meta
    • 按需分块加载
    • service worker缓存所有资源
    • SSR服务端直连mongo
    • 自制axios以减小打包大小
    • 自制vuex以减小打包大小
    • SSR服务端不可用时进行降级
    • import替换require.ensure
    • 修复中文链接刷新时404的问题
    • blogPager增加查看更多链接
    • footer显示备案号
    • 修改倒序查询条件
    • vue2.3.0 ssr变更
  • admin

    • vue1.0升级至vue2.0
    • 使用element ui
    • 七牛云图片上传
    • 文章toc的生成与编辑
    • 草稿的自动生成与手动恢复
    • 上传图片后指定img标签的高度以避免闪烁
    • 扫描所有文章,指定img高度
    • 修改倒序查询条件
    • 文章增加标题图片的编辑功能
  • server

    • RESTful添加select字段过滤
    • 标签及分类移至文章中
    • 七牛access_token下发及鉴权
    • lint
    • RESTful的排序自定义
    • 防CC
    • 按天备份
    • redis做一层缓存层
  • 其他

    • CI
    • i18n
    • 搜索
      • es
      • algolia
    • API增加v1头
  • RPC不做了,就算做了效果也没直连数据库好

  • 后端会重构一次,计划支持类似webpack config的插件形式

    • 提供类webpack打包生命周期的中间件,否则增加新功能对代码侵入性太高了,也可以降低社区贡献代码的难度
  • 七牛等敏感配置放到admin上,图形界面比较好

  • 增加一个安装页面,用来在图形界面输入初始参数

  • 增加文档站,使用docsify,可能会放到另外的仓库里

  • 最后是组织,需要给博客取个名字(好难🤣),转移仓库过去

@Hugo-seth
Copy link

README 里的安装 redis 写错了,应该是 brew install redis,而不是 brew install redies。

@smallpath
Copy link
Owner Author

smallpath commented Apr 19, 2017

谢谢指出typo,之后会单独弄个文档站

@stormqx
Copy link

stormqx commented Apr 19, 2017

node方面有不错的书推荐吗?

@smallpath
Copy link
Owner Author

@stormqx 朴灵大大的深入浅出node.js, 第二版貌似正在写, 以及node-interview这个仓库. 其他的书都比较偏实战, 看你想学什么自行选择即可.

@stormqx
Copy link

stormqx commented Apr 20, 2017

@smallpath 谢谢回复,最近也打算手写一个博客来练手。关于koa2的实战部分有何心得?我找到的大部分书基本都是基于express来讲的。

@smallpath
Copy link
Owner Author

@stormqx koa和express差别非常小了,用过express直接上koa2.0没问题,这俩源码都才一千多行。

@qfdk
Copy link
Contributor

qfdk commented Apr 23, 2017

Dockerfile 无法正常使用

使用 docker build -t blog . 进行docker 打包测试未能成功.

错误提示如下

npm ERR! Linux 4.9.13-moby
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "yarn" "pm2"
npm ERR! node v7.7.4
npm ERR! npm  v4.1.2
npm ERR! path /usr/local/bin/yarn
npm ERR! code EEXIST

npm ERR! Refusing to delete /usr/local/bin/yarn: node_modules/npm/bin/npm-cli.js symlink target is not controlled by npm /usr/local
npm ERR! File exists: /usr/local/bin/yarn
npm ERR! Move it away, and try again.

npm ERR! Please include the following file with any support request:
npm ERR!     /npm-debug.log
The command '/bin/sh -c npm install -g yarn pm2' returned a non-zero code: 1

似乎现在改成了用 yarn 管理的方式

建议 docker 打成直接可运行的包(加上 mongo 和 redis)

还有个问题为什么要用 redis 做缓存,只是一个 blog 似乎这个层面没有必要吧 ?

Front 文件夹里面可以独立编译运行博客页面,那另外一个 server(后端) 文件夹是干什么用的 ?

既然是 RESTful 后端,前端为什么不只是 vue.js 的代码,穿插很多别的代码 ...

之前认为 要是换个别的主题只是自己用 vue.js 或者 angularjs 写个前端,直接用后端 API 就解决了,似乎不是这么简单.

问了不少问题,写一个比较简单易懂的 doc 吧 或者写在 wiki 里面.

有问题请指正,对贡献代码还是有一定兴趣的.

@smallpath
Copy link
Owner Author

smallpath commented Apr 23, 2017

@qfdk

docker

  • yarn可以解决国内国外的网络问题
  • 直接加mongo redis太大了
    • 因为配置文件支持传环境变量,分出去的话可以直接指定host

这个项目现在docker其实只是弄着玩的,因为项目目前照我计划只完成了一小半,以后改动会比较大,因为是边做边改,因此目前折腾dockerfile价值不大。

redis

redis目前只用来存了token,但是之后会做一层SortedSet缓存,目前正在做得后端插件化就是为了方便做这个缓存。

另外,之前准备用redis来做rpc得,不过后面权衡了一下发现效果肯定没有SSR直连数据库好,就算了

前端别的代码

前端所有别的代码全部都是SSR服务端渲染相关的,为了解决SEO和降首屏时间。前端的SSR服务端与后端没有冲突。 你所看到的前端直连数据库是比较极端但很适合本项目的优化SSR的手段。

贡献代码

这里先提前感谢了,其实目前项目进度是这样的,后端我准备做成提供类似webpack打包生命周期,然后在一个server.config.js里面通过webpack插件的形式一个一个把功能像拼积木一样拼接上去,之后再加强一下后台管理前端的地位,让用户可以直接在界面上直接选要用哪些插件,甚至可以选择npm上的插件包,这样子以后加功能也用不着提PR了,直接发一个npm包就行了。然后GUI上配好的配置直接写回数据库,再通过模板引擎把后端配置文件server.config.js直接渲染回来,这样改造后,所有东西都在mongo数据库里,之后无论对用户用户还是对开发者开发,都会方便很多。

上面的想法前几天才成型,之后会一直往这个方向做。做完之后贡献代码就方便得多了,我个人建议可以等到那个时候。

时间不会太久,因为这个项目是我的毕设😅,还剩一个多月就答辩了,我肯定会最近干完。

@qfdk
Copy link
Contributor

qfdk commented Apr 23, 2017

@smallpath 好的 现在明白了初衷和发展发方向,那这个项目我先马克,等你答辩完成之后再来贡献.

祝答辩顺利 🏆

还有一点儿想到的 redis 和 mongo 似乎要准备一下密码或者权限,最近被删库跑路的比较多.

@smallpath
Copy link
Owner Author

了解,redis设置了auth环境变量,mongo我也加一下

@qfdk
Copy link
Contributor

qfdk commented Jun 7, 2017

@smallpath 回来看看,最近也比较忙,就没有过来关注一下。看到了不少的修改,感觉有空要跑一下看看。然后的等着那个搜索的逻辑,今天solr6.6出来了,可以考虑加solr的接口也行。弄个什么adaptor这样可以选择搜索模块之类的,只是个提议

@smallpath
Copy link
Owner Author

@qfdk 谢谢关注,恰好明天答辩,等一切结束了会集中更新一波

@Siubaak
Copy link

Siubaak commented Jun 14, 2017

研读了一下代码,写得比我好多了......

有个问题,不知道是不是笔误,想问一下。在server/plugins/beforeUseRoutes/logTime.js里,module.exports = module.exports = ...... 为什么module.exports连续赋值了?

@smallpath
Copy link
Owner Author

@Siubaak 确实是笔误, 刚刚已经修掉了

@qfdk
Copy link
Contributor

qfdk commented Aug 7, 2017

时隔两个月 @smallpath 我又来了,话说后端什么时候重构代码? 准备休年假 怕无聊,看看你这边啥时候搞点儿动作啥的。

@smallpath
Copy link
Owner Author

@qfdk 🤣毕设论文码了接近三万字所以有点伤,现在差不多缓过来了吗,应该会马上做如下两件事:

  • 升vue2.4
    • 用上字符串模板,预计压测QPS能从100到110
  • 验证码
    • 用node-pnglib配合redis在后端做一个验证码服务,先用在后台管理的登录上,后期插件系统弄完了再用在插件系统的登录上
  • 插件系统
    • 还是之前的设想,插件的信息全部存在数据库里,每次运行时构建一份新的blogpack文件

@smallpath
Copy link
Owner Author

哦对了,应该还会再写一个类似hexo-theme-material的material design的前端,完成后再导出给firekylin用,不过得上面全部搞完再弄了

@geekplux
Copy link

现在评论系统还是必须翻墙才能加载出来,能不能做成类似 ququ 博客的效果?https://imququ.com/post/back-to-disqus.html

@geekplux
Copy link

其实可以在 README 里把你目前的备份方式也写一下? (小建议

@smallpath
Copy link
Owner Author

@geekplux 屈屈那种如果需要评论的话依然要加载disqus, 我在思考可不可以用service worker代理掉disqus所有的请求. 备份的话只需要把数据库dump下来就可以了

@geekplux
Copy link

@smallpath 我觉得用 service worker 可行。

@flyguolai
Copy link

非常感谢源码的提供,3Q~虽然作为和你一样的应届生但是你的代码写的比我好太多了,学习一哈,非常感谢~

作为实战能找到一个优秀的项目来借鉴和提升自己实在是太感谢了,非常感谢源码的提供~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants