أرقام الأسطر في كتلة التعليمات البرمجية

:information_source: ملخص يضيف أرقام الأسطر إلى كتل الأكواد متعددة الأسطر في المنشورات
:eyeglasses: معاينة معاينة على منشئ ثيمات Discourse
:hammer_and_wrench: مستودع https://github.com/Lillinator/code-block-line-numbers
:question: دليل التثبيت كيفية تثبيت ثيم أو مكون ثيم
:open_book: جديد في ثيمات Discourse؟ دليل المبتدئين لاستخدام ثيمات Discourse

تثبيت مكون الثيم هذا

الوصف

هذا مكون ثيم بسيط يضيف أرقام الأسطر إلى كتل الأكواد في منشورات Discourse. لن يضيف أرقام الأسطر للأكود المضمن، أو الكتل التي تقل عن سترين، أو كتل الأكواد المقتبسة. كما يتجاهل أكواد Github onebox. بالإضافة إلى ذلك، سيسمح لك المكون بتغيير حجم الخط وإضافة عنوان رئيسي سيظهر قبل لغة الكود (إذا تم تحديدها بعد أول سياج كود).

شكرًا لـ @Don على العمل الرائع في هذا أيضًا.

:white_check_mark: يعمل في وجهات العرض المكتوبة والمحمولة. :desktop_computer: :iphone:

الوضع الداكن، مع العنوان:

الوضع الفاتح، بدون عنوان - في المعاينة:

نتيجة المنشور:

هناك إعدادان.

الإعداد الوصف
code-block header title يضيف عنوان نصي رئيسي إلى كتل الأكواد قبل لغة الكود إذا تم تحديدها (اتركه فارغًا لعدم الإضافة)
code-block text size حجم النص بالبكسل لكتل الأكواد (اتركه فارغًا للافتراضي)


:warning: ملاحظة: إذا كنت تستخدم CSS لتغليف كتل الأكواد في منتداك، فسيحسب هذا المكون الغلاف.

16 إعجابًا

بدون محاولة، ولكن عند النسخ، فإن أرقام الأسطر هذه لا تتبع، صحيح؟

3 إعجابات

نعم، لا، إنها لا تعمل في الكتل البرمجية المقتبسة.

4 إعجابات

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

هذه هي الحالة عندما تستخدم صفحة المناقشة سمة فاتحة وكتلة التعليمات البرمجية مضبوطة للعرض بأسلوب GitHub الداكن


هنا أشارك أيضًا بعض التخصيصات حول عرض كتل التعليمات البرمجية في صفحة المناقشة الخاصة بي.
آمل أن تكون مفيدة لشخص ما، وتجعل صفحة المناقشة الخاصة بهم أكثر إثارة للاهتمام

/*CSS Codeblock like terminar macos*/
.codeblock-buttons {
    box-shadow: 0px 0px 10px rgba(0,0,0,.4);
    border-radius: 7px 7px 0 0;
    display: flex;
    flex-direction: column;
    &:before{
        content:'Business Lab';
        display: grid;
        justify-content: center;
        font-family: var(--d-font-family--monospace);
        font-weight: bold;
        padding: 5px;
        background-color: #E8E6E8;
        color: black;
        order:1;
    }
    &:after{
        content:"";
        width: 12px;
        height: 12px;
        display: inline-block;
        border-radius: 15px;
        margin-left: 2px;
        border-width: 1px;
        border-style: solid;
        background: #EC6A5F;
        border-color: #D04E42;
        order:2;
        position: absolute;
        top: 10px;
        left: 5px;
    }
    & .codeblock-button-wrapper{
        right: .5rem !important;
        top: .25em !important;
        order:3;
        width: 100%;
        &:before{
            content:"";
            width: 12px;
            height: 12px;
            display: inline-block;
            border-radius: 15px;
            margin-left: 2px;
            border-width: 1px;
            border-style: solid;
            background: #F5C04F;
            border-color: #D6A13D;
            position: absolute;
            top: 6.5px;
            left: 30px;
        }
        &:after{
            content:"";
            width: 12px;
            height: 12px;
            display: inline-block;
            border-radius: 15px;
            margin-left: 2px;
            border-width: 1px;
            border-style: solid;
            background: #64CC57;
            border-color: #4EA73B;
            position: absolute;
            top: 6.5px;
            left: 48px;
        }
        & .btn.nohighlight{
            padding: .7em;
            float: right;
            &.copy-cmd{
                position: absolute;
                right: 0px;
            }
            &.fullscreen-cmd{
                position: absolute;
                right: 3.2em;
            }
            &.copy-cmd:not(.action-complete), &.fullscreen-cmd:not(.action-complete){
                opacity: 1;
                visibility: visible;
            }
        }
    }
    & code{
        order:4;
    }
}
/*CSS Discourse Code Block Line Numbers*/
code{
    &.lines-decorator{
        padding: 0px;
        &.lines-shadow{
            background-image: linear-gradient(to right, var(--github) 25%, transparent), linear-gradient(to left, var(--github) 25%, transparent), linear-gradient(to right, var(--github), transparent), linear-gradient(to left, var(--github), transparent);
        }
        &.lines-number:not(.lines-count-1):not(.lines-in-quote) span.lines-line::before{
            background-color: #263238;
            color: rgba(233, 237, 237, 1);
        }
    }

}

يمكنك الرجوع إلى المزيد هنا.

إعجاب واحد (1)
3 إعجابات

هل هناك أي فرصة لإضافة هذه الميزة إلى خط discourse الرئيسي؟ خطة الاستضافة ذات الميزانية التي أستخدمها لا تدعم الإضافات الاختيارية وما شابه ذلك. ويبدو هذا مفيدًا جدًا. شكري لـ @Lilly والمطورين والمختبرين الآخرين.

إنه ليس مكونًا إضافيًا. إنه مكون سمة. لا أعتقد أنك مقيد من استخدام مكونات السمات؟

4 إعجابات

@merefield شكرًا لك. لقد قدمت للتو طلبًا للتوضيح من مزودي الخدمة الخاص بي وتم إصدار تذكرة لي. إذا ظهر أي شيء ملحوظ، فسأبلغك.

إعجاب واحد (1)

هذه بالفعل مسألة للمسؤولين! ذهبت إلى https://meta.discourse.org/t/code-block-line-numbers/330130، ونقرت على الزر الأزرق “تثبيت مكون السمة هذا”، وأدخلت اسم المنتدى الخاص بي، ثم أكدت هذا الإجراء من واجهة المنتدى الخاص بي. حتى الآن كل شيء على ما يرام.

تم إدراج هذه الميزة بعد ذلك كمكون (أعتقد أنها تقنيًا مكون سمة) وتقارير الإصدار 0.0.2. لكن الحوار يشير إلى أن هذه القطعة الأثرية تعتبر حاليًا “مكونًا غير مستخدم”. ولم تؤدِ التجارب البسيطة باستخدام بناء الجملة ``` الثلاثي إلى عرض أرقام الأسطر.

هل هناك شيء آخر أحتاج إلى القيام به؟ شكرًا مقدمًا.

إعجاب واحد (1)

@robbie.morrison يرجى قراءة المنشور الرئيسي (المنشور الأول في هذا الموضوع) لأنه يحتوي على جميع المعلومات التي تحتاجها، وكذلك الرجوع إلى هذه التعليمات إذا كنت تقوم بتثبيت مكونات السمات على نسختك.

4 إعجابات

نعم. أضف المكون إلى سمة (سمات) (وإلا فسيظل “غير مستخدم”) وقم بتنشيط السمة إذا لم تكن نشطة بالفعل.

4 إعجابات

@merefield @Lilly شكراً جزيلاً. احتجت إلى إضافة مكون السمة هذا إلى السمة “الافتراضية” الخاصة بي. كما هو موضح هنا: إضافة مكونات إلى سمة. وهي تعمل (مع ملاحظة أنني أضفت لقطة الشاشة الخاطئة في وقت سابق):

بعض التعليقات حول التوثيق. الموقع الصحيح، أعتقد، هو: المكونات ⏵ تخصيص ⏵ السمات. ويبدو القسم الخاص بالإضافة إلى السمات (انظر الرابط أعلاه) أكثر تقديرًا مما هو عليه في الواقع. ربما تكون هذه الصياغة أفضل: “ستحتاج إلى إضافة مكون السمة الخاص بك صراحةً إلى سمة قبل أن يصبح تشغيليًا. وهذا يشمل السمة “الافتراضية”.”

شكراً للجميع على اهتمامهم ووقتهم. لدي أيضًا تقرير خطأ صغير لمشاركتي القادمة.

إعجابَين (2)

تقريري عن الخطأ كما وعدت. تم بالفعل ترقيم كتل التعليمات البرمجية التالية من GitHub. بعد تثبيت مكون السمة بعنوان أرقام أسطر كتل التعليمات البرمجية في Discourse، تم تضمين الأسطر الفارغة المتناوبة.

المنشور الأصلي موجود هنا. وجاءت المعلومات عبر عنوان URL بسيط. المزيد حول مخططات Sankey على ويكيبيديا الإنجليزية لمن يهتم! :woozy_face:

توضيح؛ أعني بالأسطر الفارغة المتناوبة الأسطر الفارغة تمامًا دون أي نص على الإطلاق. لم يكن العرض السابق متباعدًا بهذه الطريقة.

إعجابَين (2)

نعم، مشكلة رقم سطر GitHub. سألقي نظرة لاحقًا هذا الأسبوع عندما يتوفر لدي بعض الوقت وأضع شرطًا هناك. شكرًا!

5 إعجابات

لقد أجريت بعض التحسينات على هذه المكونة وأضفت أيضًا بعض الإعدادات لإضافة عنوان رأس إلى كتل التعليمات البرمجية وتغيير حجم الخط. تم إصلاح مشكلات تنسيق Github onebox أيضًا (شكرًا لـ PR @gormus! :slight_smile: ). تم تحديث OP وإضافة لقطات شاشة جديدة ورابط لمعاينة منشئ السمة.

7 إعجابات

تم تحديث هذه المكونة مرة أخرى - لقد أصلحت خطأ حيث كان العنوان يظهر في رسوم Mermaid البيانية.

أيضًا، قام @Don بإعادة هيكلة لـ js، ونظف بعض التعليمات البرمجية، وأضاف تنسيقًا أجمل، بما في ذلك حدود ولغة التعليمات البرمجية في الرأس إذا تم تحديدها في المنشور. (شكرًا Don :hugs:).

تم تحديث وصف OP والصور.

4 إعجابات

مرحباً، هذا المكون الخاص بالموضوع يبلغني عن خطأ كهذا

خطأ: Mixin غير معرف. ╷ 17 │ @include sticky; │ ^^^^^^^^^^^^^^^ ╵ line-numbers.scss 17:9 @import /var/www/discourse/common.scss 1:570 root stylesheet
إعجابَين (2)

تمت إزالة المزيج sticky من النواة في طلب سحب حديث.
سأقوم بإنشاء طلب سحب!


ها نحن ذا:

3 إعجابات

تم الدمج. شكرًا @Arkshine :slight_smile:

3 إعجابات