From 866e364dde76aa5df42548bf72d2f5c4d200535b Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Tue, 24 Jan 2017 17:35:53 +0100 Subject: Document dottydoc capabilities, add anchored headers --- doc-tool/resources/_layouts/api-page.html | 2 +- doc-tool/resources/_layouts/blog-page.html | 28 ++++++++++++ doc-tool/resources/_layouts/blog.html | 28 ------------ doc-tool/resources/_layouts/doc-page.html | 2 +- doc-tool/resources/_layouts/doc.html | 49 --------------------- doc-tool/resources/_layouts/sidebar.html | 49 +++++++++++++++++++++ doc-tool/resources/css/dottydoc.css | 51 +++++++++++++++++++++- .../dotty/tools/dottydoc/staticsite/BlogPost.scala | 11 +++-- .../src/dotty/tools/dottydoc/staticsite/Site.scala | 6 ++- .../tools/dottydoc/staticsite/SiteTests.scala | 2 +- 10 files changed, 142 insertions(+), 86 deletions(-) create mode 100644 doc-tool/resources/_layouts/blog-page.html delete mode 100644 doc-tool/resources/_layouts/blog.html delete mode 100644 doc-tool/resources/_layouts/doc.html create mode 100644 doc-tool/resources/_layouts/sidebar.html (limited to 'doc-tool') diff --git a/doc-tool/resources/_layouts/api-page.html b/doc-tool/resources/_layouts/api-page.html index 0e39f9d91..f45a8bab4 100644 --- a/doc-tool/resources/_layouts/api-page.html +++ b/doc-tool/resources/_layouts/api-page.html @@ -1,5 +1,5 @@ --- -layout: doc +layout: sidebar extraCSS: - css/api-page.css --- diff --git a/doc-tool/resources/_layouts/blog-page.html b/doc-tool/resources/_layouts/blog-page.html new file mode 100644 index 000000000..b99a16b9c --- /dev/null +++ b/doc-tool/resources/_layouts/blog-page.html @@ -0,0 +1,28 @@ +--- +layout: sidebar +--- + +
+

+ {{ page.date | date: '%B %d, %Y' }} +

+

{{ page.title }}

+ {% if page.subTitle %} +

{{ page.subTitle }}

+ {% endif %} +
+ +
+ {{ content }} +
+ +{% if page.author %} +
+ {% if page.authorImg %} + + {% endif %} + + {% if page.authorImg == null %}- {% endif %}{{ page.author }} + +
+{% endif %} diff --git a/doc-tool/resources/_layouts/blog.html b/doc-tool/resources/_layouts/blog.html deleted file mode 100644 index d7a08414a..000000000 --- a/doc-tool/resources/_layouts/blog.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -layout: doc ---- - -
-

- {{ page.date | date: '%B %d, %Y' }} -

-

{{ page.title }}

- {% if page.subTitle %} -

{{ page.subTitle }}

- {% endif %} -
- -
- {{ content }} -
- -{% if page.author %} -
- {% if page.authorImg %} - - {% endif %} - - {% if page.authorImg == null %}- {% endif %}{{ page.author }} - -
-{% endif %} diff --git a/doc-tool/resources/_layouts/doc-page.html b/doc-tool/resources/_layouts/doc-page.html index 876e90c95..14220aef7 100644 --- a/doc-tool/resources/_layouts/doc-page.html +++ b/doc-tool/resources/_layouts/doc-page.html @@ -1,5 +1,5 @@ --- -layout: doc +layout: sidebar ---

{{ page.title }}

diff --git a/doc-tool/resources/_layouts/doc.html b/doc-tool/resources/_layouts/doc.html deleted file mode 100644 index b3947c884..000000000 --- a/doc-tool/resources/_layouts/doc.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: main ---- - -
-
- {% include "toc" %} -
    - {% if docs.size > 0 %} -
  • - API -
  • - {% endif %} - {% for pkg in docs %} -
  • - {{ pkg.name }} -
  • - {% for member in pkg.children %} - {% if member.kind == "object" and member.hasCompanion %} - {% elsif member.kind != "package" %} -
  • -
    - {% if member.hasCompanion %} - O - {% endif %} - {{ member.kind | first | capitalize }} -
    - {{ member.name }} -
  • - {% endif %} - {% endfor %} - {% endfor %} -
-
-
- - {{ content }} -
-
- - - diff --git a/doc-tool/resources/_layouts/sidebar.html b/doc-tool/resources/_layouts/sidebar.html new file mode 100644 index 000000000..b3947c884 --- /dev/null +++ b/doc-tool/resources/_layouts/sidebar.html @@ -0,0 +1,49 @@ +--- +layout: main +--- + +
+
+ {% include "toc" %} +
    + {% if docs.size > 0 %} +
  • + API +
  • + {% endif %} + {% for pkg in docs %} +
  • + {{ pkg.name }} +
  • + {% for member in pkg.children %} + {% if member.kind == "object" and member.hasCompanion %} + {% elsif member.kind != "package" %} +
  • +
    + {% if member.hasCompanion %} + O + {% endif %} + {{ member.kind | first | capitalize }} +
    + {{ member.name }} +
  • + {% endif %} + {% endfor %} + {% endfor %} +
+
+
+ + {{ content }} +
+
+ + + diff --git a/doc-tool/resources/css/dottydoc.css b/doc-tool/resources/css/dottydoc.css index aa197de07..54f74b66f 100644 --- a/doc-tool/resources/css/dottydoc.css +++ b/doc-tool/resources/css/dottydoc.css @@ -26,6 +26,55 @@ div.index-wrapper { overflow-x: hidden; } +div#doc-page-container > h1 { + border-bottom: 1px solid #eee; + padding-bottom: 0.3em; +} + +div#doc-page-container > h1 { + margin: 3rem 0 0.5rem 0; +} + +div#doc-page-container > h3 { + font-size: 1.5rem; +} + +div#doc-page-container > h4 { + font-size: 1.25rem; +} + +div#doc-page-container > h5 { + font-size: 1rem; +} + +div#doc-page-container > h1 > a, +div#doc-page-container > h2 > a, +div#doc-page-container > h3 > a, +div#doc-page-container > h4 > a, +div#doc-page-container > h5 > a, +div#doc-page-container > h6 > a { + text-decoration: none; + color: #373a3c; +} + +div#doc-page-container > h1 > a:hover, +div#doc-page-container > h2 > a:hover, +div#doc-page-container > h3 > a:hover, +div#doc-page-container > h4 > a:hover, +div#doc-page-container > h5 > a:hover, +div#doc-page-container > h6 > a:hover { + text-decoration: underline; +} + +div#doc-page-container > h1 > a:focus, +div#doc-page-container > h2 > a:focus, +div#doc-page-container > h3 > a:focus, +div#doc-page-container > h4 > a:focus, +div#doc-page-container > h5 > a:focus, +div#doc-page-container > h6 > a:focus { + outline: none; +} + div#content-body { border-left: 1px solid #e0e0e0; box-shadow: -3px 0px 5px -2px rgba(0,0,0,0.14); @@ -232,7 +281,7 @@ div#doc-page-container { } div#doc-page-container > p + h1 { - margin-bottom: 40px; + margin-bottom: 20px; } div#post-footer > img#author-image { diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/BlogPost.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/BlogPost.scala index 4683ed5f9..f68157e40 100644 --- a/doc-tool/src/dotty/tools/dottydoc/staticsite/BlogPost.scala +++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/BlogPost.scala @@ -9,17 +9,22 @@ import dotc.config.Printers.dottydoc import MapOperations._ +/** + * A `BlogPost` represents the parsed posts from `./blog/_posts/` + * each post must be named according to the format + * `YYYY-MM-DD-title.{md,html}` + */ class BlogPost( val title: String, val url: String, val date: String, val content: String, firstParagraph: String, - val excerptSep: Option[String], + val excerpt_separator: Option[String], val categories: JList[String] ) { import scala.collection.JavaConverters._ - lazy val excerpt: String = excerptSep match { + lazy val excerpt: String = excerpt_separator match { case Some(str) => content.split(str).head case _ => firstParagraph } @@ -29,7 +34,7 @@ class BlogPost( "date" -> date, "url" -> url, "excerpt" -> excerpt, - "excerpt_separator" -> excerptSep.getOrElse(""), + "excerpt_separator" -> excerpt_separator.getOrElse(""), "content" -> content, "categories" -> categories ).asJava diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala index ace52725d..895668df2 100644 --- a/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala +++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/Site.scala @@ -17,6 +17,7 @@ import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension import com.vladsch.flexmark.ext.emoji.EmojiExtension import com.vladsch.flexmark.ext.autolink.AutolinkExtension +import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension import com.vladsch.flexmark.ext.front.matter.YamlFrontMatterExtension import com.vladsch.flexmark.util.options.{ DataHolder, MutableDataSet } @@ -292,10 +293,10 @@ case class Site(val root: JFile, val projectTitle: String, val documentation: Ma val defaultLayouts: Map[String, String] = Map( "main" -> "/_layouts/main.html", - "doc" -> "/_layouts/doc.html", + "sidebar" -> "/_layouts/sidebar.html", "doc-page" -> "/_layouts/doc-page.html", "api-page" -> "/_layouts/api-page.html", - "blog" -> "/_layouts/blog.html", + "blog-page" -> "/_layouts/blog-page.html", "index" -> "/_layouts/index.html" ).mapValues(getResource) @@ -362,6 +363,7 @@ object Site { TablesExtension.create(), TaskListExtension.create(), AutolinkExtension.create(), + AnchorLinkExtension.create(), EmojiExtension.create(), YamlFrontMatterExtension.create(), StrikethroughExtension.create() diff --git a/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala b/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala index bb24eb9fb..ba431a5c9 100644 --- a/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala +++ b/doc-tool/test/dotty/tools/dottydoc/staticsite/SiteTests.scala @@ -19,7 +19,7 @@ class SiteTests extends DottyDocTest { assert(site.root.exists && site.root.isDirectory, s"'${site.root.getName}' is not a directory") - val expectedLayouts = Set("main", "index", "blog", "doc", "doc-page", "api-page") + val expectedLayouts = Set("main", "index", "sidebar", "blog-page", "doc-page", "api-page") assert(site.layouts.keys == expectedLayouts, s"Incorrect layouts in: ${site.layouts.keys}, expected: $expectedLayouts") } -- cgit v1.2.3