Skip to content

Commit 633d3bf

Browse files
committed
Rewrite script to have all docs in docs/
1 parent 7d33543 commit 633d3bf

File tree

130 files changed

+62
-78
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+62
-78
lines changed

docs/README.md

Lines changed: 5 additions & 0 deletions

docs-for-scalalang/docs/reference/experimental/canthrow.md renamed to docs/docs/reference/experimental/canthrow.md

Lines changed: 1 addition & 1 deletion

docs-for-scalalang/docs/reference/experimental/overview.md renamed to docs/docs/reference/experimental/overview.md

Lines changed: 1 addition & 1 deletion

docs/docs/usage/language-versions.md

Lines changed: 0 additions & 35 deletions
This file was deleted.

docs/sidebar.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ sidebar:
66
- page: docs/usage/sbt-projects.md
77
- page: docs/usage/ide-support.md
88
- page: docs/usage/worksheet-mode.md
9-
- page: docs/usage/language-versions.md
109
- page: docs/usage/cbt-projects.md
1110
- page: docs/usage/scaladoc
1211
- title: Reference
@@ -27,7 +26,7 @@ sidebar:
2726
- page: docs/reference/enums/desugarEnums.md
2827
- title: Contextual Abstractions
2928
subsection:
30-
- page: docs/reference/contextual/motivation.md
29+
- page: docs/reference/contextual.md
3130
- page: docs/reference/contextual/givens.md
3231
- page: docs/reference/contextual/using-clauses.md
3332
- page: docs/reference/contextual/context-bounds.md
@@ -42,7 +41,7 @@ sidebar:
4241
- page: docs/reference/contextual/relationship-implicits.md
4342
- title: Metaprogramming
4443
subsection:
45-
- page: docs/reference/metaprogramming/toc.md
44+
- page: docs/reference/metaprogramming.md
4645
- page: docs/reference/metaprogramming/inline.md
4746
- page: docs/reference/metaprogramming/compiletime-ops.md
4847
- page: docs/reference/metaprogramming/macros.md
@@ -110,7 +109,14 @@ sidebar:
110109
- title: Experimental Features
111110
subsection:
112111
- page: docs/reference/experimental/overview.md
112+
- page: docs/reference/experimental/canthrow.md
113+
- page: docs/reference/experimental/erased-defs.md
114+
- page: docs/reference/experimental/erased-defs-spec.md
115+
- page: docs/reference/experimental/named-typeargs.md
116+
- page: docs/reference/experimental/named-typeargs-spec.md
117+
- page: docs/reference/experimental/numeric-literals.md
113118
- page: docs/reference/syntax.md
119+
- page: docs/reference/language-versions.md
114120
- title: Contributing
115121
subsection:
116122
- page: docs/contributing/contribute-knowledge.md

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,7 @@ object Build {
14191419
"https://scala-lang.org/api/versions.json",
14201420
"-Ydocument-synthetic-types",
14211421
s"-snippet-compiler:${dottyLibRoot}/scala/quoted=compile,${dottyLibRoot}/scala/compiletime=compile"
1422-
) ++ (if (justAPI) Nil else Seq("-siteroot", "docs", "-Yapi-subdirectory")))
1422+
) ++ (if (justAPI) Nil else Seq("-siteroot", "docs-for-dotty-page", "-Yapi-subdirectory")))
14231423

14241424
if (dottyJars.isEmpty) Def.task { streams.value.log.error("Dotty lib wasn't found") }
14251425
else if (justAPI) generateDocTask

project/scripts/processDocs.sc

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,57 @@
1-
import java.nio.file.{ FileSystems, Files, Path }
1+
import java.nio.file.{ FileSystems, Files, Path, StandardCopyOption }
22
import java.io.PrintStream
33
import scala.io.{ Codec, Source }
44
import scala.collection.JavaConverters._
55

6-
val inputDir = FileSystems.getDefault.getPath("docs-for-scalalang")
7-
val outputDir = FileSystems.getDefault.getPath("docs")
6+
val inputDir = FileSystems.getDefault.getPath("docs")
7+
val outputDir = FileSystems.getDefault.getPath("docs-for-dotty-page")
88

99
def copyFile(path: Path): Unit =
10-
val inputStream = Source.fromFile(path.toFile)(Codec.UTF8)
11-
val fileContent = inputStream.getLines().mkString("\n")
12-
1310
val newPath = outputDir.resolve(inputDir.relativize(path))
1411
Files.createDirectories(newPath.getParent())
1512

16-
new PrintStream(newPath.toFile):
17-
18-
val titlePattern = "(?s)^---\n.*title: (\".*\").*---"
19-
val reference = raw".*/reference/.*".r
20-
val usageScaladoc = raw".*/usage/scaladoc/.*".r
21-
val transformed = newPath.toString match
22-
case reference(_*) => fileContent.replaceAll(
23-
titlePattern,
24-
s"---\nlayout: doc-page\ntitle: $$1\nmovedTo: https://docs.scala-lang.org/scala3/reference/contextual/${newPath.getFileName.toString.stripSuffix(".md")}.html\n---"
25-
)
26-
case usageScaladoc(_*) => fileContent.replaceAll(
27-
titlePattern,
28-
s"---\ntitle: $$1\n---"
29-
)
30-
case _ =>
31-
fileContent
32-
33-
34-
val jekyllLinkPattern = """\(\{\% link _scala3-reference(.*) %\}\)"""
35-
val jekyllLinkSubstitution = "(..$1)"
36-
val localLinkPattern = """\((?!http|www)(.*).html\)"""
37-
val localLinkSubstitution = "($1.md)"
38-
val transformedWithLinks = transformed.replaceAll(
39-
jekyllLinkPattern,
40-
jekyllLinkSubstitution
41-
).replaceAll(
42-
localLinkPattern,
43-
localLinkSubstitution
44-
)
45-
46-
write(transformedWithLinks.getBytes("UTF8"))
13+
path.toString match
14+
case s if s.startsWith("docs/docs/") =>
15+
val inputStream = Source.fromFile(path.toFile)(Codec.UTF8)
16+
val fileContent = inputStream.getLines().mkString("\n")
17+
18+
new PrintStream(newPath.toFile):
19+
20+
// Patterns
21+
val titlePattern = "(?s)^---\n.*title: (\".*\").*---"
22+
23+
val jekyllLinkPattern = """\{\% link _overviews/scala3-scaladoc(.*) %\}"""
24+
val jekyllLinkSubstitution = "..$1"
25+
val jekyllLinkPattern2 = """\{\% link |_overviews/scala3-scaladoc/(.*) %\}"""
26+
val jekyllLinkSubstitution2 = "$1"
27+
val localLinkPattern = """\((?!http|www)(.*).html\)"""
28+
val localLinkSubstitution = "($1.md)"
29+
30+
// Prefixes
31+
val reference = raw"docs/docs/reference/.*".r
32+
val usageScaladoc = raw"docs/docs/usage/scaladoc/.*".r
33+
34+
val patterns = path.toString match
35+
case reference(_*) => Map(
36+
titlePattern -> s"---\nlayout: doc-page\ntitle: $$1\nmovedTo: https://docs.scala-lang.org/scala3/reference/contextual/${newPath.getFileName.toString.stripSuffix(".md")}.html\n---",
37+
jekyllLinkPattern -> jekyllLinkSubstitution,
38+
jekyllLinkPattern2 -> jekyllLinkSubstitution2,
39+
localLinkPattern -> localLinkSubstitution,
40+
)
41+
case usageScaladoc(_*) => Map(
42+
titlePattern -> s"---\ntitle: $$1\n---",
43+
jekyllLinkPattern -> jekyllLinkSubstitution,
44+
jekyllLinkPattern2 -> jekyllLinkSubstitution2,
45+
localLinkPattern -> localLinkSubstitution,
46+
)
47+
case _ =>
48+
Map.empty
49+
50+
val transformed = patterns.foldLeft(fileContent){ case (res, (pattern, substitution)) => res.replaceAll(pattern, substitution) }
51+
write(transformed.getBytes("UTF8"))
52+
53+
case s =>
54+
Files.copy(path, newPath, StandardCopyOption.REPLACE_EXISTING);
4755

4856
def main(args: Array[String]): Unit =
4957
Files.walk(inputDir).iterator().asScala.filter(Files.isRegularFile(_)).foreach(copyFile)

0 commit comments

Comments
 (0)