Próbuję dodać nowy post do mojej witryny Jekyll, ale nie widzę go na wygenerowanych stronach po uruchomieniu jekyll serve
.
Jakie są typowe powody, dla których post Jekyll nie jest generowany?
_posts
katalogu.YEAR-MONTH-DAY-title.MARKUP
( zwróć uwagę na MARKUP
rozszerzenie , którym jest zwykle.md
lub.markdown
)future: true
w _config.yml
(dokumentacja)published: false
w pierwszej kolejności. Ustaw totrue
.:
postać. Zastąp go:
. 3.8.3
(i prawdopodobnie w innych „ostatnich” wydaniach).
future:true
bez spacji po:
in_config,yml
prowadzi do ERR: Plik konfiguracyjny: (INVALID).future: true
najczęściej używane..markdown
rozszerzenia do nazwy pliku. Wiem o tym, bo właśnie przez to zmarnowałem 5 minut swojego życia.Możesz użyć,
jekyll build --verbose
aby zobaczyć szczegółowo proces budowania.Przykładowe wyjście:
z dziennika znalazłem jeklly pominięte,
2018-01-14-boot-android-on-charge.md
ponieważ ma przyszłą datę.źródło
Jednym z możliwych powodów jest to, że
date
podana w pierwszej kwestii nie zawiera przesunięcia strefy czasowej, w takim przypadku domyślnie jest to UTC, a nie strefa czasowa komputera lokalnego, jak można się spodziewać. Poświęciłem na to godzinę, aż UTC „dogonił” moją aktualną lokalną strefę czasową, BST.Nie znalazłem ostatecznej odpowiedzi na to pytanie, ale myślę, że data na pierwszej stronie musi być podana w UTC z przesunięciem strefy czasowej (która domyślnie wynosi zero, jeśli zostanie pominięta).
Tak samo
date: 2018-05-03 12:34:27
jest w UTC niezależnie od tego, gdzie na świecie się znajdujesz i niezależnie od tegotimezone
, w którym miejscu się znajdujesz_config.yml
.Dlatego uważaj, aby określić daty w następujący sposób:
źródło
date: 2018-05-03 12:34:27 +01:30
Wydaje się, że format również działa. Zwróć uwagę na dodatkowy dwukropek.Lub też może to być pamięć podręczna przeglądarki, jeśli szukasz nie w folderze _site, ale bezpośrednio na stronie głównej bloga z listą postów.
źródło
Napisałem testy Rspec dla mojego bloga, które wyrażają następujące zasady:
Może to być przydatne dla innych, ponieważ traciłem dużo czasu z powodu literówek w dacie itp.
Te testy wraz z resztą konfiguracji Rspec można zobaczyć w kontekście tutaj .
źródło
Aby dodać jeszcze jeden powód, kiedy przenosisz artykuł z
_drafts
do_post
, czasami musisz usunąć_site
artykuł do ponownego wygenerowania.W moim przypadku często zdarza się, że
_site
nie zostanie całkowicie usunięty przed ponownym wygenerowaniem, więc nowy artykuł się nie pojawi.Zresztą
rm -rf _site
ibundle exec jekyll serve
działa :)źródło
Jeśli nie jesteś w stanie śledzić plik
--verbose
i jeśli plik zostanie zignorowane następnie spróbuj usunąćcollections_dir
wconfig.yml
pliku. To rozwiązało problem.źródło
Mój post też się nie pojawił a błąd polegał na tym, że w swoim imieniu użyłem kropki np
2017-10-18-test.2.md
.To nie jest akceptowane, musisz użyć
2017-10-18-test2.md
.źródło
Jeśli sprawdziłeś swoją pierwszą sprawę i wszystko wydaje się być w porządku, a nawet
jekyll build --verbose
nic nie ujawnia (w moim przypadku po prostu zachowywał się tak, jakby plik w ogóle nie istniał, nawet nie wymieniając go jako wykluczonego), sprawdź kodowanie Twojego pliku. Najwyraźniej musi byćUTF-8
bez podpisu. Jeśli takUTF-8 BOM
(lubUTF-8 with Signature
jak nazywają to niektóre edytory tekstu), zostanie po cichu zignorowane. Co gorsza, niektórzy redaktorzy wyświetlają oba typy jako sprawiedliweUTF-8
, co sprawia, że różnica jest jeszcze trudniejsza do zauważenia.źródło