@Override public ResolvedLink resolveLink(LinkType linkType, CharSequence url, Attributes attributes, Boolean urlEncode) { HashMap<String, ResolvedLink> resolvedLinks = resolvedLinkMap.get(linkType); if (resolvedLinks == null) { resolvedLinks = new HashMap<String, ResolvedLink>(); resolvedLinkMap.put(linkType, resolvedLinks); } String urlSeq = String.valueOf(url); ResolvedLink resolvedLink = resolvedLinks.get(urlSeq); if (resolvedLink == null) { resolvedLink = new ResolvedLink(linkType, urlSeq, attributes); if (!urlSeq.isEmpty()) { Node currentNode = renderingNode; for (LinkResolver linkResolver : myLinkResolvers) { resolvedLink = linkResolver.resolveLink(currentNode, this, resolvedLink); if (resolvedLink.getStatus() != LinkStatus.UNKNOWN) break; } if (urlEncode == null && rendererOptions.percentEncodeUrls || urlEncode != null && urlEncode) { resolvedLink = resolvedLink.withUrl(Escaping.percentEncodeUrl(resolvedLink.getUrl())); } } // put it in the map resolvedLinks.put(urlSeq, resolvedLink); } return resolvedLink; }
.withUrl(url); } else if (url.startsWith("file:/")) { .withUrl(url); } else if (url.startsWith(DocxRenderer.EMOJI_RESOURCE_PREFIX)) { .withUrl(url); } else if (url.startsWith("/")) { if (docRootURL != null && !docRootURL.isEmpty()) { .withUrl(url); .withUrl("http://" + url); } else if (!url.matches("^(?:[a-z]+:|#|\\?)")) { .withUrl(resolvedURL.toString());
@Override public ResolvedLink resolveLink(LinkType linkType, CharSequence url, Attributes attributes, Boolean urlEncode) { HashMap<String, ResolvedLink> resolvedLinks = resolvedLinkMap.get(linkType); if (resolvedLinks == null) { resolvedLinks = new HashMap<String, ResolvedLink>(); resolvedLinkMap.put(linkType, resolvedLinks); } String urlSeq = String.valueOf(url); ResolvedLink resolvedLink = resolvedLinks.get(urlSeq); if (resolvedLink == null) { resolvedLink = new ResolvedLink(linkType, urlSeq, attributes); if (!urlSeq.isEmpty()) { Node currentNode = getCurrentNode(); for (LinkResolver linkResolver : myLinkResolvers) { resolvedLink = linkResolver.resolveLink(currentNode, this, resolvedLink); if (resolvedLink.getStatus() != LinkStatus.UNKNOWN) break; } if (urlEncode == null && htmlOptions.percentEncodeUrls || urlEncode != null && urlEncode) { resolvedLink = resolvedLink.withUrl(Escaping.percentEncodeUrl(resolvedLink.getUrl())); } } // put it in the map resolvedLinks.put(urlSeq, resolvedLink); } return resolvedLink; }
@Override public ResolvedLink resolveLink(Node node, LinkResolverContext context, ResolvedLink link) { ResolvedLink result = link; for (String inputFileExtension : inputFileExtensions) { if (link.getLinkType() == LinkType.LINK) { String url = link.getUrl(); if (!url.startsWith("http://") && !url.startsWith("https://")) { if (url.endsWith("." + inputFileExtension)) { url = url.substring(0, url.length() - inputFileExtension.length()) + "html"; result = result.withStatus(LinkStatus.VALID).withUrl(url); return result; } else if (url.contains("." + inputFileExtension + "#")) { url = url.replace("." + inputFileExtension + "#", ".html#"); result = result.withStatus(LinkStatus.VALID).withUrl(url); return result; } } } } return result; }
@Override public ResolvedLink resolveLink(LinkType linkType, CharSequence url, Attributes attributes, Boolean urlEncode) { HashMap<String, ResolvedLink> resolvedLinks = resolvedLinkMap.get(linkType); if (resolvedLinks == null) { resolvedLinks = new HashMap<String, ResolvedLink>(); resolvedLinkMap.put(linkType, resolvedLinks); } String urlSeq = String.valueOf(url); ResolvedLink resolvedLink = resolvedLinks.get(urlSeq); if (resolvedLink == null) { resolvedLink = new ResolvedLink(linkType, urlSeq, attributes); if (!urlSeq.isEmpty()) { Node currentNode = getCurrentNode(); for (LinkResolver linkResolver : myLinkResolvers) { resolvedLink = linkResolver.resolveLink(currentNode, this, resolvedLink); if (resolvedLink.getStatus() != LinkStatus.UNKNOWN) break; } if (urlEncode == null && htmlOptions.percentEncodeUrls || urlEncode != null && urlEncode) { resolvedLink = resolvedLink.withUrl(Escaping.percentEncodeUrl(resolvedLink.getUrl())); } } // put it in the map resolvedLinks.put(urlSeq, resolvedLink); } return resolvedLink; }