HugoでthemeにPaperModを用いている場合、baseUrlを適切に設定しないとTwitterのシェアアイコンが正しく動作しない事がわかった。TwitterのシェアアイコンではpageのParmalink(.Parmalink)をURLとして使っている。
hugo-PaperModのTwitterのshare_iconは themes/hugo-PaperMod/layouts/partials/share_icons.html
で指定されている。
<a target="_blank" rel="noopener noreferrer" aria-label="share {{ $title | plainify }} on twitter" href="https://twitter.com/intent/tweet/?text={{ $title }}&url={{ $pageurl }}"> <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
$pageurlは themes/hugo-PaperMod/layouts/partials/share_icons.html
の先頭で宣言されている。
{{- $pageurl := .Permalink }}
ParmalinkにはbaseUrlの値が含まれるため、おかしなURLとなり機能しない。当初 baseUrl
には何も考えず "" を設定していた。localの環境では =//localhost:1313…= のようなURLになり、productionの環境では originがないURL(pathのみ)として扱われていた。そのために次のように設定を変更した。
baseURL: "https://symdon.ga/"
baseURL: "http://localhost:1313/"