嵌套 Spintax
嵌套如何将平面旋转转变为强大的模板引擎 — 以及为什么 Spintax.Net 方法是标准。
什么是嵌套 Spintax?
普通 spintax 从列表中随机选择一个选项:{红色|蓝色|绿色} 产生三种颜色之一。嵌套 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 = 9 个片段。有了嵌套,相同的元素以乘法方式组合:3 × 3 × 3 = 27 个独特变体,来自一个紧凑的模板。
这种指数级增长是生成真正独特内容的关键。一个中等复杂度的模板,包含嵌套的枚举和排列,可以产生数千甚至数百万种不同的输出 — 全部来自一个精心制作的源。
其他工具的常见局限性
大多数 spintax 工具只能处理基础功能。以下是通常出错的地方:
- 仅支持枚举嵌套枚举 — 它们支持
{a|{b|c}}但仅此而已。没有排列、没有变量、没有包含在其他元素内部。 - 深度限制 — 许多解析器在 2–3 层嵌套后就会崩溃,默默产生损坏的输出。
- 无清理 — 解析嵌套结构后,空格塌陷、标点重复、大小写错误。结果需要手动编辑。
- 无可组合性 — 没有变量和包含,每个模板都是孤岛。复用通用模块意味着复制粘贴。
Spintax.Net 方法
Spintax.Net 将嵌套实现为一等功能,而非事后添加。五个设计决策使其运作:
- 任意深度 — 没有嵌套限制。十层深度与两层的工作方式相同。
- 跨元素嵌套 — 枚举内排列、排列内枚举、包含嵌套结构的变量、嵌入完整嵌套模板的包含。任何元素可以在任何其他元素内部。
- 由内向外解析 — 引擎始终从最深层级向外解析。这使求值可预测且可调试。
- 智能后处理 — 所有嵌套解析完成后,引擎自动修复大小写、合并重复空格、修正标点间距并处理句子边界。输出是干净的文本,而非原始拼接。
- 安全性 —
#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
大型语言模型非常擅长编写复杂的嵌套模板。一个提示就可以生成包含多层嵌套、通过变量实现条件块以及通过包含实现可复用部分的模板。
工作流很简单:使用 AI 创建一次模板,然后使用 Spintax 以极低成本永远生成独特变体。一次 API 调用创建模板。零次 API 调用生成每个变体。嵌套 spintax 使这在经济上可行 — 嵌套越深,每个模板的独特输出就越多。
入门
准备好在项目中使用嵌套 spintax 了吗?从语法参考开始了解完整规范,或试用 Spintax WordPress 插件来查看嵌套的实际效果。