« ^ »

HugoでthemeにPaperModを採用するならbaseUrlはきちんと設定したほうが良い

所要時間: 約 1分

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 }}&amp;url={{ $pageurl }}">
        <svg version="1.1" viewBox="0 0 512 512" xml:space="preserve">
PaperModのlayouts/partials/share_icons.html

$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/"
production環境用設定ファイル
baseURL: "http://localhost:1313/"
local環境用設定ファイル