内容提要
本文介绍了如何使用NeoDB API创建观影页面。用户需注册Mastodon账号并获取NeoDB的Access Token。通过Shell脚本下载电影和电视剧数据,并合并为JSON文件。创建HTML模板展示观影数据,添加CSS样式和JavaScript用于排序。最后,利用GitHub Actions自动更新数据,确保页面内容及时性。
延伸解读
为何选择静态化而非动态API
文章提到作者没有使用API动态获取数据,而是将数据下载到本地静态化,以提升性能。这种做法减少了实时API请求,加快页面加载速度,并降低对NeoDB服务的依赖。但代价是数据更新有延迟,需要定期同步。对于个人观影页面,这种权衡通常可以接受,尤其当标记频率不高时。
数据下载与合并的技术细节
由于NeoDB API限制分页,无法一次获取所有数据,作者使用Shell脚本按页下载电影和电视剧数据,并利用jq工具合并为单个JSON文件。合并时还进行了去重、按创建时间排序和反转,确保数据唯一且最新在前。这要求用户熟悉命令行和jq,但提供了灵活的数据处理方式。
前端展示与排序的实现
页面使用Hugo模板读取本地JSON数据,生成观影列表,并添加CSS样式实现网格布局和悬停效果。JavaScript用于排序功能,允许按观影时间、评分和评分人数排序。排序通过动态生成CSS样式表调整元素顺序,无需重新加载页面。这种实现方式简单有效,但依赖JavaScript,禁用JS时排序功能将失效。
自动化更新与部署流程
通过GitHub Actions,可以定期自动同步NeoDB数据,并将更新提交到仓库,触发Hugo构建和部署。工作流中比较本地和远程标记数,仅当数量变化时才下载新数据,节省资源。Access Token存储在GitHub Secrets中,确保安全。此外,海报图片会上传到腾讯云COS,加速访问。这实现了全自动更新,但需要配置多个Secrets和步骤。
Q&A
如何注册NeoDB账号?
用户需先注册一个Mastodon账号,然后使用该账号登录NeoDB。
如何获取NeoDB的Access Token?
可以参考《NeoDB获取Access Token》一文来生成Access Token。
如何下载电影和电视剧数据?
使用Shell脚本按页下载数据,合并为一个JSON文件。
如何创建观影页面的HTML模板?
在Hugo根目录或主题目录下新建movie.html模板,并引入CSS和JSON数据。
如何使用GitHub Actions自动更新数据?
通过设置GitHub Actions,定期检查并下载新的NeoDB数据,确保页面内容及时更新。
观影页面的CSS样式如何设置?
CSS样式应放在Hugo的static目录中,设置必要的样式以影响观影页面。