diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2016-01-08 23:20:04 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2016-02-17 08:25:29 +0100 |
commit | 7b07a78cc0831a08f2d39a259dec2454c7d4cc1e (patch) | |
tree | b90dd022688b5fec4a0a39fce2e4db9fb1aed5a7 /src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala | |
parent | c524f18ee4959f6fe8297971fc882e63468c4317 (diff) | |
download | scala-7b07a78cc0831a08f2d39a259dec2454c7d4cc1e.tar.gz scala-7b07a78cc0831a08f2d39a259dec2454c7d4cc1e.tar.bz2 scala-7b07a78cc0831a08f2d39a259dec2454c7d4cc1e.zip |
Scaladoc: Add new search, featuring entity and member search
This commit adds a revamped search function for the scaladoc tool. It
also contains a number of small fixes for HTML-layout and JavaScript
issues.
The search is implemented by enhancing the scheduler and using
JavaScript promises. List of changes/additions:
* Revamped search functionality
- Search members as well as entities
- Preserve keyboard navigation
- Scroll to selected entity if outside of viewport
- Non-blocking, cancelable
* Display of library name (top left)
* Refactored scheduler
* Cleanup of HTML layout
- Remove left pane
- Better mobile layout, no need for dynamic offsets
- Remove unused element classes
- Remove iframe structure
- Better layout for kinds
Diffstat (limited to 'src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala')
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala index 16a2fc59d4..0eb90d8942 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala @@ -26,6 +26,9 @@ abstract class HtmlPage extends Page { thisPage => /** The title of this page. */ protected def title: String + /** ScalaDoc reporter for error handling */ + protected def reporter: ScalaDocReporter + /** The page description */ protected def description: String = // unless overwritten, will display the title in a spaced format, keeping - and . @@ -48,7 +51,7 @@ abstract class HtmlPage extends Page { thisPage => <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> - <meta name="viewport" content="width=device-width, initial-scale=1"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>{ title }</title> <meta name="description" content={ description }/> <meta name="keywords" content={ keywords }/> @@ -281,7 +284,7 @@ abstract class HtmlPage extends Page { thisPage => } }</span> - def memberToUrl(template: Entity, isSelf: Boolean = true): String = { + private def memberToUrl(template: Entity, isSelf: Boolean = true): String = { val (signature: Option[String], containingTemplate: TemplateEntity) = template match { case dte: DocTemplateEntity if (!isSelf) => (Some(dte.signature), dte.inTemplate) case dte: DocTemplateEntity => (None, dte) @@ -289,12 +292,8 @@ abstract class HtmlPage extends Page { thisPage => case tpl => (None, tpl) } - def hashFromPath(templatePath: List[String]): String = - ((templatePath.head.replace(".html", "") :: templatePath.tail).reverse).mkString(".") - - val containingTemplatePath = templateToPath(containingTemplate) - val url = "../" * (containingTemplatePath.size - 1) + "index.html" - val hash = hashFromPath(containingTemplatePath) - s"$url#$hash" + signature.map("@" + _).getOrElse("") + val templatePath = templateToPath(containingTemplate) + val url = "../" * (templatePath.size - 1) + templatePath.reverse.mkString("/") + url + signature.map("#" + _).getOrElse("") } } |