Hugoで日本語タグを英語URLにしてみたデモサイト。

Hugoで日本語タグを英語URLにしてみたデモサイト

Hugoで日本語タグを英語URLとしたときのメモ書き

2023-08-01

Hugoで日本語タグを英語URLとしたときのメモ書き。

config.toml に追記をする。

参考(公式サイト)

URL management | Hugo

追記の例

「タグのみをスラッグに設定するパターン」と「タグとカテゴリーをスラッグに設定するパターン」がある。

このデモサイトは「タグのみをスラッグに設定するパターン」にしている。

[permalinks]
tags = "/tags/:slug/"


[permalinks]
categories = "/categories/:slug/"
tags = "/tags/:slug/"

修正するファイル

日本語タグを英語URLにするには「GetTerms」を使うらしいので、上手く表示できるように修正する。

/themes/hugo-fruits/layouts/blog/single.html

方法は複数あるので、取捨選択・加工・編集で表示の調整をする。

参考(公式サイト)

Taxonomy templates | Hugo

Single page templates | Hugo

{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
  <ul>
    {{ range . }}
      <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
    {{ end }}
  </ul>
{{ end }}


{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>
    {{ (site.GetPage $taxonomy).LinkTitle }}:
    {{ range $k, $_ := . -}}
      {{ if $k }}, {{ end }}
      <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
    {{- end }}
  </p>
{{ end }}


<ul>
  {{ range .Site.Taxonomies.tags }}
    <li><a href="{{ .Page.Permalink }}">{{ .Page.Title }}</a> {{ .Count }}</li>
  {{ end }}
</ul>
{{ if .Params.tags }}
      {{ with .GetTerms "tags" }}
        <ul id="tags">
          {{ range . }}
            <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
          {{ end }}
        </ul>
      {{ end }}
{{ end }}


{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
  <ul>
    {{ range . }}
      <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
    {{ end }}
  </ul>
{{ end }}

日本語の該当フォルダ+_index.md の設置

自前で用意をしなければならないので、日本語タグが多いほど手間は増える。

/content/tags

  • 「日本語の該当フォルダ + _index.md」の設置

日本語の該当フォルダ+_index.md の設置1

日本語の該当フォルダ+_index.md の設置2

日本語の該当フォルダ+_index.md の設置3

ビルド後

ビルド前にローカルチェックで、挙動や動作確認をしておく。

ビルド後に「public/tags」を確認すると「_index.md の slug」が変換されたフォルダになっていることが判る。

英語URLのフォルダに変換された状態

まとめ

Hugoの仕様から「かんたんに日本語タグを英語URLに変換」できるような機能が無いので、実現には手間が掛かる。(hugo v0.115.4)

日時

2023-08-01
2023-08-01
2023-08-01

GetTerms

タグのページ:

Sample

タグのページ:

タグのページ: Sample

Hugoで日本語タグを英語URLとしたときのメモ書き

Hugoで日本語タグを英語URLとしたときのメモ書き。

config.toml に追記をする。

参考(公式サイト)

URL management | Hugo

追記の例

「タグのみをスラッグに設定するパターン」と「タグとカテゴリーをスラッグに設定するパターン」がある。

このデモサイトは「タグのみをスラッグに設定するパターン」にしている。

[permalinks]
tags = "/tags/:slug/"


[permalinks]
categories = "/categories/:slug/"
tags = "/tags/:slug/"

修正するファイル

日本語タグを英語URLにするには「GetTerms」を使うらしいので、上手く表示できるように修正する。

/themes/hugo-fruits/layouts/blog/single.html

方法は複数あるので、取捨選択・加工・編集で表示の調整をする。

参考(公式サイト)

Taxonomy templates | Hugo

Single page templates | Hugo

{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
  <ul>
    {{ range . }}
      <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
    {{ end }}
  </ul>
{{ end }}


{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>
    {{ (site.GetPage $taxonomy).LinkTitle }}:
    {{ range $k, $_ := . -}}
      {{ if $k }}, {{ end }}
      <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
    {{- end }}
  </p>
{{ end }}


<ul>
  {{ range .Site.Taxonomies.tags }}
    <li><a href="{{ .Page.Permalink }}">{{ .Page.Title }}</a> {{ .Count }}</li>
  {{ end }}
</ul>
{{ if .Params.tags }}
      {{ with .GetTerms "tags" }}
        <ul id="tags">
          {{ range . }}
            <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
          {{ end }}
        </ul>
      {{ end }}
{{ end }}


{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
  <p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
  <ul>
    {{ range . }}
      <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
    {{ end }}
  </ul>
{{ end }}

日本語の該当フォルダ+_index.md の設置

自前で用意をしなければならないので、日本語タグが多いほど手間は増える。

/content/tags

  • 「日本語の該当フォルダ + _index.md」の設置

日本語の該当フォルダ+_index.md の設置1

日本語の該当フォルダ+_index.md の設置2

日本語の該当フォルダ+_index.md の設置3

ビルド後

ビルド前にローカルチェックで、挙動や動作確認をしておく。

ビルド後に「public/tags」を確認すると「_index.md の slug」が変換されたフォルダになっていることが判る。

英語URLのフォルダに変換された状態

まとめ

Hugoの仕様から「かんたんに日本語タグを英語URLに変換」できるような機能が無いので、実現には手間が掛かる。(hugo v0.115.4)