Есть ли каталог, который будет размещать элементы в корне _site при сборке?

#jekyll

#джекилл

Вопрос:

У меня есть куча статических файлов (в основном значки, значки apple-site и т. Д.), Которые я хочу иметь в корне _site при сборке. В настоящее время они просто находятся в корне моей основной папки code (вместе с _posts , _scss , _layouts , и т.д.). Он строится нормально, но было бы неплохо переместить их в подкаталог, чтобы основной каталог не был загроможден (это проблема OCD).

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

НБД, если я не могу этого сделать, просто любопытно, потому что я в некотором роде помешан на аккуратности.

Спасибо!

Ответ №1:

Jekyll позволяет вам делать именно это, используя постоянные ссылки.

Постоянные ссылки — это выходной путь для ваших страниц, сообщений или коллекций. Они позволяют вам структурировать каталоги вашего исходного кода, отличные от каталогов в вашем выводе.

Простой пример, извлеченный с официальной страницы, — это случай, когда у вас есть /my-pages/about-me.html следующий вопрос:

 ---
permalink: /about/
---
 

Таким образом, вы указываете выходной URL. В этом примере вы можете получить к нему доступ в local с помощью localhost:4000/about/

Комментарии:

1. Спасибо, но это не работает для изображений (например, png или ico), потому что я не могу указать front matter, поскольку они не являются текстом. В противном случае это бы абсолютно сработало, я делал это во многих других местах (например, на страницах «О себе», «Юридические вопросы», «Конфиденциальность» и других). Я ценю, что вы нашли время вмешаться, хотя этот ответ, вероятно, поможет другим людям. Ваше здоровье!

2. Ты прав, я не принимал это во внимание ^^». Я думаю, что ответ @Ross может быть единственным.

Ответ №2:

source Опция. Вы можете указать это в своем _config.yml или как параметр командной строки (https://jekyllrb.com/docs/configuration/options /). То, как вы это устанавливаете, имеет несколько иные требования / последствия.

Сначала переместите все, что принадлежит сайту Jekyll, в папку (например, «src»).

Затем установите один из них (при условии, что у вас есть Gemfile):

Опция командной строки с корневым Gemfile:

  • Хранить Gemfile в корневой папке
  • Выполнить bundle install
  • Выполнить bundle exec jekyll serve --source src

Опция командной строки с вложенным Gemfile:

  • Выполнить BUNDLE_GEMFILE=src/Gemfile bundle install
  • Выполнить BUNDLE_GEMFILE=src/Gemfile bundle exec jekyll serve --source src

Параметр файла конфигурации:

  • Сохранить Gemfile и _config.yml в корневой папке
  • Добавьте source: src где-нибудь в вашем _config.yml
  • Выполнить bundle install
  • Выполнить bundle exec jekyll serve

Каждое решение здесь может лучше работать с другими внешними службами, создающими ваш сайт. Вероятно, есть другие способы настроить это, но это должно помочь вам начать.