概要
テーマ機能では、検索画面の外観(HTML / CSS / JavaScript などの静的アセット一式)をまとめた「静的テーマ」を管理します。静的テーマは ZIP アーカイブとしてアップロードし、サーバー上のテーマディレクトリ(既定: themes 、 theme.directory.path で変更可能)に展開されます。各テーマのルートには、テーマのメタデータを記述した theme.yml マニフェストを配置します。
注釈
JSP ベースのテーマはプラグイン管理で扱うため、本ページの対象外です。 本ページの操作を行うには admin-theme ロール(参照のみの場合は admin-theme-view ロール)が必要です。
管理方法
表示方法
登録済みテーマの一覧ページを開くには、左メニューの [システム > テーマ] をクリックします。
テーマ一覧
一覧ページには、テーマディレクトリに登録されている静的テーマが表示されます。各行に表示される項目は以下のとおりです。
| サムネイル | テーマディレクトリ内の thumbnail.png を表示します。存在しない場合は表示されません。 |
| 名前 | テーマ名(テーマのディレクトリ名)です。クリックすると詳細ページを表示します。 |
| 表示名 | マニフェストの displayName です。 |
| バージョン | マニフェストの version です。 |
| デフォルト | デフォルトテーマに設定されている場合にチェックが表示されます。 |
| 操作 | テーマを削除するための削除ボタンが表示されます(デフォルトテーマには表示されません)。 |
表: テーマ一覧の項目
デフォルトテーマの設定
一覧ページ上部のプルダウンメニューからテーマを選択し、[デフォルトに設定] ボタンをクリックすると、検索画面に適用するデフォルトテーマを設定できます。[(デフォルトなし)] を選択して設定すると、デフォルトテーマの指定を解除します。設定後はテーマ情報が再読み込みされ、ただちに反映されます。
テーマのアップロード
[アップロード] ボタンをクリックするとアップロードページが開きます。テーマ ZIP ファイルを選択して [アップロード] ボタンをクリックすると、テーマがインストールされます。
アップロードできるのは
.zip形式のアーカイブのみです。圧縮ファイルのサイズ上限は既定で 50 MB(
theme.upload.max.size)です。ZIP アーカイブのルートには
theme.ymlマニフェストが必要です。
すでに同名のテーマが存在する場合は置き換えられます。置き換えられた元のテーマは一定期間(既定 7 日、 theme.upload.attic.retention.days )バックアップとして保持されます。
アップロードしたアーカイブがマニフェストの検証に失敗した場合や、展開後のサイズ・エントリ数・圧縮率がサーバーの上限を超えた場合(zip 爆弾対策)はインストールが拒否され、エラーメッセージが表示されます。
theme.yml マニフェスト
静的テーマのルートには、テーマのメタデータを記述した theme.yml (YAML 形式)を配置します。指定できるフィールドは以下のとおりです。
| フィールド | 必須 | 説明 |
|---|---|---|
apiVersion | 必須 | fess.codelibs.org/v1 を指定します。 |
kind | 必須 | StaticTheme を指定します。 |
name | 必須 | テーマ名です。 ^[a-z0-9][a-z0-9_-]{0,63}$ のパターンに従う必要があり、テーマのディレクトリ名と一致している必要があります。 |
displayName | 必須 | 画面に表示する名前です(最大 4096 文字)。 |
version | 必須 | SemVer 形式のバージョン(例: 1.0.0 )です。 |
author | 任意 | 作者です。 |
description | 任意 | 説明です。 |
license | 任意 | ライセンスです。 |
homepage | 任意 | ホームページ URL です。 |
minFessVersion | 任意 | 対応する最小の Fess バージョンです。 |
supportedLocales | 任意 | 対応するロケールです。 |
entry | 任意 | エントリーポイントとなるファイルです(既定: index.html )。 |
spaFallback | 任意 | SPA 形式のフォールバックの有効・無効です(既定: true )。 |
表: theme.yml のフィールド
テーマの削除
一覧ページの削除ボタン、または詳細ページの [削除] ボタンからテーマを削除できます。デフォルトテーマに設定されているテーマは削除できません。削除する前にデフォルトテーマの指定を解除してください。削除されたテーマは一定期間(既定 7 日、 theme.upload.attic.retention.days )バックアップとして保持されます。
再読み込み
テーマディレクトリをサーバー上で直接編集した場合などに、[再読み込み] ボタンをクリックすると、ディスク上のテーマ情報をメモリに再読み込みできます。
テーマ詳細
一覧ページでテーマ名をクリックすると、詳細ページが表示されます。詳細ページでは、マニフェストの内容(名前、表示名、バージョン、デフォルトの可否、状態)を確認できます。
設定プロパティ
テーマ機能に関連する主な設定は fess_config.properties で変更できます。
| プロパティ | 既定値 | 説明 |
|---|---|---|
theme.directory.path | themes | テーマを格納するディレクトリです(サーブレットコンテキストからの相対パス、または絶対パス)。 |
theme.upload.max.size | 52428800 | アップロードできる ZIP の最大サイズ(バイト、約 50 MB)です。 |
theme.upload.max.extracted.size | 209715200 | 展開後の最大合計サイズ(バイト、約 200 MB)です。 |
theme.upload.max.entries | 1000 | ZIP に含められる最大エントリ数です。 |
theme.upload.max.compression.ratio | 100 | エントリ単位での最大圧縮率です。 |
theme.upload.zip.ratio.max | 50 | 累積圧縮率の上限です(zip 爆弾対策)。 |
theme.upload.zip.ratio.check.threshold.bytes | 65536 | 累積圧縮率の評価を開始する圧縮バイト数です。 |
theme.upload.attic.retention.days | 7 | 置き換え・削除したテーマのバックアップを保持する日数です。 |
表: テーマ機能の設定プロパティ