2013-02-03 17 views
35

Probabilmente mi manca qualcosa di semplice ma non ho modo di testare Jekyll localmente.Come rendere una pagina di markdown Jekyll sull'indice dei siti

Sto usando pagine GitHub per eseguire il rendering di Jekyll, per i principianti voglio solo renderizzare il contenuto del markdown sullo index.html principale da una pagina di markdown.

la struttura è:

Index.HTML

--- 
layout: default 
--- 

_layouts
- default.html

//html stuff.. 
<section> 

{{page.content}} 

</section> 

nella cartella principale ho una pagina chiamata content.md che Desidero rendere per {{page.content}} il layout viene visualizzato ma la sezione dei tag liquidi è vuota.

Come si esegue il rendering di content.md?

Esempio: https://github.com/wycks/wordpress-gears-jekyll

risposta

37

Ci sono alcune cose che accadono qui.

  1. Nel file _layouts/default.html (e qualsiasi altro _layouts file della directory è per questo), invece di:

    {{ page.content }} 
    

    è necessario utilizzare:

    {{ content }} 
    
  2. solo Jekyll ti consente di includere file da una directory root del sito _includes. Quindi, devi spostare il tuo content.md dalla directory principale in quella directory (facendolo se non esiste già).

  3. Infine, è necessario effettuare la chiamata al file di inclusione dal file index.html. Questo può essere fatto modificando il contenuto del file index.html a:

    --- 
    layout: default 
    --- 
    
    {% include content.md %} 
    

che l'installazione sarà il comportamento che si sta cercando.


mi piacerebbe sottolineare altre due cose:

  1. Potreste scoprire che cambiando l'estensione del file di indice da .html a .md funziona meglio. Una nota importante però: è necessario utilizzare .html se si desidera l'impaginazione. Per la Jekyll Pagination documentation, questa funzione funziona solo quando il file è denominato index.html.

  2. Se tutto ciò che si sta facendo nel proprio file di indice è chiamare un include che risiede solo su quella pagina, si potrebbe essere semplicemente fuori semplicemente mettendo il contenuto direttamente nel file indice.

+0

Grazie Alan, ho fatto quello che hai menzionato e niente è rendering. Anche per i tuoi suggerimenti sul rendering di un semplice 'index.md', inizialmente l'ho provato e non ho funzionato. Il collegamento GitHub viene aggiornato con quello e contiene il tuo suggerimento iniziale in 'old_index.html'. – Wyck

+1

C'è qualcos'altro ora. Il tuo file index.md ha alcuni caratteri invisibili all'inizio che stanno eliminando il parser. Quando leggo 'head' sul file, invece di vedere '---' per la prima riga, restituisce '?? ---'. Non potevo liberarmene cancellando semplicemente la linea. Ho dovuto ricreare il file. Quindi, prova a buttarlo via e ricostruirlo da questo (http://pastebin.com/i4zMEAaV). È inoltre necessario rimuovere contend.md dalla directory _layouts. Ha gli stessi strani personaggi invisibili e sta andando in crash jekyll quando provo ad eseguirlo localmente. Una volta ho fatto quelle due cose, jekyll ha funzionato. –

+0

Sì, si trattava di un sacco di caratteri strani, forse perché avevo usato Pandoc per convertire l'html originale in markdown, o forse era solo un errore di Windows, grazie – Wyck

0

include permette solo di includere i file direttamente sotto _includes/. C'è anche include_relative che ti permette di usare i percorsi e includere da altri posti. Il comprendono deve essere relativo al file data comunque:

{% include_relative somedir/footer.html %} 

c'è un problema con entrambi includono il metodo non posso risolvere: se il file si include ha avantesto Jekyll non spogliarla su. Quindi non è possibile utilizzare i frontespizi per archiviare metadati specifici, ad esempio "titolo". Ovviamente puoi usare le variabili - {% assign title = "My Title" %} ma non è equivalente, perché se vuoi che la cosa inclusa a far parte di una collezione o renderizzata in modo indipendente devi avere una questione frontale.

Problemi correlati