@@ -10,6 +10,8 @@ import org.jetbrains.dokka.pages.RootPageNode
1010import org .jetbrains .dokka .plugability .DokkaContext
1111
1212import scala .collection .JavaConverters ._
13+ import java .nio .file .Paths
14+ import java .nio .file .Path
1315
1416class StaticSiteLocationProviderFactory (private val ctx : DokkaContext ) extends LocationProviderFactory :
1517 override def getLocationProvider (pageNode : RootPageNode ): LocationProvider =
@@ -24,11 +26,23 @@ class StaticSiteLocationProvider(ctx: DokkaContext, pageNode: RootPageNode)
2426 val rawFilePath = context.root.toPath.relativize(page.template.file.toPath)
2527 val pageName = page.template.file.getName
2628 val dotIndex = pageName.lastIndexOf('.' )
27- val newPath =
28- if (dotIndex < 0 ) rawFilePath.resolve(" index" )
29- else rawFilePath.resolveSibling(pageName.substring(0 , dotIndex))
3029
31- newPath.iterator.asScala.map(_.toString).toList.asJava
30+ if (isBlogPostPath(rawFilePath)) {
31+ val regex = raw " (\d*)-(\d*)-(\d*)-(.*)\..* " .r
32+ val blogPostPath = pageName.toString match {
33+ case regex(year, month, day, name) =>
34+ rawFilePath.getParent.resolveSibling(Paths .get(year, month, day, name))
35+ case _ =>
36+ println(s " Blog file at path: $rawFilePath doesn't match desired format. " )
37+ rawFilePath.resolveSibling(pageName.substring(0 , dotIndex))
38+ }
39+ blogPostPath.iterator.asScala.map(_.toString).toList.asJava
40+ } else {
41+ val newPath =
42+ if (dotIndex < 0 ) rawFilePath.resolve(" index" )
43+ else rawFilePath.resolveSibling(pageName.substring(0 , dotIndex))
44+ newPath.iterator.asScala.map(_.toString).toList.asJava
45+ }
3246 }
3347
3448 case page : ContentPage if page.getDri.contains(docsDRI) =>
@@ -43,6 +57,8 @@ class StaticSiteLocationProvider(ctx: DokkaContext, pageNode: RootPageNode)
4357 case _ =>
4458 jpath
4559
60+ private def isBlogPostPath (path : Path ): Boolean = path.startsWith(Paths .get(" blog" ," _posts" ))
61+
4662 override val getPathsIndex : JMap [PageNode , JList [String ]] =
4763 super .getPathsIndex.asScala.mapValuesInPlace(updatePageEntry).asJava
4864
0 commit comments