3 |
3 |
4 import java.nio.file.{Path, Paths} |
4 import java.nio.file.{Path, Paths} |
5 |
5 |
6 import enumeratum.EnumEntry.Hyphencase |
6 import enumeratum.EnumEntry.Hyphencase |
7 import enumeratum._ |
7 import enumeratum._ |
8 import scala.io.Source |
8 |
9 import scalatags.Text.all._ |
9 import scala.collection.immutable |
10 |
10 |
11 sealed abstract class Category(val name: String) extends EnumEntry with |
11 sealed abstract class Category(val name: String) extends EnumEntry with |
12 iCategory with Hyphencase { |
12 iCategory with Hyphencase { |
13 override def pathSegment: String = entryName |
13 override def pathSegment: String = entryName |
14 } |
14 } |
15 |
15 |
16 object Category extends Enum[Category] { |
16 object Category extends Enum[Category] { |
17 val values = findValues |
17 val values: immutable.IndexedSeq[Category] = findValues |
18 case object Cat1 extends Category("Category 1") |
18 case object Cat1 extends Category("Category 1") |
19 case object Cat2 extends Category("Category 2") |
19 case object Cat2 extends Category("Category 2") |
20 case object Cat3 extends Category("Category 3") |
20 case object Cat3 extends Category("Category 3") |
21 case object Cat4 extends Category("Category 4") |
21 case object Cat4 extends Category("Category 4") |
22 case object Cat5 extends Category("Category 5") |
22 case object Cat5 extends Category("Category 5") |
27 with Hyphencase { |
27 with Hyphencase { |
28 override def pathSegment: String = entryName |
28 override def pathSegment: String = entryName |
29 } |
29 } |
30 |
30 |
31 object Tag extends Enum[Tag] { |
31 object Tag extends Enum[Tag] { |
32 val values = findValues |
32 val values: immutable.IndexedSeq[Tag] = findValues |
33 case object Tag1 extends Tag("Tag 1") |
33 case object Tag1 extends Tag("Tag 1") |
34 case object Tag2 extends Tag("Tag 2") |
34 case object Tag2 extends Tag("Tag 2") |
35 case object Tag3 extends Tag("Tag 3") |
35 case object Tag3 extends Tag("Tag 3") |
36 case object Tag4 extends Tag("Tag 4") |
36 case object Tag4 extends Tag("Tag 4") |
37 case object Tag5 extends Tag("Tag 5") |
37 case object Tag5 extends Tag("Tag 5") |
43 |
43 |
44 def appTitle: String = "Content management system example" |
44 def appTitle: String = "Content management system example" |
45 |
45 |
46 def appTitleShort: String = "CMS" |
46 def appTitleShort: String = "CMS" |
47 |
47 |
48 def icon = |
48 def icon: (String, Path) = |
49 ("icon.png", Paths.get("example/content/public/images/icon.png")) |
49 ("icon.png", Paths.get("example/content/public/images/icon.png")) |
50 |
50 |
51 def publicAssets: Path = Paths.get("example/content/public") |
51 def publicAssets: Path = Paths.get("example/content/public") |
52 |
52 |
53 def styleSheet = |
53 def styleSheet: (String, Path) = |
54 ("site.css", Paths.get("example/content/public/css/site.css")) |
54 ("site.css", Paths.get("example/content/public/css/site.css")) |
55 |
55 |
56 def articlesByTag(t: iTag): Seq[iArticle] = |
56 def articlesByTag(t: iTag): Seq[iArticle] = |
57 Articles.values.filter(_.tags contains(t)) |
57 Articles.values.filter(_.tags contains t) |
58 |
58 |
59 def articlesByCategory(c: iCategory): Seq[iArticle] = |
59 def articlesByCategory(c: iCategory): Seq[iArticle] = |
60 Articles.values.filter(_.category contains(c)) |
60 Articles.values.filter(_.category contains c) |
61 |
61 |
62 def tags: Seq[iTag] = Tag.values |
62 def tags: Seq[iTag] = Tag.values |
63 |
63 |
64 def categories: Seq[iCategory] = Category.values |
64 def categories: Seq[iCategory] = Category.values |
65 |
65 |