in mdresourcedecorator/src/main/java/org/apache/sling/mdresource/impl/md/MarkdownProcessor.java [49:92]
public ProcessingResult process(final Reader reader,
final Resource baseResource,
final ProcessingInstructions inst) throws IOException {
final ProcessingResult result = new ProcessingResult();
final List<NodeHandler> handlers = new ArrayList<>();
if ( inst.handleYamlFrontmatter ) {
handlers.add(new YamlFrontMatterHandler());
}
if ( inst.extractTitle ) {
handlers.add(new HeadingHandler());
}
final Document document = parser.parseReader(reader);
Node currentNode = document.getFirstChild();
while ( currentNode != null ) {
boolean handled = false;
for(final NodeHandler handler : handlers ) {
handled = handler.consume(currentNode, result);
if ( handled ) {
break;
}
}
final Node nextNode = currentNode.getNext();
if ( handled ) {
currentNode.unlink();
}
currentNode = nextNode;
}
if ( document.hasChildren() && inst.renderHtml) {
final HtmlRenderer.Builder builder = HtmlRenderer.builder();
if ( inst.rewriteLinks ) {
builder.linkResolverFactory(new CustomLinkResolverFactory(baseResource));
}
final HtmlRenderer htmlRenderer = builder.build();
result.html = htmlRenderer.render(document);
}
return result;
}