2013-02-03 14 views
35

Prawdopodobnie brakuje mi czegoś prostego, ale nie mam możliwości testowania Jekylla lokalnie.Jak renderować stronę ze znacznikami Jekyll na indeksie witryn

Używam stron GitHub do renderowania Jekyll, na początek chcę tylko renderować zawartość znacznika na głównym index.html z jednej strony ze wskazówkami.

struktura jest:

Index.html

--- 
layout: default 
--- 

_layouts
- default.html

//html stuff.. 
<section> 

{{page.content}} 

</section> 

W folderze głównym mam stronę o nazwie content.md że Chcę renderować na {{page.content}} układ jest renderowany, ale sekcja etykiet płynnych jest pusta.

Jak renderować content.md?

Przykład: https://github.com/wycks/wordpress-gears-jekyll

Odpowiedz

37

Istnieje kilka rzeczy się tu dzieje.

  1. W pliku _layouts/default.html (i wszelkich innych _layouts plików katalogów dla tej sprawy), zamiast:

    {{ page.content }} 
    

    trzeba użyć:

    {{ content }} 
    
  2. tylko Jekyll umożliwia dołączanie plików z katalogu głównego katalogu lokacji poziomu _includes. Tak więc musisz przenieść swój content.md z katalogu głównego do tego katalogu (tworząc go, jeśli jeszcze nie istnieje).

  3. Wreszcie, musisz rzeczywiście wykonać wywołanie pliku dołączającego z pliku index.html. Można to zrobić poprzez zmianę zawartości pliku index.html do:

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

który będzie konfiguracja zachowanie szukasz.


Chciałbym zwrócić uwagę na dwie innymi:

  1. Może się okazać, że zmiana rozszerzenia pliku indeksu od .html do .md działa lepiej. Ważna uwaga: musisz użyć .html, jeśli chcesz stronicować. Zgodnie z Jekyll Pagination documentation funkcja działa tylko wtedy, gdy plik ma nazwę index.html.

  2. Jeśli wszystko, co robisz w swoim pliku indeksu, wywołuje zawartość znajdującą się tylko na tej stronie, możesz być równie dobrze po prostu umieszczając zawartość bezpośrednio w pliku indeksu.

+0

Dzięki Alan, zrobiłem to, o czym wspomniałeś i nic nie renderujesz. Również dla twoich sugestii renderowania samego "index.md", który początkowo próbowałem, a także nie działał. Link do GitHub jest aktualizowany i zawiera wstępną sugestię w 'old_index.html'. – Wyck

+1

Teraz dzieje się coś jeszcze. Twój plik index.md ma kilka niewidocznych znaków na początku, które zrzucają parser. Kiedy czytam "head" w pliku, zamiast widzieć "---" dla pierwszego wiersza, zwraca on "? ---". Nie mogłem się tego pozbyć, po prostu kasując linię. Musiałem odtworzyć plik. Więc spróbuj go zdmuchnąć i przebuduj z tego (http://pastebin.com/i4zMEAaV). Musisz również usunąć contend.md z katalogu _layouts. Ma te same dziwne, niewidzialne postacie i rozbija jena, gdy próbuję go uruchomić lokalnie. Kiedy zrobiłem te dwie rzeczy, pracował jekyll. –

+0

Tak, to było to wszystko, różne dziwne postacie, być może dlatego, że użyłem Pandoc do konwersji oryginalnego html na przecenę, a może po prostu źle funkcjonowały okna, dzięki – Wyck

0

include tylko pozwala na to pliki bezpośrednio pod _includes/. Istnieje również include_relative, który pozwala na używanie ścieżek i dołączanie z innych miejsc. Include musi być w stosunku do danego pliku Jednakże:

{% include_relative somedir/footer.html %} 

Jest jeden problem z albo obejmować metody nie mogę rozwiązać: Jeśli plik to ma przedni sprawę Jekyll nie pozbawi go na zewnątrz. Więc nie możesz używać przedniej materii do przechowywania, obejmują one określone dane meta - np. Powiedz "tytuł". Oczywiście możesz używać zmiennych - {% assign title = "My Title" %}, ale nie jest to odpowiednik, ponieważ jeśli chcesz, aby to, co zawierasz, było częścią kolekcji lub renderowane niezależnie, musisz mieć przednie sprawy.

Powiązane problemy