es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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é?

Tags:  

Answer

  1. Avatar for 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 protocolo tel: del enlace. Como resultado, el atributo href de la primera etiqueta de anclaje tiene un hash aleatorio en lugar del enlace tel: 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:

    {{ range .Site.Data.foobar }}
      <a href="{{ .link | safeHTML }}">{{ .text }}</a>
    {{ end }}
    

    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.

Comments are closed.