Jekyll - Agregar material de páginas de forma automática, en las páginas de GitHub
-
05-10-2019 - |
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!
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.