Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo Dos Santos2014-08-07 23:53:47 +0000
committerLeo Dos Santos2014-08-12 20:39:43 +0000
commite5b14a9639061074fa3d3b49478d8f84d13bc98b (patch)
treec6cdf2fdcbe1930af6c9fa03a757552477bdf7ef
parent4b6fa5e88d0757e3c2318d04156b3df570c3a2f4 (diff)
downloadorg.eclipse.mylyn.docs-e5b14a9639061074fa3d3b49478d8f84d13bc98b.tar.gz
org.eclipse.mylyn.docs-e5b14a9639061074fa3d3b49478d8f84d13bc98b.tar.xz
org.eclipse.mylyn.docs-e5b14a9639061074fa3d3b49478d8f84d13bc98b.zip
440935: MarkdownDocumentBuilder - emphasis support
Change-Id: I0108b7e49c961939fde2dde495500193ef97f20c Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=440935 Signed-off-by: Leo Dos Santos <leo.dos.santos@tasktop.com>
-rw-r--r--org.eclipse.mylyn.wikitext.markdown.core/src/org/eclipse/mylyn/internal/wikitext/markdown/core/MarkdownDocumentBuilder.java12
-rw-r--r--org.eclipse.mylyn.wikitext.markdown.tests/src/org/eclipse/mylyn/internal/wikitext/markdown/tests/MarkdownDocumentBuilderTest.java88
2 files changed, 99 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.wikitext.markdown.core/src/org/eclipse/mylyn/internal/wikitext/markdown/core/MarkdownDocumentBuilder.java b/org.eclipse.mylyn.wikitext.markdown.core/src/org/eclipse/mylyn/internal/wikitext/markdown/core/MarkdownDocumentBuilder.java
index 0324ec08f..be40a8837 100644
--- a/org.eclipse.mylyn.wikitext.markdown.core/src/org/eclipse/mylyn/internal/wikitext/markdown/core/MarkdownDocumentBuilder.java
+++ b/org.eclipse.mylyn.wikitext.markdown.core/src/org/eclipse/mylyn/internal/wikitext/markdown/core/MarkdownDocumentBuilder.java
@@ -119,7 +119,17 @@ public class MarkdownDocumentBuilder extends AbstractMarkupDocumentBuilder {
@Override
protected Block computeSpan(SpanType type, Attributes attributes) {
- throw new UnsupportedOperationException();
+ switch (type) {
+ case ITALIC:
+ case EMPHASIS:
+ return new ContentBlock("*", "*"); //$NON-NLS-1$ //$NON-NLS-2$
+ case BOLD:
+ case STRONG:
+ return new ContentBlock("**", "**"); //$NON-NLS-1$ //$NON-NLS-2$
+ default:
+ Logger.getLogger(getClass().getName()).warning("Unexpected block type: " + type); //$NON-NLS-1$
+ return new ContentBlock("", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
}
@Override
diff --git a/org.eclipse.mylyn.wikitext.markdown.tests/src/org/eclipse/mylyn/internal/wikitext/markdown/tests/MarkdownDocumentBuilderTest.java b/org.eclipse.mylyn.wikitext.markdown.tests/src/org/eclipse/mylyn/internal/wikitext/markdown/tests/MarkdownDocumentBuilderTest.java
index 33c10733e..498e36123 100644
--- a/org.eclipse.mylyn.wikitext.markdown.tests/src/org/eclipse/mylyn/internal/wikitext/markdown/tests/MarkdownDocumentBuilderTest.java
+++ b/org.eclipse.mylyn.wikitext.markdown.tests/src/org/eclipse/mylyn/internal/wikitext/markdown/tests/MarkdownDocumentBuilderTest.java
@@ -19,6 +19,7 @@ import org.eclipse.mylyn.internal.wikitext.markdown.core.MarkdownDocumentBuilder
import org.eclipse.mylyn.wikitext.core.parser.Attributes;
import org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder;
import org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder.BlockType;
+import org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder.SpanType;
import org.eclipse.mylyn.wikitext.tests.TestUtil;
/**
@@ -56,6 +57,22 @@ public class MarkdownDocumentBuilderTest extends TestCase {
assertMarkup("A paragraph ends when a blank line begins!\n\n");
}
+ public void testParagraphWithStrongEmphasis() {
+ builder.beginDocument();
+ builder.beginBlock(BlockType.PARAGRAPH, new Attributes());
+ builder.characters("some ");
+ builder.beginSpan(SpanType.STRONG, new Attributes());
+ builder.characters("strong");
+ builder.endSpan();
+ builder.characters(" and ");
+ builder.beginSpan(SpanType.EMPHASIS, new Attributes());
+ builder.characters("emphasis");
+ builder.endSpan();
+ builder.endBlock();
+ builder.endDocument();
+ assertMarkup("some **strong** and *emphasis*\n\n");
+ }
+
public void testImplicitParagraph() {
builder.beginDocument();
builder.characters("text1");
@@ -67,6 +84,20 @@ public class MarkdownDocumentBuilderTest extends TestCase {
assertMarkup("text1\n\ntext2\n\ntext3\n\n");
}
+ public void testImplicitParagraphWithStrongEmphasis() {
+ builder.beginDocument();
+ builder.characters("some ");
+ builder.beginSpan(SpanType.STRONG, new Attributes());
+ builder.characters("strong");
+ builder.endSpan();
+ builder.characters(" and ");
+ builder.beginSpan(SpanType.EMPHASIS, new Attributes());
+ builder.characters("emphasis");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("some **strong** and *emphasis*\n\n");
+ }
+
public void testLineBreak() {
builder.beginDocument();
builder.beginBlock(BlockType.PARAGRAPH, new Attributes());
@@ -102,6 +133,63 @@ public class MarkdownDocumentBuilderTest extends TestCase {
assertMarkup("# This is an H1\n\n## This is an H2\n\n###### This is an H6\n\n");
}
+ // span elements - http://daringfireball.net/projects/markdown/syntax#span
+
+ public void testUnsupportedSpan() {
+ builder.beginDocument();
+ builder.beginSpan(SpanType.UNDERLINED, new Attributes());
+ builder.characters("unsupported");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("unsupported");
+ }
+
+ public void testEmptySpan() {
+ builder.beginDocument();
+ builder.characters("prefix");
+ builder.beginSpan(SpanType.BOLD, new Attributes());
+ builder.endSpan();
+ builder.characters(" suffix");
+ builder.endDocument();
+ assertMarkup("prefix suffix\n\n");
+ }
+
+ public void testEmphasis() {
+ builder.beginDocument();
+ builder.beginSpan(SpanType.EMPHASIS, new Attributes());
+ builder.characters("emphasis");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("*emphasis*");
+ }
+
+ public void testItalic() {
+ builder.beginDocument();
+ builder.beginSpan(SpanType.ITALIC, new Attributes());
+ builder.characters("italic");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("*italic*");
+ }
+
+ public void testStrong() {
+ builder.beginDocument();
+ builder.beginSpan(SpanType.STRONG, new Attributes());
+ builder.characters("strong");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("**strong**");
+ }
+
+ public void testBold() {
+ builder.beginDocument();
+ builder.beginSpan(SpanType.BOLD, new Attributes());
+ builder.characters("bold");
+ builder.endSpan();
+ builder.endDocument();
+ assertMarkup("**bold**");
+ }
+
private void assertMarkup(String expected) {
String markup = out.toString();
TestUtil.println(markup);

Back to the top