Как фильтруются подчеркнутые каталоги в Jekyll / Webrick? - PullRequest
0 голосов
/ 13 апреля 2020

Обновление: проверьте мой ответ ниже.


Я только что понял, что на сервере Jekyll Webrick, каталоги, начинающиеся с подчеркивания (_includes, _layouts et c.) can ' не доступны и не отображаются при включенной опции jekyll serve --show-dir-listing. Интересно, как Джекилл делает это, так как Webricks по умолчанию показывает подчеркнутые каталоги. Я сделал быстрый поиск в исходном коде , я проверил lib/jekyll/commands/serve.rb и подобные файлы, но не смог найти точную причину. Это может быть что-то, связанное с fancy_listing ?

Пример: enter image description here Это там!:

enter image description here

1 Ответ

0 голосов
/ 14 апреля 2020

Обновление: я нашел соответствующий код в jekyll/reader.rb, который имеет функцию filter и определен в jekyll/entry_filter.rb! :) Вот код:

  • Сначала определяется регулярное выражение:
 SPECIAL_LEADING_CHAR_REGEX = %r!\A#{Regexp.union([".", "_", "#", "~"])}!o.freeze
  • Затем определяется special? функция:
def special?(entry)
  SPECIAL_LEADING_CHAR_REGEX.match?(entry) ||
      SPECIAL_LEADING_CHAR_REGEX.match?(File.basename(entry))
end
  • И функция special? используется в функции фильтра для обнаружения и фильтрации этих файлов, соответствующих регулярному выражению.

  • И Reader класс использует эту функцию фильтрации в разных местах.

    Честно говоря, я до сих пор не понял, как Джекилл объединяет эти вещи, но я думаю, что попробую сам разобраться в них.

...