jekyll - print - liquid tutorial
¿Cómo suprimir la línea en blanco en Jekyll? (5)
Uso GitHub Pages para mi blog y tengo un problema con Jekyll. Mi post.html tiene un bloque como este:
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
La parte del medio no importa. La parte importante es el final de la línea que está fuera de la {% %}
%% {% %}
y, por lo tanto, se representa en el html. Dado que esto está en un bucle, está colocando alrededor de 1000 líneas en blanco en medio de una página HTML. No afecta a la pantalla, pero hace que una vista / fuente sea problemática.
¿Alguna idea sobre cómo evitar esas líneas en blanco adicionales?
Desde Liquid v4
(incluido en Jekyll
desde v3.5
) hay un Whitespace control
espacio en blanco, que finalmente resolvió el caso con una línea en blanco, espacio en blanco, etc.
Enlace a la documentación: https://shopify.github.io/liquid/basics/whitespace/
En realidad, hay una nueva solución para este problema que funciona sin ningún complemento.
Un diseño de Jekyll que comprime HTML. De un vistazo:
- elimina espacios en blanco innecesarios;
- elimina las etiquetas finales opcionales;
- elimina las etiquetas de inicio opcionales;
- elimina comentarios;
- conserva los espacios en blanco dentro de
<pre>
;- GitHub Pages compatible;
- ignora los entornos de desarrollo;
- elementos afectados configurables;
- modo de perfil;
- probado automáticamente
Si, por alguna razón, no quiere usar esto, aquí hay un buen artículo que describe algunas soluciones: Compresión de código generado por líquido - sylvain durand
Hay un plugin de Jekyll que elimina el espacio en blanco.
Jekyll plugins by Aucor: Plugins para, por ejemplo. Recorte las líneas nuevas / espacios en blanco no deseados y clasifique las páginas por el atributo de peso.
Puedes obtenerlo directamente desde su repositorio Github . Básicamente, usted ajusta su código con {% strip %}{% endstrip %}
. Incluso si esto no se adapta a tus necesidades, puedes cambiar fácilmente el script ruby.
Por ejemplo:
{% strip %}
{% for testpost in site.posts %}
{% four %}
{% lines of %}
{% processing %}
{% goes here %}
{% endfor %}
{% endstrip %}
Sin embargo, recuerde la naturaleza de los complementos de Jekyll, no puede ejecutarlos en el servidor de Github Pages.
Cita de Jekyll Doccumentation :
GitHub Pages funciona con Jekyll, sin embargo, todos los sitios de Pages se generan utilizando la opción --safe para deshabilitar complementos personalizados por razones de seguridad. Desafortunadamente, esto significa que sus complementos no funcionarán si está implementando en GitHub Pages.
Aún puede usar GitHub Pages para publicar su sitio, pero tendrá que convertir el sitio localmente y enviar los archivos estáticos generados a su repositorio de GitHub en lugar de a los archivos de origen de Jekyll.
Hay una buena solución, que descubrí en https://github.com/plusjade/jekyll-bootstrap/blob/master/_includes/JB/setup , y que es compatible con las páginas de github .
Simplemente encierre su bucle en una declaración de captura y asigne nil a la var resultante.
{% capture cache %}
{% for p in site.posts %}
do stuff here
{% endfor %}
{% endcapture %}{% assign cache = nil %}
Qué tal si
{{ page.content | escape | strip_newlines }}