2017-02-20 12 views
2

Я пытался создать свой собственный веб-сайт в течение последних 3 дней, и все отлично работало только с HTML-файлом, файлом CSS и файл JavaScript. Затем вчера я решил, что попробую перевести то, что у меня было на моем сайте, на дружественную Jekyll структуру, чтобы я мог лучше управлять своим контентом. Вот что получилось:Jekyll frontmatter, появляющийся на моем веб-сайте, и не правильно вставляемый в мой макет по умолчанию

  1. После выполнения многочисленных руководств и установке Ruby, и DevKit на моей машине, я, наконец, смог получить Джекил запустить локально. Но я обнаружил, что мой файл index.html в моем корневом каталоге не был вставлен в мой шаблон default.html в папке _layouts. Итак, Jekyll строит мой сайт, не используя макет default.html, он появился, в результате чего в моем файле index.html был скомпилирован только контент моего файла index.html. Я понял, что вместо этого все, что было в файле index.html в корневом каталоге, будет вставлено в макет (указанный в frontmatter index.html), а конечный index.html, который Jekyll, помещенный в каталог _site, будет слияние index.html и default.html.

  2. Достаточно долго я в конце концов попытался переименовать index.html в свой корневой каталог index.md. Затем, когда я снова запустил Jekyll, html-код в index.md был вставлен в часть {{content}} в моем макете default.html, чего я и хотел! Удивительно, правда? Нет. Проблема тогда была, что frontmatter в index.md фактически SHOWING на моем сайте: Image of the frontmatter appearing on my local site

Вы можете просмотреть все полный код вместе со всеми данными моей конфигурации и структуры каталогов здесь: https://github.com/tygamvrelis/tylergamvrelis.github.io

Итак, кажется, что SOMEHOW Jekyll вставляет содержимое index.md в нужное место в default.html, он делает это, не читая Frontmatter. Фактически, я могу полностью удалить frontmatter в index.md, и мой сайт выглядит отлично, так как я оставляю по крайней мере 1 пустую строку в начале моего кода. Если я не оставил по крайней мере 1 пустую строку в начале моего кода, то я вижу index.md на моем сайте как необработанный HTML (теги и все, без форматирования).

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

ответ

1

Ваш index.md имеет BOM headers:

$ hd -n 3 index.md 
00000000 ef bb bf           |...| 
00000003 

Как кодируется UTF-8, то метка порядка байтов следует порядку: EF BB BF.

и Джекил не нравится them:

UTF-8 Кодировка символов Предупреждение

Если вы используете UTF-8 кодировке, убедитесь, что нет заголовка BOM символы существуют в файлах или очень, с Джекилом произойдут очень плохие вещи.

Таким образом, вы должны удалить их и Джекил будет рад снова:

$ tail -c +4 index.md > UTF8.nobom 
$ mv UTF8.nobom index.md 

Или посмотрите, как удалить их с awk или sed

+1

Спасибо так много! Это сработало отлично. Я подозревал, что этот вопрос имеет какое-то отношение к заголовкам спецификации, но я не знал, что я могу с ними поделать. Ты жжешь! :) –

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