/** * Returns parsed markdown with provided {@link SpannableConfiguration} * * @param configuration a {@link SpannableConfiguration} * @param markdown raw markdown * @return parsed markdown * @see SpannableConfiguration * @since 1.0.0 */ @NonNull public static CharSequence markdown(@NonNull SpannableConfiguration configuration, @NonNull String markdown) { final Parser parser = createParser(); final Node node = parser.parse(markdown); final SpannableRenderer renderer = new SpannableRenderer(); return renderer.render(configuration, node); }
@Test public void test() { final TestData data = TestDataReader.readTest(file); final SpannableConfiguration configuration = configuration(data.config()); final SpannableBuilder builder = new SpannableBuilder(); final SpannableMarkdownVisitor visitor = new SpannableMarkdownVisitor(configuration, builder); final Node node = Markwon.createParser().parse(data.input()); node.accept(visitor); final SpannableStringBuilder stringBuilder = builder.spannableStringBuilder(); final TestValidator validator = TestValidator.create(file); int index = 0; for (TestNode testNode : data.output()) { index = validator.validate(stringBuilder, index, testNode); } // assert that the whole thing is processed assertEquals("`" + stringBuilder + "`", stringBuilder.length(), index); final Object[] spans = stringBuilder.getSpans(0, stringBuilder.length(), Object.class); final int length = spans != null ? spans.length : 0; assertEquals(Arrays.toString(spans), validator.processedSpanNodesCount(), length); }