Skip to content

Commit 35598dc

Browse files
committed
hack support for member links in static pages
To not refactor half of model I needed to use a var that accepts lambda. We should probably find better way to do it (probably by processing TASTY before we start dokka) Add local alias for DRI
1 parent 233ec74 commit 35598dc

26 files changed

+32
-40
lines changed

scala3doc/src/dotty/dokka/DottyDokkaPlugin.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import org.jetbrains.dokka.transformers.documentation.DocumentableToPageTranslat
99
import org.jetbrains.dokka.DokkaConfiguration
1010
import org.jetbrains.dokka.{ DokkaConfiguration$DokkaSourceSet => DokkaSourceSet }
1111
import org.jetbrains.dokka.model._
12-
import org.jetbrains.dokka.links._
1312
import org.jetbrains.dokka.model.doc._
1413
import org.jetbrains.dokka.base.parsers._
1514
import org.jetbrains.dokka.plugability.DokkaContext

scala3doc/src/dotty/dokka/ScalaModuleCreator.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import dotty.dokka.tasty.{DokkaTastyInspector, SbtDokkaTastyInspector}
1010
import org.jetbrains.dokka.pages._
1111
import dotty.dokka.model.api._
1212
import org.jetbrains.dokka.model._
13-
import org.jetbrains.dokka.links.DRI
1413
import org.jetbrains.dokka.base.parsers.MarkdownParser
1514
import collection.JavaConverters._
1615
import kotlin.coroutines.Continuation

scala3doc/src/dotty/dokka/compat.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dotty.dokka
22

3-
import org.jetbrains.dokka.links.{DRI, PointingToDeclaration}
3+
import org.jetbrains.dokka.links.PointingToDeclaration
44
import org.jetbrains.dokka.DokkaConfiguration
55
import org.jetbrains.dokka.DokkaConfiguration$DokkaSourceSet
66
import collection.JavaConverters._
@@ -28,6 +28,8 @@ type JMap[K, V] = java.util.Map[K, V]
2828
type JHashMap[K, V] = java.util.HashMap[K, V]
2929
type JMapEntry[K, V] = java.util.Map.Entry[K, V]
3030

31+
type DRI = org.jetbrains.dokka.links.DRI
32+
3133
type SourceSetWrapper = DokkaConfiguration$DokkaSourceSet
3234
type DokkaSourceSet = DokkaConfiguration.DokkaSourceSet
3335

scala3doc/src/dotty/dokka/model/api/api.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ package model
33
package api
44

55
import org.jetbrains.dokka.DokkaConfiguration$DokkaSourceSet
6-
import org.jetbrains.dokka.links._
76
import org.jetbrains.dokka.model._
87
import collection.JavaConverters._
9-
import org.jetbrains.dokka.links._
108
import org.jetbrains.dokka.model.doc._
119
import org.jetbrains.dokka.model.properties._
1210
import org.jetbrains.dokka.pages._

scala3doc/src/dotty/dokka/model/api/internalExtensions.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package model
33
package api
44

55
import org.jetbrains.dokka.DokkaConfiguration$DokkaSourceSet
6-
import org.jetbrains.dokka.links._
76
import org.jetbrains.dokka.model.{Projection => JProjection}
87
import org.jetbrains.dokka.model.Documentable
98
import org.jetbrains.dokka.model.DFunction
@@ -18,7 +17,6 @@ import org.jetbrains.dokka.model.DPackage
1817
import org.jetbrains.dokka.model.DModule
1918

2019
import collection.JavaConverters._
21-
import org.jetbrains.dokka.links._
2220
import org.jetbrains.dokka.model.doc.DocumentationNode
2321
import org.jetbrains.dokka.model.properties._
2422

scala3doc/src/dotty/dokka/model/extras.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package dotty.dokka
22

33
import org.jetbrains.dokka.DokkaConfiguration$DokkaSourceSet
4-
import org.jetbrains.dokka.links._
54
import org.jetbrains.dokka.model.{Projection => JProjection}
65
import org.jetbrains.dokka.model._
76
import org.jetbrains.dokka.pages._
87
import collection.JavaConverters._
9-
import org.jetbrains.dokka.links._
108
import org.jetbrains.dokka.model.doc._
119
import org.jetbrains.dokka.model.properties._
1210
import dotty.dokka.model.api._

scala3doc/src/dotty/dokka/model/scalaModel.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package dotty.dokka
22

33
import org.jetbrains.dokka.DokkaConfiguration$DokkaSourceSet
4-
import org.jetbrains.dokka.links._
54
import org.jetbrains.dokka.model._
65
import collection.JavaConverters._
7-
import org.jetbrains.dokka.links._
86
import org.jetbrains.dokka.model.doc._
97
import org.jetbrains.dokka.model.properties._
108
import org.jetbrains.dokka.pages._

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import java.io.File
55
import java.nio.file.Files
66

77
import org.jetbrains.dokka.base.renderers.html.{NavigationNode, NavigationPage}
8-
import org.jetbrains.dokka.links.DRI
98
import org.jetbrains.dokka.model.Documentable
109
import org.jetbrains.dokka.pages._
1110
import org.jetbrains.dokka.transformers.pages.PageTransformer

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import java.io.File
55
import java.nio.file.Files
66

77
import org.jetbrains.dokka.base.renderers.html.{NavigationNode, NavigationPage}
8-
import org.jetbrains.dokka.links.DRI
98
import org.jetbrains.dokka.model.Documentable
109
import org.jetbrains.dokka.pages._
1110
import org.jetbrains.dokka.transformers.pages.PageTransformer

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import java.nio.file.Paths
1010
import org.jetbrains.dokka.base.parsers.MarkdownParser
1111
import org.jetbrains.dokka.base.transformers.pages.comments.DocTagToContentConverter
1212
import org.jetbrains.dokka.DokkaConfiguration
13-
import org.jetbrains.dokka.links.DRI
1413
import org.jetbrains.dokka.model.doc.{DocTag, Text}
1514
import org.jetbrains.dokka.model.properties.PropertyContainer
1615
import org.jetbrains.dokka.pages.{ContentKind, ContentNode, DCI, PageNode}
@@ -23,6 +22,8 @@ import scala.collection.JavaConverters._
2322

2423
class StaticSiteContext(val root: File, sourceSets: Set[SourceSetWrapper]):
2524

25+
var memberLinkResolver: String => Option[DRI] = _ => None
26+
2627
def indexPage():Option[StaticPageNode] =
2728
val files = List(new File(root, "index.html"), new File(root, "index.md")).filter { _.exists() }
2829
// TODO (https://github.com/lampepfl/scala3doc/issues/238): provide proper error handling
@@ -127,10 +128,14 @@ class StaticSiteContext(val root: File, sourceSets: Set[SourceSetWrapper]):
127128
dir("docs").flatMap(_.listFiles()).flatMap(loadTemplate(_, isBlog = false))
128129
++ dir("blog").flatMap(loadTemplate(_, isBlog = true))
129130

130-
def driForLink(template: TemplateFile, link: String): Try[DRI] = Try(driFor(
131+
def driForLink(template: TemplateFile, link: String): Option[DRI] =
132+
val pathDri = Try {
133+
val path =
131134
if link.startsWith("/") then root.toPath.resolve(link.drop(1))
132135
else template.file.toPath.getParent().resolve(link)
133-
))
136+
if Files.exists(path) then Some(driFor(path)) else None
137+
}.toOption.flatten
138+
pathDri.orElse(memberLinkResolver(link))
134139

135140
def driFor(dest: Path): DRI = mkDRI(s"_.${root.toPath.relativize(dest)}")
136141

0 commit comments

Comments
 (0)