Sample, add block handler sample
This commit is contained in:
		
							parent
							
								
									aafbd8585c
								
							
						
					
					
						commit
						0a6c5df0f2
					
				| @ -1,4 +1,16 @@ | ||||
| [ | ||||
|   { | ||||
|     "javaClassName": "io.noties.markwon.app.samples.BlockHandlerSample", | ||||
|     "id": "202007211090524", | ||||
|     "title": "Block handler", | ||||
|     "description": "Custom block delimiters that control new lines after block nodes", | ||||
|     "artifacts": [ | ||||
|       "CORE" | ||||
|     ], | ||||
|     "tags": [ | ||||
|       "rendering" | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "javaClassName": "io.noties.markwon.app.samples.CacheMarkwonSample", | ||||
|     "id": "202007189102458", | ||||
|  | ||||
| @ -0,0 +1,66 @@ | ||||
| package io.noties.markwon.app.samples; | ||||
| 
 | ||||
| import androidx.annotation.NonNull; | ||||
| 
 | ||||
| import org.commonmark.node.Node; | ||||
| 
 | ||||
| import io.noties.markwon.AbstractMarkwonPlugin; | ||||
| import io.noties.markwon.Markwon; | ||||
| import io.noties.markwon.MarkwonVisitor; | ||||
| import io.noties.markwon.app.sample.Tags; | ||||
| import io.noties.markwon.app.sample.ui.MarkwonTextViewSample; | ||||
| import io.noties.markwon.sample.annotations.MarkwonArtifact; | ||||
| import io.noties.markwon.sample.annotations.MarkwonSampleInfo; | ||||
| 
 | ||||
| @MarkwonSampleInfo( | ||||
|   id = "202007211090524", | ||||
|   title = "Block handler", | ||||
|   description = "Custom block delimiters that control new lines after block nodes", | ||||
|   artifacts = MarkwonArtifact.CORE, | ||||
|   tags = Tags.rendering | ||||
| ) | ||||
| public class BlockHandlerSample extends MarkwonTextViewSample { | ||||
|   @Override | ||||
|   public void render() { | ||||
|     final String md = "" + | ||||
|       "# Heading\n" + | ||||
|       "* one\n" + | ||||
|       "* two\n" + | ||||
|       "* three\n" + | ||||
|       "---\n" + | ||||
|       "> a quote\n\n" + | ||||
|       "```\n" + | ||||
|       "code\n" + | ||||
|       "```\n" + | ||||
|       "some text after"; | ||||
| 
 | ||||
|     final Markwon markwon = Markwon.builder(context) | ||||
|       .usePlugin(new AbstractMarkwonPlugin() { | ||||
|         @Override | ||||
|         public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) { | ||||
|           builder.blockHandler(new BlockHandlerNoAdditionalNewLines()); | ||||
|         } | ||||
|       }) | ||||
|       .build(); | ||||
| 
 | ||||
|     markwon.setMarkdown(textView, md); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class BlockHandlerNoAdditionalNewLines implements MarkwonVisitor.BlockHandler { | ||||
| 
 | ||||
|   @Override | ||||
|   public void blockStart(@NonNull MarkwonVisitor visitor, @NonNull Node node) { | ||||
|     // ensure that content rendered on a new line | ||||
|     visitor.ensureNewLine(); | ||||
|   } | ||||
| 
 | ||||
|   @Override | ||||
|   public void blockEnd(@NonNull MarkwonVisitor visitor, @NonNull Node node) { | ||||
|     if (visitor.hasNext(node)) { | ||||
|       visitor.ensureNewLine(); | ||||
|       // by default markwon here also has: | ||||
|       //  visitor.forceNewLine(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov