| author | Tomas Zeman <tzeman@volny.cz> |
| Tue, 15 Jan 2019 12:25:19 +0100 | |
| changeset 27 | 8529ce302f7c |
| parent 21 | 1fa630ed9b8a |
| child 33 | fa0f19a74283 |
| permissions | -rw-r--r-- |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
1 |
package sqwl.cms |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
2 |
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
3 |
import java.nio.file.{Path, Paths}
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
4 |
import scala.collection.mutable |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
5 |
import scalatags.Text.all._ |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
6 |
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
7 |
object Articles {
|
| 21 | 8 |
case class Id(v: String) |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
9 |
case class Article( |
| 21 | 10 |
id: Id, |
11 |
title: String, |
|
12 |
category: Option[iCategory], |
|
13 |
tags: Seq[iTag] = Seq(), |
|
|
27
8529ce302f7c
Article.rank: sort articles by category/tag w.r.t. rank
Tomas Zeman <tzeman@volny.cz>
parents:
21
diff
changeset
|
14 |
htmlContent: String, |
|
8529ce302f7c
Article.rank: sort articles by category/tag w.r.t. rank
Tomas Zeman <tzeman@volny.cz>
parents:
21
diff
changeset
|
15 |
rank: Int = 0 |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
16 |
) extends iArticle {
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
17 |
override def assets: Path = Paths.get(s"example/content/${id.v}")
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
18 |
override def pathSegment: String = id.v |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
19 |
} |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
20 |
private val all = mutable.ArrayBuffer[iArticle]() |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
21 |
|
| 21 | 22 |
def values: Seq[iArticle] = all.toIndexedSeq |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
23 |
|
|
27
8529ce302f7c
Article.rank: sort articles by category/tag w.r.t. rank
Tomas Zeman <tzeman@volny.cz>
parents:
21
diff
changeset
|
24 |
def article(title: String, cat: iCategory, tags: Seq[iTag] = Seq(), |
|
8529ce302f7c
Article.rank: sort articles by category/tag w.r.t. rank
Tomas Zeman <tzeman@volny.cz>
parents:
21
diff
changeset
|
25 |
rank: Int = 0)(body: Frag*)(implicit articleId: Id): SeqFrag[Frag] = {
|
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
26 |
|
|
27
8529ce302f7c
Article.rank: sort articles by category/tag w.r.t. rank
Tomas Zeman <tzeman@volny.cz>
parents:
21
diff
changeset
|
27 |
all += Article(articleId, title, Option(cat), tags, body.render, rank) |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
28 |
body |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
29 |
} |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
30 |
} |