     .fail (err) ->
       callback err
 
-refreshContent = (config, callback) ->
+refreshContent = (config) ->
   log.silly "generate", "Refreshing content"
 
   # Get content in parallel:

  ])
    .then ([_, plugins, includes, layouts, { posts, pages, files }]) ->
      log.verbose "generate", "Initial content load complete"
      processResults {config, plugins, includes, layouts, posts, pages, files}, callback
    .fail (err) -> callback err

processResults = ({config, plugins, includes, layouts, posts, pages, files}, callback) ->
  # Create site data structure
  site = {
    time: Date.now()

  }

  # Handle {% include %} tags
  context.onInclude (name, cb) ->
    log.silly "generate", "Fetching include for %s", name
    ast = tinyliquid.parse includes[name], liquidOptions
    cb null, ast

  bundle = {
    site
    config
    liquidOptions
    compiledLayouts: null
    mergedPlugins
    context
  }

  Q.nfcall(convertIncludes, includes, mergedPlugins.converters)
    .then ->
      # Compile layouts
      compiledLayouts = {}
      for name, {data, content} of layouts
        try
          compiledLayouts[name] = tinyliquid.compile content, liquidOptions
        catch err
          throw new Error "Error while compiling layout: #{err.message}"

      bundle.compiledLayouts = compiledLayouts

      log.verbose "generate", "Reading complete. Preparing to write"

      # Run generators across site
      Q.all(
        mergedPlugins.generators.map (generator) -> Q.nfcall generator, site
      )
    .then ->
      # Filter out any files blanked by generators
      site.static_files = site.static_files.filter (f) -> !!f

      # Now write all content to disk
      Q.nfcall writePages, site.posts, bundle
    .then ->
      Q.nfcall writePages, site.pages, bundle
    .then ->
      Q.nfcall writeFiles, bundle

writePages = (pages, bundle, callback) ->
  async.forEachLimit(
