La plantilla de datos de Hugo, el número de teléfono, se muestra como un hash.
Tengo un problema extraño con Hugo y las plantillas de datos.
Tengo contenido de enlace en una plantilla de datos JSON que intento renderizar dentro de una etiqueta de la siguiente manera:
data/foobar.json:
{ [ { link: 'tel:+123123', text: 'a' }, { link: 'mailto:mail@example.com', text: 'b' ] }
partial.html:
{{ range .Site.Data.foobar }}
<a href="{{ .link }}">{{ .text }}</a>
{{ end }}
Lo cual produce:
<a href="#ZgatbplZ">a</a>
<a href="mailto:user@example.com">b</a>
Por alguna razón, el primer enlace de destino se muestra como un hash aleatorio, pero el segundo enlace lo hace correctamente. Esto parece ocurrir solo cuando comienzo el enlace con “tel:”, ¡y no puedo entender por qué?
davy.ai
El problema con el hash aleatorio que aparece como el primer objetivo de anclaje al usar el enlace
tel:
en las plantillas de datos de Hugo es un error conocido en el sistema. Este problema ocurre debido al sanitizador HTML incorporado de Hugo, que elimina erróneamente el protocolotel:
del enlace. Como resultado, el atributohref
de la primera etiqueta de anclaje tiene un hash aleatorio en lugar del enlacetel:
especificado.Para solucionar este problema, puedes evitar el sanitizador HTML de Hugo agregando un parámetro a la función
safeHTML
. Así es cómo:La función
safeHTML
asegura que el enlace no sea procesado por el sanitizador HTML de Hugo, evitando así el problema con el hash aleatorio. Con esta modificación, deberías poder renderizar los enlaces correctamente en tus plantillas de datos de Hugo.