DiscoTOC - índice automático

:discourse2: Resumo DiscoTOC permitirá que você gere uma tabela de conteúdos interativa para seus tópicos com um único clique!
:eyeglasses: Pré-visualização Pré-visualizar no Discourse Theme Creator
:hammer_and_wrench: Link do Repositório https://github.com/discourse/DiscoTOC
:open_book: Novo em Temas do Discourse? Guia para iniciantes sobre o uso de Temas do Discourse

Instalar este componente de tema

Amostras

Desktop

Mobile

Funcionalidades

toc = tabela de conteúdos

  • Gera automaticamente toda a toc via um botão no menu de engrenagem do compositor

  • A toc sempre estará na tela - rola com o conteúdo como o widget de progresso do tópico

  • À medida que você rola passando por seções no tópico, o elemento ativo na tabela de conteúdos será definido como ativo (destaque azul)

  • Adiciona atributos de id aos títulos (você pode linkar para uma seção específica de outro tópico/postagem)

  • Clicar em qualquer link na toc instruirá o navegador a navegar para a seção relevante (rolagem suave)

  • Adiciona um link copiável ao lado de cada título (se você quiser linkar para ele)

  • Suporte a RTL

  • As cores são baseadas na sua paleta de cores ativa atual

Como funciona?

Em resumo, ele procura por títulos em tópicos que estão marcados para ter uma toc (via o botão do compositor) e, se resultar que o tópico atual está marcado, então ele pega todos os títulos e os coloca na toc (aninhados na ordem dos níveis de título) - isso significa que seu markdown deve estar sintaticamente correto.

# título 1
## título 2
### título 3
#### título 4
##### título 5
###### título 6

Você é livre para voltar e avançar nos níveis de título, mas a ordem deve estar correta

# título 2 
## título 3
## título 3
### título 4
## título 3
# título 2

etc...

Para que os links na toc funcionem, os títulos devem ter atributos de id. O componente verificará se os títulos já possuem ids e, se tiverem, eles serão respeitados. Isso é útil se você já criou uma toc manualmente.

Se os títulos não tiverem ids, então ele gerará um id para cada título baseado em seu texto (caracteres indesejados são removidos)

uma vez que tudo isso seja feito, ele também adicionará um link ao lado de cada botão que linka diretamente para aquela seção:

Configurações

Nome Descrição
nível de confiança mínimo para criar TOC O nível de confiança mínimo que um usuário deve ter para ver o botão TOC no compositor
texto toc do compositor Texto que aparece no topo do painel de pré-visualização do compositor para indicar que o tópico terá uma tabela de conteúdos
categorias toc automática Ativar automaticamente TOC em tópicos nestas categorias
tags toc automática Ativar automaticamente TOC em tópicos com estas tags
TOC min título Número mínimo de títulos em um tópico para que a tabela de conteúdos seja exibida

Traduções

Tradução Padrão
table_of_contents tabela de conteúdos
insert_table_of_contents Inserir tabela de conteúdos
jump_bottom Ir para o final
toggle_toc.show_timeline Linha do tempo
toggle_toc.show_toc Conteúdos

O tema vem com três strings que você pode traduzir ou alterar.

table_of_contents: "tabela de conteúdos"

isto é usado para o botão que abre a toc no mobile

insert_table_of_contents: "Inserir tabela de conteúdos"

isto é usado como o texto para o botão toc no menu de engrenagem do compositor

topic_will_contain_a_table_of_contents: "Este tópico conterá uma tabela de conteúdos"

Este é o texto que aparece na pré-visualização do compositor para indicar que uma toc será gerada para o tópico

Como crio uma toc?

  1. Escreva um tópico com títulos sintaticamente corretos
  2. Clique no botão toc no menu de engrenagem (aparece apenas ao criar um tópico regular - respostas e MPs são ignorados
  3. Lucro.

O que acontece com o widget de progresso do tópico quando um tópico tem uma toc?

Como você provavelmente pode adivinhar, não há espaço para mostrar ambos ao mesmo tempo, então a maneira como este componente funciona é a seguinte

em um tópico com uma toc, o widget de progresso do tópico é ocultado enquanto a primeira postagem está na tela, e você vê a toc em vez disso.

Assim que você rolar passando a primeira postagem, a toc não rolará com você e o progresso do tópico será exibido em vez disso enquanto você lê quaisquer respostas.

Então, as primeiras postagens recebem a toc, e as postagens subsequentes recebem o widget regular de progresso do tópico.

Isso acontece tanto no desktop quanto no mobile.

Existem desvantagens ao usar este componente?

Nada que eu saiba, todas as alterações são feitas no lado do cliente. Então você pode facilmente remover o componente e suas postagens voltarão ao estado em que estavam antes de você instalá-lo.

Limitações

Este componente assume o layout padrão de tópicos. Como tal, não funcionará com temas que modificam esse layout, como o tema Vincent. O suporte para temas populares que modificam o layout virá em uma fase posterior na forma de configurações de componente.

Crédito

Comecei com a biblioteca tocify.js de Greg Franko. No entanto, parece que não foi atualizada há algum tempo, então isso é essencialmente um hard-fork que remove muitas funcionalidades desnecessárias, integra e estiliza o restante para o Discourse.

Portanto, não há solicitações externas e o tamanho total é de ~ 4kb gzip.

Muito obrigado a @erlend_sh por muitos feedbacks valiosos e a @david por sua ajuda com as traduções.

:discourse2: Hospedado por nós? Componentes de tema estão disponíveis para uso em nossos planos Pro, Business e Enterprise.

182 curtidas
Automatic Table of Contents generation
Creative Uses of Discourse
Wiki improvement – Split content into multiple sections?
:cn: DiscoTOC 自动内容表格
Big Header - Little Header
How To Add Marker To Table Of Contents Feature?
What are the different ways to customize content inside a post (custom attributes and such)
Tagged topic progress bar - feasible or not?
Reader Mode
How can i show a floating sticky 300x250 Adsense Ad on right side bar of topic page above the fold?
How do you create a table of content like this one?
Timeline with labelled step by step sections - how is this achieved?
How to get topic navigation menu
Is anyone working on a Discourse Wiki?
Traditional multi level hierarchy vs flat discourse hierarchy
Theme Components - Can Discourse hosted sites install them?
How to add table of content sidebar beside a topic?
How do I add a table of contents sidebar to a topic?
Cannot deep link to anchor in text
How can I compare arbitrary revisions of a post?
Understanding Discourse for new users
Problem with DiscoTOC: TypeError: _offsetCalculator.headerOffset is not a function
How to create an In-app Knowledge Base with Discourse Docs?
OP Contents on Progress Bar
How to get topic sidebar
Customizing your site with existing theme components
Link to headers (anchor links)
Outline Enable
What is essential content for a new community?
Tools for creating image-heavy articles
Adding DiscoTOC to Published Pages
Customize Your Site Branding
Discourse Doc Categories
Gif icon not displaying and showing error
Must have plugins and components for Discourse?
I created a bookmarklet to create the table of content for forum posts
Could a List of Recommended Topics Be Added to the Top Menu?
Living with corrupted SVGs for almost a year. Need Help!
Something recently changed, can't increase `--topic-body-width`
How to enable side navigation?
Displaying "full topic" text on category page + access to subcategory from menu bar
Improve iPad screen real estate
Missing anchor links in certain TOC topics?
DiscoTOC not showing in composer after latest component update
Missing anchor links in certain TOC topics?
How to create a documentation theme used by discourse
Where's Jump to end?
Handling anchors in posts created with markdown
Reader Mode
Hidden Timeline button
Horizon Theme
Collections
Bulk Export of Raw Post Sources with Markup
AI summary in topic header
Contents button and Timeline button floating unexpectedly
:cn: Discourse Post Formatting Guide 加点格式,让帖子多姿多彩
Wiki table of contents on pro plan
Auto-Linkify Words
Missing strings (DiscoTOC)
?page=n URLs have high CLS hence bad SEO
Require users to "Reply as Linked Topic"
Links not working
Using Posts as a Wiki?
Using Posts as a Wiki?
Is anyone working on a Discourse Wiki?
Using Posts as a Wiki?
Using Posts as a Wiki?
DiscoTOC & Brand Header - using together
Docs: Add link to top menu
Layouts Plugin
More than two levels of [details]
Category page with fixed organization of topics
Blog Post Styling
Inlink the topics within the same article
Navigating to local URL fragment doesn't modify browser history
Relating to Profile Picture Scroll Functionality
Copy pasting nested lists from Word into a post
Need to include PGN (chess game notation) in a post
How can I get a table of contents for my docs?
Linking to a heading within a post
Topic list on the right side
Set up Slack notifications using the discourse-chat-integration plugin
Wrong title in the history popup (firefox)
Possible to insert post in a topic
I created a bookmarklet to create the table of content for forum posts

4 posts foram divididos em um novo tópico: Como mover o TOC para o lado esquerdo da postagem?

Eu não sei como este componente é implementado ou muito sobre a estrutura frontend do Discourse, então só posso arriscar um palpite.

Será que a barra de progresso só poderia ser mostrada a) se houver mais de 1 post no tópico e b) ajustar seu início para ser a partir do 2º post (em vez do 3º), mas também c) adicionar uma margem inferior/superior confortável a um dos dois elementos para garantir que o outro permaneça distante o suficiente (ex: 1vh) para não ficar com uma aparência estranha?

Em outras palavras, em vez de usar o post inteiro como lacuna, use CSS para permitir algum espaço entre eles (se houver mais de 1 post).

Novamente, isso pode não fazer sentido algum, pois não sei muito sobre a forma como isso está funcionando no momento.

3 curtidas

Olá! Recentemente instalamos o DiscoTOC em nossos fóruns e estávamos nos perguntando se é possível fazer com que o componente leia o texto alternativo (alt text) em imagens? Usamos imagens para alguns cabeçalhos de notas de atualização…

assim:
Performance and Stability

E, infelizmente, o sistema TOC não parece conseguir analisar uma imagem como um cabeçalho, criando uma entrada em branco na lista e gerando um link que leva a uma página em branco. Existe alguma solução alternativa para isso além de “não usar imagens”? Obrigado! Adoramos o sistema de resto.

1 curtida

Minha suposição é que a solução é não usar imagens como títulos, mas talvez haja uma maneira de fazê-lo funcionar adicionando algum código ao seu site que se conecte ao código do DiscoTOC. Se vale a pena investigar isso ou não, dependerá de quão importante é para você usar imagens nos títulos das postagens.

3 curtidas

Temos usado imagens como cabeçalhos em nossas notas de atualização de forma consistente por um bom tempo, e isso faz parte da nossa marca e apresentação; não apenas nos fóruns, mas também no Steam e similares. Gostaríamos de ter a capacidade de continuar usando imagens como cabeçalhos ao usar o DiscoTOC para manter a consistência.

O DiscoTOC tem sido ótimo para outras coisas, como um resumo de AMA (Ask Me Anything), uma megapublicação sobre nosso aplicativo de inicialização de servidor dedicado, guias para novos jogadores, etc. Gostamos muito do sistema, mas adoraríamos um pouco de funcionalidade extra para a maneira como apresentamos as notas de atualização.

1 curtida

A funcionalidade de âncora de título neste componente conflita ligeiramente com a funcionalidade Automatic header links adicionada na 2.7.0beta6, já que os títulos recebem dois ícones ao passar o mouse, um do Discourse e outro do DiscoTOC. Existe uma maneira de contornar isso?

1 curtida

Olá,

Você pode ocultar a âncora Automatic header links com

.anchor {
  display: none;
}

Olá dodesz,

Eu deixei a largura da postagem muito maior que a padrão, e depois de instalar este componente, ela ficou com uma aparência estranha. Você poderia me dizer como corrigir este problema?

:heart: obrigado!

Selection_839

1 curtida

Em um fórum rodando Discourse 2.8.0.beta4 (90232af778), incluir o componente DiscoTOC leva a uma mensagem de erro:

oops

O componente havia sido ativado antes e também gerou um problema com a versão do Discourse instalada anteriormente, embora eu não possa dizer qual era essa versão.

Você consegue encontrar alguma mensagem de erro relacionada ao problema nos logs de erro do seu site?

Essa mensagem de erro é um erro de backend, enquanto o DiscoTOC é um componente de tema de front-end, então é difícil que estejam relacionados. Você tem algum plugin instalado?

1 curtida

Infelizmente, não consegui encontrar nada útil em /logs.

Eu tenho, aqui está o trecho relevante do app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-openid-connect.git
          - git clone https://github.com/discourse/discourse-checklist.git
          - git clone https://github.com/discourse/discourse-push-notifications.git
          - git clone https://github.com/discourse/discourse-characters-required.git
          - git clone https://github.com/angusmcleod/discourse-news.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/DNOeV/discourse-watch-category.git
          - git clone https://github.com/discourse/discourse-footnote.git
          - git clone https://github.com/discourse/discourse-knowledge-explorer.git
1 curtida

Quando um cabeçalho está dentro de uma citação, o cabeçalho não aparece no TOC (Tabela de Conteúdo). Esse comportamento poderia ser alterado?

Este cabeçalho não aparecerá no TOC

Conteúdo citado

Este cabeçalho APARECE no TOC

Conteúdo citado

Eu não sei como está planejado para funcionar, mas normalmente não, porque faz parte da citação, não um cabeçalho desse texto.

2 curtidas

Você poderia tentar usar o <blockquote> do HTML em vez disso? Isso permitiria que o cabeçalho # ficasse no início de uma linha.

Exemplo:

<blockquote>

### Cabeçalho de Âncora

</blockquote>

Cabeçalho de Âncora

Eu não tentei em um TOC (Table of Contents - Índice), mas parece funcionar com os cabeçalhos com âncora automática em uma postagem normal.

Por que você quer que os cabeçalhos dentro de aspas apareçam no sumário? Qual é o seu caso de uso?

Obrigado pela ideia. Não funcionou para mim, no entanto.

Aqui está um exemplo de quando uso citações para estruturar visualmente o conteúdo que começa em Área de Problema: Idade

3 curtidas

Por que você está usando aspas dessa forma? Dizer a fonte é suficiente. Além disso, gramaticalmente isso está errado, inclusive em inglês.

Isto é um bug ou apenas mais um usuário, mas… como devo fechar o TOC? Eu estava procurando por instruções básicas sobre como um usuário final deve usar mensagens privadas e, claro, fui para a documentação de novos usuários e abri o TOC para ver se havia alguma informação.

Eu estava usando um iPad e o DiscourseHub.

Eu obtive isto:

kuva

O TOC está ótimo. Mas está sobrepondo o texto e eu não consegui suprimi-lo novamente. Então, o que diabos eu fiz de errado, ou não fiz nada :pleading_face: