Beijing, China: ☀️ 🌡️+20°C 🌬️→19km/h

写在前面

考虑到很多人会用博客记录自己读书或一些观影感受,而豆瓣作为各类影音和书籍的集中社区,很好的保留了个人阅读观影记录。

Hugo 提供 shortcode 方式添加豆瓣卡片方法,可直接参考Sulv’s Blog ,后来发现由于官方 API 的更新或访问延迟,经常导致卡片信息不显示,故探寻以下方法:

GitHub 存储

利用 GitHub Action 特性,以 API 的方式定时从个人豆瓣主页数据获取历史记录,保存书籍、电影等相关信息,同时抓取封面图片等,保留至 GitHub 仓库。

构建个人 GitHub 仓库,在.github/workflows目录下添加douban.yamldownload.yml文件,同时主目录添加douban.pyrequirements.txt文件。在个人豆瓣主页设置个人ID并记录,修改douban.yaml中的id信息,最终卡片信息都存储在data/douban中,封面图片存储在images/douban中,具体文件内容可直接参考个人博客仓库GitHub - ShaohanTian/MyBlog 。(豆瓣卡片根据前端定制化HTML文件和CSS文件配置)

第三方抓取(更推荐)

themes/layouts/shortcodes中添加douban.html文件:

{{ $dbUrl := .Get "src" }}
{{ $dbApiUrl := "https://neodb.social/api/catalog/fetch?url=" }}
{{ $dbFetch := getJSON $dbApiUrl $dbUrl }}

{{ if $dbFetch }}
    {{ $itemRating := 0 }}{{ with $dbFetch.rating }}{{ $itemRating = . }}{{ end }}
    <div class="db-card">
        <div class="db-card-subject">
            <div class="db-card-post"><img loading="lazy" decoding="async" referrerpolicy="no-referrer" src="{{ $dbFetch.cover_image_url }}"></div>
            <div class="db-card-content">
                <div class="db-card-title"><a href="{{ $dbUrl }}" class="cute" target="_blank" rel="noreferrer">{{ $dbFetch.title }}</a></div>
                <div class="rating"><span class="allstardark"><span class="allstarlight" style="width:{{ mul 10 $itemRating }}%"></span></span><span class="rating_nums">{{ $itemRating }}</span></div>
                <div class="db-card-abstract">{{ $dbFetch.brief }}</div>
            </div>
            <div class="db-card-cate">{{ $dbFetch.category }}</div>
        </div>
    </div>
{{else}}
    <p style="text-align: center;"><small>远程获取内容失败,请检查 API 有效性。</small></p>
{{end}}

书写形式及最终呈现的效果如下:

# MD 源文件去除aa标签
{aa{< douban src="https://book.douban.com/subject/26285184/" >}}
9.1
曾经在陈丹青先生《鲁迅是谁?》的演讲中听到一个别致的观点,他说“鲁迅的被扭曲,是现代中国一桩超级公案”,对鲁迅以“政治上的正确”给予他的作品褒扬、抬高,不可怀疑、不可反对,致使鲁迅作品的层次和人格魅力被过度简化,他本身丰富优美的用字,以及风趣幽默的行文,后人常常视而不见,也许我们真的不小心错过了一个可爱的鲁迅。 的确,鲁迅是爱憎分明的,但不等于说鲁迅没有情感,没有他温和、慈爱、狡黠的那一面,他也对人、对动物、对乡土、对自然有着特别的情怀。若是仅仅从某一些方面去解读鲁迅作品内涵的全部,这对他是非常不公平的。 这个版本的《朝花夕拾》做了去政治化的尝试,真诚感受鲁迅作品的丰满原貌,精选《鲁迅全集》中亲切好读、文字优美的散文48篇。全书分为四部分:第一部分《朝花夕拾》,儿时美好记忆牵挂一生;第二部分,选取鲁迅先生随手拈来美文小品,余闲时,赏玩风筝、秋叶、江南雪;第三部分,看先生风趣妙谈古今历史;第四部分,记忆中的那些人那些事,在先生笔端随波荡漾,静谧安好。 活生生的鲁迅如此可爱,你本该更早喜欢。
book

参考文献

【1】 Hugo 豆瓣短代码 :: 木木木木木

【2】 Hugo 博客自定义 shortcodes | Sulv’s Blog

【3】 豆瓣书影音同步 GitHub Action | 怡红院落

【4】 NeoDB 使用指南 | NeoDB 档案馆

【5】 awesome-hugo-shortcodes | GitHub

【6】 shortcodes | douban | GitHub

【7】 Hugo Shortcodes 示例

【8】 immmmm | GitHub

【9】 NeoDB - 发现