如何从 Hugo 的 RSS 输出中排除短代码
我和很多人一样,在博文中使用了豆瓣/NeoDB 卡片短代码,效果如下:
「週刊少年ジャンプ」で連載されるや読者から圧倒的な支持を受け、同誌が前人未到の最大発行部数653万部を達成した1995年新年3・4合併号では全ページフルカラーで巻頭を飾った、ジャンプを代表する国民的漫画『SLAM DUNK』(スラムダンク)。
その『SLAM DUNK』のイラスト130点超をまとめたイラスト集『PLUS/ SLAM DUNK ILLUSTRATIONS 2 』 (プラス/ スラムダンク イラストレーションズ 2)が2020年4月3日に発売決定。『SLAM DUNK』のイラスト集としては、1997年6月に刊行され、今なお版を重ねている『INOUE TAKEHIKO ILLUSTRATIONS』に続く、第2弾となります。
本イラスト集では、2018年に装いを新たに刊行した『SLAM DUNK』新装再編版(全20巻)のカバーイラストを中心に、『SLAM DUNK』完全版(全24巻/2001~2002年)や『SLAM DUNK』1億冊感謝記念新聞広告(2004年)など様々な出版物・企画・商品のために描かれたイラスト130点超を収録予定。もちろん全イラスト初収録。この中には、スケッチや習作段階の未公開イラストも複数含まれ、さらにカバーイラストを含めた11点を井上雄彦氏が新たに描き下ろします。
約30cm四方の大型特殊判型本のページをめくるたびに現れる、鮮烈かつ美麗なイラストからは個性豊かなキャラクターたちの“息吹"が感じられます。
また、初版限定特典として、カバーイラストをタテ12cm×ヨコ24cmサイズに印刷した特製ポストカードが封入されます。
在 RSS 阅读器中这个卡片会失去样式变成混乱的内容堆叠,因此想在 RSS 输出中排除掉短代码。不过这也是因为我是全文输出,RSS 只输出摘要的不会有此烦恼。
本来我想改 Hugo 的 rss.xml
文件,在 <description>
部分添加筛选条件去除包含短代码的内容,但不知为何总是不成功,让 ChatGPT 改了好多遍还是失败。
没想到最后直接 Google 关键词在 Hugo 的讨论区找到答案了, Exclude shortcode output from RSS? 。
简单来说就是在 layouts/shortcodes
下直接创建一个同名文件,比如我的豆瓣卡片是 douban.html
,那就新建一个 douban.xml
,内容为空就是在 RSS 中彻底移除短代码,也可以在这个文件里加上特定内容取代原本短代码的输出(我图省事只创建了空白文件)。
原本我想在 rss.xml
中的 <description>
部分加上一个 if 语句通过判断是否有内容被移除,以此来确定是否在 RSS 文章内容顶端添加提醒,比如“某些样式在 RSS 中无法显示,请点击原文查看”。但是现在的 shortcode 替换并不发生在 rss.xml
中,就无法如此操作。考虑了下我把 <description>
改成了下面这样,不进行判断,只要在 RSS 阅读器阅读都会看到提醒。(但我之前在 Inoreader 试了下怎么好像也看不到这行字?不知哪里出了问题,下次再解决吧……)
<description>
<p>The specific style in some posts may have been removed in RSS feed. <a href="{{ .Permalink }}">Click here</a> to view the original post.</p>
{{ .Content | html }}
</description>
Comments