diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index 0c7b2f67b51..6622d2a3c24 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -414,9 +414,13 @@ def respond_to_missing?(method, *) # # Returns nothing. def categories_from_path(special_dir) - superdirs = relative_path.sub(Document.superdirs_regex(special_dir), "") - superdirs = superdirs.split(File::SEPARATOR) - superdirs.reject! { |c| c.empty? || c == special_dir || c == basename } + if relative_path.start_with?(special_dir) + superdirs = [] + else + superdirs = relative_path.sub(Document.superdirs_regex(special_dir), "") + superdirs = superdirs.split(File::SEPARATOR) + superdirs.reject! { |c| c.empty? || c == special_dir || c == basename } + end merge_data!({ "categories" => superdirs }, :source => "file path") end