| author | Tomas Zeman <tomas@functionals.cz> |
| Tue, 29 Dec 2020 16:57:31 +0100 | |
| changeset 34 | 775d6da26993 |
| parent 23 | afcfbdeb3b88 |
| permissions | -rw-r--r-- |
|
34
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
1 |
/* |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
2 |
* Copyright 2018-2020 Tomas Zeman <tomas@functionals.cz> |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
3 |
* |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
4 |
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
5 |
* you may not use this file except in compliance with the License. |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
6 |
* You may obtain a copy of the License at |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
7 |
* |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
8 |
* http://www.apache.org/licenses/LICENSE-2.0 |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
9 |
* |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
10 |
* Unless required by applicable law or agreed to in writing, software |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
11 |
* distributed under the License is distributed on an "AS IS" BASIS, |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
12 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
13 |
* See the License for the specific language governing permissions and |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
14 |
* limitations under the License. |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
15 |
*/ |
|
16
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
16 |
package sqwl |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
17 |
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
18 |
import java.nio.file.Path |
|
34
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
19 |
import java.time.LocalDateTime |
|
16
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
20 |
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
21 |
import scala.io.Source |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
22 |
import scala.util.{Failure, Success, Try}
|
| 23 | 23 |
import scalatags.Text.all._ |
|
34
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
24 |
import scalatags.text.Builder |
|
16
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
25 |
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
26 |
package object cms {
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
27 |
|
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
28 |
def readSourceFull(src: Source): Try[String] = {
|
|
16
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
29 |
try {
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
30 |
Success(src.getLines.mkString) |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
31 |
} catch {
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
32 |
case t: Throwable => Failure(t) |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
33 |
} finally {
|
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
34 |
src.close() |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
35 |
} |
|
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
36 |
} |
|
18
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
37 |
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
38 |
def readFile(f: Path, enc: String = "UTF-8"): Try[String] = |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
39 |
readSourceFull(Source.fromFile(f.toFile, enc)) |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
40 |
|
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
41 |
def readFile(f: String): String = |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
42 |
readSourceFull(Source.fromFile(f, "UTF-8")) getOrElse "" |
|
8cfd67425811
Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents:
16
diff
changeset
|
43 |
|
| 23 | 44 |
def lnk(name: String, customUrl: String = ""): Frag = {
|
45 |
val usedUrl = if (customUrl == "") name else customUrl |
|
46 |
a(name, href := usedUrl) |
|
47 |
} |
|
|
34
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
48 |
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
49 |
def time: Frag = new Frag {
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
50 |
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
51 |
override def render: String = {
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
52 |
println("time.render()")
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
53 |
LocalDateTime.now().toString |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
54 |
} |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
55 |
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
56 |
override def applyTo(t: Builder): Unit = {
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
57 |
println("time.applyTo()")
|
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
58 |
t.addChild(render) |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
59 |
} |
|
775d6da26993
Dynamic content rendering: current time tag.
Tomas Zeman <tomas@functionals.cz>
parents:
23
diff
changeset
|
60 |
} |
|
16
4556852613a9
Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff
changeset
|
61 |
} |