2013-08-23 11 views
11

Io uso GitHub Pages e ho creato alcune pagine in una sottocartella. Sembra che non stia generando pagine che ho creato nella sottocartella. Tutte le altre pagine funzionano bene. La struttura di directory è come questo:Jekyll non genera pagine in sottocartelle

/ 
/index.html 
/_config.yaml 
/_includes 
/_layouts 
/_posts 
/tag 
/tag/personal.html 
/tag/videos.html 

Le pagine all'interno della directory /tag non sono generati da Jekyll. Inoltre, solitamente GitHub invia un'email se la build di Jekyll fallisce, ma in questo caso no. Inoltre, se faccio altre modifiche, funziona, quindi la build sembra non aver fallito.

Il /tag/personal.html è qui:

--- 
layout: default 
title: Tag-personal 
permalink: /tag/personal/index.html 
tagspec: personal 
--- 
<div id="tagpage"> 
    <h1>Posts tagged personal</h1> 
{% include tags.html %} 
</div> 

e /_includes/tags.html è qui:

{% for tag in post.tags %} 
    {% if tag == page.tagspec %} 
    {% assign ispostviable = true %} 
    {% endif %} 
{% endfor %} 

    <ul class="posts"> 
{% for post in site.posts %} 
    {% if ispostviable == true %} 
    <li><a href="{{ post.url }}"></li> 
    {% endif %} 
{% endfor %} 
    </ul> 

PS: Io uso GitHub pagine e non hanno accesso a un'istanza di Jekyll alla mia macchina di sviluppo (Windows).

+0

Ho modificato la mia domanda con i dettagli. – Ameer

risposta

8

Ho trovato il colpevole. Fu in In Jekyll v1.0 che vennero introdotti i permalink assoluti per le pagine nelle sottodirectory. Fino alla versione 1.1, è opt-in. A partire dalla versione 1.1, tuttavia, i permalink assoluti sono diventati opt-out, il che significa che Jekyll usa i permalink assoluti invece dei relativi permalink.

Le pagine venivano generate allo /tag/tag/personal.html e così via.

C'erano due soluzioni:

  • Specificare relative_permalinks: false in _config.yaml
  • Fai permalink relativo alla sottodirectory.

Ho scelto la prima opzione.

+0

ha funzionato perfettamente, grazie –

5

Joshua Powell ha fornito step-by-step directions in risposta a una domanda simile su Github.

  1. Modifica _config.yml per aggiungere la seguente riga (o espandere l'array, se esiste)

    include: ['_pages']

    dove _pages è il nome della cartella in cui si desidera mantenere i file. (Questo funziona anche per le cartelle nidificate se le aggiungi esplicitamente, ad esempio ['_pages', '_pages/foo'].)

  2. Sposta le pagine in quella cartella. (Queste pagine possono essere HTML, Markdown o quant'altro Jekyll esegue il rendering quando viene inserito nella cartella principale.)

  3. Assegnare loro una materia prima con un appropriato permalink, compresa una barra finale, ad esempio permalink: "/about/".

+1

Questo non ha funzionato per me. :(Le pagine non vengono generate come erano quando i file sono stati collocati nella radice. – Ellesa