Drupal のテーマを .info.ymlファイルで定義する

Drupal テーマ作成ガイド
この記事は「 Defining a theme with an .info.yml file 」の翻訳です。
この記事の目次

最終更新日 2020 年 11 月 23 日

.info.ymlファイルを作成する

テーマフォルダのルートに .info.yml ファイルを作成します。テーマフォルダ名は .info.yml ファイルのファイル名と同じ名前にする必要があります。もしテーマ名が "Fluffiness" の場合、テーマフォルダ名は "fluffiness / " で、.info.yml ファイル名は "fluffiness / fluffiness.info.yml" です。この .info.yml ファイルが存在する場合、このテーマは、管理画面の 管理 ”>” テーマ に表示されます。モジュールや別のテーマで、使用されていないテーマ名をつけるようにしてください。テーマ名は、1つの 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(必須)

ヒューマンリーダブルなテーマの名前を設定します。これは「テーマ」ページに表示されます。

name: Fluffiness

 

type (必須)

ファイルで拡張機能のタイプを設定します("module", "theme", "profile" など)。テーマの場合は"theme"に設定する必要があります。

type: theme

 

description (オプション)

「テーマ」ページに表示されるテーマの説明です。

description: An extra cuddly Drupal theme available in grey and blue.

 

dependencies (オプション)

Drupal 8.9 で導入されました

変更履歴:https://www.drupal.org/node/2937955

依存関係を記した文字列の配列

dependencies:
  - drupal:views
  - paragraphs:paragraphs
  - components:components (>=8.x-2.x)

 

package (オプション)

テーマをグループ化するパッケージを指定します。

package: Core

 

core (必須)

テーマと互換性のあるDrupal coreのバージョンを指定します。

core: 8.x

 

core_version_requirement を指定する場合は省略可能です。また、Drupal 8.7.7 およびそれ以下はサポートしません。変更履歴を参照してください。

php (オプション)

最低限必要とされるPHPのバージョン。 デフォルトは、DRUPAL_MINIMUM_PHP constant の値になります。

php: 5.5.9

 

version (オプション)

バージョンを指定します。drupal.orgで提供されているテーマの場合は、バージョン番号はパッケージングスクリプトによって自動的に記入されますので、手動で設定せずに、version の行自体を完全に省略してください。

version: 8.x-1.0

または

version: '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 (オプション)

管理画面からのテーマの有効/無効の設定ができないように、「テーマ」ページからテーマを非表示にするかどうかを設定します。

hidden: true

 

engine (オプション)

テーマのテンプレートエンジンを設定します。デフォルトは "twig"です。

engine: twig

 

logo (オプション)

8.6.xで導入されました
変更履歴:https://www.drupal.org/node/2939152

テーマのファイルに対するロゴのパス。デフォルトでは、Drupalはテーマフォルダのルートにある "logo.svg"という名前のファイルを探し、これをテーマのロゴとして使用します。

logo: images/logo.png

 

screenshot (オプション)

.info.ymlファイルを基準にしたスクリーンショット画像ファイルへのパスを設定します。スクリーンショット画像ファイルは、幅が588pixel、高さが438pixelですが、表示時には、小さいサイズになります。 デフォルトでは、テーマフォルダルートの "screenshot.png"ファイルを 「テーマ」ページのテーマイメージとして使用します。

screenshot: fluffiness.png

 

regions (オプション)

リージョンのリスト(注意:リージョンキーの前に、ダッシュ ” - ”はつきません)。contentリージョンは必須です。 詳しくは、「テーマにリージョンを追加する」ページを参照。

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 (廃止予定)

このテーマが有効なすべてのページにおいて削除する、他のテーマやモジュールに由来のスタイルシートの一覧を設定します。同じ名前を持つファイルが存在する場合もあるので、ルートを基準にした絶対パスで設定します。 ファイルが、モジュールまたはテーマで使用するライブラリの一部の場合、絶対パスではなく、”@” の後に、モジュール名またはライブラリ名を書き(モジュールまたはライブラリを読み込みます)、モジュールまたはライブラリ内のパスを記載します。 "@"はYAMLの予約済みインジケータのため、値を引用符で囲む必要があります。

注:このキーは推奨されておらず、Drupal 9 で削除されます。ほとんどの場合、libraries-override で設定が可能です。

ckeditor_stylesheets (オプション)

CKEditorのフレーム内に追加するスタイルシートをリストで設定します。

ckeditor_stylesheets:
  - https://fonts.googleapis.com/css?family=Open+Sans
  - css/base/elements.css

 

詳しくは

この記事を書いた人 : Yoshikazu Aoyama

昔は回線交換やL2/L3のプロトコルスタックの開発をしてました。その後、組み込みLinuxやJava/Ruby on RailsなどのWebシステム開発などを経て現職。
インフラからDrupalのモジュール開発、Drupal以外の開発までなんでもやります。
普段は札幌で猫と一緒にリモートワークしています。 好きなモジュールは Restful Web Services と Rules

関連コンテンツ