يمكن تقسيم سمات جافاسكريبت (javascript) المعقدة إلى ملفات متعددة، للحفاظ على تنظيم جيد.
لاستخدام هذه الوظيفة، ما عليك سوى إضافة ملفات إلى المجلد /javascripts في دليل السمة الخاص بك. لا يمكن تعديل هذه الملفات من واجهة مستخدم Discourse، لذا يجب عليك استخدام Theme CLI أو source the theme from git (استيراد السمة من git).
يتم التعامل مع ملفات جافاسكريبت تمامًا كما يتم التعامل معها في النواة/الإضافات (core/plugins)، لذا يجب عليك اتباع نفس هيكل الملف/المجلد. يتم تحميل ملفات السمة بعد النواة/الإضافات، لذا إذا تطابقت أسماء الملفات، فستكون نسخة السمة هي السائدة.
على سبيل المثال، يمكنك الآن تحقيق https://meta.discourse.org/t/adding-to-plugin-outlets-using-a-theme/32727 عن طريق إضافة ملف واحد إلى السمة الخاصة بك:
/javascripts/my-theme/connectors/discovery-list-container-top/add-header-message.gjs
import Component from "@glimmer/component"; import { service } from
"@ember/service"; export default class HeaderMessage extends Component {
@service currentUser;
<template>
Welcome
{{this.currentUser.username}}
</template>
}
لاستخدام واجهة برمجة تطبيقات جافاسكريبت (JS API)، قم بإنشاء مُهيئ (initializer):
/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
// Your code here
});
إذا كنت بحاجة إلى أصل .js مختلف تمامًا (على سبيل المثال، لعامل ويب - web worker)، فتحقق من هذا الموضوع.
يتم التحكم في إصدار هذا المستند - اقترح تغييرات على github.