blob: 032667dd901b71f0e36942b43b6c4509770eb800 [file] [log] [blame]
Ilya Ryzhenkova0bfdbd2014-07-14 15:00:33 +04001package org.jetbrains.dokka
2
3public class MarkdownFormatService(val locationService: LocationService,
4 val signatureGenerator: SignatureGenerator) : FormatService {
5 override val extension: String = "md"
6 override fun format(node: DocumentationNode, to: StringBuilder) {
7 with (to) {
8 appendln(node.path.map { "[${it.name}](${locationService.relativeLocation(node, it, extension)})" }.joinToString(" / "))
9 appendln()
10 append("# ")
11 appendln(signatureGenerator.render(node))
12 appendln()
13 appendln(node.doc.summary)
14 appendln()
15 for (section in node.doc.sections) {
16 append("### ")
17 appendln(section.label)
18 appendln(section.text)
19 }
20
21
22 appendln("### Members")
23 appendln("| Name | Signature | Summary |")
24 appendln("|------|-----------|---------|")
25 for (member in node.members.sortBy { it.name }) {
26 val relativePath = locationService.relativeLocation(node, member, extension)
27 append("|[${member.name}](${relativePath})")
28 append("|${signatureGenerator.render(member)}")
29 append("|${member.doc.summary} ")
30 appendln("|")
31 }
32 }
33 }
34}