2014-01-13 4 views
9

Я новичок в Джекил:Джекил: Invalid Date: «» не является допустимым DateTime

До сих пор я сделал все, что учебник отметил: Это то, что я имею в _layout: post.html файл:

--- 
layout: default 
--- 

<div class="post"> 
    <h1>{{ page.title }}</h1> 
    <span class="post-date">{{ page.date | date_to_string }}</span> 
    {{ content }} 
</div> 

<div class="related"> 
    <h2>Related Posts</h2> 
    <ul class="related-posts"> 
    {% for post in site.related_posts limit:3 %} 
     <li> 
     <h3> 
      <a href="{{ post.url }}"> 
      {{ post.title }} 
      <small>{{ post.date | date_to_string }}</small> 
      </a> 
     </h3> 
     </li> 
    {% endfor %} 
    </ul> 
</div> 

и я использую мД файл с именем 2014-01-01-myNewPost.md и я получаю следующее сообщение об ошибке:

 Generating...  Invalid Date: '' is not a valid datetime. 
    Liquid Exception: exit in _layouts/post.html 

Я, кажется, не вижу никаких проблем, но не в состоянии по-настоящему понять его, почему он не работает.

+0

Возможный дубликат [Jekyll - Недопустимая ошибка даты после обновления] (http://stackoverflow.com/questions/19936310/jekyll-invalid-date-error-after-update) – mechanicalfish

ответ

1

Похоже, что у вас есть опечатка в переменной даты в сообщении YAML. Проверьте, соответствует ли ваша дата публикации этому формату ГГГГ-ММ-ДД ЧЧ: ММ: СС

Я проверил код размещения, размещенный выше, его штраф.

Если ничего не работает, удалите Джекил и установите последний стабильный релиз 1.2.1, выполнив следующие команды

~ $ gem uninstall jekyll 
~ $ gem install jekyll --version(="1.2.1") 
+2

Если нет даты в передней части , как может быть ошибка? – kleinfreund

+0

нет, я попробовал. еще одна проблема – STEEL

2

Скорее всего, вы переместили сообщения образца в другой каталог, например, examples. Джекил находит там сообщения и пытается их обработать, что приводит к возникшей проблеме.

Добавить папку examples в список исключений в _config.yml, а Jekyll начнется, как ожидалось.

1

У меня это получилось, и оказалось, что я по ошибке удалил файл из каталога _posts с помощью опции-щелчка, и он сидел в корне моего сайта. Было бы неплохо, если бы процессор предоставил подробное описание причины ошибки в дополнение к общему сообщению об ошибке.

0

На основании this GitHub issue похоже, что Джекил будет жаловаться, если вы назовете что-то в качестве сообщения, а затем попытаетесь отформатировать дату, если у этой вещи нет даты в заголовке или переднем деле. Этого не происходит, если вы ссылаетесь на {{ page.date }} без его форматирования, поэтому в функции формата должна быть какая-то ошибка.

У меня только была эта проблема, и я понял, что я обозначил кучу статических страниц с layout: post в первом вопросе, когда имя файла было example.md, а не 2016-01-01-example.md. Я изменил эти файлы на layout: page, и это решило проблему.

Так что, по крайней мере, на моем сайте я должен убедиться, что вещи без дат являются страницами и вещами с датами. (Я удалил дату из макета своих сообщений, когда я переработал сайт и только теперь нашел его, чтобы попытаться вернуть его.)

2

Моя проблема заключалась в том, что по какой-то причине я продолжал получать эту ошибку в терминале, когда я запускал " Джекил служить --incremental ":

Liquid Exception: Invalid Date: 'nil' is not a valid datetime. in /_layouts/post.html 
     ERROR: YOUR SITE COULD NOT BE BUILT: 
       ------------------------------------ 
       Invalid Date: 'nil' is not a valid datetime. 

и после того, как много копания, это потому, что Джекил поднимает сообщения любого рода в корневом каталоге, даже если они находятся в совершенно другой папке. У меня были сообщения в «_posts» и мои тестовые сообщения в «old_posts».

Только наличие каталога «old_posts» на корневом уровне проекта вызвало эту ошибку. Удостоверьтесь, что у вас нет ничего подобного.

Смежные вопросы