Manipulação de âncoras em posts criados com markdown

Olá comunidade, estou usando um site discourse para publicar algumas especificações que são escritas principalmente em markdown, mas me deparei com o problema de que as âncoras usadas para os cabeçalhos estão sendo renderizadas, quando deveriam estar ocultas.

Alguém sabe se há alguma maneira de ocultá-las?

2 curtidas

Olá, bem-vindo!

Essa sintaxe é do kramdown ou do PHP Markdown Extra?

O Discourse se baseia no MarkdownIt, que é baseado na especificação CommonMark. Ele não suporta a especificação de um ID de cabeçalho.

Parece que eles discutiram isso em algum momento: Anchors in markdown - Spec - CommonMark Discussion, mas não vejo nenhuma conclusão definitiva.

No entanto, o Discourse gera âncoras automaticamente.
Você pode ver isso aqui:

Essencialmente, você pode esperar esses IDs:

  • h-{headingId} (sem ID de postagem, sem slug)
  • h-{slug}-{headingId} (sem ID de postagem)
  • p-{postId}-h-{headingId} (ID de postagem, sem slug)
  • p-{postId}-h-{slug}-{headingId} (ID de postagem, slug)

Por exemplo:

Se preferir, você ainda pode criar uma âncora manualmente com HTML, por exemplo, <a name="anchor_name"></a>


Recursos adicionais –
Se você precisar gerar um Sumário, há este componente para você:

5 curtidas

Muito obrigado @Arkshine!

O problema é mais porque estamos publicando os markdowns usados para outros fins no discourse também, então as pessoas que mantêm os documentos usam essas âncoras para referência cruzada ao mesclar vários markdowns em um único documento.

Acho que farei algum tipo de script para limpar antes de postar o conteúdo.

3 curtidas

Entendi!
A solução também é criar um plugin para o Discourse com um plugin de markdown para suportar essa sintaxe. Se você tiver algum orçamento, pode perguntar no Marketplace.

@Nihokam

Se você ainda estiver interessado, criei um pequeno plugin do Discourse que lida com a especificação de um ID de âncora ao lado do título.

Ele funciona em conjunto com as âncoras de título automáticas do Discourse.
Observe que é um suporte básico. Provavelmente existem muitas variantes, mas este plugin suporta apenas o seguinte:

## Meu Título {#custom_section}

gerará:


<a name="custom_section" href="#custom_section" class="custom-anchor-id"></a>

Você pode experimentá-lo! Me avise se tiver algum problema com ele.

2 curtidas

Obrigado @Arkshine!

Vou verificar com nosso administrador do discourse sobre o uso dele :grin:

1 curtida

@Arkshine Você sabe como as âncoras no Discourse (o site atual) são geradas? Estou perguntando porque elas não parecem seguir os padrões que você compartilhou. Por exemplo, veja isto:

https://meta.discourse.org/t/adding-a-table-to-your-post-using-markdown/66544#creating-a-simple-table-1

Existe alguma configuração para isso? Não consegui encontrar. Ou eles usam <a>? Ou o seu plugin?