2013-05-07 5 views
24

Sto cercando di mostrare un breve estratto di testo da un post o una pagina più lunghi nella pagina dell'indice. Stavo per usare una variabile personalizzata in materia anteriore e afferrare, ma poi ho visto il filtro per .excerptCome utilizzare markdownify in Jekyll per mostrare un estratto sull'indice

vedo in Jekyll docs c'è qualcosa che si chiama {{ page.excerpt | markdownify }} Come faccio a markup del mark-down in una pagina o post al fine usare quel filtro?

modifica: O markdownify prende l'intero documento .md?

risposta

14

Nei file Markdown pubblicare è necessario impostare il tuo primo stralcio, ecco un esempio da uno dei miei post

layout: post 
title: A developers toolkit 
date: Friday 14 December, 2012 
excerpt: What text editor to use? Sass or plain old CSS? What on earth is Compass? Command line? I'm not touching that. Sound like you? Welcome, I was once like you and this is the guide I wish someone had given me. 

Poi sulla pagina indice chiamano il tag

{{ post.excerpt }} 

Questo dovrebbe quindi pubblica ciò che hai scritto nel file markdown. Bello e semplice e perché amo Jekyll.

72

Jekyll ha un'opzione excerpt_separator, che è adatto a te. Le cose vanno in questo modo:

In _config.yml:

excerpt_separator: <!--more--> # you can specify your own separator, of course. 

In te messaggio:

--- 
layout: post 
title: Foo 
--- 

This appears in your `index.html` 

This appears, too. 

<!--more--> 

This doesn't appear. It is separated. 

Nota è necessario digitare esattamente <!--more-->, non <!--More--> o <!-- more -->.

Nel vostro index.html:

<!-- Loop in you posts --> 
{% for post in site.posts %} 
    <!-- Here's the header --> 
    <header> 
    <h2 class="title"><a href="{{ post.url }}">{{ post.title }}</a></h2> 
    </header> 

    <!-- Your post's summary goes here --> 
    <article>{{ post.excerpt }}</article> 
{% endfor %} 

L'output è simile a questo:

<header> 
    <h2 class="title"><a href="Your post URL">Foo</a></h2> 
</header> 

<article> 

This appears in your `index.html` 

This appears, too. 

</article> 
+0

@kaplan Questa è la risposta più adatta. Dovrebbe essere accettato. – kleinfreund

+0

@kleinfreund In effetti, ho risposto alla domanda diversi mesi dopo che la prima risposta è stata accettata. –

+0

Lo so. Ecco perché ho commentato. È la risposta più adatta. – kleinfreund

1

partire ref 84cfc1cef versione github del sostiene la per-post excerpt_separator quindi bisogna aggiungere il riferimento a Gemfile:

gem 'jekyll', github: 'jekyll/jekyll', ref: '84cfc1ceff0474fd3eb3beb193ae59ae43694863' 

e creare un post con la seguente YAML:

--- 
title: Post Excerpt Separator 
excerpt_separator: "\n---\n" 
--- 
2

non funziona per mu, o collezioni, panico Jekyll quando colpiscono il parsing tranne liquido. Non so perché sia, dovrebbe funzionare come suggerisci tu.

c'è un'alternativa:

post.content o come il mio caso è: blogX.content e distruggere attraverso alcuni filtri di testo che limitano le dimensioni dei contenuti.

ie: {{blog.content | strip_html | truncatewords: 100}}