aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Formats/HtmlFormatService.kt4
-rw-r--r--src/Formats/MarkdownFormatService.kt2
-rw-r--r--src/Formats/StructuredFormatService.kt15
-rw-r--r--test/data/format/classWithClassObject.html44
-rw-r--r--test/data/format/classWithClassObject.md29
-rw-r--r--test/src/TestAPI.kt7
-rw-r--r--test/src/format/HtmlFormatTest.kt15
-rw-r--r--test/src/format/MarkdownFormatTest.kt4
8 files changed, 79 insertions, 41 deletions
diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt
index 48291b48..b23e4a45 100644
--- a/src/Formats/HtmlFormatService.kt
+++ b/src/Formats/HtmlFormatService.kt
@@ -35,7 +35,7 @@ public open class HtmlFormatService(locationService: LocationService,
to.appendln("<h$level>${text}</h$level>")
}
- override fun appendText(to: StringBuilder, text: String) {
+ override fun appendParagraph(to: StringBuilder, text: String) {
to.appendln("<p>${text}</p>")
}
@@ -94,7 +94,7 @@ public open class HtmlFormatService(locationService: LocationService,
}
override fun formatCode(code: String): String {
- return "<code>${code.htmlEscape()}</code>"
+ return "<code>${code}</code>"
}
override fun formatList(text: String): String {
diff --git a/src/Formats/MarkdownFormatService.kt b/src/Formats/MarkdownFormatService.kt
index 9849c674..96f64eec 100644
--- a/src/Formats/MarkdownFormatService.kt
+++ b/src/Formats/MarkdownFormatService.kt
@@ -62,7 +62,7 @@ public open class MarkdownFormatService(locationService: LocationService,
to.appendln(text)
}
- override public fun appendText(to: StringBuilder, text: String) {
+ override public fun appendParagraph(to: StringBuilder, text: String) {
to.appendln()
to.appendln(text)
to.appendln()
diff --git a/src/Formats/StructuredFormatService.kt b/src/Formats/StructuredFormatService.kt
index 60d5b7f1..2131d65d 100644
--- a/src/Formats/StructuredFormatService.kt
+++ b/src/Formats/StructuredFormatService.kt
@@ -10,7 +10,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
abstract public fun appendBlockCode(to: StringBuilder, line: String)
abstract public fun appendBlockCode(to: StringBuilder, lines: Iterable<String>)
abstract public fun appendHeader(to: StringBuilder, text: String, level: Int = 1)
- abstract public fun appendText(to: StringBuilder, text: String)
+ abstract public fun appendParagraph(to: StringBuilder, text: String)
abstract public fun appendLine(to: StringBuilder, text: String)
public abstract fun appendLine(to: StringBuilder)
@@ -41,7 +41,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
open fun formatText(location: Location, content: ContentNode): String {
return StringBuilder {
when (content) {
- is ContentText -> append(content.text)
+ is ContentText -> append(formatText(content.text))
is ContentSymbol -> append(formatSymbol(content.text))
is ContentKeyword -> append(formatKeyword(content.text))
is ContentIdentifier -> append(formatIdentifier(content.text))
@@ -61,7 +61,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi
append(formatLink(linkText, content.href))
}
is ContentParagraph -> {
- appendText(this, formatText(location, content.children))
+ appendParagraph(this, formatText(location, content.children))
}
is ContentBlockCode -> {
appendBlockCode(this, formatText(location, content.children))
@@ -143,17 +143,20 @@ public abstract class StructuredFormatService(val locationService: LocationServi
for ((memberLocation, members) in membersMap) {
appendTableRow(to) {
appendTableCell(to) {
- appendText(to, formatLink(memberLocation))
+ to.append(formatLink(memberLocation))
}
appendTableCell(to) {
val breakdownBySummary = members.groupBy { formatText(location, it.summary) }
for ((summary, items) in breakdownBySummary) {
for (signature in items) {
- appendBlockCode(to, formatText(location, languageService.render(signature)))
+ val signature = languageService.render(signature)
+ val signatureAsCode = ContentCode()
+ signatureAsCode.append(signature)
+ to.append(formatText(location, signatureAsCode))
}
if (!summary.isEmpty()) {
- appendText(to, summary)
+ to.append(summary)
}
}
}
diff --git a/test/data/format/classWithClassObject.html b/test/data/format/classWithClassObject.html
new file mode 100644
index 00000000..79546418
--- /dev/null
+++ b/test/data/format/classWithClassObject.html
@@ -0,0 +1,44 @@
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+<a href="out.html">test</a>&nbsp;/&nbsp;<a href="out.html"></a>&nbsp;/&nbsp;<a href="out.html">Klass</a><br/>
+<br/>
+<h1>Klass</h1>
+<pre><code><span class="keyword">class </span><span class="identifier">Klass</span></code></pre><br/>
+<br/>
+<h3>Constructors</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<a href="out.html">&lt;init&gt;</a></td>
+<td>
+<code><span class="keyword">public</span> <span class="identifier">Klass</span><span class="symbol">(</span><span class="symbol">)</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Class Object Properties</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<a href="out.html">x</a></td>
+<td>
+<code><span class="keyword">val </span><span class="identifier">x</span><span class="symbol">: </span><span class="identifier">Int</span></code></td>
+</tr>
+</tbody>
+</table>
+<h3>Class Object Functions</h3>
+<table>
+<tbody>
+<tr>
+<td>
+<a href="out.html">foo</a></td>
+<td>
+<code><span class="keyword">fun </span><span class="identifier">foo</span><span class="symbol">(</span><span class="symbol">)</span><span class="symbol">: </span><span class="identifier">Unit</span></code></td>
+</tr>
+</tbody>
+</table>
+</BODY>
+</HTML>
diff --git a/test/data/format/classWithClassObject.md b/test/data/format/classWithClassObject.md
index 10cac365..f694a76f 100644
--- a/test/data/format/classWithClassObject.md
+++ b/test/data/format/classWithClassObject.md
@@ -14,40 +14,17 @@ class Klass
### Constructors
-|
-[&lt;init&gt;](out.md)
-
- |
-```
-public Klass()
-```
-
- |
+| [&lt;init&gt;](out.md) | `public Klass()` |
### Class Object Properties
-|
-[x](out.md)
-
- |
-```
-val x: Int
-```
-
- |
+| [x](out.md) | `val x: Int` |
### Class Object Functions
-|
-[foo](out.md)
-
- |
-```
-fun foo(): Unit
-```
+| [foo](out.md) | `fun foo(): Unit` |
- |
diff --git a/test/src/TestAPI.kt b/test/src/TestAPI.kt
index 6f4e34c2..cc09f001 100644
--- a/test/src/TestAPI.kt
+++ b/test/src/TestAPI.kt
@@ -51,13 +51,12 @@ public fun verifyModel(vararg files: String, verifier: (DocumentationModule) ->
Disposer.dispose(environment)
}
-public fun verifyOutput(path: String, outputGenerator: (DocumentationModule, StringBuilder) -> Unit) {
+public fun verifyOutput(path: String, outputExtension: String, outputGenerator: (DocumentationModule, StringBuilder) -> Unit) {
verifyModel(path) {
val output = StringBuilder()
outputGenerator(it, output)
- val trimmedOutput = output.toString().split('\n').map { it.trimTrailing() }.join("\n")
- val expectedOutput = File(path.replace(".kt", ".md")).readText()
- assertEquals(expectedOutput.trimTrailing(), trimmedOutput)
+ val expectedOutput = File(path.replace(".kt", outputExtension)).readText()
+ assertEquals(expectedOutput, output.toString())
}
}
diff --git a/test/src/format/HtmlFormatTest.kt b/test/src/format/HtmlFormatTest.kt
new file mode 100644
index 00000000..758c6e7b
--- /dev/null
+++ b/test/src/format/HtmlFormatTest.kt
@@ -0,0 +1,15 @@
+package org.jetbrains.dokka.tests
+
+import org.jetbrains.dokka.KotlinLanguageService
+import org.junit.Test
+import org.jetbrains.dokka.HtmlFormatService
+
+public class HtmlFormatTest {
+ private val htmlService = HtmlFormatService(InMemoryLocationService, KotlinLanguageService())
+
+ Test fun classWithClassObject() {
+ verifyOutput("test/data/format/classWithClassObject.kt", ".html") { model, output ->
+ htmlService.appendNodes(tempLocation, output, model.members.single().members)
+ }
+ }
+}
diff --git a/test/src/format/MarkdownFormatTest.kt b/test/src/format/MarkdownFormatTest.kt
index ea501c53..5cdfb8b5 100644
--- a/test/src/format/MarkdownFormatTest.kt
+++ b/test/src/format/MarkdownFormatTest.kt
@@ -9,13 +9,13 @@ public class MarkdownFormatTest {
private val markdownService = MarkdownFormatService(InMemoryLocationService, KotlinLanguageService())
Test fun emptyDescription() {
- verifyOutput("test/data/format/emptyDescription.kt") { model, output ->
+ verifyOutput("test/data/format/emptyDescription.kt", ".md") { model, output ->
markdownService.appendNodes(tempLocation, output, model.members.single().members)
}
}
Test fun classWithClassObject() {
- verifyOutput("test/data/format/classWithClassObject.kt") { model, output ->
+ verifyOutput("test/data/format/classWithClassObject.kt", ".md") { model, output ->
markdownService.appendNodes(tempLocation, output, model.members.single().members)
}
}