2013-08-23 12 views
11

Używam stron GitHub i utworzyłem niektóre strony w podfolderze. Wygląda na to, że nie generuję stron, które utworzyłem w podkatalogu. Wszystkie inne strony działają poprawnie. Struktura katalogów jest tak:Jekyll nie generuje stron w podfolderach

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

Strony wewnątrz katalogu /tag nie są generowane przez Jekylla. Zwykle GitHub wysyła wiadomość e-mail, jeśli kompilacja Jekyll kończy się niepowodzeniem, ale w tym przypadku nie. Ponadto, jeśli zrobię jakieś inne zmiany, to działa, więc kompilacja najwyraźniej nie zawodzi.

/tag/personal.html jest tutaj:

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

i /_includes/tags.html jest tutaj:

{% 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: używam GitHub stron i nie mają dostępu do instancji Jekyll na moim komputerze rozwoju (Windows).

+0

Zmodyfikowałem moje pytanie ze szczegółami. – Ameer

Odpowiedz

8

Znalazłem winnego. W wersji Jekyll v1.0 wprowadzono bezwzględne permalinki dla stron w podkatalogach. Aż do wersji 1.1, jest to opt-in. Jednak począwszy od wersji 1.1 bezwzględne permalinki zostały wycofane, co oznacza, że ​​Jekyll domyślnie stosuje bezwzględne permalinki zamiast względnych permalinków.

Strony były generowane pod numerem /tag/tag/personal.html i tak dalej.

Były dwa rozwiązania:

  • Określ relative_permalinks: false w _config.yaml
  • Bądź Permalinks stosunku do podkatalogu.

Wybrałem pierwszą opcję.

+0

działało idealnie, dziękuję –

5

Joshua Powell pod warunkiem step-by-step directions w odpowiedzi na podobne pytanie na Github.

  1. Edit _config.yml dodać następującą linię (lub rozwinąć tablicę, jeśli taka istnieje)

    include: ['_pages']

    gdzie _pages to nazwa folderu, w którym chcesz przechowywać swoje pliki. (Działa to również w przypadku folderów zagnieżdżonych, jeśli użytkownik je jawnie doda, np. ['_pages', '_pages/foo'].)

  2. Przenieś swoje strony do tego folderu. (Te strony mogą być HTML, Markdown lub cokolwiek innego, co Jekyll renderuje, gdy jest umieszczone w folderze głównym.)

  3. Podaj im przednią treść z odpowiednim permalinerem, w tym ukośnym ukośnikiem, np. permalink: "/about/".

+1

To nie działa dla mnie. :(Strony nie są generowane tak jak wtedy, gdy pliki zostały umieszczone w katalogu głównym. – Ellesa