Pregunta

¿Hay una manera de obtener el URL de la en Jekyll? Por las páginas me refiero a los archivos textiles no relacionados con puestos, como about.html y download.html en la siguiente jerarquía:

root
 |
 +- _includes
 |
 +- _layouts
 |
 +- _posts
 |
 +- _config.yml
 |
 +- index.textile
 |
 +- about.textile
 |
 `- download.textile

Me gustaría hacer algo como esto:

<h1><a href="{{ page.url }}">{{ page.title }}</a></h1>

Esto funciona con mensajes porque tienen su URL incluida en método to_liquid del puesto. no parecen páginas en la otra mano para incluir cualquier cosa, como él - que tienen las propiedades que necesito (o así parece ), pero no exportarlos en to_liquid; Me gustaría volver a definirlo por lo que hace. ¿Hay una manera de hacer esto?

jekyll_extensions , pero no sé si funciona en mi entorno de destino (páginas GitHub).

Me gustaría evitar tener que incluir un parámetro de URL en todas las cabezas YAML, si es posible.

Muchas gracias!

¿Fue útil?

Solución

Parece que no to_liquid page.rb ahora son compatibles con los datos "URL" su necesidad ...

https://github.com/mojombo/jekyll/ blob / master / lib / Jekyll / page.rb

Otros consejos

Creo que la respuesta es no. Aquí es la Jekyll wiki en lo que es en el tema page mundial:

Para Mensajes, esto es la unión de los datos en el YAML Letra pequeña y los datos calculados (por ejemplo, URL y la fecha). Para las páginas regulares, esto es sólo el YAML Letra pequeña.

Incluso si se pudiera volver a configurar el motor de Jekyll que lo haga por usted a nivel local, no estoy seguro de cómo se puede hacer que el trabajo en las propias páginas de Github (ya que van a utilizar el de vainilla Jekyll en lugar de la suya).

Ahora es posible monkeypatch clases Jekyll a través de su nuevo sistema de plugins!

Sólo tiene que añadir este archivo (page.rb) en su directorio _plugins:

module Jekyll
  class Page
    def to_liquid
      self.data.deep_merge({
        "url" => File.join(@dir, self.url),
        "content" => self.content,
        "dir" => self.dir,
        "name" => self.name,
        "ext" => self.ext,
        "basename" => self.basename
      })
    end
  end
end

He acaba de modificar to_liquid aquí, pero también podría haber añadido más métodos, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top