【问题标题】:How underscored directories are filtered in Jekyll/Webrick?Jekyll/Webrick 中如何过滤下划线目录?
【发布时间】:2020-04-13 19:21:38
【问题描述】:
更新:在下面查看我的答案。
我刚刚意识到,在 Jekyll Webrick 服务器中,以 下划线(_includes, _layouts etc.) 开头的目录在jekyll serve --show-dir-listing 选项打开时无法访问并且不会列出。我想知道 Jekyll 是如何做到这一点的,因为 Webricks 默认显示带下划线的目录。我在source code 中进行了快速搜索,我检查了lib/jekyll/commands/serve.rb 和类似文件,但找不到确切原因。可能与fancy_listing有关?
示例:
它就在那里!:
【问题讨论】:
标签:
server
jekyll
webrick
【解决方案1】:
更新:我在jekyll/reader.rb找到了相关代码,里面有一个filter函数,定义在jekyll/entry_filter.rb! :) 这是代码:
SPECIAL_LEADING_CHAR_REGEX = %r!\A#{Regexp.union([".", "_", "#", "~"])}!o.freeze
def special?(entry)
SPECIAL_LEADING_CHAR_REGEX.match?(entry) ||
SPECIAL_LEADING_CHAR_REGEX.match?(File.basename(entry))
end
-
而special?function在filter函数中被用来检测和过滤那些匹配正则表达式的文件。
-
而Readerclass 在各个地方都在使用这个过滤功能。
老实说,我仍然不明白 jekyll 是如何将这些东西组合在一起的,但我想我会自己去弄清楚。