Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

296
Vistas
¿Hugo no me deja listar páginas de una sección, rechazando argumentos?

layouts/index.html :

 {{define "main"}} {{ $products := .Site.RegularPages.ByTitle "Section" "products" }} {{with .Params.banner}} [...] <div class="dropdown-menu"> {{ range (where $products ) }} <a class="dropdown-item " href="{{ .Permalink }}">{{ .Title }}</a> {{ end }} [...]

Produce este error:

 ERROR: executing "main" at <.Site.RegularPages.ByTitle>: wrong number of args for ByTitle: want 0 got 2

De acuerdo, intentemos eliminar esos dos argumentos (necesarios), supongo.

 {{ $products := .Site.RegularPages.ByTitle }}

Ahora, el error dice:

 ERROR: executing "main" at <where>: wrong number of args for where: want at least 2 got 1

¿Que está pasando aqui? El primer bit de código funciona bien en mis layouts/header.html , pero ahora Hugo parece estar confundido.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Te estás perdiendo una instrucción where. $productos es una variable

 .Site.RegularPages.ByTitle <- isn't a value.

Por lo tanto los errores son claros, ¿no?

Pero para manejar su punto original:

Está a medio camino entre asignar una variable y ejecutar una función.

Asi que:

 $products := .Site.RegularPages <- existing "Array/Map/Slice" assigned to a variable

.ByTitle es un parámetro para pasar a una función (creo).

Si desea esa agrupación organizada por título, que sería una función para ejecutar antes de asignar a una variable.

Recorre las páginas normales por título como desee:

 {{range .Site.RegularPages.ByTitle}} {{ . }} {{ end }}

Si aún desea una "matriz" ordenada por título: consulte los documentos:

 https://gohugo.io/functions/where/ (which I find to be excellent) and https://gohugo.io/functions/sort/#readout

Usarías Ordenar. También podrías simplemente hacer esto:

 {{range where .Site.RegularPages.ByTitle "Section" "products" }} {{ . }} {{ end }}

O más específicamente:

 {{ $product := where .Site.RegularPages.ByTitle "Section" .Section }}

Resumen: para responder a su pregunta: su código no funciona porque está mezclando la asignación de una variable con la ejecución de una función.

Tiene casi una instrucción where en la asignación de la variable. Por eso los errores que estás recibiendo.

Notas adicionales:

Como no tengo acceso a su repositorio, realmente no sé lo que está tratando de hacer, le sugiero que use los documentos anteriores para ayudarlo.

El "error anterior" que creo que está tratando de resolver es esta declaración "con" de .Params.Banners, ya que está "eliminando el contexto". Creo que hay una lógica defectuosa allí.

Sin embargo, si aún desea evitar esto, use "ordenar" para ordenar el valor o $productos (asignándole las páginas regulares con la instrucción where).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda