Hugo 0.42 からSpeaker Deck貼付はshortcodeではなくembed codeを使う

tldr: Hugo 0.42 以降で Speaker Deck のスライドを貼り付けるときは Speaker Deck の embed code を使いましょう。


ある日 hugo server が実行できなくなった

Hugo のバージョンを上げてこの blog の原稿を開いたらこんなエラーが発生してしまった。
この記事の Speaker Deck shortcode が問題あるらしい。

$ hugo server -D
Building sites … ERROR 2018/08/19 16:32:45 Unable to locate template for shortcode "speakerdeck" in page "posts/2018.05/td-tech-talk-2018.ja.md"
Total in 264 ms
Error: Error building site: logged 1 error(s)

どうやら Hugo から Speaker Deck の shortcode が取り除かれた模様。
4:316:9 のスライドをうまく扱うのが困難とのこと。
(正直、shortcode のパラメタでアスペクト比指定させてくれればと思わなくもないが)
Remove the Speaker Deck shortcode from Hugo · Issue #4830 · gohugoio/hugo

この変更は v0.42 でリリースされている。

Release v0.42 · gohugoio/hugo

Notes The speakerdeck shortcode is removed. It didn’t work properly, so is isn’t expected to be in wide use. If you use it, you will get a build error. You will either have to remove its usage or add a speakerdeck shortcode to your own project or theme.

ではどうすればよいのか?

Speaker Deck のスライドから embed code を取得できる。
shortcode ではなくこれを貼り付ければよい。

diff はこんな感じ。
(テキストで書くと hugo が error にしてくれているので画像で貼っている)