diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Formats/HtmlFormatService.kt | 20 | ||||
-rw-r--r-- | src/Formats/MarkdownFormatService.kt | 6 | ||||
-rw-r--r-- | src/Formats/StructuredFormatService.kt | 9 | ||||
-rw-r--r-- | src/Kotlin/ContentBuilder.kt | 5 | ||||
-rw-r--r-- | src/Markdown/markdown.bnf | 4 | ||||
-rw-r--r-- | src/Model/Content.kt | 4 |
6 files changed, 34 insertions, 14 deletions
diff --git a/src/Formats/HtmlFormatService.kt b/src/Formats/HtmlFormatService.kt index 20cd4f83..c337b69b 100644 --- a/src/Formats/HtmlFormatService.kt +++ b/src/Formats/HtmlFormatService.kt @@ -20,15 +20,15 @@ public open class HtmlFormatService(locationService: LocationService, } override fun appendBlockCode(to: StringBuilder, line: String) { - to.appendln("<code>") - to.appendln(line) - to.appendln("</code>") + to.append("<pre><code>") + to.append(line) + to.append("</code></pre>") } override fun appendBlockCode(to: StringBuilder, lines: Iterable<String>) { - to.appendln("<code>") - to.appendln(lines.join("\n")) - to.appendln("</code>") + to.append("<pre><code>") + to.append(lines.join("\n")) + to.append("</code></pre>") } override fun appendHeader(to: StringBuilder, text: String, level: Int) { @@ -85,8 +85,12 @@ public open class HtmlFormatService(locationService: LocationService, return "<a href=\"${href}\">${text}</a>" } - override fun formatBold(text: String): String { - return "<b>${text}</b>" + override fun formatStrong(text: String): String { + return "<strong>${text}</strong>" + } + + override fun formatEmphasis(text: String): String { + return "<emph>${text}</emph>" } override fun formatCode(code: String): String { diff --git a/src/Formats/MarkdownFormatService.kt b/src/Formats/MarkdownFormatService.kt index a835a673..54298e2a 100644 --- a/src/Formats/MarkdownFormatService.kt +++ b/src/Formats/MarkdownFormatService.kt @@ -30,10 +30,14 @@ public open class MarkdownFormatService(locationService: LocationService, return "`$code`" } - override public fun formatBold(text: String): String { + override public fun formatStrong(text: String): String { return "**$text**" } + override fun formatEmphasis(text: String): String { + return "*$text*" + } + override public fun formatLink(text: String, location: Location): String { return "[$text](${location.path})" } diff --git a/src/Formats/StructuredFormatService.kt b/src/Formats/StructuredFormatService.kt index df11b835..75b51ab8 100644 --- a/src/Formats/StructuredFormatService.kt +++ b/src/Formats/StructuredFormatService.kt @@ -27,7 +27,8 @@ public abstract class StructuredFormatService(val locationService: LocationServi public abstract fun formatLink(text: String, location: Location): String public abstract fun formatLink(text: String, href: String): String public open fun formatLink(link: FormatLink): String = formatLink(formatText(link.text), link.location) - public abstract fun formatBold(text: String): String + public abstract fun formatStrong(text: String): String + public abstract fun formatEmphasis(text: String): String public abstract fun formatCode(code: String): String public abstract fun formatBreadcrumbs(items: Iterable<FormatLink>): String @@ -42,7 +43,9 @@ public abstract class StructuredFormatService(val locationService: LocationServi is ContentSymbol -> append(formatSymbol(content.text)) is ContentKeyword -> append(formatKeyword(content.text)) is ContentIdentifier -> append(formatIdentifier(content.text)) - is ContentEmphasis -> append(formatBold(formatText(location, content.children))) + is ContentStrong -> append(formatStrong(formatText(location, content.children))) + is ContentCode -> append(formatCode(formatText(location, content.children))) + is ContentEmphasis -> append(formatEmphasis(formatText(location, content.children))) is ContentNodeLink -> { val linkTo = locationService.relativeLocation(location, content.node, extension) val linkText = formatText(location, content.children) @@ -77,7 +80,7 @@ public abstract class StructuredFormatService(val locationService: LocationServi for ((label, section) in node.doc.sections) { if (label.startsWith("$")) continue - appendLine(to, formatBold(formatText(label))) + appendLine(to, formatStrong(formatText(label))) appendLine(to, formatText(location, section)) appendLine(to) } diff --git a/src/Kotlin/ContentBuilder.kt b/src/Kotlin/ContentBuilder.kt index b7290b58..9de3001a 100644 --- a/src/Kotlin/ContentBuilder.kt +++ b/src/Kotlin/ContentBuilder.kt @@ -39,6 +39,11 @@ public fun MarkdownTree.toContent(): Content { processChildren() parent.append(nodeStack.pop()) } + MarkdownElementTypes.CODE -> { + nodeStack.push(ContentCode()) + processChildren() + parent.append(nodeStack.pop()) + } MarkdownElementTypes.ANONYMOUS_SECTION -> { nodeStack.push(ContentSection("")) processChildren() diff --git a/src/Markdown/markdown.bnf b/src/Markdown/markdown.bnf index d6fd2ed2..d1cd305c 100644 --- a/src/Markdown/markdown.bnf +++ b/src/Markdown/markdown.bnf @@ -75,13 +75,15 @@ ListContinuationBlock ::= BlankLine* (Indent ListBlock)+ // ---- INLINES ---- private Inlines ::= (!EndLine Inline | EndLine &Inline )+ EndLine? -Inline ::= Strong | Emph | Link | PlainText +Inline ::= Strong | Emph | Code | Link | PlainText PlainText ::= (Word | Number | Space+)+ Emph ::= EmphStar | EmphUnderscore private EmphStar ::= '*' !Whitespace (!'*' Inline)+ '*' private EmphUnderscore ::= '_' !Whitespace (!'_' Inline)+ '_' +Code ::= '`' !Whitespace (!'`' Inline)+ '`' + Strong ::= StrongStar | StrongUnderscore StrongStar ::= '**' !Whitespace (!'**' Inline)+ '**' StrongUnderscore ::= '__' !Whitespace (!'__' Inline)+ '__' diff --git a/src/Model/Content.kt b/src/Model/Content.kt index ce438835..a3691fd0 100644 --- a/src/Model/Content.kt +++ b/src/Model/Content.kt @@ -23,10 +23,12 @@ public class ContentText(val text: String) : ContentNode() public class ContentKeyword(val text: String) : ContentNode() public class ContentIdentifier(val text: String) : ContentNode() public class ContentSymbol(val text: String) : ContentNode() + public class ContentEmphasis() : ContentBlock() +public class ContentStrong() : ContentBlock() +public class ContentCode() : ContentBlock() public class ContentNodeLink(val node : DocumentationNode) : ContentBlock() public class ContentExternalLink(val href : String) : ContentBlock() -public class ContentStrong() : ContentBlock() public class ContentList() : ContentBlock() public class ContentSection(public val label: String) : ContentBlock() |