aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-10 17:53:05 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:31:05 +0100
commit48db40565b84ac4a3181bdc95533d28180edb10b (patch)
tree2b1454ae3bd6df01e4ac827cf57ee51d40d5327b /doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala
parent7b3588fbff791679fc82c4fe21085eb97a97cf0a (diff)
downloaddotty-48db40565b84ac4a3181bdc95533d28180edb10b.tar.gz
dotty-48db40565b84ac4a3181bdc95533d28180edb10b.tar.bz2
dotty-48db40565b84ac4a3181bdc95533d28180edb10b.zip
Add initial defaults to page generation
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala27
1 files changed, 20 insertions, 7 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala
index 18ef9ef2a..b3d497ee5 100644
--- a/doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala
@@ -9,18 +9,27 @@ case class LiquidTemplate(contents: String) extends ResourceFinder {
import liqp.{ Template, TemplateContext }
import liqp.nodes.LNode
import liqp.tags.Tag
+ import liqp.filters.Filter
+ import liqp.parser.Flavor.JEKYLL
+ import java.util.{ HashMap, Map => JMap }
+
+ // For some reason, liqp rejects a straight conversion using `.asJava`
+ private def toJavaMap(map: Map[String, AnyRef]): HashMap[String, Object] =
+ map.foldLeft(new HashMap[String, Object]()) { case (map, (k, v)) =>
+ map.put(k, v)
+ map
+ }
- def render(params: Map[String, AnyRef], includes: Map[String, String]): String = {
- Template.parse(contents).`with`(ResourceInclude(params, includes)).render(params.asJava)
- }
+ def render(params: Map[String, AnyRef], includes: Map[String, String]): String =
+ Template.parse(contents, JEKYLL)
+ .`with`(ResourceInclude(params, includes))
+ .render(toJavaMap(params))
private case class ResourceInclude(params: Map[String, AnyRef], includes: Map[String, String])
extends Tag("include") {
val DefaultExtension = ".html"
- private def renderTemplate(template: String) = "dude"
-
- override def render(ctx: TemplateContext, nodes: LNode*): AnyRef = {
+ override def render(ctx: TemplateContext, nodes: LNode*): AnyRef = try {
val origInclude = asString(nodes(0).render(ctx))
val incResource = origInclude match {
case fileWithExt if fileWithExt.indexOf('.') > 0 => fileWithExt
@@ -35,12 +44,16 @@ case class LiquidTemplate(contents: String) extends ResourceFinder {
if (nodes.length > 1) params + (origInclude -> nodes(1).render(ctx))
else params
- Template.parse(template, ctx.flavor).render(additionalParams.asJava)
+ Template.parse(template, JEKYLL).render(toJavaMap(additionalParams))
}
.getOrElse {
/*dottydoc.*/println(s"couldn't find include file '$origInclude'")
""
}
+ } catch {
+ case t: Throwable =>
+ println(s"got error: ${t.getMessage}")
+ throw t
}
}
}