import sbt._ import sbt.Keys._ import com.typesafe.sbt.site.JekyllSupport._ import com.typesafe.sbt.SbtSite._ object Site { val siteSettings = site.settings ++ site.jekyllSupport() ++ inConfig(Jekyll)(Seq( RequiredGems := Map("jekyll" -> "1.3.0", "liquid" -> "2.5.4"), mappings <<= (sourceDirectory, target, includeFilter, CheckGems, streams) map { (src, t, inc, _, s) => buildJekyll(src, t, inc, s) } )) def buildJekyll(src: File, target: File, inc: FileFilter, s: TaskStreams): Seq[(File, String)] = { // Run Jekyll sbt.Process(Seq("jekyll", "build", "--destination", target.getAbsolutePath), Some(src)) ! s.log match { case 0 => () case n => sys.error("Could not run jekyll, error: " + n) } // Figure out what was generated. for { (file, name) <- (target ** inc x relativeTo(target)) } yield file -> name } }