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
	 Dimitry Ivanov
						Dimitry Ivanov