ネストされた Spintax

ネストがフラットなスピニングを強力なテンプレートエンジンに変える仕組み — そして Spintax.Net のアプローチが標準である理由。

ネストされた Spintax とは?

通常の spintax はリストからランダムに1つを選びます:{red|blue|green} は3色のうち1つを生成します。ネストされた spintax は spintax の中に spintax を配置します — マトリョーシカ人形のように、各層がさらなるバリエーションを内包しています。

エンジンがネスト構造に遭遇すると、最も内側の式から外側へ解決します。内側の波括弧が最初に評価され、その結果が外側の式の一部になります。

{red|{dark|light} blue} car

Here {dark|light} resolves first (e.g. dark), producing {red|dark blue}. Then the outer enumeration picks one option: red or dark blue.

ネストが重要な理由

ネストがなければ、選択肢はフラットです。3つのオプションを持つ3つの列挙で 3 + 3 + 3 = 9 フラグメント。ネストありでは、同じ要素が乗算的に組み合わさります:3 × 3 × 3 = 27のユニークなバリアントが1つのコンパクトなテンプレートから生まれます。

この指数関数的な増加が、真にユニークなコンテンツを生成する鍵です。ネストされた列挙と順列を含む適度に複雑なテンプレートは、1つの丁寧に作られたソースから数千から数百万の異なる出力を生成できます。

他のツールの一般的な制限

ほとんどの spintax ツールは基本的な機能しか扱えません。一般的に問題となる点を示します:

  • 列挙内列挙のみ{a|{b|c}} はサポートしますが、それ以外は対応しません。順列、変数、他の要素内のインクルードは不可。
  • 深度制限 — 多くのパーサーは2–3レベルのネストで破綻し、無言で破損した出力を生成します。
  • クリーンアップなし — ネスト構造を解決した後、スペースが崩壊し、句読点が重複し、大文字化が壊れます。結果は手動編集が必要です。
  • 構成可能性なし — 変数とインクルードがなければ、すべてのテンプレートは孤島です。共通ブロックの再利用はコピー&ペーストを意味します。

Spintax.Net のアプローチ

Spintax.Net はネストを後付けではなく、ファーストクラスの機能として実装しています。5つの設計方針がそれを可能にします:

  1. 任意の深さ — ネスト制限はありません。10レベルの深さも2レベルと同じように動作します。
  2. 要素間ネスト — 順列内の列挙、列挙内の順列、ネスト構造を含む変数、ネストされたテンプレート全体を埋め込むインクルード。任意の要素を他の任意の要素の中に配置可能。
  3. 最内部優先の解決 — エンジンは常に最も深いレベルから外側へ解決します。これにより評価が予測可能でデバッグしやすくなります。
  4. スマートな後処理 — すべてのネストが解決された後、エンジンは自動的に大文字化を修正し、重複スペースを削除し、句読点の間隔を修正し、文の境界を処理します。出力は生の連結ではなく、クリーンなテキストです。
  5. 安全性#include の循環参照検出が無限ループを防止します。変数スコープルール(ランタイム > ローカル > グローバル)が意図しない上書きを防ぎます。

シンプルからアドバンスドまで

1. Enum inside enum

{{premium|luxury} sedan|{compact|mid-size} SUV}

Inner enumerations resolve first, then the outer one picks a result. Possible outputs: premium sedan, luxury sedan, compact SUV, mid-size SUV.

2. Enum inside permutation

[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]

Each permutation element contains its own enumeration. The engine resolves inner enumerations first, then shuffles and joins. Example output: blue apples, bananas and small oranges.

3. Variables with nested spintax

#set %product% = {{premium|budget} {laptop|tablet}|{smart|classic} phone}
#set %action% = {Buy|Get|Order}

%action% your new %product% today!

Variables store nested spintax and resolve each time they are referenced. Combined with multiple variables, the variant count multiplies rapidly.

4. Includes with nesting

/#  main template  #/
#include "hero-text"

{Check out|Discover|Explore} our [<, > features|plans|pricing].

The included template can itself contain enumerations, permutations, variables, and even further includes. Circular reference detection keeps everything safe.

AI + ネストされた Spintax

大規模言語モデルは複雑なネストテンプレートの作成に優れています。1つのプロンプトで、複数のネストレベル、変数による条件ブロック、インクルードによる再利用可能なセクションを持つテンプレートを生成できます。

ワークフローはシンプルです:AI を使ってテンプレートを一度作成し、Spintax を使ってユニークなバリアントを永遠に安価に生成する。テンプレート作成に1回のAPIコール。各バリアント生成にAPIコールはゼロ。ネストされた spintax がこれを経済的に実現可能にします — ネストが深いほど、テンプレートあたりのユニーク出力が増えます。

はじめに

プロジェクトでネストされた spintax を使う準備はできましたか?完全な仕様については構文リファレンスをご覧ください。またはSpintax WordPress プラグインで実際のネストを体験してください。