Struggling with empty lines
This commit is contained in:
parent
d280095281
commit
c3b6c1ce39
@ -38,8 +38,6 @@ import ru.noties.markwon.spans.ThematicBreakSpan;
|
|||||||
|
|
||||||
public class SpannableMarkdownVisitor extends AbstractVisitor {
|
public class SpannableMarkdownVisitor extends AbstractVisitor {
|
||||||
|
|
||||||
// http://spec.commonmark.org/0.18/#html-blocks
|
|
||||||
|
|
||||||
private final SpannableConfiguration configuration;
|
private final SpannableConfiguration configuration;
|
||||||
private final SpannableStringBuilder builder;
|
private final SpannableStringBuilder builder;
|
||||||
|
|
||||||
@ -79,7 +77,12 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
@Override
|
@Override
|
||||||
public void visit(BlockQuote blockQuote) {
|
public void visit(BlockQuote blockQuote) {
|
||||||
|
|
||||||
|
Debug.i(blockQuote);
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
if (blockQuoteIndent != 0) {
|
||||||
|
builder.append('\n');
|
||||||
|
}
|
||||||
|
|
||||||
final int length = builder.length();
|
final int length = builder.length();
|
||||||
|
|
||||||
@ -95,6 +98,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
blockQuoteIndent -= 1;
|
blockQuoteIndent -= 1;
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
if (blockQuoteIndent == 0) {
|
||||||
|
builder.append('\n');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -132,6 +138,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
));
|
));
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
builder.append('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -162,6 +169,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
newLine();
|
newLine();
|
||||||
visitChildren(bulletList);
|
visitChildren(bulletList);
|
||||||
newLine();
|
newLine();
|
||||||
|
if (listLevel == 0 && blockQuoteIndent == 0) {
|
||||||
|
builder.append('\n');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -180,7 +190,6 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
listLevel - 1,
|
listLevel - 1,
|
||||||
length
|
length
|
||||||
));
|
));
|
||||||
// builder.setSpan(new BulletListItemSpan(blockQuoteIndent, listLevel > 1, length), length, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
||||||
blockQuoteIndent -= 1;
|
blockQuoteIndent -= 1;
|
||||||
listLevel -= 1;
|
listLevel -= 1;
|
||||||
|
|
||||||
@ -199,6 +208,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
setSpan(length, new ThematicBreakSpan(configuration.getThematicConfig()));
|
setSpan(length, new ThematicBreakSpan(configuration.getThematicConfig()));
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
builder.append('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -213,6 +223,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
super.visit(orderedList);
|
super.visit(orderedList);
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
if (listLevel == 0 && blockQuoteIndent == 0) {
|
||||||
|
builder.append('\n');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -231,6 +244,9 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
);
|
);
|
||||||
|
|
||||||
newLine();
|
newLine();
|
||||||
|
|
||||||
|
// after heading we add another line anyway (no additional checks)
|
||||||
|
builder.append('\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -264,7 +280,7 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
|
|
||||||
final boolean inTightList = isInTightList(paragraph);
|
final boolean inTightList = isInTightList(paragraph);
|
||||||
|
|
||||||
Debug.i(paragraph, inTightList);
|
Debug.i(paragraph, inTightList, listLevel);
|
||||||
|
|
||||||
if (!inTightList) {
|
if (!inTightList) {
|
||||||
newLine();
|
newLine();
|
||||||
@ -274,6 +290,10 @@ public class SpannableMarkdownVisitor extends AbstractVisitor {
|
|||||||
|
|
||||||
if (!inTightList) {
|
if (!inTightList) {
|
||||||
newLine();
|
newLine();
|
||||||
|
|
||||||
|
if (blockQuoteIndent == 0) {
|
||||||
|
builder.append('\n');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ public class SpannableRenderer {
|
|||||||
// * LinkDrawableSpan, that draws link whilst image is still loading (it must be clickable...)
|
// * LinkDrawableSpan, that draws link whilst image is still loading (it must be clickable...)
|
||||||
// * Common interface for images (in markdown & inline-html)
|
// * Common interface for images (in markdown & inline-html)
|
||||||
// * util method to properly copy markdown (with lists/links, etc)
|
// * 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) {
|
public CharSequence render(@NonNull SpannableConfiguration configuration, @Nullable Node node) {
|
||||||
final CharSequence out;
|
final CharSequence out;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user