Skip to content

Commit 590f939

Browse files
committed
Fix templating of properties
1 parent c3ac180 commit 590f939

File tree

12 files changed

+116
-49
lines changed

12 files changed

+116
-49
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Import Implied"
4+
---
5+
16
The contents of this page have [moved](./given-imports.md).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Inferable-By-Name Parameters"
4+
---
5+
16
The contents of this page have [moved](./by-name-context-parameters.md).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Inferable Params"
4+
---
5+
16
The contents of this page have [moved](./using-clauses.md).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Givens"
4+
---
5+
16
The contents of this page have [moved](./givens.md).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Query Types Spec"
4+
---
5+
16
The contents of this page have [moved](./context-functions-spec.md).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1+
---
2+
layout: doc-page
3+
title: "Query Types"
4+
---
5+
16
The contents of this page have [moved](./context-functions.md).

scala3doc/src/dotty/dokka/site/StaticPageNode.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ case class StaticPageNode(
2222
) extends ContentPage:
2323
override def getDocumentable: Documentable = null
2424

25-
def title(): String = template.title()
26-
def hasFrame(): Boolean = template.hasFrame()
25+
def title(): String = template.title
26+
def hasFrame(): Boolean = template.hasFrame
2727

2828
override def modified(
2929
name: String,
@@ -38,4 +38,4 @@ case class StaticPageNode(
3838

3939
def resources(): List[String] = getContent match
4040
case p: PartiallyRenderedContent => p.resolved.resources
41-
case _ => Nil
41+
case _ => Nil

scala3doc/src/dotty/dokka/site/StaticSiteContext.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class StaticSiteContext(val root: File, sourceSets: Set[SourceSetWrapper]):
3232
lazy val layouts: Map[String, TemplateFile] =
3333
val layoutRoot = new File(root, "_layouts")
3434
val dirs: Array[File] = Option(layoutRoot.listFiles()).getOrElse(Array())
35-
dirs.map { it => loadTemplateFile(it) }.map { it => it.name() -> it }.toMap
35+
dirs.map { it => loadTemplateFile(it) }.map { it => it.name -> it }.toMap
3636

3737
lazy val sideBarConfig =
3838
val sidebarFile = root.toPath.resolve("sidebar.yml")
@@ -111,7 +111,7 @@ class StaticSiteContext(val root: File, sourceSets: Set[SourceSetWrapper]):
111111
val path = if isBlog then "blog" else url.stripSuffix(".html") + ".md"
112112
val file = root.toPath.resolve(path) // Add support for .html files!
113113
val LoadedTemplate(template, children, tFile) = loadTemplate(file.toFile, isBlog).get // Add proper logging if file does not exisits
114-
LoadedTemplate(template.copy(settings = template.settings + ("title" -> List(title))), children, tFile)
114+
LoadedTemplate(template.copy(settings = template.settings + ("title" -> title)), children, tFile)
115115
case Sidebar.Category(title, nested) =>
116116
// Add support for index.html/index.md files!
117117
val fakeFile = new File(root, title)
@@ -141,9 +141,9 @@ class StaticSiteContext(val root: File, sourceSets: Set[SourceSetWrapper]):
141141
)
142142
StaticPageNode(
143143
myTemplate.templateFile,
144-
myTemplate.templateFile.title(),
144+
myTemplate.templateFile.title,
145145
content,
146146
JSet(dri),
147147
JList(),
148148
(myTemplate.children.map(templateToPage)).asJava
149-
)
149+
)

scala3doc/src/dotty/dokka/site/common.scala

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ val defaultMarkdownOptions: DataHolder =
4040
"https://github.global.ssl.fastly.net/images/icons/emoji/"
4141
)
4242

43-
def emptyTemplate(file: File): TemplateFile = TemplateFile(file, isHtml = true, "", Map())
43+
def emptyTemplate(file: File): TemplateFile = TemplateFile(
44+
file = file,
45+
isHtml = true,
46+
rawCode = "",
47+
settings = Map.empty
48+
)
4449

4550
final val ConfigSeparator = "---"
4651
final val LineSeparator = "\n"
@@ -61,11 +66,19 @@ def loadTemplateFile(file: File): TemplateFile = {
6166
val yamlCollector = new AbstractYamlFrontMatterVisitor()
6267
yamlCollector.visit(configParsed)
6368

69+
extension (v: java.util.List[String]) def getSettingValue: String | List[String] =
70+
if v.size == 1 then v.get(0) else v.asScala.toList
71+
72+
val globalKeys = Set("extraJS", "extraCSS", "layout", "hasFrame")
73+
val (global, inner) = yamlCollector.getData.asScala.toMap.transform((_, v) => v.getSettingValue)
74+
.partition((k,_) => globalKeys.contains(k))
75+
val settings = global ++ Map("page" -> inner)
76+
6477
TemplateFile(
6578
file = file,
66-
file.getName.endsWith(".html"),
79+
isHtml = file.getName.endsWith(".html"),
6780
rawCode = content.mkString(LineSeparator),
68-
settings = yamlCollector.getData.asScala.toMap.transform((_, v) => v.asScala.toList)
81+
settings = settings,
6982
)
7083
}
7184

scala3doc/src/dotty/dokka/site/processors.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class SiteResourceManager(ctx: Option[StaticSiteContext]) extends BaseStaticSite
4444
val modified = input.transformContentPagesTree {
4545
case it: StaticPageNode =>
4646
it.copy(getEmbeddedResources =
47-
if it.template.hasFrame() then it.getEmbeddedResources ++ it.resources().asJava
47+
if it.template.hasFrame then it.getEmbeddedResources ++ it.resources().asJava
4848
else it.resources().asJava
4949
)
5050
case it => it

0 commit comments

Comments
 (0)