summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2009-11-26 14:13:15 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2009-11-26 14:13:15 +0000
commit6f70a9f61c3e4e540dd4a6d1afebe3578501a8dd (patch)
tree43f416d168ec750f6926e4b2904ed5d5e6fe867a /src
parent7aa5ecea0baf51289fa27e0edf6f9d3eed07aa8d (diff)
downloadscala-6f70a9f61c3e4e540dd4a6d1afebe3578501a8dd.tar.gz
scala-6f70a9f61c3e4e540dd4a6d1afebe3578501a8dd.tar.bz2
scala-6f70a9f61c3e4e540dd4a6d1afebe3578501a8dd.zip
Fixed some Scaladoc issues: dangerous character...
Fixed some Scaladoc issues: dangerous characters in file names are encoded, each owner template is a link, type bounds are printed as "<:" and ">:".
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/doc/TODO.txt19
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala18
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala12
3 files changed, 21 insertions, 28 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/TODO.txt b/src/compiler/scala/tools/nsc/doc/TODO.txt
deleted file mode 100644
index dbdca88eb5..0000000000
--- a/src/compiler/scala/tools/nsc/doc/TODO.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-= TODO in Scaladoc =
-
-== Model extractor ==
-
-
-
-== Parser ==
-
- * Report more than one error per Scaladoc comment. This is caused by the reporter being used, and the fact that all errors are positioned on the documented symbol.
- * Maintain position information, and use it in error messages (currently all positions are on symbol being documented)
- * Parse wiki list syntax
- * Parse wiki table syntax
- * Parse URL links
- * Parse symbol (class or method) links
-
-== HTML generator ==
-
-
- \ No newline at end of file
diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
index 8773c0f2c0..48073f8e59 100644
--- a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
@@ -10,9 +10,11 @@ package html
import model._
import comment._
-import java.io.File
-import scala.xml.dtd.{DocType, PublicID}
import xml.{Unparsed, XML, NodeSeq}
+import xml.dtd.{DocType, PublicID}
+import scala.collection._
+import scala.util.NameTransformer
+import java.io.File
/** An html page that is part of a Scaladoc site.
* @author David Bernard
@@ -37,7 +39,7 @@ abstract class HtmlPage { thisPage =>
* also defined by the generator.
* @param generator The generator that is writing this page. */
def writeFor(site: SiteFactory): Unit = {
- val pageFile = new File(site.siteRoot, thisPage.path.reverse.mkString("/"))
+ val pageFile = new File(site.siteRoot, absoluteLinkTo(thisPage.path))
val pageFolder = pageFile.getParentFile
if (!pageFolder.exists) pageFolder.mkdirs()
val doctype =
@@ -56,16 +58,16 @@ abstract class HtmlPage { thisPage =>
}
def templateToPath(tpl: TemplateEntity): List[String] = {
+ def doName(tpl: TemplateEntity): String =
+ NameTransformer.encode(tpl.name) + (if (tpl.isObject) "$" else "")
def downPacks(pack: Package): List[String] =
- if (pack.isRootPackage) Nil else (pack.name :: downPacks(pack.inTemplate))
+ if (pack.isRootPackage) Nil else (doName(pack) :: downPacks(pack.inTemplate))
def downInner(nme: String, tpl: TemplateEntity): (String, Package) = {
tpl.inTemplate match {
case inPkg: Package => (nme + ".html", inPkg)
case inTpl => downInner(doName(inTpl) + "$" + nme, inTpl)
}
}
- def doName(tpl: TemplateEntity): String =
- tpl.name + (if (tpl.isObject) "$" else "")
val (file, pack) =
tpl match {
case p: Package => ("package.html", p)
@@ -97,6 +99,10 @@ abstract class HtmlPage { thisPage =>
relativize(thisPage.path.reverse, destPath.reverse).mkString("/")
}
+ def absoluteLinkTo(destPath: List[String]): String = {
+ destPath.reverse.mkString("/")
+ }
+
/** Transforms an optional comment into an styled HTML tree representing its body if it is defined, or into an empty
* node sequence if it is not. */
def commentToHtml(comment: Option[Comment]): NodeSeq =
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
index 8dd46952da..47f2d4abed 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
@@ -42,8 +42,14 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
val body =
<body class={ if (tpl.isTrait || tpl.isClass) "type" else "value" }>
- { if (tpl.isRootPackage || tpl.inTemplate.isRootPackage) NodeSeq.Empty
- else <p id="owner">{ tpl.inTemplate.qualifiedName }</p>
+ { def ownerLinks(otl: DocTemplateEntity): NodeSeq =
+ if (otl.inTemplate.isRootPackage)
+ <a href={ relativeLinkTo(otl) }>{ otl.name }</a>
+ else ownerLinks(otl.inTemplate) ++ <xml:group>.<a href={ relativeLinkTo(otl) }>{ otl.name }</a></xml:group>
+ if (tpl.isRootPackage || tpl.inTemplate.isRootPackage)
+ NodeSeq.Empty
+ else
+ <p id="owner">{ ownerLinks(tpl.inTemplate) }</p>
}
<div id="definition">
@@ -136,7 +142,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
case None => ""
case Some(tpe) => pre + typeToHtml(tpe)
}
- bound0(hi, " ⊲ ") + bound0(lo, " ⊳ ")
+ bound0(hi, " <: ") + bound0(lo, " >: ")
}
/** name, tparams, params, result */