喜欢读书,没事也想给看过的书写点书评啥的。打算依据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插件已经正式上线,这篇文章将主要记录关于这个项目的进展、说明。