分享 KindleNote 已开源

BadTudou · 2018年01月03日 · 最后由 BadTudou 回复于 2018年01月04日 · 3283 次阅读

KindleNote

写在前面

这是一个不算太长的故事。

故事源于我有一个Kindle,时常用它来看看书,顺手标记一下或者做做笔记。

某天当我想要把其中的标记或笔记导出来的时候,发现市场上并无较好的软件能满足我的需求,于是本着自己动手丰衣足食的想法,开发了这款 KindleNote。

它最初是用原生 PHP 构建的,后来又用 Laravel 进行了重构,然后又经过 Rails 进行了重构,最终,它还是不能让我满意......

这是一个半成品,由于数据库设计不甚合理,无完整的权限控制,前后端未实现完全分离,以及其他的种种原因,它注定要被遗弃。

所以我如今把它公布出来,若能对你有所帮助,也算是废物的再回收利用,也可称作是为环保尽了一份力。

全新的 KindleNote 正在开发之中,目前已经做了些许设计工作,新的作品将会吸收它的不足,借鉴保留其优点 (如何有的话)。

希望发布下一个 KindleNote 的时候,我可以稍候有那么一点自信。

本项目质量较差,与诸菜共勉之

KindelNote

https://github.com/BadTudou/KindleNote-Rails

KindleNote可以导出您Kindle中的标注笔记,并支持将它们转换为MarkDown文件。

您可以选择将导出的标记笔记存储于Evernote有道云笔记等云笔记平台,或者KindleNote的服务器中。

功能

  • [x] 笔记导出为 Markdown
  • [x] 笔记保存到 Evernote
  • [x] 批量导出为 Markdown / 导出到第三方云笔记 / 删除
  • [x] 通过豆瓣图书自动获取笔记对应的图书信息
  • [x] 重复笔记自动合并
  • [x] 第三方登录:QQ
  • [x] 第三方登录:Evernote
  • [ ] 分享到 QQ 空间、微博等社交网站
  • [ ] 笔记保存到有道云笔记
  • [ ] 搜索笔记

演示

全部笔记 KindelNote

查看笔记 KindelNote

个人中心 应用授权

个人资料

系统架构

KindleNote基于RubyRuby on Rails框架。

系统设计遵循MVCRestfull架构。

安装

服务器要求

  • Ruby >= 2.4
  • Rails >= 5.1.4
  • Nodejs >= 8.6.0
  • Yarn >= 1.3.2
  • Sqlite3(默认数据库)
  • Git(自动化部署时需要)

配置

所有配置文件均位于config目录

配置 Evernote 授权

Evernote 授权用于将用户的笔记导出到Evernote

Evernote的配置文件为evernote.yml

development:
  consumer_key: key
  consumer_secret: secret
  sandbox: true

以上是development运行环境下的Evernote配置信息,你可以在该配置文件中添加其他运行环境下的Evernote配置信息。

具体的配置信息可参考evernote-oauth-ruby

配置 QQ 授权

QQ 授权便于用户使用 QQ 进行快速登录。

QQ的配置文件为qq_secrets.yal

APP_ID: 'xxx'
APP_KEY: 'xxxxxxxx'
RED_URL: 'http://www.kindlenote.org/qq/callback'

进入QQ 互联,在成功创建应用后,你将得到 QQ 授权的配置信息。

部署

使用Capistrano实现自动化部署,默认会自动从https://github.com/BadTudou/KindleNote-Rails拉取最新的代码。

你可参照Deploying a Rails App on CentOS 7 with Capistrano, Nginx, and Puma这篇文章完成其在服务器的部署。

注意:自动化部署时,你需要链接以下配置文件

  • database.yml
  • application.yml
  • evernote.yml
  • qq_secrets.yml

以下代码是以远程服务器develop用户的身份执行自动化部署。

bundle exec cap development deploy PRODUCTION_BRANCH='develop' PRODUCTION_SERVER_IP='xxx.xxx.xxx.xxx' PRODUCTION_DEPLOY_USER='develop'

感觉适合继续做下去啊,微信阅读、kindle 上划线备注导出都是个问题,能统一整理起来还是很有用的

jjym 回复

还会继续做下去,只是要重构,如果还支持微信阅读之类的话,项目应该要改名

需要 登录 后方可回复, 如果你还没有账号请 注册新账号