@@ -33,22 +33,32 @@ import java.net.URL
3333
3434object TypelevelHeliumExtensions {
3535
36- @ deprecated(" Use overload with scala3 parameter" , " 0.4.7" )
36+ @ deprecated(" Use overload with API url and scala3 parameter" , " 0.4.7" )
3737 def apply (license : Option [(String , URL )], related : Seq [(String , URL )]): ThemeProvider =
3838 apply(license, related, false )
3939
40+ @ deprecated(" Use overload with API url and scala3 parameter" , " 0.4.13" )
41+ def apply (
42+ license : Option [(String , URL )],
43+ related : Seq [(String , URL )],
44+ scala3 : Boolean ): ThemeProvider =
45+ apply(license, related, false , None )
46+
4047 /**
4148 * @param license
4249 * name and [[java.net.URL ]] of project license
4350 * @param related
4451 * name and [[java.net.URL ]] of related projects
4552 * @param scala3
4653 * whether to use Scala 3 syntax highlighting
54+ * @param apiUrl
55+ * url to API docs
4756 */
4857 def apply (
4958 license : Option [(String , URL )],
5059 related : Seq [(String , URL )],
51- scala3 : Boolean
60+ scala3 : Boolean ,
61+ apiUrl : Option [URL ]
5262 ): ThemeProvider = new ThemeProvider {
5363 def build [F [_]](implicit F : Sync [F ]): Resource [F , Theme [F ]] =
5464 ThemeBuilder [F ](" Typelevel Helium Extensions" )
@@ -62,6 +72,11 @@ object TypelevelHeliumExtensions {
6272 F .blocking(getClass.getResourceAsStream(" helium/site/styles.css" )),
6373 Path .Root / " site" / " styles.css"
6474 )
75+ .merge(
76+ apiUrl.fold(InputTree [F ]) { url =>
77+ InputTree [F ].addString(htmlForwarder(url), Path .Root / " api" / " index.html" )
78+ }
79+ )
6580 )
6681 .addExtensions(
6782 GitHubFlavor ,
@@ -93,4 +108,11 @@ object TypelevelHeliumExtensions {
93108 })
94109 .build
95110
111+ private def htmlForwarder (to : URL ) =
112+ s """ |<!DOCTYPE html>
113+ |<meta charset="utf-8">
114+ |<meta http-equiv="refresh" content="0; URL= $to">
115+ |<link rel="canonical" href=" $to">
116+ | """ .stripMargin
117+
96118}
0 commit comments