diff options
author | Pedro Furlanetto <pedrofurla@gmail.com> | 2010-09-16 04:55:45 +0000 |
---|---|---|
committer | Pedro Furlanetto <pedrofurla@gmail.com> | 2010-09-16 04:55:45 +0000 |
commit | e57245492c143186033a7ffa9555988338f5f509 (patch) | |
tree | 65a0b93b97ceeef8abae2956aaded94ff27586de /src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala | |
parent | 18a4de80a9f73b279528262e51f530d879efd5d9 (diff) | |
download | scala-e57245492c143186033a7ffa9555988338f5f509.tar.gz scala-e57245492c143186033a7ffa9555988338f5f509.tar.bz2 scala-e57245492c143186033a7ffa9555988338f5f509.zip |
Adds a reference index to the documentation.
Currently there is no link from the main index but can be viewed by
replacing 'index.html' with 'index/index-a.html' in the browser address
bar.
Review by dubochet.
Diffstat (limited to 'src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala')
-rwxr-xr-x | src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala b/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala new file mode 100755 index 0000000000..124b6852ba --- /dev/null +++ b/src/compiler/scala/tools/nsc/doc/html/page/ReferenceIndex.scala @@ -0,0 +1,54 @@ +/* NSC -- new Scala compiler + * Copyright 2007-2010 LAMP/EPFL + * @author Pedro Furlanetto + */ + +package scala.tools.nsc +package doc +package html +package page + + +class ReferenceIndex(letter: Char, indexModel: model.IndexModelFactory#IndexModel, universe: Universe) extends HtmlPage { + + def path = List("index-"+letter+".html","index") + + def title = { + val s = universe.settings + ( if (!s.doctitle.isDefault) s.doctitle.value else "" ) + + ( if (!s.docversion.isDefault) (" " + s.docversion.value) else "" ) + } + + def headers = + <xml:group> + <link href={ relativeLinkTo(List("ref-index.css", "lib")) } media="screen" type="text/css" rel="stylesheet"/> + <script type="text/javascript" src={ relativeLinkTo{List("jquery.js", "lib")} }></script> + </xml:group> + val groupedMembers = indexModel(letter) + def indexLinks = + <div class="letters"> + { for(l <- indexModel.keySet.toList.sortBy( _.toString )) yield { // TODO there should be a better way to do that + val ch = if(l=='#') "%23" else l // url encoding if needed + ( if(letter != l) + <span><a href={"index-"+ch+".html"}>{l.toUpper}</a></span> + else + xml.Text(l.toUpper.toString) ) ++ xml.Text(" | ") + } } + </div> + + def body = + <body> + { indexLinks } + { for(groups <- groupedMembers) yield { + <div class="entry"> + <div class="name">{ groups._1 }</div> + <div class="occurrences"> + { for(owner <- groups._2.view) yield { + templateToHtml(owner) ++ xml.Text(" ") + } } + </div> + </div> + } } + </body> + +} |