Spintax構文リファレンス
spintaxテンプレートマークアップの完全なリファレンス。構文はGenerating The Web (GTW)標準と互換性があります。
列挙 { }
リストからランダムに1つのオプションを選択します。
{option1|option2|option3}
例
{blue|grey|clear}
{|online|internet} casino ← empty option = sometimes nothing
{1X{S|s}lots} ← nested enumerations
{license {|#8048} from Curacao} ← nesting with empty option
ルール
- 区切り文字:
{と} - セパレータ:
| - 任意の深さまでネストをサポート
- 空のオプションは有効(空文字列を生成)
- 最も内側の式から外側に向かって解決
順列 [ ]
N個の要素を選択し、シャッフルし、セパレータで結合します。
シンプルな順列
すべての要素を含み、スペースで区切り:
[1|2|3|4]
出力例:1 4 3 2、2 3 4 1、3 2 4 1
セパレータ付き
先頭の < > で統一セパレータを指定:
[<, > 1|2|3|4]
出力例:2, 1, 4, 3、4, 3, 2, 1
重要:[ と <セパレータ> の間にスペースを入れないでください。
要素ごとのセパレータ
各オプションは、前の | の前に <sep> で独自のセパレータを定義できます:
[<, > 1|2|3 < and >|4]
出力例:1, 3, 2 and 4、3, 1, 2 and 4
組み合わせ付き順列
最小/最大要素数とセパレータの設定が可能:
[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]
出力例:apple, plum and orange、apple and apricot、orange
設定パラメータ
| パラメータ | デフォルト | 説明 |
|---|---|---|
minsize | 全件数 | 選択する最小要素数 |
maxsize | 全件数 | 選択する最大要素数 |
sep | " "(スペース) | 最後以外の要素間のセパレータ |
lastsep | sepと同じ | 最後の要素の前のセパレータ |
順列のルール
- 区切り文字:
[と] - 設定ブロック
<...>は[の直後に続く必要があります - 設定パラメータはセミコロンで区切ります
- 設定内の文字列値は引用符で囲みます:
sep=", " - 列挙と順列はオプション内にネストできます
- HTML要素をオプションにできます
変数 %var%
出現する場所で置換される再利用可能な変数を定義します。
#set %VARIABLE_NAME% = value or spintax structure
例
#set %name% = John
#set %greeting% = {Hello|Hi|Hey}
#set %items% = [<minsize=2;maxsize=3;sep=", ";lastsep=" and "> apples|oranges|bananas]
Some text with %name% and %greeting%, also %items%.
変数のルール
#setは行頭から始める必要があります- 変数名は
%で囲みます:%name% - 変数名は英数字とアンダースコア
- 値には任意のspintax構文を含めることができます(列挙、順列、他の変数)
- 変数は定義時ではなく参照時に展開されます(遅延評価)
#set行は出力から除去されます
WordPressプラグインの変数スコープ
プラグインは3つの変数スコープをサポートしています。同じ名前が複数のスコープに存在する場合、最も強いスコープが優先されます:
- ランタイム変数(最強)— ショートコード経由で渡す:
[spintax slug="greeting" name="Alice"] - ローカル変数 — テンプレート内で
#setで定義 - グローバル変数(最弱)— 設定ページで定義
インクルード #include
ディレクティブの位置に別のテンプレートを埋め込みます。
#include "hero-text"
インクルードのルール
- テンプレート参照はダブルクォートで囲みます
- テンプレートスラグまたは数値IDで解決
- インクルードされたテンプレートは独自の変数とspintaxを含むことができます
- 再帰的インクルードをサポート
- 循環参照は検出されブロックされます
- 子テンプレートはグローバルおよびランタイム変数を継承しますが、親の
#setローカル変数は継承しません
コメント /#...#/
コメントマーカー間のテキストは、他の処理の前に出力から除去されます。
/#
This is a comment section.
It can span multiple lines.
It won't appear in output.
#/
コメントのルール
- 開始区切り文字:
/# - 終了区切り文字:
#/ - 複数行にまたがることができます
- ネストはできません
- 他の処理の前に除去されます
ネスト
すべての構文要素は任意の深さで相互にネストできます:
{option1|[<, > sub1|sub2|sub3]|option3}
[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]
#set %var% = {a|[b|c]}
後処理
エンジンは生成後に自動テキスト補正を適用します:
- URL、メール、ドメイン、小数、略語を大文字化から保護
- 重複するスペースとタブを除去
- 句読点の前のスペースを除去(
,.!?) - 句読点の後にスペースがない場合追加
- 出力の最初の文字を大文字に(HTMLタグをスキップ)
- 文末の句読点の後を大文字に
- ブロックレベルHTMLタグの後を大文字に
- 改行の後を大文字に
- 保護されたプレースホルダーを復元
構文サマリー
| 機能 | 構文 | 動作 |
|---|---|---|
| 列挙 | {a|b|c} | ランダムに1つ選択 |
| 順列 | [a|b|c] | N個選択、シャッフル、結合 |
| セパレータ | [<sep> a|b|c] | 統一セパレータ付き順列 |
| 要素別セパレータ | [<,> a|b <x>|c] | カスタムセパレータ付き順列 |
| 組み合わせ | [<config> a|b|c] | 最小/最大数付き順列 |
| 変数 | #set %var% = val | 再利用可能な置換 |
| インクルード | #include "slug" | 別のテンプレートを埋め込み |
| コメント | /#...#/ | 出力から除去 |
構文は Generating The Web (GTW) 標準と互換性があります。