# File lib/nanoc/base/compilation/compiler.rb, line 111
    def load
      return if @loaded || @loading
      @loading = true

      # Load site if necessary
      site.load

      # Preprocess
      rules_collection.load
      preprocess
      site.setup_child_parent_links
      build_reps
      route_reps

      # Load auxiliary stores
      stores.each { |s| s.load }

      @loaded = true
    rescue => e
      unload
      raise e
    ensure
      @loading = false
    end