Redefine test format
This commit is contained in:
parent
448a620399
commit
414a8763f2
@ -105,6 +105,7 @@ public abstract class TestSpan {
|
||||
public abstract int length();
|
||||
}
|
||||
|
||||
// important: children should not be included in equals...
|
||||
public static abstract class Span extends TestSpan {
|
||||
|
||||
@NonNull
|
||||
|
@ -72,16 +72,18 @@ public abstract class TestSpanMatcher {
|
||||
@NonNull final Spanned spanned,
|
||||
final int start,
|
||||
final int end,
|
||||
@NonNull TestSpan.Span expected) {
|
||||
@NonNull final TestSpan.Span expected) {
|
||||
|
||||
// when queried multiple spans can be returned (for example if one span
|
||||
// wraps another one. so [0 1 [2 3] 4 5] where [] represents start/end of
|
||||
// a span of same type, when queried for spans at 2-3 position, both will be returned
|
||||
final TestSpan.Span actual = Ix.fromArray(spanned.getSpans(start, end, expected.getClass()))
|
||||
final TestSpan.Span actual = Ix.fromArray(spanned.getSpans(start, end, Object.class))
|
||||
.cast(TestSpan.Span.class)
|
||||
.filter(new IxPredicate<TestSpan.Span>() {
|
||||
@Override
|
||||
public boolean test(TestSpan.Span span) {
|
||||
return start == spanned.getSpanStart(span)
|
||||
return expected.name().equals(span.name())
|
||||
&& start == spanned.getSpanStart(span)
|
||||
&& end == spanned.getSpanEnd(span);
|
||||
}
|
||||
})
|
||||
|
@ -46,14 +46,12 @@ class TestSpanSpan extends TestSpan.Span {
|
||||
TestSpanSpan that = (TestSpanSpan) o;
|
||||
|
||||
if (!name.equals(that.name)) return false;
|
||||
if (!children.equals(that.children)) return false;
|
||||
return arguments.equals(that.arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = name.hashCode();
|
||||
result = 31 * result + children.hashCode();
|
||||
result = 31 * result + arguments.hashCode();
|
||||
return result;
|
||||
}
|
||||
|
@ -0,0 +1,70 @@
|
||||
package ru.noties.markwon.test;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import ru.noties.markwon.test.TestSpan.Document;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
import static ru.noties.markwon.test.TestSpan.args;
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
public class TestSpanTest {
|
||||
|
||||
@Test
|
||||
public void args_not_event_throws() {
|
||||
try {
|
||||
args("key");
|
||||
fail();
|
||||
} catch (IllegalStateException e) {
|
||||
assertTrue(e.getMessage(), e.getMessage().contains("Supplied key-values array must contain "));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void args_key_not_string_throws() {
|
||||
try {
|
||||
args("key", 1, 2, 3);
|
||||
fail();
|
||||
} catch (ClassCastException e) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void args_correct() {
|
||||
|
||||
final Map<String, Object> args = args("key1", true, "key2", 4);
|
||||
|
||||
assertEquals(2, args.size());
|
||||
assertEquals(true, args.get("key1"));
|
||||
assertEquals(4, args.get("key2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void empty_document() {
|
||||
final Document document = document();
|
||||
assertEquals(0, document.children().size());
|
||||
assertEquals("", document.wholeText());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void document_single_text_child() {
|
||||
final Document document = document(text("Text"));
|
||||
assertEquals(1, document.children().size());
|
||||
assertEquals("Text", document.wholeText());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void document_single_span_child() {
|
||||
final Document document = document(span("span", text("TextInSpan")));
|
||||
assertEquals(1, document.children().size());
|
||||
assertTrue(document.children().get(0) instanceof TestSpan.Span);
|
||||
assertEquals("TextInSpan", document.wholeText());
|
||||
}
|
||||
}
|
13
markwon-test-util/build.gradle
Normal file
13
markwon-test-util/build.gradle
Normal file
@ -0,0 +1,13 @@
|
||||
apply plugin: 'java-library'
|
||||
|
||||
sourceCompatibility = 1.7
|
||||
targetCompatibility = 1.7
|
||||
|
||||
dependencies {
|
||||
|
||||
api deps['support-annotations']
|
||||
|
||||
deps['test'].with {
|
||||
implementation it['commons-io']
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package ru.noties.markwon.test;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
public abstract class TestUtil {
|
||||
|
||||
@NonNull
|
||||
public static String read(@NonNull String path) {
|
||||
try {
|
||||
return IOUtils.resourceToString(path, StandardCharsets.UTF_8);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static String read(@NonNull Object who, @NonNull String path) {
|
||||
try {
|
||||
return IOUtils.resourceToString(path, StandardCharsets.UTF_8, who.getClass().getClassLoader());
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private TestUtil() {
|
||||
}
|
||||
}
|
@ -21,14 +21,20 @@ dependencies {
|
||||
}
|
||||
|
||||
deps['test'].with {
|
||||
|
||||
testImplementation project(':markwon-test-span')
|
||||
testImplementation project(':markwon-test-util')
|
||||
|
||||
testImplementation it['junit']
|
||||
testImplementation it['robolectric']
|
||||
testImplementation it['mockito']
|
||||
|
||||
// to remove after migration
|
||||
testImplementation it['ix-java']
|
||||
testImplementation it['jackson-yaml']
|
||||
testImplementation it['jackson-databind']
|
||||
testImplementation it['gson']
|
||||
testImplementation it['commons-io']
|
||||
testImplementation it['mockito']
|
||||
}
|
||||
}
|
||||
|
||||
|
60
markwon/src/test/java/ru/noties/markwon/core/CoreTest.java
Normal file
60
markwon/src/test/java/ru/noties/markwon/core/CoreTest.java
Normal file
@ -0,0 +1,60 @@
|
||||
package ru.noties.markwon.core;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.Spanned;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import ru.noties.markwon.AbstractMarkwonPlugin;
|
||||
import ru.noties.markwon.Markwon;
|
||||
import ru.noties.markwon.MarkwonConfiguration;
|
||||
import ru.noties.markwon.SpannableFactoryDef;
|
||||
import ru.noties.markwon.test.TestSpan;
|
||||
import ru.noties.markwon.test.TestSpanMatcher;
|
||||
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class CoreTest {
|
||||
|
||||
@Test
|
||||
public void bold_italic() {
|
||||
|
||||
final String input = "**_bold italic_**";
|
||||
final TestSpan.Document document = document(
|
||||
span("bold",
|
||||
span("italic", text("bold italic"))));
|
||||
|
||||
final Spanned spanned = (Spanned) Markwon.builder(RuntimeEnvironment.application)
|
||||
.use(CorePlugin.create())
|
||||
.use(new AbstractMarkwonPlugin() {
|
||||
@Override
|
||||
public void configureConfiguration(@NonNull MarkwonConfiguration.Builder builder) {
|
||||
builder.factory(new SpannableFactoryDef() {
|
||||
|
||||
@Override
|
||||
public Object strongEmphasis() {
|
||||
return span("bold");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object emphasis() {
|
||||
return span("italic");
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
.build()
|
||||
.toMarkdown(input);
|
||||
|
||||
TestSpanMatcher.matches(spanned, document);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
# 2 space indentation
|
||||
[*.java]
|
||||
indent_style = space
|
||||
indent_size = 2
|
@ -0,0 +1,44 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.text.Spanned;
|
||||
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import ru.noties.markwon.AbstractMarkwonPlugin;
|
||||
import ru.noties.markwon.Markwon;
|
||||
import ru.noties.markwon.MarkwonConfiguration;
|
||||
import ru.noties.markwon.core.CorePlugin;
|
||||
import ru.noties.markwon.test.TestSpan;
|
||||
import ru.noties.markwon.test.TestSpanMatcher;
|
||||
import ru.noties.markwon.test.TestUtil;
|
||||
|
||||
abstract class BaseSuiteTest {
|
||||
|
||||
void matches(@NonNull String input, @NonNull TestSpan.Document document) {
|
||||
final Spanned spanned = (Spanned) markwon().toMarkdown(input);
|
||||
TestSpanMatcher.matches(spanned, document);
|
||||
}
|
||||
|
||||
void matchInput(@NonNull String name, @NonNull TestSpan.Document document) {
|
||||
matches(read(name), document);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
String read(@NonNull String name) {
|
||||
return TestUtil.read(this, "tests/" + name);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
Markwon markwon() {
|
||||
return Markwon.builder(RuntimeEnvironment.application)
|
||||
.use(CorePlugin.create())
|
||||
.use(new AbstractMarkwonPlugin() {
|
||||
@Override
|
||||
public void configureConfiguration(@NonNull MarkwonConfiguration.Builder builder) {
|
||||
builder.factory(new TestFactory());
|
||||
}
|
||||
})
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import ru.noties.markwon.test.TestSpan;
|
||||
|
||||
import static ru.noties.markwon.core.suite.TestFactory.BOLD;
|
||||
import static ru.noties.markwon.core.suite.TestFactory.ITALIC;
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class BoldItalic extends BaseSuiteTest {
|
||||
|
||||
/*
|
||||
**_bold italic_**
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
final TestSpan.Document document = document(
|
||||
span(BOLD,
|
||||
span(ITALIC, text("bold italic"))));
|
||||
|
||||
matchInput("bold-italic.md", document);
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import ru.noties.markwon.test.TestSpan;
|
||||
|
||||
import static ru.noties.markwon.core.suite.TestFactory.CODE;
|
||||
import static ru.noties.markwon.test.TestSpan.args;
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class CodeBlocks extends BaseSuiteTest {
|
||||
|
||||
/*
|
||||
```java
|
||||
final String s = null;
|
||||
```
|
||||
```html
|
||||
<html></html>
|
||||
```
|
||||
```
|
||||
nothing here
|
||||
```
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
final TestSpan.Document document = document(
|
||||
span(CODE,
|
||||
args("multiline", true),
|
||||
text("\u00a0\nfinal String s = null;\n\u00a0")),
|
||||
text("\n\n"),
|
||||
span(CODE,
|
||||
args("multiline", true),
|
||||
text("\u00a0\n<html></html>\n\u00a0")),
|
||||
text("\n\n"),
|
||||
span(CODE,
|
||||
args("multiline", true),
|
||||
text("\u00a0\nnothing here\n\u00a0"))
|
||||
);
|
||||
|
||||
matchInput("code-blocks.md", document);
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import ru.noties.markwon.test.TestSpan.Document;
|
||||
|
||||
import static ru.noties.markwon.core.suite.TestFactory.BOLD;
|
||||
import static ru.noties.markwon.core.suite.TestFactory.CODE;
|
||||
import static ru.noties.markwon.core.suite.TestFactory.ITALIC;
|
||||
import static ru.noties.markwon.test.TestSpan.args;
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class DeeplyNested extends BaseSuiteTest {
|
||||
|
||||
/*
|
||||
**bold *bold italic `bold italic code` bold italic* bold** normal
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
final Document document = document(
|
||||
span(BOLD,
|
||||
text("bold "),
|
||||
span(ITALIC,
|
||||
text("bold italic "),
|
||||
span(CODE,
|
||||
args("multiline", false),
|
||||
text("\u00a0bold italic code\u00a0")),
|
||||
text(" bold italic")),
|
||||
text(" bold")),
|
||||
text(" normal")
|
||||
);
|
||||
|
||||
matchInput("deeply-nested.md", document);
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import ru.noties.markwon.test.TestSpan.Document;
|
||||
|
||||
import static ru.noties.markwon.core.suite.TestFactory.BOLD;
|
||||
import static ru.noties.markwon.core.suite.TestFactory.ITALIC;
|
||||
import static ru.noties.markwon.core.suite.TestFactory.LINK;
|
||||
import static ru.noties.markwon.test.TestSpan.args;
|
||||
import static ru.noties.markwon.test.TestSpan.document;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
import static ru.noties.markwon.test.TestSpan.text;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class First extends BaseSuiteTest {
|
||||
|
||||
/*
|
||||
Here is some [link](https://my.href)
|
||||
**bold _bold italic_ bold** normal
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
final Document document = document(
|
||||
text("Here is some "),
|
||||
span(LINK,
|
||||
args("href", "https://my.href"),
|
||||
text("link")),
|
||||
text(" "),
|
||||
span(BOLD,
|
||||
text("bold "),
|
||||
span(ITALIC,
|
||||
text("bold italic")),
|
||||
text(" bold")),
|
||||
text(" normal")
|
||||
);
|
||||
|
||||
matchInput("first.md", document);
|
||||
}
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package ru.noties.markwon.core.suite;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import ru.noties.markwon.SpannableFactory;
|
||||
import ru.noties.markwon.core.MarkwonTheme;
|
||||
import ru.noties.markwon.core.spans.LinkSpan;
|
||||
import ru.noties.markwon.image.AsyncDrawableLoader;
|
||||
import ru.noties.markwon.image.ImageSize;
|
||||
import ru.noties.markwon.image.ImageSizeResolver;
|
||||
|
||||
import static ru.noties.markwon.test.TestSpan.args;
|
||||
import static ru.noties.markwon.test.TestSpan.span;
|
||||
|
||||
class TestFactory implements SpannableFactory {
|
||||
|
||||
static final String BOLD = "bold";
|
||||
static final String ITALIC = "italic";
|
||||
static final String CODE = "code";
|
||||
static final String LINK = "link";
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object strongEmphasis() {
|
||||
return span(BOLD);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object emphasis() {
|
||||
return span(ITALIC);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object blockQuote(@NonNull MarkwonTheme theme) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object code(@NonNull MarkwonTheme theme, boolean multiline) {
|
||||
return span(CODE, args("multiline", multiline));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object orderedListItem(@NonNull MarkwonTheme theme, int startNumber) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object bulletListItem(@NonNull MarkwonTheme theme, int level) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object thematicBreak(@NonNull MarkwonTheme theme) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object heading(@NonNull MarkwonTheme theme, int level) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object paragraph(boolean inTightList) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object image(@NonNull MarkwonTheme theme, @NonNull String destination, @NonNull AsyncDrawableLoader loader, @NonNull ImageSizeResolver imageSizeResolver, @Nullable ImageSize imageSize, boolean replacementTextIsLink) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Object link(@NonNull MarkwonTheme theme, @NonNull String destination, @NonNull LinkSpan.Resolver resolver) {
|
||||
return span(LINK, args("href", destination));
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package ru.noties.markwon.core.visitor;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(manifest = Config.NONE)
|
||||
public class BlockQuoteNodeVisitorTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
fail();
|
||||
}
|
||||
}
|
1
markwon/src/test/resources/tests/bold-italic.md
Normal file
1
markwon/src/test/resources/tests/bold-italic.md
Normal file
@ -0,0 +1 @@
|
||||
**_bold italic_**
|
@ -1,5 +0,0 @@
|
||||
input: "**_bold italic_**"
|
||||
|
||||
output:
|
||||
- b:
|
||||
- i: "bold italic"
|
9
markwon/src/test/resources/tests/code-blocks.md
Normal file
9
markwon/src/test/resources/tests/code-blocks.md
Normal file
@ -0,0 +1,9 @@
|
||||
```java
|
||||
final String s = null;
|
||||
```
|
||||
```html
|
||||
<html></html>
|
||||
```
|
||||
```
|
||||
nothing here
|
||||
```
|
@ -1,17 +0,0 @@
|
||||
input: |-
|
||||
```java
|
||||
final String s = null;
|
||||
```
|
||||
```html
|
||||
<html></html>
|
||||
```
|
||||
```
|
||||
nothing here
|
||||
```
|
||||
|
||||
output:
|
||||
- code-block: "final String s = null;"
|
||||
- "\n\n"
|
||||
- code-block: "<html></html>"
|
||||
- "\n\n"
|
||||
- code-block: "nothing here"
|
1
markwon/src/test/resources/tests/deeply-nested.md
Normal file
1
markwon/src/test/resources/tests/deeply-nested.md
Normal file
@ -0,0 +1 @@
|
||||
**bold *bold italic `bold italic code` bold italic* bold** normal
|
@ -1,12 +0,0 @@
|
||||
input: |-
|
||||
**bold *bold italic `bold italic code` bold italic* bold** normal
|
||||
|
||||
output:
|
||||
- b:
|
||||
- "bold "
|
||||
- i:
|
||||
- "bold italic "
|
||||
- code: "bold italic code"
|
||||
- " bold italic"
|
||||
- " bold"
|
||||
- " normal"
|
2
markwon/src/test/resources/tests/first.md
Normal file
2
markwon/src/test/resources/tests/first.md
Normal file
@ -0,0 +1,2 @@
|
||||
Here is some [link](https://my.href)
|
||||
**bold _bold italic_ bold** normal
|
@ -1,23 +0,0 @@
|
||||
description: Defining test case format
|
||||
|
||||
input: |-
|
||||
Here is some [link](https://my.href)
|
||||
**bold _bold italic_ bold** normal
|
||||
|
||||
config:
|
||||
use-paragraphs: false
|
||||
use-html: false
|
||||
soft-break-adds-new-line: false
|
||||
html-allow-non-closed-tags: false
|
||||
|
||||
output:
|
||||
- "Here is some "
|
||||
- a: "link"
|
||||
href: "https://my.href"
|
||||
- " "
|
||||
- b:
|
||||
- "bold "
|
||||
- i: "bold italic" #equals to: `- i: - text: "bold italic"`
|
||||
- " bold"
|
||||
- " normal"
|
||||
|
@ -11,5 +11,6 @@ include ':app',
|
||||
':markwon-html',
|
||||
':markwon-view',
|
||||
':markwon-test-span',
|
||||
':markwon-test-util',
|
||||
':sample-custom-extension',
|
||||
':sample-latex-math'
|
||||
|
Loading…
x
Reference in New Issue
Block a user