summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/doc/html/page
diff options
context:
space:
mode:
authorKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-06-20 14:20:45 +0000
committerKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-06-20 14:20:45 +0000
commit2627ab313f0d9f33e1b97e8aeda4447cf34bd27d (patch)
treeb119264c47c6c990395ba3610209905aaf270b51 /src/compiler/scala/tools/nsc/doc/html/page
parentd2fd3d61d1cceb79c731a4be46977384c7cb7c9b (diff)
downloadscala-2627ab313f0d9f33e1b97e8aeda4447cf34bd27d.tar.gz
scala-2627ab313f0d9f33e1b97e8aeda4447cf34bd27d.tar.bz2
scala-2627ab313f0d9f33e1b97e8aeda4447cf34bd27d.zip
Separete index.js to parallelize downloads.
Diffstat (limited to 'src/compiler/scala/tools/nsc/doc/html/page')
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Index.scala70
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/IndexScript.scala68
2 files changed, 69 insertions, 69 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Index.scala b/src/compiler/scala/tools/nsc/doc/html/page/Index.scala
index 4fc10b2ec2..7203230084 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Index.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Index.scala
@@ -48,23 +48,7 @@ class Index(universe: doc.Universe, index: doc.Index) extends HtmlPage {
</div>
</body>
-
- def isExcluded(dtpl: DocTemplateEntity) = {
- val qname = dtpl.qualifiedName
- ( ( qname.startsWith("scala.Tuple") || qname.startsWith("scala.Product") ||
- qname.startsWith("scala.Function") || qname.startsWith("scala.runtime.AbstractFunction")
- ) && !(
- qname == "scala.Tuple1" || qname == "scala.Tuple2" ||
- qname == "scala.Product" || qname == "scala.Product1" || qname == "scala.Product2" ||
- qname == "scala.Function" || qname == "scala.Function1" || qname == "scala.Function2" ||
- qname == "scala.runtime.AbstractFunction0" || qname == "scala.runtime.AbstractFunction1" ||
- qname == "scala.runtime.AbstractFunction2"
- )
- )
- }
-
def browser =
- <xml:group>
<div id="browser" class="ui-layout-west">
<div class="ui-west-center">
<div id="filter"></div>
@@ -121,60 +105,8 @@ class Index(universe: doc.Universe, index: doc.Index) extends HtmlPage {
</xml:group>
}
packageElem(universe.rootPackage)
- }</div></div>{ scriptElement }
+ }</div></div><script src="index.js"></script>
</div>
- </xml:group>
-
- def mergeByQualifiedName(source: List[DocTemplateEntity]): Map[String, List[DocTemplateEntity]]= {
- var result = Map[String, List[DocTemplateEntity]]()
-
- for (t <- source) {
- val k = t.qualifiedName
- result += k -> (result.getOrElse(k, List()) :+ t)
- }
-
- result
- }
-
- def scriptElement = {
- val packages = allPackagesWithTemplates.toIterable.map(_ match {
- case (pack, templates) => {
- val merged = mergeByQualifiedName(templates)
-
- val ary = merged.keys.toList.sortBy(_.toLowerCase).map(key => {
- val pairs = merged(key).map(
- t => docEntityKindToString(t) -> relativeLinkTo(t)
- ) :+ ("name" -> key)
-
- JSONObject(scala.collection.immutable.Map(pairs : _*))
- })
-
- pack.qualifiedName -> JSONArray(ary)
- }
- }).toSeq
-
- val obj =
- JSONObject(scala.collection.immutable.Map(packages : _*)).toString()
-
- <script type="text/javascript">
- Index.PACKAGES = {scala.xml.Unparsed(obj)};
- </script>
- }
-
- def allPackagesWithTemplates: Map[Package, List[DocTemplateEntity]] = {
- Map(allPackages.map((key) => {
- key -> key.templates.filter(t => !t.isPackage && !isExcluded(t))
- }) : _*)
- }
-
- def allPackages: List[Package] = {
- def f(parent: Package): List[Package] = {
- parent.packages.flatMap(
- p => f(p) :+ p
- )
- }
- f(universe.rootPackage).sortBy(_.toString)
- }
def packageQualifiedName(ety: DocTemplateEntity): String =
if (ety.inTemplate.isPackage) ety.name else (packageQualifiedName(ety.inTemplate) + "." + ety.name)
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/IndexScript.scala b/src/compiler/scala/tools/nsc/doc/html/page/IndexScript.scala
new file mode 100644
index 0000000000..2cafe6caa3
--- /dev/null
+++ b/src/compiler/scala/tools/nsc/doc/html/page/IndexScript.scala
@@ -0,0 +1,68 @@
+package scala.tools.nsc.doc.html.page
+import scala.tools.nsc.doc
+import scala.tools.nsc.doc.model.{Package, DocTemplateEntity}
+import scala.tools.nsc.doc.html.{Page, HtmlFactory}
+import java.nio.channels.Channels
+import scala.util.parsing.json.{JSONObject, JSONArray}
+
+class IndexScript(universe: doc.Universe, index: doc.Index) extends Page {
+ def path = List("index.js")
+
+ override def writeFor(site: HtmlFactory): Unit = {
+ val stream = createFileOutputStream(site)
+ val writer = Channels.newWriter(stream.getChannel, site.encoding)
+ try {
+ writer.write("Index.PACKAGES = " + packages.toString() + ";")
+ }
+ finally {
+ writer.close
+ stream.close
+ }
+ }
+
+ val packages = {
+ val pairs = allPackagesWithTemplates.toIterable.map(_ match {
+ case (pack, templates) => {
+ val merged = mergeByQualifiedName(templates)
+
+ val ary = merged.keys.toList.sortBy(_.toLowerCase).map(key => {
+ val pairs = merged(key).map(
+ t => docEntityKindToString(t) -> relativeLinkTo(t)
+ ) :+ ("name" -> key)
+
+ JSONObject(scala.collection.immutable.Map(pairs : _*))
+ })
+
+ pack.qualifiedName -> JSONArray(ary)
+ }
+ }).toSeq
+
+ JSONObject(scala.collection.immutable.Map(pairs : _*))
+ }
+
+ def mergeByQualifiedName(source: List[DocTemplateEntity]) = {
+ var result = Map[String, List[DocTemplateEntity]]()
+
+ for (t <- source) {
+ val k = t.qualifiedName
+ result += k -> (result.getOrElse(k, List()) :+ t)
+ }
+
+ result
+ }
+
+ def allPackages = {
+ def f(parent: Package): List[Package] = {
+ parent.packages.flatMap(
+ p => f(p) :+ p
+ )
+ }
+ f(universe.rootPackage).sortBy(_.toString)
+ }
+
+ def allPackagesWithTemplates = {
+ Map(allPackages.map((key) => {
+ key -> key.templates.filter(t => !t.isPackage && !isExcluded(t))
+ }) : _*)
+ }
+}