انظر أيضًا: We're upgrading our icons to Font Awesome 6!
سنقوم قريبًا بدمج فرع في master يرقّي Discourse إلى Font Awesome 5.5.0 (النسخة المجانية) ويحوّل استخدام الأيقونات إلى صيغة SVG بدلاً من خط الأيقونات. يُعدّ هذا التغيير جوهريًا، ويوفر العديد من الفوائد، مع تغيير واحد مهم للمطورين.
إليك ملخص سريع للتغييرات:
- استخدام أيقونات SVG سيوفر أيقونات أكثر حدة، أفضل في إمكانية الوصول، وأسهل في التخصيص. راجع هذه المقالة على GitHub لمزيد من التفاصيل.
- نظرًا لأن مجموعة أيقونات Font Awesome نمت لتضم أكثر من 1300 أيقونة في الإصدار 5، فقد قمنا ببناء واجهة برمجة تطبيقات داخلية توفّر للعملاء مجموعة فرعية من جميع أيقونات FA، أي فقط الأيقونات المستخدمة في هذه النسخة من Discourse.
- المجموعة الفرعية، لحسن الحظ، أصغر حجمًا: فهي تعمل بالفعل هنا في Meta، وحجمها 27.5 كيلو بايت فقط مقارنة بـ 75.7 كيلو بايت لخط أيقونات FA 4.7.
- يمكن للإضافات والقوالب (بما في ذلك مكونات القوالب) إضافة أيقونات FA إضافية إلى المجموعة.
- ستُدرج أيقونات تميّز المجموعات والشارات تلقائيًا في المجموعة، ويمكن لمديري الموقع أيضًا استخدام إعداد موقع جديد يُسمى
svg icon subsetلتسجيل الأيقونات المختارة وإضافتها إلى المجموعة الفرعية لموقعهم. - تغيير كاسر: لم يعد بإمكان مطوري الإضافات والقوالب استخدام
<i class="fa fa-icon"></i>أو تجاوز محددات الوهمي:beforeللإشارة إلى الأيقونات أو استبدالها. يجب استبدال ذلك باستخدام دوال Discourse التي تقوم بحقن أيقونات SVG في الصفحة.
فيما يلي تعليمات حول كيفية تحديث الإضافات والقوالب لاستخدام الأيقونات من المجموعة الجديدة.
ما الجديد في Font Awesome 5
أدخل Font Awesome 5 العديد من الأيقونات الجديدة، بالإضافة إلى بعض التغييرات في التسمية. لمناقشة شاملة للتغييرات، يرجى الاطلاع على وثائق ترقية Font Awesome. التغيير الرئيسي هو أن الأيقونات في FA تأتي الآن بأساليب منفصلة. هناك ثلاثة أساليب:
- صلب (افتراضي) –
fas - عادي –
far - علامات تجارية –
fab
بالنسبة للأسلوب العادي أو أسلوب العلامات التجارية، يقدم FA 5 بادئات فئة جديدة، وهي “far” و “fab” على التوالي. لاستخدام أيقونة من الأسلوب العادي أو أسلوب العلامات التجارية، يجب علينا إذن استخدام اصطلاح التسمية الجديد هذا: "far fa-address-book" أو "fab fa-facebook". (يمكن الإشارة إلى الأيقونات الصلبة ببساطة كما كان من قبل “fa-icon-name”).
للسماح بتجميع الأساليب الثلاثة في رسم متجه واحد (SVG sprite)، يتم تحويل الأيقونات في الأسلوب العادي وأسلوب العلامات التجارية في Discourse داخليًا إلى far-icon-name و fab-icon-name. يمكن للإضافات والقوالب وتمييزات المجموعات والشارات استخدام اصطلاح التسمية القياسي لـ FontAwesome 5. يجب على مسؤولي الموقع الذين يضيفون أيقونات إلى المجموعة عبر إعداد الموقع svg icon subset استخدام اصطلاح التسمية الداخلي.
المطورون: كيفية استخدام أو إضافة أيقونة SVG إلى إضافة أو قالب
-
إضافة أيقونات جديدة
الإضافات:
سجّل الأيقونة في ملف
plugin.rbالخاص بإضافتك:register_svg_icon "user-times" if respond_to?(:register_svg_icon)(ملاحظة: يجب عليك إعادة تشغيل خادم Rails الخاص بك في بيئة التطوير الخاصة بك حتى ينفذ هذا التغيير.)
القوالب أو المكونات:
أضف سلسلة أو إعداد قائمة يحتوي اسمه على
_icon، على سبيل المثال:svg_icons: default: 'question-circle|wallet' type: 'list' list_type: 'compact'وسيقوم Discourse بتضمين الأيقونة (الأيقونات) المحددة في إعداد القالب هذا في المجموعة الفرعية.
-
استخدام الأيقونات في جافا سكريبت الخاص بك
الإضافات:
import { iconNode } from "discourse-common/lib/icon-library"; ... let icon = iconNode('user-times');أو استخدم دالة المساعدة
iconHTMLimport { iconHTML } from "discourse-common/lib/icon-library"; ... let icon = iconHTML('user-times');القوالب أو المكونات:
const { iconNode } = require("discourse-common/lib/icon-library"); ... let icon = iconNode('user-times');أو استخدم دالة المساعدة
iconHTMLconst { iconHTML } = require("discourse-common/lib/icon-library"); ... let icon = iconHTML('user-times');يمكن أن تتقبل دوال المساعدة أيضًا معلمة ثانية تحتوي على خصائص مثل العنوان أو الفئة. يعمل هذا بنفس الطريقة في الإضافات والقوالب / المكونات، على سبيل المثال:
iconHTML('user-times', { class: "reply-to-glyph" }) -
استخدام الأيقونات في قوالب Handlebars الخاصة بك
في قوالب Handlebars، يمكنك استخدامd-icon، مثل هذا:{{d-icon 'user-times'}}يعمل هذا أيضًا بنفس الطريقة في الإضافات والقوالب / المكونات
إضافة أيقونات مخصصة
إذا كنت ترغب في الحصول على المزيد من الأيقونات غير المتوفرة في Font Awesome، يمكنك إضافة أيقونات SVG خاصة بك في إضافة أو قالب. راجع هذا الرسم المتجه (SVG sprite) كمثال لكيفية هيكلة الرسم المتجه الخاص بك. (هو في الأساس قائمة من عناصر <symbol>، لكل منها معرف فريد خاص به.)
في القوالب والمكونات: أضف الرسم المتجه (SVG sprite) في مجلد /assets، وراجعه في about.json باستخدام اسم المتغير icons-sprite. بالنسبة لرسم متجه يُسمى my-icons.svg، يجب أن يتضمن ملف assets.json الخاص بك هذا:
"assets": {
"icons-sprite": "/assets/my-icons.svg"
}
يمكنك أيضًا إضافة الرسم المتجه إلى قالب أو مكون عبر واجهة المستخدم. عند القيام بذلك، تأكد من تعيين اسم متغير SCSS إلى icons-sprite. لقطة شاشة:
في الإضافات: ما عليك سوى تضمين ملف رسم متجه (SVG sprite) في مجلد plugins/your-plugin-name/svg-icons. أعد تشغيل خادمك (إذا كنت في وضع التطوير) أو أعد بناء الموقع إذا كنت في حاوية Docker، وستصبح أيقوناتك المخصصة متاحة تلقائيًا.
لتجنب أي تداخل محتمل مع معرفات أيقونات Font Awesome، يجب عليك إضافة بادئة لمعرفات الأيقونات المخصصة في إضافتك أو قالبك.


