2014-10-16 12 views
5

Mam plik markdown następująco:Ustawianie wielu kategorii Jekyll

--- 
title: My Page 
categories: 
- first 
- second 
--- 

W moim pliku _config.yml, ustawić odnośnik do /:categories/:title.html

Więc kiedy Permalink kończy się na/first/second /title.html, natomiast miałem nadzieję, że Jekyll utworzy /first/title.html i /second/title.html

Czy istnieje sposób, aby to zrobić? bez niestandardowych wtyczek?

Cheers

+0

Aby wyjaśnić, chcesz, aby jeden dokument był duplikatem w kilku kategoriach? – Max

+0

tak. Dziwne jest dla mnie, że Jekyll zakłada, że ​​"pierwszy" w pewnym sensie "podważy" sekundę. Bardziej intuicyjne wydaje się to, że strona należy do kategorii "pierwsza" i "druga", a kategorie te nie są powiązane w pewien przechodni sposób. – user3653270

Odpowiedz

0

Według these docs, wygląda każdej strony Jekyll może mieć tylko jedną kategorię. categories jest w pewnym sensie mylące, ponieważ tak naprawdę definiujesz "hierarchię kategorii" - tak jak ścieżkę do pliku - tak więc wpis rzeczywiście znajduje się w jednej (pod) kategorii. W tym ograniczonym sensie nie możesz robić tego, co chcesz, dzięki wanilii Jekyll.

Jednak Jekyll będzie przetwarzał pliki po prostu siedząc w dowolnym katalogu, który nie zaczyna się od podkreślenia i następuje po dowiązaniach symbolicznych. Na przykład, jeśli tworzysz katalogi dla każdej kategorii i umieszczasz swoją stronę w jednym z nich, możesz utworzyć dowiązania symboliczne do dowolnej liczby innych "kategorii".

mkdir first second 
touch first/page.md 
ln -s ../first/page.md second/ 
+0

tak - zgadza się, że kategorie są mylące i jest to de facto hierarchia. – user3653270

2

Najprostszym i najlepszym sposobem jest zdefiniowanie permalinka za pośrednictwem frontmattera. Jest to również doskonałe rozwiązanie do optymalizacji pod kątem wyszukiwarek. Najpierw trzeba powiedzieć Jekyll poprzez _config.yml jak Jekyll powinno budować więzi, jeśli zapomnisz ustawić go poprzez frontmatter:

_config.yml

# Build settings 
permalink: /:categories/:title/ 

Zdefiniuj odnośnik ...

2014- 10-17_my_post.md

--- 
layout: post 
title: 'Post with permalink' 
permalink: /this-is-the-unique-permalink/ 
--- 

My Post 
+0

przydatne informacje - aby można było przesłonić link bezpośredni w _config.yml za pomocą frontmattera w pojedynczym wpisie? – user3653270

+0

Tak, możesz. To jest możliwe :) – Phlow