Manejo de anclas en publicaciones creadas con markdown

Hola comunidad, estoy usando un sitio de Discourse para publicar algunas especificaciones que están escritas principalmente en markdown, pero me encontré con el problema de que las anclas utilizadas para los encabezados se están renderizando, cuando deberían estar ocultas.

¿Alguien sabe si hay alguna forma de ocultarlas?

2 Me gusta

¡Hola, bienvenido!

¿Esta sintaxis es de kramdown o PHP Markdown Extra?

Discourse se basa en MarkdownIt, que está basado en la especificación CommonMark. No admite la especificación de un ID de encabezado.

Parece que lo discutieron en algún momento: Anchors in markdown - Spec - CommonMark Discussion, pero no veo ninguna conclusión definitiva.

Sin embargo, Discourse genera anclas automáticamente.
Puedes verlo aquí:

Esencialmente, puedes esperar estos IDs:

  • h-{headingId} (sin ID de publicación, sin slug)
  • h-{slug}-{headingId} (sin ID de publicación)
  • p-{postId}-h-{headingId} (con ID de publicación, sin slug)
  • p-{postId}-h-{slug}-{headingId} (con ID de publicación y slug)

Por ejemplo:

Si lo prefieres, aún puedes crear una ancla manualmente con HTML, por ejemplo, <a></a>


Recursos adicionales:
Si necesitas generar una Tabla de Contenidos, tienes este componente para ti:

5 Me gusta

¡Muchas gracias @Arkshine!

El problema se debe más a que también publicamos los markdowns utilizados para otros fines en Discourse, por lo que las personas que mantienen los documentos utilizan estas anclas para referencias cruzadas al fusionar varios markdowns en un solo documento.

Creo que haré algún tipo de script para limpiar antes de publicar el contenido.

3 Me gusta

¡Ya veo!

La solución también es crear un plugin para Discourse con un plugin de markdown para soportar esta sintaxis. Si tienes algo de presupuesto, podrías preguntar en Marketplace.

@Nihokam

Si todavía estás interesado, hice un pequeño plugin de Discourse que se encarga de especificar un ID de ancla junto al encabezado.

Funciona junto con las anclas de encabezado automáticas de Discourse.
Ten en cuenta que es un soporte básico. Probablemente haya muchas variantes, pero este plugin solo admite las siguientes:

## Mi Encabezado {#seccion_personalizada}

generará:


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

¡Puedes probarlo! Hazme saber si tienes algún problema con él.

2 Me gusta

¡Gracias @Arkshine!

Lo consultaré con nuestro administrador de Discourse sobre su uso :grin:

1 me gusta

@Arkshine ¿Sabes cómo se generan las anclas en Discourse (el sitio web actual)? Pregunto porque no parecen seguir los patrones que compartiste. Por ejemplo, mira esto:

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

¿Hay alguna configuración para esto? No pude encontrarla. ¿O usan <a>? ¿O tu plugin?