Сайт Jekyll, работающий на страницах GitHub, не работает локально

#jekyll #github-pages

#jekyll #github-страницы

Вопрос:

Проблема

Проблема: я не могу получить локальную сборку моего веб-сайта, размещенного на GitHub. Моя ветка gh-pages в моем локальном клоне моего репозитория GitHub не работает правильно.

В частности, файлы markdown не создаются в папке _site как html, если они не начинаются с демаркации YAML frontmatter (новая --- строка --- ), и когда я отправляю их на localhost, они не отображают CSS, я не могу просмотреть, как это будет выглядеть на GitHub. Если демаркация frontmatter отсутствует в файле markdown, он копируется в папку _site как markdown.

Вы можете видеть ниже, у меня есть два файла markdown ideas.md и local-jekyll-build-theme-trouble.md .

ideas.md имеет внешний вид и создается в виде HTML-файла, который не будет отображаться ни в одной теме.

local-jekyll-build-theme-trouble.md не имеет внешнего интерфейса и «строит» как markdown и 404s, когда я пытаюсь нажать на него в браузере (если я не добавлю расширение .md в URL, boo)

Не имеет никакого значения, зафиксировал я изменения или нет. Не имеет значения, запускаюсь ли я jekyll через «bundle exec» или нет. Я не получаю никаких ошибок jekyll (даже при использовании --trace опции)

Напротив…Когда я нажимаю на GitHub, обе страницы, похоже, работают правильно. Я могу перейти https://breedlovedesign.github.io/ideas/local-jekyll-build-theme-trouble , не вводя .md URL-адрес, и https://breedlovedesign.github.io/ideas/ работает index.html нормально. Оба получают все прекрасные темы CSS, как указано в моей конфигурации.

Я предполагал, что оба файла преобразуются в html, но я перепроверил, и в папке _site на GitHub также есть index.html и local-jekyll-build-theme-trouble.md .

_config.yml

 theme: jekyll-theme-minimal
  

Информация о системе

macOS 10.15.6

Версия Ruby

 ~/.../devo/ideas on gh-pages*
$ rbenv version
2.6.5 (set by /Users/johnbreedlove/Sync/devo/ideas/.ruby-version)
  

Gemfile

 gem "github-pages", "~> 209"
  

Вывод сборки Jekyll

 ~/.../devo/ideas on gh-pages*
$ bundle exec jekyll serve
Configuration file: /Users/johnbreedlove/Sync/devo/ideas/_config.yml
            Source: /Users/johnbreedlove/Sync/devo/ideas
       Destination: /Users/johnbreedlove/Sync/devo/ideas/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
                    done in 0.616 seconds.
 Auto-regeneration: enabled for '/Users/johnbreedlove/Sync/devo/ideas'
    Server address: http://127.0.0.1:4000
  Server running... press ctrl-c to stop.
  

Структура каталогов

 ~/.../devo/ideas on gh-pages*
$ tree
.
├── Gemfile
├── Gemfile.lock
├── _config.yml
├── _site
│   ├── assets
│   │   ├── css
│   │   │   └── style.css
│   │   ├── fonts
│   │   │   ├──...
│   │   ├── img
│   │   │   └── logo.png
│   │   └── js
│   │       └── scale.fix.js
│   ├── index.html
│   └── local-jekyll-build-theme-trouble.md
├── index.md
└── local-jekyll-build-theme-trouble.md

10 directories, 30 files
  

Содержимое /index.md

 ---
---
# icanhaz themes pls?

must I use YAML frontmatter?
  

Ответ №1:

Да, вы должны использовать интерфейс YAML. Это явно указано в документации jekyll.

Любой файл, содержащий блок YAML front matter, будет обработан Jekyll как специальный файл. Первый элемент должен быть первым в файле и должен иметь форму допустимого YAML, установленного между линиями с тройным пунктиром.

Если вы хотите использовать жидкие теги и переменные, но вам ничего не нужно в вашем интерфейсе, просто оставьте его пустым! Набор линий с тремя пунктирными линиями, между которыми ничего нет, все равно заставит Jekyll обработать ваш файл.

Если он работает на страницах GitHub, я предполагаю, что он выполняет небольшую предварительную обработку самостоятельно. Но только для Jekyll файлы без внешнего содержимого остаются такими, какие они есть.