From dcaa78cbce91eefe66f4cbcfc2c651a485d1a0da Mon Sep 17 00:00:00 2001 From: Felix Mulder Date: Tue, 31 Jan 2017 17:33:27 +0100 Subject: Make naked codeblocks default to Scala --- doc-tool/resources/css/dottydoc.css | 18 ++++++++++++++++++ .../tools/dottydoc/core/MiniPhaseTransform.scala | 2 +- .../staticsite/MarkdownCodeBlockVisitor.scala | 19 +++++++++++++++++++ .../src/dotty/tools/dottydoc/staticsite/Page.scala | 1 + 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 doc-tool/src/dotty/tools/dottydoc/staticsite/MarkdownCodeBlockVisitor.scala (limited to 'doc-tool') diff --git a/doc-tool/resources/css/dottydoc.css b/doc-tool/resources/css/dottydoc.css index 69089b2e4..7e7c501bf 100644 --- a/doc-tool/resources/css/dottydoc.css +++ b/doc-tool/resources/css/dottydoc.css @@ -47,6 +47,12 @@ div#doc-page-container > h5 { font-size: 1rem; } +div#entity-container h1 > a, +div#entity-container h2 > a, +div#entity-container h3 > a, +div#entity-container h4 > a, +div#entity-container h5 > a, +div#entity-container h6 > a, div#doc-page-container > h1 > a, div#doc-page-container > h2 > a, div#doc-page-container > h3 > a, @@ -57,6 +63,12 @@ div#doc-page-container > h6 > a { color: #373a3c; } +div#entity-container h1 > a:hover, +div#entity-container h2 > a:hover, +div#entity-container h3 > a:hover, +div#entity-container h4 > a:hover, +div#entity-container h5 > a:hover, +div#entity-container h6 > a:hover, div#doc-page-container > h1 > a:hover, div#doc-page-container > h2 > a:hover, div#doc-page-container > h3 > a:hover, @@ -66,6 +78,12 @@ div#doc-page-container > h6 > a:hover { text-decoration: underline; } +div#entity-container h1 > a:focus, +div#entity-container h2 > a:focus, +div#entity-container h3 > a:focus, +div#entity-container h4 > a:focus, +div#entity-container h5 > a:focus, +div#entity-container h6 > a:focus, div#doc-page-container > h1 > a:focus, div#doc-page-container > h2 > a:focus, div#doc-page-container > h3 > a:focus, diff --git a/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala b/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala index 4980cad92..1f30e089d 100644 --- a/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala +++ b/doc-tool/src/dotty/tools/dottydoc/core/MiniPhaseTransform.scala @@ -22,7 +22,7 @@ object transform { * * Create a `DocMiniPhase` which overrides the relevant method: * - * ```scala + * ``` * override def transformDef(implicit ctx: Context) = { * case x if shouldTransform(x) => x.copy(newValue = ...) * } diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/MarkdownCodeBlockVisitor.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/MarkdownCodeBlockVisitor.scala new file mode 100644 index 000000000..5aeffd0d5 --- /dev/null +++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/MarkdownCodeBlockVisitor.scala @@ -0,0 +1,19 @@ +package dotty.tools +package dottydoc +package staticsite + +import com.vladsch.flexmark.ast._ +import com.vladsch.flexmark.util.sequence.CharSubSequence + +object MarkdownCodeBlockVisitor { + def apply(node: Node): Unit = + new NodeVisitor( + new VisitHandler(classOf[FencedCodeBlock], new Visitor[FencedCodeBlock] { + override def visit(node: FencedCodeBlock): Unit = { + if (node.getOpeningMarker.length == 3) + node.setOpeningMarker(CharSubSequence.of("```scala")) + } + }) + ) + .visit(node) +} diff --git a/doc-tool/src/dotty/tools/dottydoc/staticsite/Page.scala b/doc-tool/src/dotty/tools/dottydoc/staticsite/Page.scala index b637caf38..f250cbb01 100644 --- a/doc-tool/src/dotty/tools/dottydoc/staticsite/Page.scala +++ b/doc-tool/src/dotty/tools/dottydoc/staticsite/Page.scala @@ -126,6 +126,7 @@ class MarkdownPage(fileContents: => String, val params: Map[String, AnyRef], val val md = Parser.builder(Site.markdownOptions).build.parse(_html) // fix markdown linking MarkdownLinkVisitor(md, docs, params) + MarkdownCodeBlockVisitor(md) _html = HtmlRenderer .builder(Site.markdownOptions) .escapeHtml(false) -- cgit v1.2.3