diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-01-10 17:53:05 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-01-31 14:31:05 +0100 |
commit | 48db40565b84ac4a3181bdc95533d28180edb10b (patch) | |
tree | 2b1454ae3bd6df01e4ac827cf57ee51d40d5327b /doc-tool/src/dotty/tools/dottydoc/staticsite/LiquidTemplate.scala | |
parent | 7b3588fbff791679fc82c4fe21085eb97a97cf0a (diff) | |
download | dotty-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.scala | 27 |
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 } } } |