Sha256: 093af7a9a4cf9df3e026b7c276f935b5795a1f97c1bbff912bf81b0eebcccc60

Contents?: true

Size: 826 Bytes

Versions: 1

Compression:

Stored size: 826 Bytes

Contents

package s3.website.model

import java.io.File
import s3.website.model.Files.recursiveListFiles

// ssg = static site generator
trait Ssg {
  def outputDirectory: String
}

object Ssg {
  val automaticallySupportedSiteGenerators = Jekyll :: Nanoc :: Nil

  val maxAutodetectDepth = automaticallySupportedSiteGenerators.map(_.outputDirectory).map(_.split(File.separatorChar).length).max

  def autodetectSiteDir(workingDirectory: File): Option[File] =
    recursiveListFiles(maxAutodetectDepth)(workingDirectory).find { file =>
      file.isDirectory && automaticallySupportedSiteGenerators.exists(ssg => file.getAbsolutePath.endsWith(ssg.outputDirectory))
    }
}

case object Jekyll extends Ssg {
  def outputDirectory = "_site"
}

case object Nanoc extends Ssg {
  def outputDirectory = s"public${File.separatorChar}output"
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
s3_website-2.11.1 src/main/scala/s3/website/model/ssg.scala