新博客方案需求收集

3.20 博文

这篇博文记录我对博客管理程序的需求:

  1. 文件顺序可以任意调整。

我们可以对文件的父级目录进行设置,设置该目录的默认排序方式,按创建时间、修改时间、大小、自定义。当父级目录排序方式为自定义时,我们可以任意对文件进行拖动,而拖动后的结果就是我们的文件顺序。

这个需求存在的问题是:当从该项目工程导出到发布平台时,该顺序可能被打乱。比如我先创建了博文B,再创建了博文A,我希望博文A在博文B的前面,但是发布到hexo平台时,因为博文A的创建时间最新,它会把博文A放置在博文B的前方。(这个例子举的并不好,总之,我就是想说Hexo平台有一套自己的排序博文的方式)。我将尽我最大的努力实现在发布平台也保持在项目中的自定义排序(当然,前提时我到时候有这个需求),我可能会去调整一下Hexo主题的代码,使它也支持我这种自定义排序,或者利用一些小技巧,比如修改下文档的更新时间什么的,确保发布时能有我自己想要的顺序。不过这个目前不必太上心,我会将发布插件分开,可以根据需求调整发布插件,甚至自行开发发布插件。

  1. 全局检索可以避免部分文件夹

这个需求是这样的,随着后期博文的增加,我会将自己的周报日报等等东西都放进我的博客里。而周报日报技术含量比较低,我平时搜索时很少会搜索这些稳定,所以我希望我全局搜索时可以避免搜索这些文档。

我这个需求可以结合下一个需求实现,这样的话,对文件夹的设置可以集中在一起。

  1. 设置文件夹默认展开状态

我发现当我的文档非常多的时候,展开时会很长,并不是便于浏览,而像周报日报之类的文档,其实并没有展开的必要。我希望设置他们的默认展开状态,这样我使用编辑器提供的展开所有文件的功能时,仍然可以避免展开这些文档。

  1. 快速格式化

这个需求是这样的,我在写博客时,当我在当前博客进行格式化时,能快速的将所有代码块里的代码都格式化了。这个过程可能需要识别代码块里代码的语言,根据语言进行格式化。这个过程最好有提示。

  1. 添加标签的功能

原创、笔记、转载、整理等,可以为文件夹设置一个标签,然后这个文件夹下的所有文件都默认是这个标签。当然,文件也可以单独设置标签,文件的单独标签优先级是远远高于文件夹的。这样的话,我又产生了一个新的需求,我需要一个界面,去查看我所有博文的标签,并且可以动态调整它们的标签。我还需要一个功能,我搜索的时候能够筛选这些标签。

需要区分一下这块的标签与文章里的关键字,我目前博文中的tags更多的是关键字,而不是标签。

  1. 一个奇奇怪怪的需求

我决定用管理代码的方式管理博文的时候,我们可能会建非常深的目录结构,但是博客程序的目录结构太深了,并不是非常好的体验,所以,我有计划在这方面做一些计划。

提供一种目录方案的东西?因为我的博文需要发布多个平台,可能每个平台都有自己方案,比如我现在用和Hexo主题就支持二级的目录结构,但是有些主题是不支持这个的。那我就可以创建两个目录方案,一个是一级的目录方案,一个是二级的目录方案,当然我还需要一个默认的目录方案。编辑文章属性,或者文件夹属性,修改其在各个目录方案下放置的位置。

举一个例子,我设计例如如下的目录方案:


{
    "name": "一级",
    "autoScript":""
    "categories": [
        "新的博文",
        "202103",
        "202104",
        "202105",
        "202106",
        "202107",
    ]
    
}

  1. 目录结构需要支持脚本,该脚本会在文档创建和修改时自动执行,自动为文件设置合适目录方案值

举一个例子,我设置了一个脚本,这个脚本会在新增文件时,读取文件的创建时间,根据计算得到年份,如果目录方案中没有该年份,则创建一个该年份,并设置值为该年年份。总之这个脚本的入参将会时这个文件的所有属性,(部分信息是只读的)包括插件配置文件中目录方案部分的配置(部分信息是只读的)。对返回数据将会全部写回到相应的文件中。

  1. 需要解决draw.io和思维导图渲染的问题,这个非常需要。

这个优先级没有那么高。