base/src/sqwl/cms/package.scala
author Tomas Zeman <tomas@functionals.cz>
Tue, 24 Nov 2020 11:17:26 +0100
changeset 31 5c4364d6e726
parent 23 afcfbdeb3b88
child 34 775d6da26993
permissions -rw-r--r--
SQWL#2003 Studie -> Projekt
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
package sqwl
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
import java.nio.file.Path
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
import scala.io.Source
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
import scala.util.{Failure, Success, Try}
23
afcfbdeb3b88 @lnk method
Tomas Zeman <tzeman@volny.cz>
parents: 18
diff changeset
     7
import scalatags.Text.all._
16
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
package object cms {
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
18
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    11
  def readSourceFull(src: Source): Try[String] = {
16
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
    try {
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
      Success(src.getLines.mkString)
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
    } catch {
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
      case t: Throwable => Failure(t)
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
    } finally {
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
      src.close()
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
    }
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
  }
18
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    20
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    21
  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
    22
    readSourceFull(Source.fromFile(f.toFile, enc))
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    23
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    24
  def readFile(f: String): String =
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    25
    readSourceFull(Source.fromFile(f, "UTF-8")) getOrElse ""
8cfd67425811 Scalatex article as primary format
Tomas Zeman <tzeman@volny.cz>
parents: 16
diff changeset
    26
23
afcfbdeb3b88 @lnk method
Tomas Zeman <tzeman@volny.cz>
parents: 18
diff changeset
    27
  def lnk(name: String, customUrl: String = ""): Frag = {
afcfbdeb3b88 @lnk method
Tomas Zeman <tzeman@volny.cz>
parents: 18
diff changeset
    28
    val usedUrl = if (customUrl == "") name else customUrl
afcfbdeb3b88 @lnk method
Tomas Zeman <tzeman@volny.cz>
parents: 18
diff changeset
    29
    a(name, href := usedUrl)
afcfbdeb3b88 @lnk method
Tomas Zeman <tzeman@volny.cz>
parents: 18
diff changeset
    30
  }
16
4556852613a9 Scalatex based article implementation
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
}