用 Flask 造一个文献管理器

2019-12-20 更新

  • 使用 bootstrap 4 框架
  • 完善一下功能


最近开始写毕业论文,前期积攒/看了了许多参考文献,一直用 Win 自带的文件管理器,按照【文件夹+特殊文件名命名】的方式进行管理,再搭配 OneDrive 进行全设备同步。

分类管理的方式也很简单,一级文件夹标注 category,二级标注 topic,三级标注特点或评分,四级文件夹可选,用来标注参考重要程度评分。

前期也用过大量的参考文献管理的软件,不过大多放弃,一个是没有深入使用了解,另一是没什么理由就是不想用。还有就是基于标签的文件管理器,类似的以前也见过(例如 tagspaces),不过也没打算研究研究

昨天现学 Flask 稍微做出了一个大致的模型(基础代码参考 HelloFlask),核心的功能没写,最近可能也没时间继续写了,所以先发到这里看看大家又没什么好的意见,以后有空再撸代码。

下面是想的大致思路

ReferenceManager

  • 所有修改操作总是对应着本地的【文件移动】和【文件重命名】两个操作
  • 支持多标签筛选
  • 支持各类标签、类别目录快捷管理

目录识别规范

docs_path\category\topic\tag\doc_name.ext

  • docs_path 管理系统扫描的参考文献根目录;
  • category 层级表示最顶层分类,例如:多视图学习子空间学习硕博论文其它;
  • topic 层级表示上层分类的一个子话题,例如:多视图学习分类包括多视图缺失多视图深度多视图张量子空间学习 等子话题或方向;
  • tag 层级表示本话题论文的按特点进行分类,例如:子空间学习方法下可以包含流型约束一致性约束等论文特点标签;
  • doc_name 即文件名,其中 ext 为文件格式,支持 pdfcaj,其它不符合要求的文件将会被过滤。

评分管理

要求只能在 topictag 目录下对文件进行评分,对应的论文文件将被移至 <score> 目录下,例如

  • docs_path\多视图\子空间学习\5\doc_name.ext"
  • docs_path\多视图\子空间学习\流型约束\4\doc_name.ext"

标签管理

管理系统将根据对文件路径中的 categorytopictag,在数据库中生成文件对应的标签。 修改这 3 个变量对应如下操作:

  • 更新数据库中文献标签
  • 移动文件至对应目录

更新文件评级分数逻辑同上。

文件命名规范

针对论文的文件名命名规范,希望能直观反映如下几点:

  • 列表项
  • 论文年份
  • 发表的会议或期刊
  • 是否开源论文的代码
  • 文件名

示例文件命名:

  • (2015TPAMI)Multi-View Intact Space Learning.pdf
  • (2011NIPS)(code)Co-regularized Multi-view Spectral Clustering.pdf

大神又要造轮子了吗?能否基于zotero做一些增量开发,比如说监控目录自动添加,比如说自动提取pdf信息作为文献信息,vim化操作快速移动、添加标签,等等。

1 个赞

高级了