diff -r 0ebcd5464503 -r 8cfd67425811 build.sc --- a/build.sc Tue Dec 11 21:37:53 2018 +0100 +++ b/build.sc Thu Dec 13 14:21:10 2018 +0100 @@ -1,16 +1,11 @@ -import java.io.File - import ammonite.ops._ -import coursier.maven.MavenRepository import mill._ -import mill.define.{Command, Input, Sources, Target} +import mill.define.{Input, Sources, Target} import mill.scalajslib._ import mill.scalalib._ import mill.scalalib.publish._ import mill.util.Loose -import scala.sys - val appVersion = "18.12-SNAPSHOT" val scalaJsVer = "0.6.25" @@ -111,6 +106,38 @@ object content extends Common { override def moduleDeps = Seq(base) override def sources : Sources = T.sources{ millSourcePath / up / 'example / 'src } + override def generatedSources: Target[Seq[PathRef]] = T{ + val dir = T.ctx().dest + val src = millSourcePath / up / 'example / 'content + val ids = ls! src filter(_.name endsWith ".scalatex") map { p => + val id = p.name replaceAllLiterally (".scalatex", "") + val aid = s"article-$id" + write(dir / s"$id.scala", + s""" + | package sqwl.cms + | import scalatags.Text.all._ + | import scalatex._ + | import sqwl.cms.Category._ + | import sqwl.cms.Tag._ + | import sqwl.cms.Articles.article + | object `$aid` { + | implicit val id = Articles.Id("$id") + | twf("${p.toString}") + | } + """.stripMargin) + aid + } + write(dir / "initializer.scala", + s""" + | package sqwl.cms + | object InitializeContent { + | def apply(): Unit = { + | Seq(${ids mkString("`", "`, `", "`")}) + | } + | } + """.stripMargin) + Seq(PathRef(dir)) + } override def ivyDeps = Agg( ivy"com.beachape::enumeratum:1.5.13" )