aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-08 16:00:35 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:31:04 +0100
commitde4787898fbf91662cd894c5a9a0f30ad097fa5f (patch)
tree12828f1b20780bc70bddd5bc7fb374d4a33e15e7 /doc-tool/src/dotty/tools
parent87f1f5f44585e855a8c8234955e1e48dcbbc3a21 (diff)
downloaddotty-de4787898fbf91662cd894c5a9a0f30ad097fa5f.tar.gz
dotty-de4787898fbf91662cd894c5a9a0f30ad097fa5f.tar.bz2
dotty-de4787898fbf91662cd894c5a9a0f30ad097fa5f.zip
Fix recursive expansion of templates
Diffstat (limited to 'doc-tool/src/dotty/tools')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala18
1 files changed, 10 insertions, 8 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala
index d51b881e5..11e2faeef 100644
--- a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala
@@ -33,11 +33,6 @@ class Site(val root: JFile) {
}
.toMap
- def getResource(p: String): String =
- Option(getClass.getResourceAsStream(p)).map(scala.io.Source.fromInputStream)
- .map(_.mkString)
- .getOrElse(throw ResourceNotFoundException(p))
-
val userDefinedLayouts =
root
.listFiles.find(d => d.getName == "_layouts" && d.isDirectory)
@@ -45,18 +40,25 @@ class Site(val root: JFile) {
.getOrElse(Map.empty)
val defaultLayouts: Map[String, String] = Map(
- "main" -> "/_layouts/main.html"
+ "main" -> "/_layouts/main.html",
+ "index" -> "/_layouts/index.html"
).mapValues(getResource)
defaultLayouts ++ userDefinedLayouts
}
+ private def getResource(r: String): String =
+ Option(getClass.getResourceAsStream(r)).map(scala.io.Source.fromInputStream)
+ .map(_.mkString)
+ .getOrElse(throw ResourceNotFoundException(r))
+
def render(page: Page, params: Map[String, AnyRef])(implicit ctx: Context): String = {
page.yaml.get("layout").flatMap(layouts.get(_)) match {
- case Some(layout) =>
- (new HtmlPage(layout, Map("content" -> page.html) ++ params)).html
case None =>
page.html
+ case Some(layout) =>
+ val expandedTemplate = new HtmlPage(layout, Map("content" -> page.html) ++ params)
+ render(expandedTemplate, params)
}
}
}