Numeração de linhas em bloco de código

:information_source: Resumo Adiciona números de linha a blocos de código de várias linhas em postagens
:eyeglasses: Pré-visualização Pré-visualização no Discourse Theme Creator
:hammer_and_wrench: Repositório https://github.com/Lillinator/code-block-line-numbers
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo em Temas do Discourse? Guia para iniciantes no uso de Temas do Discourse

Instalar este componente de tema

Descrição

Este é um componente de tema simples que adiciona números de linha a blocos de código em postagens do Discourse. Ele não adicionará números de linha para código em linha, blocos com menos de 2 linhas ou para blocos de código citados. Ele também ignora o código de onebox do Github. Além disso, o componente permitirá que você altere o tamanho da fonte e adicione um título de cabeçalho que aparecerá antes da linguagem do código (se especificado após a primeira cerca de código).

Graças a @Don pelo ótimo trabalho nisso também.

:white_check_mark: Funciona em visualizações de desktop e mobile. :desktop_computer: :iphone:

Modo escuro, com título:

Modo claro, sem título - no previewer:

Resultado da postagem:

Existem duas configurações.

Configuração Descrição
título do cabeçalho do bloco de código adiciona um título de texto aos blocos de código antes da linguagem do código, se especificado (deixe em branco para nenhum)
tamanho do texto do bloco de código tamanho do texto em px para blocos de código (deixe em branco para o padrão)


:warning: Nota: se você estiver usando CSS para envolver blocos de código em seu fórum, este componente contará o envolvimento. :small_red_triangle:

15 curtidas

Sem tentar, mas ao copiar, esses números de linha não seguem, certo?

3 curtidas

Sim, não funcionam em blocos de código entre aspas.

4 curtidas

Por favor, adicione a opção de escolher tema escuro ou claro, pois minha página de discussão está definida como tema claro, mas o bloco de código está com personalização de tema escuro no estilo GitHub.

Este é o estado quando a página do Discourse usa um tema claro e o bloco de código está configurado para exibir no estilo GitHub escuro


Aqui também compartilho algumas personalizações sobre a exibição de blocos de código em minha página do Discourse.
Espero que seja útil para alguém e torne sua página do Discourse mais interessante

/*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);
        }
    }
    
}

Você pode consultar mais aqui.

1 curtida
2 curtidas

Alguma chance de este recurso ser adicionado à linha principal do Discourse? O plano de hospedagem econômica que uso não suporta plugins discricionários e similares. E isso parece muito útil. Meus agradecimentos a @Lilly e outros desenvolvedores e testadores.

Não é um plugin. É um Componente de Tema. Não acredito que você esteja restrito de usar Componentes de Tema?

4 curtidas

@merefield Obrigado. Acabei de registrar um pedido de esclarecimento junto ao meu provedor e recebi um ticket. Se algo notável surgir, relatarei.

1 curtida

Este é realmente um assunto para administradores! Fui para \u003chttps://meta.discourse.org/t/code-block-line-numbers/330130\u003e, cliquei no botão azul “Instalar este componente de tema”, digitei o nome do meu fórum e, em seguida, confirmei essa ação na interface do meu fórum. Até agora, tudo bem.

Este recurso foi então listado como um Componente (acho que tecnicamente é um Componente de Tema) e relata a versão 0.0.2. Mas a caixa de diálogo sugere que este artefato é atualmente considerado um “componente não utilizado”. E testes simples usando a sintaxe das três crases ``` não renderizaram números de linha.

Preciso fazer algo mais? Agradeço antecipadamente.

1 curtida

@robbie.morrison, por favor, leia a postagem do tópico (primeira postagem neste tópico) porque ela contém todas as informações de que você precisa, e também consulte estas instruções se estiver instalando componentes de tema em sua instância.

4 curtidas

Sim. Adicione o Componente a um(s) Tema(s) (Caso contrário, ele permanecerá “Não utilizado”) e ative o Tema, se ele ainda não estiver ativo.

4 curtidas

@merefield @Lilly Muito obrigado. Eu precisava adicionar este componente de tema ao meu tema "padrão". Conforme abordado aqui: adicionando componentes a um tema. E funciona (observando que eu já havia adicionado a captura de tela errada anteriormente):

Alguns comentários sobre a documentação. A localização correta é, acredito: Componentes ⯈ Personalizar ⯈ Temas. E a seção sobre adicionar a temas (veja URL acima) soa um tanto mais discricionária do que realmente é. Talvez esta redação fosse melhor: "Você precisará adicionar explicitamente seu componente de tema a um tema antes que ele se torne operacional. Isso inclui o tema ‘padrão’."

Obrigado a todos pelo interesse e tempo. Também tenho um pequeno relatório de bug para minha próxima postagem.

2 curtidas

Meu relatório de bug conforme prometido. O seguinte bloco de código do GitHub já estava numerado. Após instalar o componente de tema intitulado Discourse Code Block Line Numbers, as linhas em branco alternadas foram incluídas.

A postagem original está aqui. E a informação veio através de um URL simples. Mais sobre diagramas de Sankey na Wikipedia EN para os interessados! :woozy_face:

Esclarecimento; por linhas em branco alternadas, quero dizer as linhas totalmente em branco, sem qualquer texto. A renderização anterior não estava espaçada dessa maneira.

2 curtidas

ah sim, o problema do número da linha do github. Vou dar uma olhada mais tarde esta semana quando tiver tempo e colocar uma condicional lá. obrigado!

5 curtidas

Fiz algumas melhorias neste componente e também adicionei algumas configurações para adicionar um título ao cabeçalho dos blocos de código e alterar o tamanho da fonte. Corrigi os problemas de formatação do Github onebox também (obrigado pela PR @gormus! :slight_smile: ). Atualizei o OP e adicionei novas capturas de tela e um link para a visualização do criador de temas.

7 curtidas

Este componente foi atualizado novamente - corrigi um bug onde o título estava sendo exibido em diagramas Mermaid.

Além disso, o @Don fez um refatoramento do js, limpou parte do código e também adicionou uma formatação mais agradável, incluindo uma borda e a linguagem do código no cabeçalho, se especificada na postagem. (Obrigado Don :hugs:).

Descrição da OP e capturas de tela atualizadas.

4 curtidas

Olá, este componente de tema reporta um erro como este

Erro: Mixin indefinido. ╷ 17 │ @include sticky; │ ^^^^^^^^^^^^^^^ ╵ line-numbers.scss 17:9 @import /var/www/discourse/common.scss 1:570 root stylesheet
2 curtidas

O mixin sticky foi removido do core em um PR recente.
Farei um PR!


Aí está:

3 curtidas

mesclado. obrigado @Arkshine :slight_smile:

3 curtidas