2016-09-27 20 views
9

Mam katalog o nazwie /patterns w moim miejscu Jekyll, którego struktura ogólnie wygląda zazwyczaj tak:Jekyll: Dołącz plik z katalogu poza _includes

_includes _layouts _site /patterns index.html

muszę zachować katalog /patterns poza _includes z wielu powodów, ale głównie dlatego, że muszę przeciągnąć pliki z /patterns do elementu iframe w bibliotece wzorców).

Chciałbym dołączyć pliki z /patterns na moich stronach Jekyll, ale używając {% include /patterns/file.html %} doesn't work as it points to the _includes folder. How would I go about including a file from a directory that isn't _includes`?

Odpowiedz

2

W swojej _config.yml, można dodać dodatkowe katalogi tak:

includes: 
- patterns 

tak proste, jak to!

W akcji tutaj na mojej stronie Jekyll: https://github.com/pschfr/pschfr.github.io/blob/master/_config.yml

+1

Świetnie! Jeśli ustawię tę opcję, czy '/ patterns' nadal się skompiluje i pojawi się w'/_site'? –

+0

Jeśli umieścisz plik index.html w '/ patterns', tak sądzę! – Paul

+0

Hmmm, oto, co otrzymuję po dodaniu Twojej rekomendacji do mojego '_config.yml':' Liquid Exception: Included file '_includes/patterns/file-name.html' not found'. Dla jasności, staram się dołączyć plik taki jak: '{% include /patterns/file-name.html%}' Może robię tak źle? –

1

myślę że collections zrobi co trzeba. Mogą być zawarte i renderowane jako publiczny html.

Oto example project, który robi właśnie to.

+0

Dzięki za to!Mogę się mylić, ale myślę, że przedrostek katalogu z '_' oznacza, że ​​Jekyll nie uwzględni tego katalogu w' _site' podczas kompilacji. Dla mojego przypadku użycia, muszę dodać '/ patterns' w'/_site', ponieważ odwołuję się do tych plików w iframe. –

+1

Ogólnie dotyczy to podkreślenia, jednak kolekcje mają specjalną opcję wypisania publicznie dostępnego html. Zachęcam do pobrania przykładowego projektu i uruchomienia 'jekyll build', aby zobaczyć, jak działa. –

+1

Również jeśli otworzysz plik index.html, zobaczysz, jak dołączyć go zarówno do cieczy, jak i iframe. –

3

Możesz zmienić katalog używany przez znacznik include na includes_dir w swoim _config.yml. Nie wygląda na to, że możesz ustawić wiele ścieżek (źródło: https://jekyllrb.com/docs/configuration/).

W każdym razie pliki w numerze _includes nie kończą się wydrukiem. Możesz oddzielić identyfikatory zależne od wzorca na _includes/patterns/, ale jedyne, co może mieć wpływ na twoją witrynę na żywo, to gdzie te pliki zostały uwzględnione.

0

kładę dowiązania zamiast katalogu _includes, który wskazuje, gdzie chcę, ponieważ includes_dir nie lubią ../ do określenia względnej (jeden lub więcej) wyższą ścieżkę katalogów.