مرجع صياغة Spintax

مرجع كامل لترميز قوالب spintax. الصياغة متوافقة مع معيار Generating The Web (GTW).

التعدادات { }

يختار عشوائيًا خيارًا واحدًا من القائمة.

{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

التباعد التلقائي: فواصل الكلمات مثل <and> أو <or> تُحاط تلقائياً بمسافات: <and> ينتج  and . فواصل علامات الترقيم (<,>) لا تُكمَّل.

تباديل مع تركيبات

عدد أدنى/أقصى قابل للتكوين من العناصر والفواصل:

[<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

تدعم الإضافة ثلاثة نطاقات للمتغيرات. عندما يوجد نفس الاسم في نطاقات متعددة، يفوز النطاق الأقوى:

  1. متغيرات وقت التشغيل (الأقوى) — تُمرر عبر الشورت كود: [spintax slug="greeting" name="Alice"]
  2. المتغيرات المحلية — تُعرَّف بـ #set داخل القالب
  3. المتغيرات العامة (الأضعف) — تُعرَّف في صفحة الإعدادات

الشروط {?VAR?then|else}

الشروط هي الامتداد المميز لـ spintax.net على عائلة GTW. بينما {a|b} هو اختيار عشوائي موحد يتجاهل المتغيرات، يختار {?VAR?then|else} بناءً على ما إذا كانت %VAR% تحمل قيمة.

استخدمه للاختيارات المعتمدة على القيم: إظهار سطر الخطة المجانية فقط عند وجودها، عرض كتلة الكريبتو فقط إذا قبل الكازينو الكريبتو، إخفاء CTA غير قابل للتطبيق.

يُنفَّذ التمرير المسبق قبل توسيع %var% وقبل منتقي الفرع العشوائي، فتُسقَط الفرعية falsy بالكامل — لا يُقيَّم شيء بداخلها.

الأشكال

{?VAR?then}                ← truthy ⇒ then; falsy ⇒ empty
{?VAR?then|else}           ← truthy ⇒ then; falsy ⇒ else
{?!VAR?then|else}          ← inverted
{?HasFreeTier? — free tier available since %founded%|, trusted since %founded%}

Truthy و falsy

القاعدة أبسط عمدًا من JavaScript — truthy = حرف واحد على الأقل غير فراغي:

قيمة %VAR%Truthy؟
غير مُعلَنةfalsy
سلسلة فارغةfalsy
فراغات فقطfalsy
"0"، "false"truthy (غير فارغة)
أي نص آخر أو HTMLtruthy

قواعد الشروط

  • تتبع أسماء المتغيرات نفس regex التابعة لـ %var% (غير حساسة لحالة الأحرف)
  • البادئة ! تعكس الفحص: {?!VAR?غائبة}
  • أول | على عمق 0 يفصل then عن else؛ ما بعده يبقى حرفيًا في else
  • تُقَيَّم الشروط المتداخلة من الخارج إلى الداخل — الفرع falsy يقصر الدائرة
  • المنطق المركب (&&، ||، المقارنات) غير مدعوم — احسب متغير حماية في المُجمّع
  • الأشكال المشوهة ({??yes}، {?VAR}) لا ترمي أبدًا — ملعب التجريب يميزها كتحذيرات
  • التعمق: راجع دليل spintax الشرطي مع أمثلة وأنماط مضادة

التضمينات #include

يدمج قالبًا آخر في موضع التوجيه.

#include "hero-text"

قواعد التضمين

  • مرجع القالب بين علامتي اقتباس مزدوجتين
  • يُحل بواسطة slug القالب أو المعرّف الرقمي
  • القوالب المضمنة يمكن أن تحتوي على متغيراتها و 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]}

المعالجة اللاحقة

يطبق المحرك تصحيحًا تلقائيًا للنص بعد التوليد:

  1. يحمي عناوين URL والبريد الإلكتروني والنطاقات والأعداد العشرية والاختصارات من التكبير
  2. يزيل المسافات وعلامات التبويب المكررة
  3. يزيل المسافات قبل علامات الترقيم (, . ! ?)
  4. يضيف مسافة بعد علامات الترقيم عند فقدانها
  5. يجعل الحرف الأول من المخرجات كبيرًا (مع تخطي وسوم HTML)
  6. تكبير بعد علامات ترقيم نهاية الجملة
  7. تكبير بعد وسوم HTML على مستوى الكتلة
  8. تكبير بعد فواصل الأسطر
  9. استعادة العناصر النائبة المحمية

ملخص الصياغة

الميزةالصياغةالسلوك
التعداد{a|b|c}يختار خيارًا عشوائيًا
التبديل[a|b|c]يختار N، يخلط، يجمع
الفاصل[<sep> a|b|c]تبديل مع فاصل موحد
فاصل لكل عنصر[<,> a|b <x>|c]تبديل مع فواصل مخصصة
التركيبات[<config> a|b|c]تبديل مع عدد أدنى/أقصى
المتغير#set %var% = valاستبدال قابل لإعادة الاستخدام
شرطي{?VAR?then|else}then إذا كانت صحيحة، else إذا كانت زائفة
التضمين#include "slug"يدمج قالبًا آخر
التعليق/#...#/يُزال من المخرجات

الصياغة متوافقة مع معيار Generating The Web (GTW).