Dynamic content rendering: current time tag. default tip
authorTomas Zeman <tomas@functionals.cz>
Tue, 29 Dec 2020 16:57:31 +0100
changeset 34 775d6da26993
parent 33 fa0f19a74283
Dynamic content rendering: current time tag.
base/src/sqwl/cms/package.scala
example/content/a1.scalatex
--- a/base/src/sqwl/cms/package.scala	Tue Dec 29 16:46:47 2020 +0100
+++ b/base/src/sqwl/cms/package.scala	Tue Dec 29 16:57:31 2020 +0100
@@ -1,10 +1,27 @@
+/*
+ * Copyright 2018-2020 Tomas Zeman <tomas@functionals.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package sqwl
 
 import java.nio.file.Path
+import java.time.LocalDateTime
 
 import scala.io.Source
 import scala.util.{Failure, Success, Try}
 import scalatags.Text.all._
+import scalatags.text.Builder
 
 package object cms {
 
@@ -28,4 +45,17 @@
     val usedUrl = if (customUrl == "") name else customUrl
     a(name, href := usedUrl)
   }
+
+  def time: Frag = new Frag {
+
+    override def render: String = {
+      println("time.render()")
+      LocalDateTime.now().toString
+    }
+
+    override def applyTo(t: Builder): Unit = {
+      println("time.applyTo()")
+      t.addChild(render)
+    }
+  }
 }
--- a/example/content/a1.scalatex	Tue Dec 29 16:46:47 2020 +0100
+++ b/example/content/a1.scalatex	Tue Dec 29 16:57:31 2020 +0100
@@ -1,2 +1,4 @@
 @article("Article 1", Cat1, Seq(Tag1, Tag2, Tag3))
   @raw(readFile("example/content/a1.html"))
+  @p
+    Current time: @time