هل من الممكن نقل خيار إنشاء استطلاع (على سطح المكتب) من القائمة الإضافية ووضعها بجانب أزرار التنسيق الأخرى؟
مثل طلبك على الهاتف المحمول، يتطلب تحريرًا أكثر تعقيدًا قليلًا، لا يمكنني إضافته إلى مكون السمة هذا. لكن يجب أن يكون ذلك ممكنًا على مكون مخصص لسطح المكتب يتبع المنطق الذي قدمه أنغوس وسبيروبل.
كيف يمكن إزالة الزر المركزي ومحاذاة الأزرار اليسرى واليمنى؟
بمناسبة الحديث، هذا المكون رائع حقًا.
مرحبًا!
يمكنك إضافة أسطر CSS هذه في سمة موضوعك أو في مكون:
.align_center_button, .align_right_button, .align_justify_button {
display: none;
}
أعتقد أنك تقصد زر المحاذاة (justify)، نظرًا لأن زر المحاذاة إلى اليسار لم يُضف في نفس المكون.
هل من الممكن نقل كل هذه الأزرار الجديدة إلى داخل زر/قائمة الخيارات؟
هذا ممكن، لكن ستحتاج إلى الغوص قليلاً في الكود.
في Desktop > Head، ستجد جميع أكواد JavaScript، وعليك تغيير سطور قليلة.
على سبيل المثال، يبدو كود الزر في شريط الأدوات هكذا:
api.onToolbarCreate(toolbar => {
toolbar.addButton({
id: "underline_button",
group: "fontStyles",
icon: "underline",
perform: e => e.applySurround('[u]', '[/u]', 'underline_text')
});
});
عليك التعديل باستخدام هذا الكود:
api.addToolbarPopupMenuOptionsCallback(() => {
return {
action: "underline",
icon: "underline",
label: "underline_button"
};
});
وأضف الإجراء في هذا الجزء:
api.modifyClass("controller:composer", {
actions: {
underline() {
this.get("toolbarEvent").applySurround('[u]', '[/u]', "underline_text");
},
floatleft() {
this.get("toolbarEvent").applySurround('[wrap="floatl"]\n', '\n[/wrap]', "float_left_text");
},
columns() {
this.get("toolbarEvent").applySurround('[wrap="columns"]\n', '\n[/wrap]', "columns_text");
}
}
});
يجب أن تكون الترجمة على ما يرام.
سترى بسرعة إذا كان هناك خطأ ما، حيث أن Discourse يعرض رسائل خطأ عند حفظ التغييرات.
مكوّن رائع @ستيفن
سيكون رائعًا لو كان بإمكاننا أيضًا تضمين H1 و H2 و H3
هل يمكن إضافة [color] [/color] إلى مكون هذا السمة؟ إذا كان ذلك ممكنًا، فسيكون مثاليًا لأنه يمكن حينها استخدام محرر BBCode+MD الرسمي لـ Discourse. حاليًا، أستخدم شريط أدوات التنسيق + mdcomposer. بالتأكيد يمكنني استخدام CSS لإخفاء الأزرار الإضافية، لكن هناك أماكن لا يُستخدم فيها CSS مثل لوحة الإدارة أو إضافة Custom Wizard الخاصة بـ Pavilion. يُستخدم زر اللون بكثرة.
هذا ما لدي مع CSS: (وهو مثالي)
![]()
وهذا ما لدي بدونه:
![]()
خطتي هي إنشاء مكون للأشخاص الذين لا يرغبون في استخدام إضافة. لكنني سأقوم بإنشاء فرع يحتوي على كود BB الملون. سأجربه خلال بضع ساعات إذا توفرت لدي الوقت. سأخبرك عندما يكون جاهزًا وكيف يتم تثبيته.
من المرجح أن أقضي الوقت في إعادة تنظيم مكون السمة، فأنا أفضل أن يكون مكون السمة بسيطًا افتراضيًا. سأستخدم فرعًا يحتوي على جميع الخيارات مع أزرار الترتيب السفلي، وفرعًا خاصًا بكود BB لأولئك الذين يمتلكون إضافة كود BB الرسمية.
شكرًا لك، أزرار الأسفلت/الأعلى هي أحد الأسباب التي تجعلنا نواصل استخدام محرر Markdown، وهو ما تفتقده الإضافات الأخرى ومكونات السمات. يحتوي كود BB الرسمي على العديد من العناصر المضمنة غير الموجودة في إضافة شريط التنسيق، مثل [spoiler] [/spoiler]. للحصول على أفضل ما في العالمين، أعتقد أنه من الأفضل الاحتفاظ بكود BB الخاص بـ Discourse ثم إضافة الأزرار التي نحتاجها عبر mdcomposer.
لم أكن أتوقع أن تكون أزرار السكربت شائعة، سأبقيها في المكون الأساسي.
سأعمل على عدة فروع: فرع بسيط يحتوي فقط على أزرار تنسيق أساسية، وفرع للألوان يضيف كود BB للألوان.
مرحبًا يا رفاق،
فقط أردت إعلامكم بأنه تمت إضافة فرع جديد باسم color إلى محرر md. الآن يمكنك استخدام إضافة bbcode الرسمية لـ Discourse + محرر md (فرع color) + تنبيهات الإخفاء في Discourse (ضبابية المحتوى المخفي). أعتقد أن هذا هو أفضل تركيبة متاحة لأزرار المحرر في Discourse.
هناك أيضًا فكرة لإضافة منتقي ألوان باستخدام هذه المكتبة المجانية:
إذا كان أي شخص يرغب في المساعدة ويعرف كيفية إضافة منتقي ألوان، فلا تتردد في مساعدة ستيفن!
كيف يمكنني إخفاء أو إزالة بعض هذه الأزرار تمامًا؟ نحن بحاجة إلى عدد قليل منها فقط، ولاحظت أن إزالة الزر لا تحذف العنصر المصاحب له، حيث سيظل مسجلًا (سيظهر كمساحة فارغة بدون أيقونة مرئية).
أفضل طريقة هي إضافة بعض أسطر CSS في سمة موقعك الحالية
لقد قدمت هذه الأمثلة لأزرار المحاذاة، إذا كنت ترغب في التخلص منها
.align_center_button, .align_right_button, .align_justify_button {
display: none;
}
يمكنني أيضًا تزويدك بكود CSS للأزرار المحددة التي تريد إخفاؤها
مرحباً ستيفن، مكون رائع. شكراً على المشاركة!
سؤال سريع: هل سيكون من الممكن إضافة بعض الأزرار لإضافة مسافات غير قابلة للكسر (مثل nbsp ; ensp ; emsp؟ ماذا يجب أن أستخدم بدلاً من applySurround؟
يعاني بعض أعضاء مجتمعي من تنسيق المنشورات (خاصة المسافات البادئة) وأعتقد أن هذا سيكون مفيدًا لهم.
شكراً!
نعم، يمكنك بسهولة إضافة بعض الأزرار، وبدلاً من applySurround، أستخدم addText
لدي هذا المثال القديم الذي يمكنك استخدامه
api.onToolbarCreate(toolbar => {
toolbar.addButton({
id: "br_button",
group: "extras",
icon: "level-down-alt",
perform: e => e.addText('<br>', 'br_text')
});
});
شكرا! هذا سيؤدي الغرض!
هممم… لا يبدو أن لديك خطًا يتوسط النص في شريط أدوات تنسيق Discourse ولكن لديك هنا. أفضل شريط أدوات التنسيق لأنه يحتوي على كل شيء آخر وأكثر، ولكني أود أن يكون الخط الذي يتوسط النص خيارًا. ماذا توصي به نظرًا لأن التوافق مشكلة بين هذين؟
يمكنني إضافة زر يتوسطه خط في شريط الأدوات في المكون الإضافي، قد يكون ذلك ذا صلة في المستقبل.
سأفكر في الأمر، ولكن في هذه الأثناء، يمكنك استخدام المكون الإضافي وإضافة هذا المكون: GitHub - MonDiscourse/discourse-strikethrough: Add a strikethrough button in the composer
سيضيف زر يتوسطه خط إلى قائمة الإجراءات المنبثقة، وهو متوافق مع المكون الإضافي
لقد قدمت طلب سحب: https://github.com/MonDiscourse/md-composer-extras/pull/10 والذي، ما لم أخطئ في وضع فاصلة أو شيء من هذا القبيل، يجب أن يصلح
لمنع حدوث أخطاء في الاختبارات، أضف مفتاح `pluginId` إلى استدعاء `modifyClass` الخاص بك. سيضمن ذلك تطبيق التعديل مرة واحدة فقط.
