ユーザーエージェントのapplication/xhtml+xmlメディアタイプへの対応・未対応によって、XHTML文書のスタイルシートへのリンク方法を切り替えるためのスニペットです。xml-stylesheet処理命令によるスタイルシートへのリンクが推奨されているapplication/xhtml+xmlメディアタイプのXHTML文書において、application/xhtml+xmlメディアタイプに未対応のユーザーエージェントへ配慮することができます。
このスニペットは、application/xhtml+xmlメディアタイプに対応しているユーザーエージェントに対してはxml-stylesheet処理命令を、その他のapplication/xhtml+xmlメディアタイプに対応していないユーザーエージェントやAnother HTML-lint gateway、W3C CSS Validation Serviceに対してはlink要素を出力します。
XHTML文書のメディアタイプにはapplication/xhtml+xmlメディアタイプが推奨されており、text/htmlメディアタイプは一部の例外を除いて非推奨となっています(XHTML Media Types - Summary)。HTML互換性ガイドラインに基づくXHTML 1.0文書に限り、text/htmlメディアタイプとすることが可能です。このプラグインを導入することによって、レガシーなユーザーエージェントにも配慮しつつ、適切なメディアタイプでXHTML文書を提供することができるようになります。
書式や指定できるパラメータは、HTML・XHTMLにおけるlink要素やXMLにおけるxml-stylesheet処理命令の属性・属性値とほぼ同じです。訪問者のユーザーエージェントごとに出力内容を変える必要があるので、スニペットのキャッシュを無効にするための[!スニペット名? &パラメータ名=`値`!]
という書式を利用してください。
[!phiXmlStylesheet? &href=`/assets/templates/phize.net/css/style.css` &xml=`1`!]
パラメータ名 | 省略 | デフォルト値 | 説明 |
---|---|---|---|
href | 不可 | スタイルシートのURI。href属性と同等。 | |
type | 可 | text/css | スタイルシートのメディアタイプ(コンテントタイプ・MIMEタイプ)。type属性と同等。 |
media | 可 | なし | スタイルシートのメディアタイプ(出力先のメディアタイプ)。media属性と同等。 |
charset | 可 | UTF-8 | スタイルシートの文字エンコーディング。charset属性と同等。 |
title | 可 | なし | スタイルシートのタイトル。title属性と同等。 |
alternate | 可 | 空文字 | 代替スタイルシートの指定。「0」以外、空文字以外の値を指定すると代替スタイルシートとして出力する。 |
xml | 可 | 空文字 | スタイルシートへのリンク方法。「0」以外、空文字以外の値を指定すると、apllication/xhtml+xmlメディアタイプに対応しているユーザーエージェントに対してのみ、xml-stylesheet処理命令を使用してスタイルシートへのを出力する。「0」、空文字を指定すると、apllication/xhtml+xmlメディアタイプに対応していないユーザーエージェントやAnother HTML-lint gateway、W3C CSS Validation Serviceに対してのみ、link要素を使用してスタイルシートへのリンクを出力する。 |
pre | 可 | 空文字 | link要素、または、xml-stylesheet処理命令の直前に出力する文字列。インデントの調整などに利用する。 |
suf | 可 | 空文字 | link要素、または、xml-stylesheet処理命令の直後に出力する文字列。インデントの調整などに利用する。 |
phiXmlStylesheetスニペットのスニペットコールは、次のようにxmlパラメータの値を変えたものを組み合わせて使用します。
<?xml version="1.0" encoding="[(modx_charset)]"?>
[!phiXmlStylesheet? &href=`[(base_url)]assets/templates/phize.net/css/style.css` &xml=`1`!]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
[!phiXmlStylesheet? &href=`[(base_url)]assets/templates/phize.net/css/style.css` &xml=`0` &pre=` `!] <title>[*pagetitle*]</title>
</head>
この例では、application/xhtml+xmlメディアタイプに対応しているユーザーエージェントに対して、ドキュメントは次のように出力されます。
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="/assets/templates/phize.net/css/style.css" type="text/css" charset="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>ページタイトル</title> </head>
その他のapplication/xhtml+xmlメディアタイプに対応していないユーザーエージェントやAnother HTML-lint gateway、W3C CSS Validation Serviceに対しては、ドキュメントは次のように出力されます。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <link rel="stylesheet" href="/assets/templates/phize.net/css/style.css" type="text/css" /> <title>ページタイトル</title> </head>