Combined the posts, pages, and statics into one array. Site's one responsibilities should be dealing with the files not dealing with posts, pages, layouts, static_files,..., rss_files, images, etc. If more types get added would variables just keep getting made for them? Make the variables reflect responsibilities.
Extract parent object from posts and pages
Removed lsi messages. Why is the lsi the only feature that gets to write to the console status updates by default? Is it because it's expected to take a long time? There's no way to turn it off and it could expected behaviour if jekyll is included somewhere else.
Refactor read and extract conditional to exceptions on class. Extract the conditional to the class - Tell Don't Ask, decision about the state of the object should be made in the objects themselves. It cut's down on coupling and makes it easier to change. If you use the Post class by outsite of site it should still tell you it can't be made with an invalid name.