@@ -16,7 +16,7 @@ class DataFile
1616 def initialize ( id )
1717 @id ||= File . extname ( id ) . empty? ? "#{ id } .yml" : id
1818 end
19- alias_method :path , :id
19+ alias_method :relative_path , :id
2020
2121 def exists?
2222 @exists ||= File . exist? ( absolute_path )
@@ -52,15 +52,15 @@ def title
5252 @title ||= Jekyll ::Utils . titleize_slug ( slug . tr ( "_" , "-" ) )
5353 end
5454
55- # Return path relative to configured `data_dir`
56- def relative_path
57- id . sub ( "/ #{ DataFile . data_dir } /" , "" )
55+ # Returns path relative to site source
56+ def path
57+ ensure_leading_slash ( File . join ( DataFile . data_dir , relative_path ) )
5858 end
5959
60- # Return the absolute path to given data file
6160 def absolute_path
62- sanitized_path id
61+ sanitized_path ( path )
6362 end
63+ alias_method :file_path , :absolute_path
6464
6565 # Mimics Jekyll's native to_liquid functionality by returning a hash
6666 # of data file metadata
@@ -69,13 +69,10 @@ def to_liquid
6969 end
7070
7171 def self . all
72- data_dir = sanitized_path DataFile . data_dir
73- files = Dir [ "#{ data_dir } /**/*.{#{ EXTENSIONS . join ( "," ) } }" ] . reject do |d |
74- File . directory? ( d )
75- end
76-
77- files . map do |path |
78- new path_without_site_source ( path )
72+ data_dir = Jekyll . sanitized_path ( JekyllAdmin . site . source , DataFile . data_dir )
73+ data_dir = Pathname . new ( data_dir )
74+ Dir [ "#{ data_dir } /**/*.{#{ EXTENSIONS . join ( "," ) } }" ] . map do |path |
75+ new ( Pathname . new ( path ) . relative_path_from ( data_dir ) . to_s )
7976 end
8077 end
8178
0 commit comments