[Hugo v0.55] Icarusテーマのタグやカテゴリーが小文字に統一されてしまう問題を直す

Hugo Icarus(Last Updated 2017-05-20)のテーマをHugo v0.55で表示すると、タグやカテゴリーなどのタクソノミーが勝手に小文字になってしまう。(例: Hugohugo になる)

テンプレートを修正してこれを直す。

Hugo Icarus Theme テンプレートの修正

タクソノミーのリストのアイテムの以下の値を使うようにする

  • .Page.Title: 名前
  • .Page.Permalink: リンク先のURL
  • .Count: 記事数

layouts/partials/widgets/categories.html の修正

  {{ if .Site.Params.widgets.categories }}
  {{ if isset .Site.Taxonomies "categories" }}
  {{ if not (eq (len .Site.Taxonomies.categories) 0) }}
  <div class="widget-wrap">
    <h3 class="widget-title">{{with .Site.Data.l10n.widgets.categories.title}}{{.}}{{end}}</h3>
      <div class="widget">
        <ul class="category-list">
-         {{ range $name, $items := .Site.Taxonomies.categories }}
+         {{ range .Site.Taxonomies.categories }}
          <li class="category-list-item">
-           {{ $url := printf "%s/%s" "categories" ($name | urlize | lower)}}
-           <a class="category-list-link" href="{{ $url | absURL }}">
+           <a class="category-list-link" href="{{ .Page.Permalink }}">
-             {{ $name }}
+             {{ .Page.Title }}
            </a>
-           <span class="category-list-count">{{ len $items }}</span>
+           <span class="category-list-count">{{ .Count }}</span>
          </li>
          {{ end }}
        </ul>
    </div>
</div>
{{ end }}
{{ end }}
{{ end }}

layouts/partials/widgets/recent_articles.html の修正

  <p class="item-category">
-   {{ $url := printf "%s/%s" "categories" (index .Params.categories 0 | urlize | lower)}}
-   <a class="article-category-link" href="{{ $url | absURL }}">
-     {{ index .Params.categories 0 }}
-   </a>
+   {{ $cat := index .Params.categories 0 }}
+   {{ range .Site.Taxonomies.categories }}
+   {{ if eq $cat (.Page.Title | lower) }}
+   <a class="article-category-link" href="{{ .Page.Permalink }}">
+     {{ .Page.Title }}
+   </a>
+   {{ end }}
+   {{ end }}
  </p>

layouts/partials/widgets/tag_cloud.html の修正

{{ if .Site.Params.widgets.tag_cloud }}
{{ if isset .Site.Taxonomies "tags" }}
{{ if not (eq (len .Site.Taxonomies.tags) 0) }}
<div class="widget-wrap">
    <h3 class="widget-title">
        {{with .Site.Data.l10n.widgets.tag_cloud.title}}{{.}}{{end}}
    </h3>
    <div class="widget tagcloud">
-        {{ range $name, $items := .Site.Taxonomies.tags }}
-        {{ $url := printf "%s/%s" "tags" ($name | urlize | lower)}}
-        <a href="{{ $url | absURL }}" style="font-size: 12px;">{{ $name }}</a>
+        {{ range .Site.Taxonomies.tags }}
+        <a href="{{ .Page.Permalink }}" style="font-size: 12px;">{{ .Page.Title }}</a>
        {{ end }}
    </div>
</div>
{{ end }}
{{ end }}
{{ end }}

layouts/partials/widgets/tags.html の修正

  {{ if .Site.Params.widgets.tags }}
  {{ if isset .Site.Taxonomies "tags" }}
  {{ if not (eq (len .Site.Taxonomies.tags) 0) }}
  <div class="widget-wrap">
    <h3 class="widget-title">
      {{ with .Site.Data.l10n.widgets.tags.title }}{{.}}{{end}}
    </h3>
    <div class="widget">
      <ul class="category-list">
-     {{ range $name, $items := .Site.Taxonomies.tags }}
+     {{ range .Site.Taxonomies.tags }}
        <li class="category-list-item">
-       {{ $url := printf "%s/%s" "tags" ($name | urlize | lower)}}
-         <a class="category-list-link" href="{{ $url | absURL }}">
+         <a class="category-list-link" href="{{ .Page.Permalink }}">
-           {{ $name }}
+           {{ .Page.Title }}
          </a>
-         <span class="category-list-count">{{ len $items }}</span>
+         <span class="category-list-count">{{ .Count }}</span>
        </li>
        {{ end }}
      </ul>
    </div>
  </div>
  {{ end }}
  {{ end }}
  {{ end }}

layouts/partials/article_header.html の修正

    <div class="article-category">
      <i class="fa fa-folder"></i>
      {{ range $k, $v := .Params.categories }}
-     {{ $url := printf "categories/%s" (. | urlize | lower) }}
-     <a class="article-category-link" href="{{ $url | absURL }}">{{ . }}</a>
+     {{ range $.Site.Taxonomies.categories }}
+     {{ if eq $v (.Page.Title | lower) }}
+     <a class="article-category-link" href="{{ .Page.Permalink }}">
+       {{ .Page.Title }}
+     </a>
+     {{ end }}
+     {{ end }}
      {{ if lt $k (sub $categoriesLen 1) }}&middot;{{ end }}
      {{ end }}
    </div>
    {{ end }}
  {{ end }}

  {{ if isset .Params "tags" }}
    {{ $tagsLen := len .Params.tags }}
    {{ if gt $tagsLen 0 }}
    <div class="article-category">
      <i class="fa fa-tags"></i>
      {{ range $k, $v := .Params.tags }}
-     {{ $url := printf "tags/%s" (. | urlize | lower) }}
-     <a class="article-category-link" href="{{ $url | absURL }}">{{ . }}</a>
+     {{ range $.Site.Taxonomies.tags }}
+     {{ if eq $v (.Page.Title | lower) }}
+     <a class="article-category-link" href="{{ .Page.Permalink }}">
+       {{ .Page.Title }}
+     </a>
+     {{ end }}
+     {{ end }}
      {{ if lt $k (sub $tagsLen 1) }}&middot;{{ end }}
      {{ end }}
    </div>

preserveTaxonomyNamesHugo v0.55 で廃止された

config.tomlpreserveTaxonomyNames = true を指定することで、一部のタクソノミーが勝手に小文字に変換されてしまう仕様を回避できたが、これはできなくなった。

preserveTaxonomyNames の設定は削除しよう。

Share
関連記事