يبدو أنها نظام تعبيرات جافاسكربت الخاص بـ Discourse Workflows، والذي يتم تقييمه على جانب الخادم داخل بيئة معزولة (sandbox) بدلاً من كونه لغة قوالب منفصلة مثل Liquid أو Handlebars.
لذا، على سبيل المثال:
={{ $json.topic.title.toLowerCase() }}
يعمل لأن محتوى {{ ... }} يتم تقييمه كجافاسكربت، وtoLowerCase() هي طريقة السلاسل النصية القياسية في جافاسكربت.
التنفيذ موجود في plugins/discourse-workflows/lib/discourse_workflows/expression_resolver.rb؛ حيث يعرّف متغيرات عامة خاصة بالعملية (workflows) مثل $json، و$input، و$itemIndex، و$trigger، و$execution، و$().
النحو والمفاهيم تشبه إلى حد كبير n8n. يوجد في الواقع مرجح صريح إلى n8n في مكان آخر من مصدر Workflows:
الالتزام (commit) المذكور أدناه أضاف سلوك دمج عقدة المزج (merge-node) ويتضمن اختبارًا موصوفًا بأنه:
defaults clash handling to add_suffix (matches n8n position combine)
لذا، هناك أدلة على أن أجزاء من Workflows تطابق سلوك n8n عمدًا، على الرغم من أنني لم أجد شيئًا يقول صراحةً أن لغة التعبيرات نفسها منسوخة من n8n أو مبنية عليه. لذلك، سأصفها بأنها تعبيرات جافاسكربت معزولة (sandboxed) يوفرها Discourse Workflows، مع بعض الاتفاقيات المشابهة لـ n8n.