3 import java.nio.file.{Path, Paths} |
3 import java.nio.file.{Path, Paths} |
4 import scala.collection.mutable |
4 import scala.collection.mutable |
5 import scalatags.Text.all._ |
5 import scalatags.Text.all._ |
6 |
6 |
7 object Articles { |
7 object Articles { |
8 case class Id(val v: String) |
8 case class Id(v: String) |
9 case class Article( |
9 case class Article( |
10 val id: Id, |
10 id: Id, |
11 val title: String, |
11 title: String, |
12 val category: Option[iCategory], |
12 category: Option[iCategory], |
13 val tags: Seq[iTag] = Seq(), |
13 tags: Seq[iTag] = Seq(), |
14 val htmlContent: String |
14 htmlContent: String |
15 ) extends iArticle { |
15 ) extends iArticle { |
16 override def assets: Path = Paths.get(s"example/content/${id.v}") |
16 override def assets: Path = Paths.get(s"example/content/${id.v}") |
17 override def pathSegment: String = id.v |
17 override def pathSegment: String = id.v |
18 } |
18 } |
19 private val all = mutable.ArrayBuffer[iArticle]() |
19 private val all = mutable.ArrayBuffer[iArticle]() |
20 |
20 |
21 def values: Seq[iArticle] = all.toSeq |
21 def values: Seq[iArticle] = all.toIndexedSeq |
22 |
22 |
23 def article(title: String, cat: iCategory, tags: Seq[iTag] = Seq())( |
23 def article(title: String, cat: iCategory, tags: Seq[iTag] = Seq())( |
24 body: Frag*)(implicit articleId: Id): SeqFrag[Frag] = { |
24 body: Frag*)(implicit articleId: Id): SeqFrag[Frag] = { |
25 |
25 |
26 all += Article(articleId, title, Option(cat), tags, body.render) |
26 all += Article(articleId, title, Option(cat), tags, body.render) |