@@ -30,71 +30,72 @@ abstract class Renderer(rootPackage: Member, val members: Map[DRI, Member], prot
3030
3131  val  rootApiPage :  Option [Page ] =  Some (memberPage(rootPackage)).filter(_.children.nonEmpty).map(_.withTitle(ctx.args.name))
3232
33-   val  rootDocsPage :  Option [Page ] =  staticSite match 
34-       case  None  =>  None 
35-       case  Some (siteContext) => 
36-         val  rootTemplate  =  siteContext.staticSiteRoot.rootTemplate
37- 
38-         //  Below code is for walking in order the tree and modifing its nodes basing on its neighbours
39- 
40-         //  We add dummy guards
41-         val  notHidden :  Seq [Option [LoadedTemplate ]] =  None  +:  siteContext.allTemplates.filterNot(_.hidden).map(Some (_)) :+  None 
42- 
43-         //  Let's gather the list of maps for each template with its in-order neighbours
44-         val  newSettings :  List [Map [String , Object ]] =  notHidden.sliding(size =  3 , step =  1 ).map {
45-           case  None  ::  None  ::  Nil  => 
46-             Map .empty
47-           case  prev ::  mid ::  next ::  Nil  => 
48-             def  link (sibling : Option [LoadedTemplate ]):  Option [String ] = 
49-               def  realPath (path : Path ) =  if  Files .isDirectory(path) then  Paths .get(path.toString, " index.html" else  path
50-               sibling.map { n => 
51-                 val  realMidPath  =  realPath(mid.get.file.toPath)
52-                 val  realSiblingPath  =  realPath(n.file.toPath)
53-                 realMidPath.relativize(realSiblingPath).toString.stripPrefix(" ../" 
54-               }
55-             List (
56-               for  {
57-                 link <-  link(prev)
58-                 p <-  prev
59-               } yield  (
60-                 " previous" ->  Map (
61-                   " title" ->  p.templateFile.title.name,
62-                   " url" ->  link
63-                 )
64-               ),
65-               for  {
66-                 link <-  link(next)
67-                 n <-  next
68-               } yield  (
69-                 " next" ->  Map (
70-                   " title" ->  n.templateFile.title.name,
71-                   " url" ->  link
72-                 )
73-               ),
74-             ).flatten.toMap
75-         }.toList
76- 
77-         def  updateSettings (templates : Seq [LoadedTemplate ], additionalSettings : ListBuffer [Map [String , Object ]]):  List [LoadedTemplate ] = 
78-           val  updatedTemplates  =  List .newBuilder[LoadedTemplate ]
79-           for  template <-  templates do 
80-             val  head :  Map [String , Object ] = 
81-               if  template.hidden then  Map .empty
82-               else  additionalSettings.remove(0 )
83-             val  current :  Map [String , Object ] =  template.templateFile.settings.getOrElse(" page" Map .empty).asInstanceOf [Map [String , Object ]]
84-             val  updatedTemplateFile  =  template.templateFile.copy(settings =  template.templateFile.settings.updated(" page" ++  current))
85-             updatedTemplates +=  template.copy(
86-               templateFile =  updatedTemplateFile,
87-               children =  updateSettings(template.children, additionalSettings)
88-             )
89-           updatedTemplates.result()
90- 
91-         val  newTemplates  =  updateSettings(Seq (rootTemplate), newSettings.to(ListBuffer ))
92-         val  templatePages  =  newTemplates.map(templateToPage(_, siteContext))
93- 
94-         val  newRoot  =  newTemplates.head
95- 
96-         Some (newRoot).filter(r =>  r.children.nonEmpty ||  r.templateFile.rawCode.nonEmpty)
97-           .map(templateToPage(_, siteContext))
33+   val  rootDocsPage :  Option [Page ] =  staticSite match  {
34+     case  None  =>  None 
35+     case  Some (siteContext) => 
36+       val  rootTemplate  =  siteContext.staticSiteRoot.rootTemplate
37+ 
38+       //  Below code is for walking in order the tree and modifing its nodes basing on its neighbours
39+ 
40+       //  We add dummy guards
41+       val  notHidden :  Seq [Option [LoadedTemplate ]] =  None  +:  siteContext.allTemplates.filterNot(_.hidden).map(Some (_)) :+  None 
42+ 
43+       //  Let's gather the list of maps for each template with its in-order neighbours
44+       val  newSettings :  List [Map [String , Object ]] =  notHidden.sliding(size =  3 , step =  1 ).map {
45+         case  None  ::  None  ::  Nil  => 
46+           Map .empty
47+         case  prev ::  mid ::  next ::  Nil  => 
48+           def  link (sibling : Option [LoadedTemplate ]):  Option [String ] = 
49+             def  realPath (path : Path ) =  if  Files .isDirectory(path) then  Paths .get(path.toString, " index.html" else  path
50+             sibling.map { n => 
51+               val  realMidPath  =  realPath(mid.get.file.toPath)
52+               val  realSiblingPath  =  realPath(n.file.toPath)
53+               realMidPath.relativize(realSiblingPath).toString.stripPrefix(" ../" 
54+             }
55+           List (
56+             for  {
57+               link <-  link(prev)
58+               p <-  prev
59+             } yield  (
60+               " previous" ->  Map (
61+                 " title" ->  p.templateFile.title.name,
62+                 " url" ->  link
63+               )
64+             ),
65+             for  {
66+               link <-  link(next)
67+               n <-  next
68+             } yield  (
69+               " next" ->  Map (
70+                 " title" ->  n.templateFile.title.name,
71+                 " url" ->  link
72+               )
73+             ),
74+           ).flatten.toMap
75+       }.toList
76+ 
77+       def  updateSettings (templates : Seq [LoadedTemplate ], additionalSettings : ListBuffer [Map [String , Object ]]):  List [LoadedTemplate ] = 
78+         val  updatedTemplates  =  List .newBuilder[LoadedTemplate ]
79+         for  template <-  templates do 
80+           val  head :  Map [String , Object ] = 
81+             if  template.hidden then  Map .empty
82+             else  additionalSettings.remove(0 )
83+           val  current :  Map [String , Object ] =  template.templateFile.settings.getOrElse(" page" Map .empty).asInstanceOf [Map [String , Object ]]
84+           val  updatedTemplateFile  =  template.templateFile.copy(settings =  template.templateFile.settings.updated(" page" ++  current))
85+           updatedTemplates +=  template.copy(
86+             templateFile =  updatedTemplateFile,
87+             children =  updateSettings(template.children, additionalSettings)
88+           )
89+         updatedTemplates.result()
90+ 
91+       val  newTemplates  =  updateSettings(Seq (rootTemplate), newSettings.to(ListBuffer ))
92+       val  templatePages  =  newTemplates.map(templateToPage(_, siteContext))
93+ 
94+       val  newRoot  =  newTemplates.head
95+ 
96+       Some (newRoot).filter(r =>  r.children.nonEmpty ||  r.templateFile.rawCode.nonEmpty)
97+         .map(templateToPage(_, siteContext))
98+   }
9899
99100  val  redirectPages :  Seq [Page ] =  staticSite.fold(Seq .empty)(siteContext =>  siteContext.redirectTemplates.map {
100101    case  (template, driFrom, driTo) => 
0 commit comments