in src/main/java/org/apache/maven/plugins/changelog/ChangeLogReport.java [1266:1304]
private void sinkIssueLink(Sink sink, String line, Pattern pattern) {
// replace any ticket patterns found.
Matcher matcher = pattern.matcher(line);
int currLoc = 0;
while (matcher.find()) {
String match = matcher.group();
String link;
if (issueLinkUrl.indexOf(ISSUE_TOKEN) > 0) {
link = issueLinkUrl.replaceAll(ISSUE_TOKEN, match);
} else {
if (issueLinkUrl.endsWith("/")) {
link = issueLinkUrl;
} else {
link = issueLinkUrl + '/';
}
link += match;
}
int startOfMatch = matcher.start();
String unmatchedText = line.substring(currLoc, startOfMatch);
currLoc = matcher.end();
sink.text(unmatchedText);
sink.link(link);
sink.text(match);
sink.link_();
}
sink.text(line.substring(currLoc));
}