Numéros de ligne dans le bloc de code

:information_source: Résumé Ajoute des numéros de ligne aux blocs de code multilignes dans les publications
: eyeglasses: Aperçu Aperçu sur Discourse Theme Creator
:hammer_and_wrench: Dépôt https://github.com/Lillinator/code-block-line-numbers
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Description

Ceci est un simple composant de thème qui ajoute des numéros de ligne aux blocs de code dans les publications Discourse. Il n’ajoutera pas de numéros de ligne pour le code en ligne, les blocs de moins de 2 lignes, ou aux blocs de code cités. Il ignore également le code onebox de Github. De plus, le composant vous permettra de changer la taille de la police et d’ajouter un titre d’en-tête qui apparaîtra avant le langage de code (s’il est spécifié après la première clôture de code).

Merci à @Don pour son excellent travail sur ce projet également.

:white_check_mark: Fonctionne en mode bureau et mobile. :desktop_computer: :iphone:

Mode sombre, avec titre :

Mode clair, sans titre - dans l’aperçu :

Résultat de la publication :

Il existe deux paramètres.

Paramètre Description
code-block header title ajoute un titre d’en-tête de texte aux blocs de code avant le langage de code s’il est spécifié (laisser vide pour aucun)
code-block text size taille du texte en px pour les blocs de code (laisser vide pour la valeur par défaut)


:warning: Remarque : si vous utilisez du CSS pour envelopper les blocs de code sur votre forum, ce composant comptera l’enveloppement.

15 « J'aime »

Sans essayer, mais lors de la copie, ces numéros de ligne ne suivent pas, n’est-ce pas ?

3 « J'aime »

oui non ils ne fonctionnent pas dans les blocs de code entre guillemets.

4 « J'aime »

Veuillez ajouter la possibilité de choisir un thème sombre ou clair, car ma page de discussion est par défaut en thème clair, mais le bloc de code est personnalisé en thème sombre style GitHub.

Voici l’état lorsque la page Discourse utilise un thème clair et que le bloc de code est configuré pour s’afficher dans un style GitHub sombre


Voici également quelques personnalisations concernant l’affichage des blocs de code sur ma page Discourse.
J’espère que cela sera utile à quelqu’un et rendra sa page Discourse plus intéressante

/*CSS Bloc de code comme le terminal 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 Numéros de ligne du bloc de code Discourse*/
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);
        }
    }

}

Vous pouvez trouver plus d’informations ici.

1 « J'aime »
2 « J'aime »

Y a-t-il une chance que cette fonctionnalité soit ajoutée à la ligne principale de Discourse ? Le plan d’hébergement économique que j’utilise ne prend pas en charge les plugins discrétionnaires et autres. Et cela semble très utile. Mes remerciements à @Lilly et aux autres développeurs et testeurs.

Ce n’est pas un plugin. C’est un composant de thème. Je ne pense pas que vous soyez limité dans l’utilisation des composants de thème ?

4 « J'aime »

@merefield Merci. Je viens de déposer une demande de clarification auprès de mon fournisseur et on m’a attribué un ticket. Si quelque chose de notable survient, je vous tiendrai informé.

1 « J'aime »

C’est effectivement une affaire pour les administrateurs ! Je suis allé sur \u003chttps://meta.discourse.org/t/code-block-line-numbers/330130\u003e, j’ai cliqué sur le bouton bleu « Installer ce composant de thème », j’ai entré le nom de mon forum, puis j’ai confirmé cette action depuis mon interface de forum. Jusqu’ici tout va bien.

Cette fonctionnalité était alors répertoriée comme un composant (je suppose que c’est techniquement un composant de thème) et indique la version 0.0.2. Mais la boîte de dialogue suggère que cet artefact est actuellement considéré comme un « composant inutilisé ». Et de simples essais utilisant la syntaxe des trois back-ticks ``` n’ont pas rendu les numéros de ligne.

Y a-t-il autre chose que je doive faire ? Merci d’avance.

1 « J'aime »

@robbie.morrison veuillez lire le message du sujet (premier message de ce sujet) car il contient toutes les informations dont vous avez besoin, et reportez-vous également à ces instructions si vous installez des composants de thème sur votre instance.

4 « J'aime »

Oui. Ajoutez le composant à un ou plusieurs thèmes (sinon il restera « inutilisé ») et activez le thème s’il n’est pas déjà actif.

4 « J'aime »

@merefield @Lilly Merci beaucoup. J’avais besoin d’ajouter ce composant de thème à mon thème « par défaut ». Comme expliqué ici : ajout de composants à un thème. Et cela fonctionne (notant que j’avais précédemment ajouté la mauvaise capture d’écran) :

Quelques commentaires sur la documentation. L’emplacement correct est, je crois : Composants ➔ Personnaliser ➔ Thèmes. Et la section sur l’ajout aux thèmes (voir l’URL ci-dessus) semble quelque peu plus discrétionnaire qu’elle ne l’est. Peut-être que cette formulation serait meilleure : « Vous devrez ajouter explicitement votre composant de thème à un thème avant qu’il ne devienne opérationnel. Cela inclut le thème « par défaut ».

Merci à tous pour votre intérêt et votre temps. J’ai également un petit rapport de bug pour mon prochain message.

2 « J'aime »

Mon rapport de bug comme promis. Le bloc de code suivant de GitHub était déjà numéroté. Après l’installation du composant de thème intitulé Numéros de ligne de bloc de code Discourse, les lignes vides alternées ont été incluses.

La publication originale est ici. Et l’information est venue via une simple URL. Plus sur les diagrammes de Sankey sur Wikipedia FR pour ceux qui sont intéressés ! :woozy_face:

Clarification ; par lignes vides alternées, j’entends les lignes entièrement vides sans aucun texte. Le rendu précédent n’était pas espacé de cette manière.

2 « J'aime »

ah oui le problème de numéro de ligne github. J’y jetterai un coup d’œil plus tard cette semaine quand j’aurai un peu de temps et j’y ajouterai une condition. merci !

5 « J'aime »

J’ai apporté quelques améliorations à ce composant et j’ai également ajouté quelques paramètres pour ajouter un titre d’en-tête aux blocs de code et modifier la taille de la police. J’ai également corrigé les problèmes de formatage des onebox Github (merci pour la PR @gormus ! :slight_smile: ). J’ai mis à jour l’OP et ajouté de nouvelles captures d’écran ainsi qu’un lien vers l’aperçu du créateur de thèmes.

7 « J'aime »

Ce composant a de nouveau été mis à jour - J’ai corrigé un bug où le titre s’affichait sur les diagrammes Mermaid.

De plus, @Don a effectué un refactoring du js, nettoyé du code, et ajouté une mise en forme plus agréable, y compris une bordure et la langue du code dans l’en-tête si elle est spécifiée dans le post. (Merci Don :hugs:).

Description de l’OP et captures d’écran mises à jour.

4 « J'aime »

Bonjour, ce composant de thème me signale une erreur comme celle-ci

Erreur : Mixin non défini. ╷ 17 │ @include sticky; │ ^^^^^^^^^^^^^^^ ╵ line-numbers.scss 17:9 @import /var/www/discourse/common.scss 1:570 root stylesheet
2 « J'aime »

Le mixin sticky a été supprimé du cœur dans une PR récente.
Je vais faire une PR !


Voilà :

3 « J'aime »

fusionné. merci @Arkshine :slight_smile:

3 « J'aime »