Skip to content

ericschaefer/commonmark-ext-external-links

Repository files navigation

commonmark-ext-external-links

This is a commonmark-java plugin adding target=_blank" and rel="noopener noreferrer" to external links.

Build Maven Central javadoc

Usage

Just add it as an extension as usual providing the base URL of your site for detecting if a link is internal or external:

List<Extension> extensions = Collections.singletonList(
    ExternalLinksExtension.create("http://www.example.com")
);
Parser parser = Parser.builder()
    .extensions(extensions)
    .build();
HtmlRenderer renderer = HtmlRenderer.builder()
    .extensions(extensions)
    .build();

Node node = parser.parse("external url: [external](http://www.google.com/some_path)");
String html = renderer.render(node);

/*
<p>external url: <a href="http://www.google.com/some_path" target="_blank" rel="noopener">external</a></p>\n
*/

node = parser.parse("internal url: [internal](http://www.example.com/some_path)");
html = renderer.render(node);

/*
<p>internal url: <a href="http://www.example.com/some_path">internal</a></p>\n
*/

node = parser.parse("relative url: [relative](/some_path)");
html = renderer.render(node);

/*
<p>relative url: <a href="/some_path">relative</a></p>\n
*/

Gradle

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.github.ericschaefer:commonmark-ext-external-links:1.0.2'
}

Maven

<dependency>
    <groupId>com.github.ericschaefer</groupId>
    <artifactId>commonmark-ext-external-links</artifactId>
    <version>1.0.2</version>
</dependency>

About

commonmark-java plugin adding target=_blank" and rel="noopener noreferrer" to external links

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages