--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/example/src/sqwl/cms/Content.scala Thu Nov 29 12:20:20 2018 +0100
@@ -0,0 +1,56 @@
+
+package sqwl.cms
+
+import java.nio.file.{FileSystems, Path, Paths}
+
+import akka.stream.scaladsl.FileIO
+import enumeratum.EnumEntry.Hyphencase
+import enumeratum._
+
+import scala.io.Source
+
+sealed abstract class Category(val name: String) extends EnumEntry with iCategory with Hyphencase {
+ override def pathSegment: String = entryName
+}
+
+object Category extends Enum[Category] {
+ val values = findValues
+ case object Cat1 extends Category("Category 1")
+ case object Cat2 extends Category("Category 2")
+}
+
+sealed abstract class Article(val title: String,
+ val category: Option[iCategory],
+ val tags: Seq[iTag],
+
+) extends EnumEntry with iArticle with Hyphencase {
+ override def htmlContent: String = {
+ val src = Source.fromFile(s"example/content/${entryName}.html", "UTF-8")
+ try {
+ src.getLines.mkString
+ } catch {
+ case _: Throwable => ""
+ } finally {
+ src.close()
+ }
+ }
+
+ override def assets: Path = Paths.get(s"example/content/${entryName}")
+ override def pathSegment: String = entryName
+}
+
+object Article extends Enum[Article] {
+ import Category._
+ val values = findValues
+ case object A1 extends Article("Article 1", Some(Cat1), Seq())
+}
+
+object Content extends iContent {
+ def articlesByTag(t: iTag): Seq[iArticle] = Seq()
+ def articlesByCategory(c: iCategory): Seq[iArticle] = Seq()
+ def tags: Seq[iTag] = Seq()
+ def categories: Seq[iCategory] = Category.values
+ def articleByPath(path: String): Option[iArticle] = Article.withNameOption(path)
+ def categoryByPath(path: String): Option[iCategory] = Category.withNameOption(path)
+ def tagByPath(path: String): Option[iTag] = None
+}
\ No newline at end of file