استخدم decorateWidget لإضافة رابط نصي إلى الرأس

أحاول إضافة أيقونة ورابط نصي إلى رأس الصفحة باستخدام مكون السمة (Theme Component).

لقد تمكنت من إضافة أيقونة باستخدام:

    const { iconNode } = require("discourse-common/lib/icon-library");
    api.decorateWidget('header-icons:before', helper => {
        return helper.h('li.header-dropdown-toggle', [
            helper.h('a.icon', {
                href:'/docs',
                title: 'Document'
            }, iconNode("book")),
        ]);
    });

لكنني أواجه صعوبة في إضافة نص بجانبها يكون أيضًا رابطًا لعنوان URL للمستندات.

لقد حاولت إضافة ما يلي - لكن النص ليس مرتبطًا:

        api.decorateWidget('header-icons:before', helper => {
        return helper.h('li.header-dropdown-toggle', [
            helper.h('h3', {
                href:'/docs',
                title: 'Document'
            }, 'Docs'),
        ]);

ما الذي أفتقده؟

هل هناك طريقة لوضع الأيقونة على الجانب الأيسر من الرأس (بجانب شعارنا)؟

شكراً مقدماً.

في مثالك، تحتاج إلى إدراج النص الخاص بك هنا:

helper.h('a.icon', {
    href:'/docs',
    title: 'Document'
}, ["test", iconNode("book")]),

ستحتاج إلى ضبط CSS على الرابط.

على سبيل المثال:

padding-inline-end: 2em;
justify-content: space-between;
color: currentcolor;

chrome_Tk18DUhJQQ

إذا كنت تقصد على اليمين:، يمكنك تجربة:

api.decorateWidget('home-logo:after', helper => {
    return helper.h('div.d-header-icons', [
        helper.h('a.icon.btn-flat.doc', {
            href:'/docs',
            title: 'Document'
        }, [iconNode("book"), "Doc"]),
    ]);
});
.d-header-icons .icon.doc {
    width: auto;
    gap: 0.5em;
    margin-inline: 1em;

    & .d-icon {
        width: 1em;
    }
}

لقد اختبرتها بسرعة. قد تواجه بعض المشكلات الغريبة، ولكن يجب أن تحصل على الفكرة العامة!

حسنًا، لا أعرف لماذا لم أربط تلك المكونات، كنت أعرف بوجودها. :man_facepalming:

كنت أتصفح تلك المكونات - حيث أردت القليل من كليهما هههه

عمل بشكل رائع - شكراً لك.

الآن لقضاء المساء في محاربة CSS لتغيير لون الخط هههه