2013-06-22 17 views
6

Penso che il modo nativo di gestire le pagine di Jekyll, cioè creando file .md/cartelle nella cartella radice, sia un po 'disordinato.Mostra le pagine in una cartella in Jekyll?

Così voglio mettere, ogni pagina che voglio mostrare, nella cartella chiamata "pagine". Inoltre, mi piacerebbe queste pagine per avere una struttura a cascata: dire se la mia cartella ha la struttura:

pages 
|-> parent1 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
     |-> index.html 

Poi nella pagina di pagine-profilo, dovrebbe essere qualcosa di simile:

page listing 
* parent1 
    * son1 
    * son2 
* parent2 

E inoltre, l'altro file * .html, che non si trova nella cartella delle pagine, non dovrebbe essere mostrato in questa pagina di elenco delle pagine.

Come devo fare?

Grazie mille.

risposta

1

Non c'è nulla che ti impedisce di farlo. Nello scenario precedente, yourdomain.tld/pages/prent1/son1.html sarebbe l'URL del file genitore1/figlio1.

La creazione di un elenco nidificato, tuttavia, sarà più complicata. È possibile specificare la struttura in YAML Front Matter o utilizzare i post.

pages 
|-> parent1 
    |-> _posts/ 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
    |->_posts 
     |-> index.html 

=> In questo modo i file sarebbero stati posti nelle categorie parent1 e parent2 e si potrebbe creare l'elenco visualizzando le categorie e il loro contenuto.

Se si desidera visualizzare una struttura ad albero senza utilizzare post e categorie, è necessario eseguire più magia nera. Ma fortunatamente, Liquid offre un filtro split che è possibile utilizzare per suddividere il percorso del sito in blocchi, ad es.

{% for page in site.pages %}    
    {{ page.url | split:'/' | join:'+'}} 
{% endfor %} 

Invece di unirsi a loro (questo è puramente per demonstartion), che ci si vuole compilare una matrice che contiene la struttura ad albero e poi in seguito iterare su tale matrice per visualizzare l'albero delle directory. È possibile, ma non facile. E non penso che ci sia qualcosa di prontamente disponibile.

Probabilmente scrivere un plug-in è più semplice.

Problemi correlati