NeoReads应用的后台程序:
- 编程语言:Golang
- 数据库:PostgreSQL
- 操作系统:Ubuntu 18.04 LTS
- 数据格式: JSON
-
用目录(folder)和文件(file)的概念来重新封装各类文章与文集,并组织成多层树状结构,将来统一所有类型的知识信息。
-
利用go-git来构建git库操作逻辑,实现文集的版本管理
-
参考gogs开源工程,实现文集版本管理,以及协同编辑的功能。
-
在码云上设立代码库
-
对史记文件进行预处理,生成章节文件。
-
生成BookID, ChapID, ParaID和SentID,并写入到章节文件中。(可以和预处理过程结合到一起,直接生成带ID的章节文件。
-
修改章节文件格式,支持Markdown
-
将史记处理转化为基本Markdown格式
-
将生成的书籍、章节信息存入到数据库中进行管理。
-
在图书目录生成一个静态HTML文件,列出图书的名称和目录链接,方便人工查阅。
-
句子圈点功能
-
基于句子的基本笔记功能(纯文本)
-
基于句子的基本笔记功能(Markdown编辑器)
-
提供函数将带ID的章节文件净化生成普通文本文件,方便阅读。(包括章节排序功能)。
-
提供一个全库输出功能,将所有书籍输出成普通文本文件的集合,建立压缩包。
-
根据ID来存储评注定位。
-
重新组织代码目录结构,将数据与数据库处理的模块提出来,供server与prepare模块共享
-
用户登录信息表
-
集成argon2用于保存和检查密码
-
利用阿里云发送邮件
-
JWT后台
-
设计词典表单,可以参考ECDICT
-
参考html2article,利用goquery等工具实现简单的网页内容抓取工具,方便创建外链新闻记事。
-
Markdown处理
- 处理sentid
- 处理paraid
- 支持表格
- 支持代码块
- 支持ul列表
- 支持ol列表
- 支持缩进块
- 支持引用blockquote
由于前后端版本号管理是分开的所以需要记录对应兼容的版本号。未来加上前端APP后,这个对应就更重要了。
前端WEB | 后端 |
---|---|
0.2.1 | 0.2.0 |
0.2.0 | 0.2.0 |
0.1.9 | 0.1.9 |
0.1.8 | 0.1.8 |
0.1.8 | 0.1.7 |
0.1.7 | 0.1.6 |
0.1.6 | 0.1.5 |
0.1.6 | 0.1.4 |
0.1.5 | 0.1.3 |
0.1.4 | 0.1.2 |
0.1.3 | 0.1.2 |
0.1.2 | 0.1.2 |
0.1.1 | 0.1 |
0.1 | 0.1 |
后台API全部返回JSON格式数据,URL以/api/v1/
开头
URL | Method | 功能 |
---|---|---|
/book/list | GET | 图书列表 |
/book/toc | GET | 章节目录 |
/book/:bookid | GET | 图书信息 |
/book/:bookid/chapter/:chapid | GET | 章节内容 |