はじめに
このドキュメントでは、FSWikiのテンプレートファイル内で有効なタグについて解説します。(サイトテンプレートの概要・ディレクトリ構成・ファイル名については、readme?の「サイトテンプレート」の項目を参照してください)。
FSWikiテンプレートの構成
テンプレートはWikiページの構造を記述します。構造は、次の3つの要素(タグ)で構成されます。
- (X)HTML
- 汎用DIV要素(CSSでデザインし易くする目的)
- FSWikiテンプレートタグ
本項では、FSWikiテンプレートタグについて解説します。(X)HTML、汎用DIV要素については、他の解説書を参照してください。
FSWikiテンプレートタグ
FSWikiテンプレートタグの区分
FSWikiテンプレートタグをまとめると、次のような区分ができます。
FSWikiテンプレートタグ … HTML::Template タグ + FSWiki 独自タグ | +- HTML::Template タグ … TMPL_(*) 要素 / NAME属性が必須 | 書式 <!--TMPL_(command) NAME="(PARAM)"--> | (HTML::Template 依存) | +- FSWiki 独自タグ … FSWIKI_INCLUDE 要素 / PAGE属性が必須 (コアの正規表現 依存) 書式 <!--FSWIKI_INCLUDE PAGE="(WikiPageName)"--> 常時表示ページを取り込む為の独自拡張 Wikiページ存在状況で切り分けるため、 HTML::Template の専用パラメータがある 切り分けの為の専用パラメータ … EXIST_PAGE_(WikiPage) TMPL_IF , TMPL_ELSE, TMPL_UNLESS の記述で活用
- FSWikiテンプレートタグは、HTML::TEmplateタグとFSWiki独自のタグがあります。
- FSWikiテンプレートタグでは、マークアップ言語の要素形式とHTML言語のコメント形式の書式が利用できます。
- default.tmplなどで利用されているFSWikiテンプレートタグは、HTML言語のコメント形式(<!-- -->でタグをくくった形式)です。見やすさの点から、こちらの形式を推奨します。
- FSWiki独自タグはHTML言語のコメント形式の書式のみ利用できます。
FSWikiテンプレートタグ解説
FSWikiのテンプレートで使うタグは、次のものです。HTML::Templateに準じますので、詳細は、HTML::Template - CGI スクリプトから HTML テンプレートを使うための Perl モジュールも参照してください。
TMPL_VAR
- PARAMETER_NAMEの値に置換されます。
<!--TMPL_VAR NAME="PARAMETER_NAME"-->
TMPL_IF
- もしPARAMETER_NAMEの値が真(1 or 何か値が入っている)ならば ... の処理を行います。
<!--TMPL_IF NAME="PARAMETER_NAME"--> ... <!--/TMPL_IF-->
TMPL_ELSE
- もしPARAMETER_NAMEの値が真(1 or 何か値が入っている)ならば a の処理を、値が偽(0 or 空)ならば b の処理を行います。
<!--TMPL_IF NAME="PARAMETER_NAME"--> ..a.. <!--TMPL_ELSE--> ..b.. <!--/TMPL_IF-->
TMPL_UNLESS
- もしPARAMETER_NAMEの値が偽(0 or 空)ならば ... の処理を行います。
<!--TMPL_UNLESS NAME="PARAMETER_NAME"--> ... <!--/TMPL_UNLESS-->
TMPL_INCLUDE
- PARAMETER_NAMEで指定されたファイルを読み込み表示します。
<!--TMPL_INCLUDE NAME="PARAMETER_NAME"-->
- FSWikiにおけるTMPL_INCLUDEの使用例
- example.tmpl 内で <TMPL_INCLUDE NAME="include.tmpl"> と記しておくと、include.tmpl内に記述したHTMLが表示されます。
FSWiki +- /tmpl +- /example +- example.tmpl +- include.tmpl
FSWIKI_INCLUDE
- このタグは、FSWiki独自拡張タグです。
- 用途は、Header,Footer,Menuなど、常時表示するページをテンプレートに書くためです。
<!--FSWIKI_INCLUDE PAGE="WIKI_PAGE_NAME"-->
- WIKI_PAGE_NAMEについて
- WIKI_PAGE_NAMEは任意のWikiページ名です。(例:Header,Menu,Footerなど)
- 指定できるページは、「/」が名前に入らないページです。
- 「/」が名前に入っていなければ、漢字やひらがなの入ったページ名も利用できます。
- EXIST_PAGE_(WikiPage)を併用する
- Wikiページ存在状況で切り分けるため、切り分けの為の専用パラメータ、「EXIST_PAGE_(WikiPage)」があります。
- EXIT_PAGE_(WikiPage)は、TMPL_IF , TMPL_ELSE, TMPL_UNLESS の記述で活用します。
- 指定できるページは、WIKI_PAGE_NAMEに準じます。
<!--TMPL_IF NAME="EXIST_PAGE_Menu"--> <!--FSWIKI_INCLUDE PAGE="Menu"--> <!--/TMPL_IF-->
参考
FSWikiテンプレートタグに利用できるPARAMETER_NAME
PARAMETER_NAME一覧
主に<head>〜</head>内で利用されるPARAMETER_NAME
PARAMETER_NAME | 値 |
---|---|
SITE_NAME | サイト名 |
SITE_TITLE | ページ名 - サイト名 |
HEAD_INFO | RSS auto-discovery情報 |
THEME_CSS | テーマのCSSへの相対パス |
USER_CSS | ユーザ定義スタイル |
THEME_URI | テーマ格納ディレクトリパス |
主に<body>〜</body>内で利用されるPARAMETER_NAME
PARAMETER_NAME | 値 |
---|---|
TITLE | ページ名がリンク形式で表示されます。 |
MENU | Wikiメニュー |
CONTENT | 表示ページの内容(HTMLに変換済み) |
FOOTER | FSWikiのバージョン、管理者情報 |
制御系のPARAMETER_NAME
制御系のPARAMETER_NAMEは主にTMPL_IF,TMPL_UNLESSで利用されます。
PARAMETER_NAME | 値 |
---|---|
IS_ADMIN | 管理者でログイン中なら1、それ以外なら0 |
IS_LOGIN | 管理者またはユーザでログイン中なら1、それ以外なら0 |
FRONT_PAGE | 表示するページがFrontPageなら1、それ以外なら0 |
CAN_SHOW | 表示するページが参照可能なら1、参照不可能なら0 |
EDIT_MODE | 編集画面なら1、それ以外なら0 |
HAVE_USER_CSS | ユーザ定義スタイルがある場合1、ない場合0 |
EXIST_PAGE_WikiPage | WikiPageが存在する場合1、しない場合は0 |
SITE_NAME
- 値
- SITE_NAMEの値は「サイト名」です。
- 「サイト名」は、管理者でログイン→「管理」→「環境設定」ページの設定できます。
- この値はタグなどは入りません。
- 類似パラメータネームにSITE_TITLEがあります。
- 値の例
- このサイトの場合。
ドキュメント
- 記述例
- もし表示ページがFrongPageならば、「サイト名」を表示する。そうでない場合、「ページ名 - サイト名」(SITE_TITLE)を表示する。
<!--TMPL_IF NAME="FRONT_PAGE"--> <title><!--TMPL_VAR NAME="SITE_NAME"--></title> <!--TMPL_ELSE--> <title><!--TMPL_VAR NAME="SITE_TITLE"--></title> <!--/TMPL_IF-->
SITE_TITLE
- 値
- SITE_TITLEの値は「ページ名 - サイト名」です。
- 値の例
- このサイトのSandBox?ページの場合
SandBox - ドキュメント
- 記述例(default.tmpl)
- default.tmplでは<head>〜</head>内で次のように利用しています。
<title><!--TMPL_VAR NAME="SITE_TITLE"--></title>
HEAD_INFO
- 値
- HEAD_INFOの値は、RSS auto-discovery情報です。
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<link rel="alternate" type="application/rss+xml" title="RSS" href="wiki.cgi?action=RSS">
- 記述例(default.tmpl)
- default.tmplでは<head>〜</head>内で次のように利用しています。
<!--TMPL_VAR NAME="HEAD_INFO"-->
THEME_CSS
- 値
- テーマのCSSへの相対パスが表示されます。
- 管理者でログイン→「管理」→「スタイル設定」ページの「テーマ」で指定します。
- 値の例
- 「スタイル設定」でdefaultを指定します。すると次の値がTHEME_CSSに入っています。
./theme/default/default.css
- 記述例(default.tmpl)
- default.tmplでは<head>〜</head>内で次のように利用しています。
- 下記の記述は、もしTHEME_CSSに値がある場合、THEME_CSSで指定した外部スタイルシート(テーマ)へのlinkを表示します。
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--TMPL_IF NAME="THEME_CSS"--> <link rel="stylesheet" type="text/css" href="<!--TMPL_VAR NAME="THEME_CSS"-->"> <!--/TMPL_IF-->
USER_CSS
- 値
- 「ユーザ定義スタイル」で定義された文字列です。
- 「ユーザ定義スタイル」の設定は、管理者でログイン→「管理」→「スタイル設定」ページの「ユーザ定義スタイル」に記述します。
- 値の例
/* エラーメッセージ */ .error { color : #FF0000; font-weight : bold; } /* 存在しないWikiページ */ span.nopage { background-color : #FFFF88; } (以下省略)
- 記述例(default.tmpl)
- default.tmplでは<head>〜</head>内で次のように利用しています。
- 下記の記述は、もしユーザ定義スタイルが存在する場合、head中に定義されたCSSをstyleタグで埋め込みます。
<!--TMPL_IF NAME="HAVE_USER_CSS"--> <style type="text/css"> <!-- <!--TMPL_VAR NAME="USER_CSS"--> --> </style> <!--/TMPL_IF-->
THEME_URI
- 値
- setup.datの「テーマを参照するためのURI(theme_uri)」で定義したパスを表示します。
- 値の例
- デフォルト値の場合
./theme
- 記述例
<!--TMPL_VAR NAME="THEME_URI"-->
TITLE
- 値
- 表示されるページ名が出力されます。
- wiki内を検索するリンク形式です。
- 値の例
- SandBoxは任意のWikiページ名になります。
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<a href="wiki.cgi?action=SEARCH&word=SandBox">SandBox</a>
- 記述例(default.tmpl)
- default.tmplでは<body>〜</body>内で次のように利用しています。
<h1><!--TMPL_VAR NAME="TITLE"--></h1>
MENU
- 値
- Wikiメニューです。
- Wikiメニューは、「トップ 新規 編集 差分 一覧 検索 ヘルプ ログイン」などのWikiを操作するメニューです。
- サイドバーのメニューではありませんのでご注意ください。
- ログイン状態によってWikiメニューは自動的に表示項目が決まります。
- Wikiメニューです。
- 値の例
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--========================================================================--> <!-- ヘッダ(メニューを表示) --> <!--========================================================================--> <div class="adminmenu"> <span class="adminmenu"> <a href="wiki.cgi?page=FrontPage">トップ</a> </span> <span class="adminmenu"> <a href="wiki.cgi?action=NEW" rel="nofollow">新規</a> </span> (以下省略)
- 記述例(default.tmpl)
- default.tmplでは<body>〜</body>内で次のように利用しています。
<!--TMPL_VAR NAME="MENU"-->
- もし、ログイン時のみWikiメニューを見せたい場合は次のように書くこともできます。
- 次の記述例は、ログインしている場合Wikiメニューを表示し、ログインしていない場合はログインのみを表示します。
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--TMPL_IF NAME="IS_LOGIN"--> <!--TMPL_VAR NAME="MENU"--> <!--TMPL_ELSE--> <div class="adminmenu"> <span class="adminmenu"> <a href="wiki.cgi?action=LOGIN">ログイン</a> </span> </div> <!--adminmenu--> <!--/TMPL_IF-->
CONTENT
- 値
- 表示するページの内容が、HTMLに変換済みで表示されます。編集モードの時はtextarea(とWiki記法で記載されたコンテンツ)が表示されます。
- 記述例(default.tmpl)
- default.tmplでは<body>〜</body>内で次のように利用しています。
<div class="body"> <div class="section"> <!--TMPL_VAR NAME="CONTENT"--> </div> </div>
FOOTER
- 値
- 管理者情報、FSWikiのバージョン情報が表示されます。
- 管理者情報は管理画面の「サイト情報」にある「管理者の名前」と「管理者のメールアドレス(公開用)」で定義した値です。
- Footerページではないのでご注意ください。
- CSSの指定はclass="footer"です。
- 値の例
- yournameは管理者の名前
- 管理者のメールアドレス(公開用)がある場合、<a href="mailto:your_mail_address">yourname</a>になります。
- ※下記の文字列中、hrefのhは小文字に読み換えてください。
<!--========================================================================--> <!-- フッタ --> <!--========================================================================--> <div class="footer"> <!-- 管理者の情報 --> Copyright (C) 2002-2006 yourname <br> <!-- FSWikiのバージョン情報 --> Powered by <a href="http://fswiki.poi.jp/">FreeStyleWiki3.6.2</a> with Perl5.008004 </div>
- 記述例(default.tmpl)
- default.tmplでは<body>〜</body>内で次のように利用しています。
<!--TMPL_VAR NAME="FOOTER"-->
編集履歴
このページの編集に関する記録に関しては、テンプレート/編集ノート?を参照してください。また、内容に関する議論は、Fswiki-dev MLで行ったりしています。