Struggling with empty lines

This commit is contained in:
Dimitry Ivanov 2017-05-11 18:51:48 +03:00
parent d280095281
commit c3b6c1ce39
2 changed files with 25 additions and 4 deletions

View File

@ -38,8 +38,6 @@ import ru.noties.markwon.spans.ThematicBreakSpan;
public class SpannableMarkdownVisitor extends AbstractVisitor {
// http://spec.commonmark.org/0.18/#html-blocks
private final SpannableConfiguration configuration;
private final SpannableStringBuilder builder;
@ -79,7 +77,12 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
@Override
public void visit(BlockQuote blockQuote) {
Debug.i(blockQuote);
newLine();
if (blockQuoteIndent != 0) {
builder.append('\n');
}
final int length = builder.length();
@ -95,6 +98,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
blockQuoteIndent -= 1;
newLine();
if (blockQuoteIndent == 0) {
builder.append('\n');
}
}
@Override
@ -132,6 +138,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
));
newLine();
builder.append('\n');
}
@Override
@ -162,6 +169,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
newLine();
visitChildren(bulletList);
newLine();
if (listLevel == 0 && blockQuoteIndent == 0) {
builder.append('\n');
}
}
@Override
@ -180,7 +190,6 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
listLevel - 1,
length
));
// builder.setSpan(new BulletListItemSpan(blockQuoteIndent, listLevel > 1, length), length, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
blockQuoteIndent -= 1;
listLevel -= 1;
@ -199,6 +208,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
setSpan(length, new ThematicBreakSpan(configuration.getThematicConfig()));
newLine();
builder.append('\n');
}
@Override
@ -213,6 +223,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
super.visit(orderedList);
newLine();
if (listLevel == 0 && blockQuoteIndent == 0) {
builder.append('\n');
}
}
@Override
@ -231,6 +244,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
);
newLine();
// after heading we add another line anyway (no additional checks)
builder.append('\n');
}
@Override
@ -264,7 +280,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
final boolean inTightList = isInTightList(paragraph);
Debug.i(paragraph, inTightList);
Debug.i(paragraph, inTightList, listLevel);
if (!inTightList) {
newLine();
@ -274,6 +290,10 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
if (!inTightList) {
newLine();
if (blockQuoteIndent == 0) {
builder.append('\n');
}
}
}

View File

@ -13,6 +13,7 @@ public class SpannableRenderer {
// * LinkDrawableSpan, that draws link whilst image is still loading (it must be clickable...)
// * Common interface for images (in markdown & inline-html)
// * util method to properly copy markdown (with lists/links, etc)
// * util to apply empty line height
public CharSequence render(@NonNull SpannableConfiguration configuration, @Nullable Node node) {
final CharSequence out;