.info.ymlファイルを使用したテーマの定義
Drupal 8テーマを作成するには、まず、テーマに関するメタデータをDrupalに提供するTHEMENAME.info.ymlファイルを作成する必要があります。これはモジュールやインストールプロファイルが定義される方法と似ているため、ファイルの「type」キーを「theme」に設定して区別することが重要です。
このページには、THEMENAME.info.ymlファイルの例と、ファイルに含めることができる情報の概要が含まれています。
.info.ymlファイルを作成する
テーマフォルダーのルートに.info.ymlファイルを作成します。フォルダーは.info.ymlファイルと同じ名前である必要があります。したがって、テーマ名が「Fluffiness」の場合、フォルダーは「fluffiness/」で、.info.ymlファイルは「fluffiness/fluffiness.info.yml」になります。ファイルが最小限の必須プロパティ(name、type、core)で存在する場合、テーマはWebサイトの「管理> 外観」(http://example.com/admin/appearance)に表示されます。モジュールや別のテーマでまだ使用されていないテーマ名を選択することを忘れないでください。テーマ名はDrupalインストール内で一意である必要があります。それ以外の場合、テーマコンポーネントは正しく読み込まれません。
テーマ名のスペースは、フォルダー名(および.info.ymlファイル名)ではアンダースコアに置き換えます。
YAMLファイル構造に慣れていない場合は、YAMLファイル形式の簡単な紹介をお読みください。
- タブは使用できません。スペースのみを使用してください。
- プロパティとリストは2スペースでインデントする必要があります。
例
name: Fluffiness
type: theme
description: 'A cuddly theme that offers extra fluffiness.'
core: 8.x
libraries:
- fluffiness/global-styling
base theme: classy
regions:
header: Header
content: Content
sidebar_first: 'Sidebar first'
footer: Footer
Drupalサイトでは、コアが提供するテーマを見て、.info.ymlファイルの例をさらに見つけることができます。たとえば、core/themes/starkフォルダーを開いてstark.info.ymlファイルを見つけます。
キー/値ペア
次のキー/値ペアは、テーマに関するメタデータを提供し、いくつかのコア機能を定義します。(\Drupal\Core\Extension\InfoParserInterface::parse()を参照。)
- name (必須)
- type (必須)
- description (オプション)
- package (オプション)
- core (必須)
- php (オプション)
- version (オプション)
- libraries (オプション)
- libraries-override (オプション)
- libraries-extend (オプション)
- base theme (推奨)
- hidden (オプション)
- engine (オプション)
- logo (オプション)
- screenshot (オプション)
- regions (オプション)
- regions_hidden (オプション)
- features (オプション)
- stylesheets-remove (非推奨)
- ckeditor_stylesheets (オプション)
name - 名前(必須)
人間が読める名前。テーマがアクティブ化された「外観」ページに表示されます。
name: Fluffiness
type - タイプ(必須)
拡張機能のタイプ(「module」「theme」「profile」)を指定します。テーマの場合、これは常に「theme」である必要があります。この値は大文字と小文字が区別されます。
type: theme
description - 説明(オプション)
「外観」ページに表示される説明。
description: An extra cuddly Drupal theme available in grey and blue.
package - パッケージ(オプション)
テーマをグループ化できる「パッケージ」を定義します。
package: Core
core(必須)
テーマが互換性のあるDrupalコアバージョンを定義します。
core: 8.x
php(オプション)
必要な最小PHPバージョン。デフォルトはDRUPAL_MINIMUM_PHP定数の値です。
php: 5.5.9
version - バージョン(オプション)
バージョンを定義します。drupal.orgでホストされているテーマの場合、バージョン番号はパッケージングスクリプトによって入力されます。これを手動で指定せず、バージョン行を完全に除外してください。
version: 8.x-1.0
libraries - ライブラリ(オプション)
テーマがアクティブなすべてのページに追加するライブラリ(CSSとJavaScriptの両方のアセットを含むことができる)のリスト。テーマとアセットライブラリについて詳しく学ぶ。
libraries:
- fluffiness/global-styling
libraries-override - ライブラリのオーバーライド(オプション)
オーバーライドするライブラリとアセットのコレクション。「ライブラリのオーバーライドと拡張」で詳しく読む。
libraries-override:
contextual/drupal.contextual-links:
css:
component:
/core/themes/stable/css/contextual/contextual.module.css: false
libraries-extend - ライブラリの拡張(オプション)
ライブラリがアタッチされたときに追加されるライブラリとアセットのコレクション。「ライブラリのオーバーライドと拡張」で詳しく読む。
libraries-extend:
core/drupal.user:
- classy/user1
- classy/user2
base theme - ベーステーマ(推奨)
テーマは、別のテーマをベーステーマとして指定することで、そのテーマからアセットを継承できます。ClassyまたはStableを使用することをお勧めします(キーが指定されていない場合のデフォルトはStable)。これにより、テーマはコアテーマ設定の将来の変更を継承しやすくなります。
base theme: classy
hidden(オプション)
テーマを「外観」ページから非表示にして、UIから有効/無効にできないようにするかどうかを指定します。
hidden: true
engine(オプション)
テーマエンジン。デフォルトは「twig」です。
engine: twig
logo - ロゴ(オプション)
変更記録を参照してください:https://www.drupal.org/node/2939152
テーマの.info.ymlファイルを基準にしたロゴへのパス。デフォルトでは、Drupalはテーマフォルダーのルートで「logo.svg」という名前のファイルを探し、テーマのロゴとして使用します。
logo: images/logo.png
screenshot - スクリーンショット(オプション)
テーマの.info.ymlファイルを基準にしたスクリーンショットへのパス。スクリーンショットは、小さいサイズで表示されますが、幅588ピクセル、高さ438ピクセルにする必要があります。デフォルトでは、Drupalはテーマのルートディレクトリで「screenshot.png」という名前のファイルを探し、「外観」ページでテーマ画像として使用します。
screenshot: fluffiness.png
regions - リージョン(オプション)
テーマリージョンのリスト。(リージョンキーの前にはハイフンが付かないことに注意してください。)テーマへのリージョンの追加について詳しく学ぶ。
regions:
header: Header
content: Content
sidebar_first: 'First sidebar'
regions_hidden(オプション)
削除する継承されたリージョンのリスト。
regions_hidden:
- sidebar_last
features - 機能(オプション)
テーマの「設定」ページで公開する機能のリスト。
features:
- comment_user_verification
- comment_user_picture
- favicon
- logo
- node_user_picture
stylesheets-remove - スタイルシート - 削除(非推奨)
テーマがアクティブなすべてのページから削除する、他のモジュールまたはテーマのスタイルシートのリスト。同じ名前のファイルが複数存在する場合の曖昧さを排除するために、各値はドキュメントルートからの完全なパスである必要があります。ファイルがモジュールまたはテーマに属するライブラリの一部である場合、完全なパスの代わりに@module_or_theme_name形式のトークンを使用できます。トークンを使用する場合、「@」はYAMLの予約済みインジケーターであるため、値を引用符で囲む必要があることに注意してください。注:このキーは非推奨であり、Drupal 9で削除されます。ほとんどの場合、libraries-overrideを使用する必要があります。
stylesheets-remove:
- core/assets/vendor/normalize-css/normalize.css
- '@classy/css/components/tabs.css'
ckeditor_stylesheets(オプション)
CKEditorフレームに追加されるスタイルシートのリスト。
ckeditor_stylesheets:
- https://fonts.googleapis.com/css?family=Open+Sans
- css/base/elements.css
詳細情報
- Drupal 8テーマへのスタイルシート(CSS)とJavaScript(JS)の追加
- *.info.ymlファイルで利用可能なすべてのキーの完全な説明は、次にあります:.info.ymlファイルでDrupal 8にモジュールを知らせる。
- 変更記録:.infoファイルは現在.info.ymlファイルです