Skip to content
/ nagoya Public

レスポンシブ対応、日本語特化 Hugo ブログテーマ

License

Notifications You must be signed in to change notification settings

curegit/nagoya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nagoya

Nagoya (名古屋) は、静的サイトジェネレーター Hugo 用の日本語ブログテーマです。 日本語のユーザーに最適になるよう設計されています。

デモサイト: https://curegit.github.io/nagoya-example/

デモサイトのソース: https://github.com/curegit/nagoya-example

主要機能

  • レスポンシブデザイン
  • サムネイル画像の表示
  • ディレクトリツリーによる整理
  • テキストマッチングによる記事の簡易全文検索
  • 数式レンダリング (KaTeX)
  • ダイアグラム表示 (Mermaid)
  • 目次の自動挿入オプションおよび手動挿入用 Shortcode
  • パンくずリスト
  • Open Graph Protocol
  • 構造化データマークアップ (microdata)

提供しない機能

  • i18n(国際化対応)

    このテーマは Monolingual project のみ対応します。

  • ソーシャルメディアリンクの表示レイアウト

    ウィジェットカスタマイズによる、ユーザーサイドでの任意構成としています。

インストール

Git submodule による導入を推奨しています。

git submodule add --name nagoya https://github.com/curegit/nagoya.git themes/nagoya

Hugo の SCSS 拡張 (Hugo extended edition) および、何らかのビルド操作は不要です。

基本設計

Hugo のページバンドルによるコンテンツ整理に従っており、任意の深さのセクションツリーを作成できます。 このテーマでは、リーフバンドルを通常の記事として扱います。

サムネイル画像の設定方法

Hugo 自体の挙動に似せており、フロントマターの images の値があればそれをサムネイルとして使用します。 それがない場合は、ページバンドル内でファイル名に feature, cover, thumbnail が含まれる画像がサムネイルとして使われます。

タグやカテゴリ (Taxonomies)

このテーマでは tag と archive と search が特別扱いされます。

これらを有効化する場合、tag, search, archive の複数形は、それぞれ tags, search, archives と設定される必要があります。

  • tag はサイドバーなどに独自のアイコン付きで表示されます
  • 各記事のキーワード(メタタグ)は設定された tag を基に自動的に設定されます
  • archive を有効化すると、年別にグループ化された全記事一覧ページが生成されます
  • archive の年の値は date 属性から自動で計算されるため、各記事で archives パラメータを設定する必要はありません
  • search を有効化すると、テキストマッチングによる記事の簡易全文検索機能 (Web Worker を使用) が利用できます
  • search と archive は、独自に動的なタームページを提供するので、各記事でのタームパラメータの設定は無効です
  • search と archive は、リーフバンドルのみを対象とし、さらに固定ページは除外されます

なお、Taxonomy 表記を日本語化するためには、該当するセクション(archives や categories)に _index.md ファイルを作成し、その中で title パラメータを設定してください。

設定例: hugo.toml

[taxonomies]
  category = "categories"
  tag = "tags"
  archive = "archives"
  search = "search"

設定例: /content/categories/_index.md

---
title: カテゴリ
---

メニューとウィジェット

Hugo の Menu Templates 機能には対応していません。 /layouts/partials/widgets/ 内にある、配置したい該当場所部分のパーシャルレイアウトをオーバーライドしてメニューを作成します。

/layouts/partials/widgets/ 内のオーバーライドは、カスタムウィジェットの作成にも利用できます。

サイトパラメータ

以下は、hugo.toml に設定できるサイト全体に効果がある params です。

キー 説明
author String サイト全体の著者名を指定します
authorLink String 著者ページまたはメールアドレスのハイパーリンクを設定します
description String サイトの概要を設定します
keywords Array of String サイト全体のキーワードを設定します
showAuthor Boolean 著者情報を記事に表示するか否かを設定します
showLastmod Boolean 各記事の最終更新日を表示するか否かを設定します
lastmodLabelText String 最終更新日を表すラベルのテキストを変更します
dateLabelText String 公開日を表すラベルのテキストを変更します
showSummary Boolean リストページに Summary を表示するか否かを設定します
tersePagination Boolean ページ送りにおいて冗長な矢印要素を除いたフォーマットを利用します
paginationSlots Boolean or Integer ページ送りに表示するページ番号リンクの個数を設定します(true を設定するとフォーマット固有のデフォルト定数、false を設定すると無制限にできます)
sectionLabelText String セクションを表すラベルのテキストを変更します
treeRoot String サイドバーのディレクトリツリーの起点を指定します
showTreeCount Boolean サイドバーのディレクトリツリーに計ページ数を表示するか否かを設定します
sidebarSearch Boolean サイドバーに検索ボックスを表示するか否かを設定します
sidebarTagThreshold Integer 属するページ数がこの数に満たないタグをサイドバーのタグ一覧から割愛する
tagEllipsizedText String or Boolean タグ割愛時に表示するすべてのタグ一覧ページへのリンクテキストを設定します(false を設定すると何も表示しません)
newNum Integer サイドバーに表示する最新記事の数を設定します
newText String サイドバーに表示する最新記事領域のタイトルを設定します
readNextText String 各記事下部に表示する記事リスト領域のタイトルを設定します
relatedNum Integer 各記事下部に表示する記事リストにおける関連記事の数を設定します
randomNum Integer 各記事下部に表示する記事リストにおけるランダム記事の数を設定します
shuffleSeeAlso Boolean 関連記事とランダム記事の順序をシャッフルするか否かを設定します
showHeaderText Boolean ヘッダーにサイトの概要テキストを表示するか否かを設定します
headerText String ヘッダーのサイト概要テキストを手動設定します
maxConcurrency Integer 検索機能で使う Web Worker の上限数を指定します
toc Boolean コンテンツへの目次の自動挿入を有効化します(目次 Shortcode がコンテンツ内に存在している場合は、追加挿入されません)
tocAfterSummary Boolean 目次の自動挿入位置をコンテンツ上部ではなく、Summary の後にします(コンテンツが Truncated されていない場合は上部のままです)
tocHeaderText String or Boolean 目次領域のタイトルを設定します(false を設定すると非表示にできます)

ページパラメータ

フロントマターの params に設定できるものとして以下があります。

キー 説明
author String 明示的にそのページの著者名を設定し、サイト全体の著者名に対して上書きします
authorLink String 著者ページへのハイパーリンク、または著者メールアドレスを表すリンクを設定します
lang String このページの言語を明示し、サイト全体の言語設定に対して上書きします
pin Boolean このページへのリンクをサイドバーにピン留めします(リーフバンドル専用)
page Boolean このページを記事ではなく、固定ページとして扱います(リーフバンドル専用)
toc Boolean サイトパラメータ toc をこのページについてのみ上書き設定します
tocAfterSummary Boolean サイトパラメータ tocAfterSummary をこのページについてのみ上書き設定します

Hugo 組み込みのフロントマター項目で、以下のものは設定するとやや特殊な効果を持ちます。

キー 説明
description String Hugo の Summary の代わりに、手動で記事の説明(メタタグ)を上書きします
keywords Array of String このページのキーワード(メタタグ)を設定し、タグによるキーワード設定に対して上書きします

コンテンツ内汎用スタイリング

コンテンツ内で使用できるスタイリング用ユーティリティがいくつかあります。

セレクタ 説明
.red 赤字にします
.bordered 要素に枠を付けます(figure 要素の場合は中身に付けます)

その他備考

  • CDN 経由で読み込まれるリソース (KaTeX, Mermaid) をローカルビルドによって事前バンドルする場合は、リソースをダウンロードして配置し、読み込み部分のパーシャルレイアウトを上書きしてください。
  • トップページ内容の始まり部分は、コンテンツルートの _index.md で制御できます。 _index.mdtitle は空のままにしておくこともできます。 トップページへのリンクテキストだけを変更したい場合は、代わりに linkTitle を設定してください。
  • Hugo サイト設定の disableKinds において、テーマ設計と整合的に無効化できるものは 404, robotstxt, rss に限ります。

ライセンス

MIT