Add root index to fir dump
This commit is contained in:
committed by
Mikhail Glukhikh
parent
9c04751572
commit
49883d1d87
@@ -48,6 +48,7 @@ internal interface FirLinkResolver {
|
|||||||
|
|
||||||
private const val PACKAGE_INDEX = "package-index.html"
|
private const val PACKAGE_INDEX = "package-index.html"
|
||||||
private const val MODULE_INDEX = "module-index.html"
|
private const val MODULE_INDEX = "module-index.html"
|
||||||
|
private const val ROOT_INDEX = "root-index.html"
|
||||||
|
|
||||||
|
|
||||||
private fun HEAD.commonHead() {
|
private fun HEAD.commonHead() {
|
||||||
@@ -84,6 +85,14 @@ private class SupplementaryGenerator(val outputRoot: File) {
|
|||||||
supplementary(this, moduleInfo.moduleRoot)
|
supplementary(this, moduleInfo.moduleRoot)
|
||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
|
h4 {
|
||||||
|
a(
|
||||||
|
href = linkToRootIndex(moduleInfo.moduleRoot),
|
||||||
|
classes = "container-ref"
|
||||||
|
) {
|
||||||
|
+"back to root"
|
||||||
|
}
|
||||||
|
}
|
||||||
h2 { +moduleInfo.name }
|
h2 { +moduleInfo.name }
|
||||||
ul {
|
ul {
|
||||||
for (packageInfo in moduleInfo.packages.values) {
|
for (packageInfo in moduleInfo.packages.values) {
|
||||||
@@ -109,6 +118,10 @@ private class SupplementaryGenerator(val outputRoot: File) {
|
|||||||
return packageInfo.packageRoot.resolve(PACKAGE_INDEX).relativeTo(from).path
|
return packageInfo.packageRoot.resolve(PACKAGE_INDEX).relativeTo(from).path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun linkToRootIndex(from: File): String {
|
||||||
|
return outputRoot.resolve(ROOT_INDEX).relativeTo(from).path
|
||||||
|
}
|
||||||
|
|
||||||
fun generateIndex(packageInfo: PackageInfo, writer: Writer) {
|
fun generateIndex(packageInfo: PackageInfo, writer: Writer) {
|
||||||
writer.appendHTML().html {
|
writer.appendHTML().html {
|
||||||
head {
|
head {
|
||||||
@@ -139,6 +152,28 @@ private class SupplementaryGenerator(val outputRoot: File) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun generateIndex(modules: List<ModuleInfo>, writer: Writer) {
|
||||||
|
val title = "Root dump index"
|
||||||
|
writer.appendHTML().html {
|
||||||
|
head {
|
||||||
|
title { +title }
|
||||||
|
commonHead()
|
||||||
|
supplementary(this, outputRoot)
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
h2 { +title }
|
||||||
|
|
||||||
|
ul {
|
||||||
|
for (module in modules) {
|
||||||
|
li {
|
||||||
|
a(href = linkToIndex(module, outputRoot), classes = "container-ref") { +module.name }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fun supplementary(head: HEAD, originDir: File) = with(head) {
|
fun supplementary(head: HEAD, originDir: File) = with(head) {
|
||||||
for (file in jsFiles) {
|
for (file in jsFiles) {
|
||||||
@@ -157,7 +192,7 @@ private val cssFiles = listOf("style.css", "colors.white.css", "colors.dark.css"
|
|||||||
|
|
||||||
class MultiModuleHtmlFirDump(private val outputRoot: File) {
|
class MultiModuleHtmlFirDump(private val outputRoot: File) {
|
||||||
|
|
||||||
private val modules = mutableMapOf<String, ModuleInfo>()
|
private val modules = LinkedHashMap<String, ModuleInfo>()
|
||||||
|
|
||||||
private lateinit var currentModule: ModuleInfo
|
private lateinit var currentModule: ModuleInfo
|
||||||
private var inModule = false
|
private var inModule = false
|
||||||
@@ -181,16 +216,17 @@ class MultiModuleHtmlFirDump(private val outputRoot: File) {
|
|||||||
fun finish() {
|
fun finish() {
|
||||||
require(!finished)
|
require(!finished)
|
||||||
finished = true
|
finished = true
|
||||||
|
outputRoot.resolve(ROOT_INDEX).writer().use {
|
||||||
|
supplementaryGenerator.generateIndex(modules.values.toList(), it)
|
||||||
|
}
|
||||||
for (module in modules.values) {
|
for (module in modules.values) {
|
||||||
module.moduleRoot.resolve(MODULE_INDEX)
|
module.moduleRoot.resolve(MODULE_INDEX).writer().use {
|
||||||
.writer().use {
|
supplementaryGenerator.generateIndex(module, it)
|
||||||
supplementaryGenerator.generateIndex(module, it)
|
}
|
||||||
}
|
|
||||||
for (packageInfo in module.packages.values) {
|
for (packageInfo in module.packages.values) {
|
||||||
packageInfo.packageRoot.resolve(PACKAGE_INDEX)
|
packageInfo.packageRoot.resolve(PACKAGE_INDEX).writer().use {
|
||||||
.writer().use {
|
supplementaryGenerator.generateIndex(packageInfo, it)
|
||||||
supplementaryGenerator.generateIndex(packageInfo, it)
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val supplementaryFiles = jsFiles + cssFiles
|
val supplementaryFiles = jsFiles + cssFiles
|
||||||
|
|||||||
Reference in New Issue
Block a user