喜欢读书,没事也想给看过的书写点书评啥的。打算依据Typecho的插件模板,开发个小插件。
Bookshelf插件现已上线!可以在标签栏找到“书架”进入测试页面,也可以直接 戳这里:书架 - ZL Hunter 跳转。 项目地址:hzl0931/Bookshelf: 一个面向 Typecho 1.3+的书架插件,欢迎使用!如果有任何建议或反馈,欢迎提交Issue或在这个页面评论。
亮点:Show Your Reading
- 类WordPress短代码设计:Markdown界面键入短代码即可渲染书架页面。
- 标签聚合:将你有关此书的标签在此聚合起来!支持添加多个标签。
更新记录
26.08.18
v1.0.0版本正式发布!
已经实现:
- 后台提供独立的「书架」一级菜单,支持新增、编辑、删除书籍。
- 书籍字段:标题(必填)、作者、出版社、ISBN、状态、标签。
- 状态支持「正读 / 读完 / 自定义」快捷选项,显示文本可自由编辑。
- 数据不写入 Typecho 数据库,统一保存到
usr/bookshelf/books.json,卸载或升级插件不会丢失数据。 - 前台支持两种短代码渲染书架页面。
- 书名为链接,跳转到第一个标签对应的聚合页;每个标签单独输出为链接。
- 标签链接通过 Typecho 路由生成,尊重站点的永久链接设置。
后续支持:
- 后台调用OpenLibrary数据库便捷搜索并拉取封面。
- 前台支持封面墙模式。
- 优化数据写入速度。
预期实现效果
Admin端(Typecho后台):呈现一个表单,包括
- 一个列表,逐条展示添加的书籍,字段包括标题、作者、出版社(可选)、ISBN、封面(可选,先不实现);状态(正读/读完/自定义);标签(自定义,用于链接到以这个(些)标签发布的文章
youdomain.com/tag/<tag-attached-to-the-book>)。 - 添加、删除、修改选项。
自定义《》之类的细节功能(欢迎补充)。
后端:
- 一个数据存储模型,储存用户端的信息。初步考虑用JSON,一个文件搞定,不涉及变动Typecho数据库。
- (未敲定) 一个渲染逻辑,用于在Typecho后台新建空白页面键入特定标签时,将存储的书籍数据渲染成HTML植入页面文件。(交互逻辑就像新的WordPress的编辑器) 问题在于如何实现特定标签的触发。
前端(网页):
- 第一步计划:实现与Admin端相同的列表效果,书名为链接,单击跳转至相关标签聚合页面。
- 后续再做美化。
26.08.15
Bookshelf插件已经正式上线,这篇文章将主要记录关于这个项目的进展、说明。
欢迎上传至 AB-Store~ https://ab-store.lhl.one/