博客文章目录树的设计思路
简单记录和理顺一下想到的思路,
设计思路
- 核心是文章分类目录树,但也可能会有其他项目,例如首页、友链等。
- 核心问题是,项目选中状态问题和目录树展开状态问题。
- 项目选中状态:每个项目有一个独特的 id,统一用这个标识做标记样式类,方便 thymeleaf 初始化,也方便 Alpine 响应式切换。
- 目录树展开状态:维护一个 crumbs。
- 注意:文章项和分类归档项需要展开,普通项虽然不用展开,但对应模板也要给出 crumbs 空列表。
即在文章、分类归档、普通页面的各个模板中都进行 crumbs 的初始化,判断不同模板 id 进行不同处理。
普通 html 访问和 Pjax 更新文章目录树的区别
普通的 html 访问,目录树是根据文章分类信息 crumbs 初始化展开。Pjax 中,目录树是由用户主动点击展开。