@@ -17,85 +17,82 @@ import org.jetbrains.dokka.model.DisplaySourceSet
1717import scala .collection .JavaConverters ._
1818
1919class StaticSiteContext (val root : File , sourceSets : Set [SourceSetWrapper ]):
20- val docsFile = new File (root, " docs" )
21-
22- def indexPage (): Option [StaticPageNode ] =
23- val files = List (new File (root, " index.html" ), new File (root, " index.md" )).filter { _.exists() }
24- if (files.size > 1 ) println(s " ERROR: Multiple root index pages found: ${files.map(_.getAbsolutePath)}" ) // TODO (#14): provide proper error handling
25- loadFiles(files).headOption
26-
27- lazy val layouts : Map [String , TemplateFile ] =
28- val layoutRoot = new File (root, " _layouts" )
29- val dirs : Array [File ] = Option (layoutRoot.listFiles()).getOrElse(Array ())
30- dirs.map { it => loadTemplateFile(it) }.map { it => it.name() -> it }.toMap
31-
32- private def isValidTemplate (file : File ): Boolean =
33- (file.isDirectory && ! file.getName.startsWith(" _" )) ||
34- file.getName.endsWith(" .md" ) ||
35- file.getName.endsWith(" .html" )
36-
37-
38- private def loadTemplate (from : File ): Option [LoadedTemplate ] =
39- if (! isValidTemplate(from)) None else
40- try
41- val (indexes, children) = Option (from.listFiles()).toSeq.flatten.flatMap(loadTemplate).partition(_.templateFile.isIndexPage())
42- if (indexes.size > 1 )
43- println(s " ERROR: Multiple index pages for $from found in ${indexes.map(_.file)}" ) // TODO (#14): provide proper error handling
44-
45- def loadIndexPage (): TemplateFile = {
46- val indexFiles = from.listFiles { file => file.getName == " index.md" || file.getName == " index.html" }
47- indexFiles.size match {
48- case 0 => emptyTemplate(from)
49- case 1 => loadTemplateFile(indexFiles.head).copy(file = from)
50- case _ => throw new java.lang. RuntimeException ( s " ERROR: Multiple index pages found under ${from.toPath} " )
51- }
52- }
53-
54- val templateFile = if (from.isDirectory) loadIndexPage() else loadTemplateFile(from)
55-
56- Some (LoadedTemplate (templateFile, children.toList, from))
57- catch
20+ val docsFile = new File (root, " docs" )
21+
22+ def indexPage (): Option [StaticPageNode ] =
23+ val files = List (new File (root, " index.html" ), new File (root, " index.md" )).filter { _.exists() }
24+ if (files.size > 1 ) println(s " ERROR: Multiple root index pages found: ${files.map(_.getAbsolutePath)}" ) // TODO (#14): provide proper error handling
25+ loadFiles(files).headOption
26+
27+ lazy val layouts : Map [String , TemplateFile ] =
28+ val layoutRoot = new File (root, " _layouts" )
29+ val dirs : Array [File ] = Option (layoutRoot.listFiles()).getOrElse(Array ())
30+ dirs.map { it => loadTemplateFile(it) }.map { it => it.name() -> it }.toMap
31+
32+ private def isValidTemplate (file : File ): Boolean =
33+ (file.isDirectory && ! file.getName.startsWith(" _" )) ||
34+ file.getName.endsWith(" .md" ) ||
35+ file.getName.endsWith(" .html" )
36+
37+
38+ private def loadTemplate (from : File ): Option [LoadedTemplate ] =
39+ if (! isValidTemplate(from)) None else
40+ try
41+ val (indexes, children) = Option (from.listFiles()).toSeq.flatten.flatMap(loadTemplate).partition(_.templateFile.isIndexPage())
42+ if (indexes.size > 1 )
43+ println(s " ERROR: Multiple index pages for $from found in ${indexes.map(_.file)}" ) // TODO (#14): provide proper error handling
44+
45+ def loadIndexPage (): TemplateFile =
46+ val indexFiles = from.listFiles { file => file.getName == " index.md" || file.getName == " index.html" }
47+ indexFiles.size match
48+ case 0 => emptyTemplate(from)
49+ case 1 => loadTemplateFile(indexFiles.head).copy(file = from)
50+ case _ =>
51+ val msg = s " ERROR: Multiple index pages found under ${from.toPath} "
52+ throw new java.lang. RuntimeException (msg)
53+
54+ val templateFile = if (from.isDirectory) loadIndexPage() else loadTemplateFile(from)
55+
56+ Some (LoadedTemplate (templateFile, children.toList, from))
57+ catch
5858 case e : RuntimeException =>
5959 e.printStackTrace() // TODO (#14): provide proper error handling
6060 None
6161
62- def asContent (d : DocTag , dri : DRI ) = new DocTagToContentConverter ().buildContent(
63- d,
62+ def asContent (doctag : DocTag , dri : DRI ) = new DocTagToContentConverter ().buildContent(
63+ doctag,
64+ new DCI (Set (dri).asJava, ContentKind .Empty ),
65+ sourceSets.asJava,
66+ JSet (),
67+ new PropertyContainer (JMap ())
68+ )
69+
70+ def loadFiles (files : List [File ], customChildren : List [PageNode ] = Nil ): List [StaticPageNode ] =
71+ val all = files.flatMap(loadTemplate)
72+ def flatten (it : LoadedTemplate ): List [String ] =
73+ List (it.relativePath(root)) ++ it.children.flatMap(flatten)
74+
75+ def pathToDRI (path : String ) = mkDRI(s " _. $path" )
76+
77+ val driMap = all.flatMap(flatten).map(it => it -> pathToDRI(it)).toMap
78+
79+ def templateToPage (myTemplate : LoadedTemplate ): StaticPageNode =
80+ val dri = pathToDRI(myTemplate.relativePath(root))
81+ val content = new PartiallyRenderedContent (
82+ myTemplate.templateFile,
83+ this ,
84+ JList (),
6485 new DCI (Set (dri).asJava, ContentKind .Empty ),
65- sourceSets.asJava,
66- JSet (),
67- new PropertyContainer (JMap ())
68- )
69-
70- def loadFiles (
71- files : List [File ],
72- customChildren : List [PageNode ] = Nil
73- ): List [StaticPageNode ] =
74- val all = files.flatMap(loadTemplate)
75- def flatten (it : LoadedTemplate ): List [String ] =
76- List (it.relativePath(root)) ++ it.children.flatMap(flatten)
77-
78- def pathToDRI (path : String ) = mkDRI(s " _. $path" )
79-
80- val driMap = all.flatMap { it => flatten(it) }.map { it => it -> pathToDRI(it) }.toMap
81-
82- def templateToPage (myTemplate : LoadedTemplate ): StaticPageNode =
83- val dri = pathToDRI(myTemplate.relativePath(root))
84- val content = new PartiallyRenderedContent (
85- myTemplate.templateFile,
86- this ,
87- JList (),
88- new DCI (Set (dri).asJava, ContentKind .Empty ),
89- sourceSets.toDisplay,
90- JSet ()
91- )
92- StaticPageNode (
93- myTemplate.templateFile,
94- myTemplate.templateFile.title(),
95- content,
96- JSet (dri),
97- JList (),
98- (myTemplate.children.map(templateToPage) ++ customChildren).asJava
99- )
100-
101- all.map(templateToPage)
86+ sourceSets.toDisplay,
87+ JSet ()
88+ )
89+ StaticPageNode (
90+ myTemplate.templateFile,
91+ myTemplate.templateFile.title(),
92+ content,
93+ JSet (dri),
94+ JList (),
95+ (myTemplate.children.map(templateToPage) ++ customChildren).asJava
96+ )
97+
98+ all.map(templateToPage)
0 commit comments