囤书如山倒,看书如抽丝!
不管是纸质版还是电子版的书,囤了一大堆,结果也没什么时间看。书少的时候还能记得自己买过哪些书,下过哪些书,量大就基本上没办法记了。纸质书用晒书房APP扫一下就齐活了,电子书的话用Calibre + zotero,前者以epub和mobi之类的,后者以PDF为主。为了方便,我甚至都租了个国外的服务器,将所有电子书上传,方便在线阅读(采用Calibre)。但是更新整理也是一个技术活,以至于重复的书越来越多。
最近电子书网站接二连三地关停,最常用的基本上都废了。最可气的是刚给epubee充了会员就倒闭了,其实想想也知道是迟早的事,在国家知识产权的保护意识越来越重的情况下,确实没必要顶风作案。于是趁着还有机会下载到一些好书可得抓紧时间。
这不,整理书的问题又得面对,成了个麻烦事了!
说回今天的主题,当初用MediaWiki的时候是希望做成类似知识图谱的(能力有限,试用了N多系统,还是觉得它最接近我的要求,尤其是用上语义化扩展Cargo之后)。但为什么会扯上书的事呢,因为很多的资料都来源于各类书籍,所以最初是希望在参考时自动生成标准格式,然后直接引用书中摘录的内容(这部分内容有机会单独写篇文章)。
所以就得先给书籍创建条目,而随着需求的逐渐深入,事情就变得越来越复杂,也越来越有意思了。

一、创建书籍的命名空间

如果直接把书名作为条目的话(比如百度百科和维基百科都是把书籍作为主条目来处理)容易产生歧义,所以为了减少这方面的问题直接给它创建个命名空间好了。
注:中文维基的书籍条目量比较小,所以歧义的问题会少很多;而百度百科中书籍的条目相对多一点,但它处理的方式是通过加入副标题减少歧义,但无论怎么做这个问题都不可避免会遇到。
关于命名空间的创建可以参考另外的文章(《Mediawiki添加“Portal(主题)”命名空间》、《MediaWiki的命名空间列表》等),在这里只谈我的思路。最开始是用的BOOKS作为命名空间,前缀也很直白,就是书籍:。后来决定把范围扩大到整个出版物,这样方便把期刊一并归入,做参考引用的时候会方便很多(虽然我到现在为止还没做期刊的条目)。

二、创建书籍相关模板

最核心的模板就是跟书籍信息相关的(包括书籍封面、作者、出版社、出版日期、ISBN等),主要参考维基百科中的信息框以及豆瓣信息,并结合Cargo的数据表。另外,书摘和笔记等模板也可以根据实际情况进行增添。
template-bookinfo.png
注:关于信息框的模板创建可以参考本站文章《如何用插件创建我的第一个MediaWiki信息框模板》。

三、修改网络书源

MediaWiki的网络书源如果好好配置一番的话,几乎可以成为查书、买书甚至是下载电子书的利器。通过信息框中加入ISBN,然后通过点击ISBN号后跳转到网络书源并自动读入该号进行查询。
BookSource.png
注:关于如何修改网络书源,参见本站《修改MediaWiki的网络书源》。

四、创建书籍的表单

想要实现便捷录入,就得使用页面表单扩展,在另外的文章中其实也提到过。核心的还是将书籍信息进行可视化操作。
mediawiki-page-forms-editing-book.png
表单的很多输入是需要模板配合的,所以在过程中又增加了几个相关的模板,主要是在格式上,如选项卡切换内容简介、作者简介、目录等。
PageForms-Others.png

五、创建书籍条目

都知道MediaWiki的条目名称具有唯一性,也就是同一个名称只能对应一项含义(内容)。该规则用在书名上就会出现问题,毕竟同名的书还是很多的,比如《普通心理学》就有不同作者、不同版本的数本之多。所以在命名时就得多加注意。
这样做还有一个好处,我们也知道在同个文件夹中是不允许有同名文件的,所以电子书的名称正好也对应条目名称,日后查找起来也方便。

六、编写帮助文档

虽说是个人的网站,也没开放给任何人,但还是有必要编写一下帮助文档,毕竟有很多规则是需要固定下来的(比如如何给同名书籍命名),时间一长难保不会忘记。
help-creating-books.png

七、引用书籍

最简单的就是在某位作者或者某个出版社下显示所有与其相关的作品。这一点用Cargo的查询功能就能达到。
publisher-info.png
另外,配合模板可以很方便地生成某本书的参考引用格式。
book-reference.png
上图中的参考资料内容就是通过模板自动生成的。只是该图书并没有输入条目简介,所以弹窗中没有内容。

八、书籍浏览及下载

本来是不想写这部分内容的,因为涉及到知识产权的问题。但如果你将MediaWiki本地化,那么每一本书你都可以上传后和条目统一起来,方便在本地浏览和下载(如果是epub之类的还可以考虑用Calibre搭建本地的电子书浏览器)。
在本例中只是用图标表示一下。

写在最后

通过以上的简单尝试,基本上能够实现简单的书籍管理。至于其他功能,目前还在逐渐完善中。

最后修改:2021 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏