2012-04-28 24 views
6

En mi blog de Jekyll, me gustaría que algunas publicaciones no tengan un título. ¿Cómo podría modificar la base de código de Jekyll para que las publicaciones no requieran un título?Publicar sin título en Jekyll

+0

¿Ha intentado descargar la fuente y revisar sus mensajes? – huon

+1

Sé muy poco de Ruby! –

+0

Eso está bien, estoy seguro de que puedes elegir lo suficiente para hacer lo que quieras (tampoco sé mucho de Ruby). Para obtener más detalles, ¿quiere decir que el nombre del archivo no tiene que estar en el formato 'year-month-day-title'? ¿O para que no necesites un 'título: ...' en la portada de una publicación? – huon

Respuesta

8

No necesita modificar la base de código jekyll para eliminar títulos. Eso se puede hacer usando diferentes diseños con filtros y etiquetas de líquidos apropiados.

Para páginas de publicación individuales, simplemente cree un nuevo archivo de diseño (por ejemplo, "_layouts/no-title-post.html") que no tenga {{ page.title }} etiqueta líquida. En su archivo fuente _posts, establezca el frente de YAML para llamarlo. Por ejemplo:

--- 
layout: no-title-post 
--- 

señalar aquí que "el título:" no se requiere en los preliminares YAML. Si jekyll lo necesita, el valor se asignará automáticamente desde el nombre del archivo. Por ejemplo, "_posts/2012-04-29-a-new-post.md" tendría su variable de título establecida en "A New Post" automáticamente. Si sus plantillas no llaman a las etiquetas de título, no importará. Podría incluir un "título:" en el frente y simplemente no se mostraría.

También puede mostrar la página sin el título en su lista/páginas de índice. Verifique el diseño de los mensajes para determinar si debe mostrarse el título. Por ejemplo, para mostrar los títulos en todas sus páginas excepto de aquellas que presenten la disposición 'no-título-post', que haría algo como esto:

{% for post in paginator.posts %} 
    {% if post.layout != 'no-title-post' %} 
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1> 
    {% endif %} 

    <div class="postContent"> 
    {{ post.content }} 
    </div> 
{% endfor %} 

En ese caso, el enlace a la página en sí también se elimina. Si la página debe ser direccionable, tendrá que volver a agregar el enlace en otro lugar.

1

que estaba teniendo la misma duda, entonces me encontré con esta solución muy simple:

{% if post.title %} 
    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1> 
{% endif %} 

Y luego en el propio archivo puesto que dejaría al title variable de vacío:

--- 
layout: post 
title:  
--- 

Este manera, el h1 no se imprimirá si el título está vacío. Encontré este método particularmente útil para tipos de publicaciones como comillas, que la mayoría de las veces no tienen títulos. solución

2

edemundo 's ya no funciona en todos los casos con Jekyll 3.

utilizo un título vacío por defecto:

defaults: 
    - 
    scope: 
     type: "posts" 
    values: 
     layout: "post" 
     title: "" 

A continuación, puede comparar títulos contra la cadena vacía en sus diseños, por ejemplo:

{% if post.title == "" %} 
    {{ post.content | strip_html | truncatewords:5 }} 
{% else %} 
    {{ post.title }} 
{% endif %} 

Si te gusta la generación automática del título se puede utilizar como frontmatter:

--- 
title: "" 
--- 
+0

esto funcionó muy bien con una instalación de jekyll/poole. – gvoysey