Java源码示例:com.vladsch.flexmark.html.IndependentAttributeProviderFactory
示例1
@Override
protected String doInBackground(String... strings) {
Parser parser = Parser.builder(OPTIONS)
.extensions(EXTENSIONS)
.build();
HtmlRenderer renderer = HtmlRenderer.builder(OPTIONS)
.escapeHtml(true)
.attributeProviderFactory(new IndependentAttributeProviderFactory() {
@Override
public AttributeProvider create(NodeRendererContext context) {
return new CustomAttributeProvider();
}
})
.nodeRendererFactory(new NodeRendererFactoryImpl())
.extensions(EXTENSIONS)
.build();
return renderer.render(parser.parse(strings[0]));
}
示例2
private String parseBuildAndRender(String text) {
Parser parser = Parser.builder(OPTIONS)
.extensions(EXTENSIONS)
.build();
HtmlRenderer renderer = HtmlRenderer.builder(OPTIONS)
.escapeHtml(mEscapeHtml)
.attributeProviderFactory(new IndependentAttributeProviderFactory() {
@Override
public AttributeProvider create(NodeRendererContext context) {
return new CustomAttributeProvider();
}
})
.nodeRendererFactory(new NodeRendererFactoryImpl())
.extensions(EXTENSIONS)
.build();
return renderer.render(parser.parse(text));
}
示例3
@Override
public void extend(Builder rendererBuilder, String rendererType) {
rendererBuilder.attributeProviderFactory(new IndependentAttributeProviderFactory() {
@Override
public AttributeProvider create(NodeRendererContext context) {
return new AttributeProvider() {
@Override
public void setAttributes(Node node, AttributablePart part, Attributes attributes) {
if (node instanceof Block) {
int startOffset = node.getStartOffset();
int endOffset = node.getEndOffset();
Node document = node.getDocument();
if (document != null) {
int leadingWhitespaces = 0;
for (int i=startOffset; i<endOffset; i++) {
if (Character.isWhitespace(document.getChars().charAt(i))) {
leadingWhitespaces++;
} else {
break;
}
}
int trailingWhitespaces = 0;
for (int i=endOffset-1; i>=startOffset; i--) {
if (Character.isWhitespace(document.getChars().charAt(i))) {
trailingWhitespaces++;
} else {
break;
}
}
attributes.addValue("data-" + DATA_START_ATTRIBUTE, String.valueOf(startOffset+leadingWhitespaces));
attributes.addValue("data-" + DATA_END_ATTRIBUTE, String.valueOf(endOffset-trailingWhitespaces));
}
}
}
};
}
});
}