@SuppressWarnings("MethodMayBeStatic") void render(Image node, NodeRendererContext context, HtmlWriter html) { if (!(context.isDoNotRenderLinks() || isSuppressedLinkPrefix(node.getUrl(), context))) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null, null); String url = resolvedLink.getUrl(); if (!node.getUrlContent().isEmpty()) { // reverse URL encoding of =, & String content = Escaping.percentEncodeUrl(node.getUrlContent()).replace("+", "%2B").replace("%3D", "=").replace("%26", "&"); url += content; } html.attr("src", url); html.attr("alt", altText); // we have a title part, use that if (node.getTitle().isNotNull()) { resolvedLink.getNonNullAttributes().replaceValue(Attribute.TITLE_ATTR, node.getTitle().unescape()); } else { resolvedLink.getNonNullAttributes().remove(Attribute.TITLE_ATTR); } html.attr(resolvedLink.getAttributes()); html.srcPos(node.getChars()).withAttr(resolvedLink).tagVoid("img"); } }
@Override public void getAstExtra(StringBuilder out) { delimitedSegmentSpanChars(out, textOpeningMarker, text, textClosingMarker, "text"); segmentSpanChars(out, linkOpeningMarker, "linkOpen"); delimitedSegmentSpanChars(out, urlOpeningMarker, url, urlClosingMarker, "url"); if (pageRef.isNotNull()) segmentSpanChars(out, pageRef, "pageRef"); if (anchorMarker.isNotNull()) segmentSpanChars(out, anchorMarker, "anchorMarker"); if (anchorRef.isNotNull()) segmentSpanChars(out, anchorRef, "anchorRef"); if (urlContent.isNotNull()) segmentSpanChars(out, urlContent, "urlContent"); delimitedSegmentSpanChars(out, titleOpeningMarker, title, titleClosingMarker, "title"); segmentSpanChars(out, linkClosingMarker, "linkClose"); }
private void render(Image node, NodeFormatterContext context, MarkdownWriter markdown) { markdown.lineIf(formatterOptions.keepImageLinksAtStart); if (!formatterOptions.optimizedInlineRendering || context.isTransformingText()) { markdown.append(node.getTextOpeningMarker()); if (context.isTransformingText()) { markdown.appendTranslating(node.getText()); } else { context.renderChildren(node); } markdown.append(node.getTextClosingMarker()); markdown.append(node.getLinkOpeningMarker()); markdown.append(node.getUrlOpeningMarker()); markdown.appendNonTranslating(node.getPageRef()); markdown.append(node.getUrlClosingMarker()); if (node.getTitleOpeningMarker().isNotNull()) { markdown.append(' '); markdown.append(node.getTitleOpeningMarker()); if (node.getTitle().isNotNull()) markdown.appendTranslating(node.getTitle()); markdown.append(node.getTitleClosingMarker()); } markdown.append(node.getLinkClosingMarker()); } else { markdown.append(node.getChars()); } }
private void render(final Image node, final DocxRendererContext docx) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = docx.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null, null); String url = resolvedLink.getUrl(); Attributes attributes = resolvedLink.getNonNullAttributes(); if (!node.getUrlContent().isEmpty()) { // reverse URL encoding of =, & String content = Escaping.percentEncodeUrl(node.getUrlContent()).replace("+", "%2B").replace("%3D", "=").replace("%26", "&"); url += content; } if (!altText.isEmpty()) { attributes.replaceValue("alt", altText); } attributes = docx.extendRenderingNodeAttributes(AttributablePart.NODE, attributes); //String alt = node.getText().unescape(); renderImage(docx, url, attributes); }
private void render(Image node, NodeRendererContext context, HtmlWriter html) { if (!context.isDoNotRenderLinks()) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null); html.raw("!").raw(resolvedLink.getUrl()).raw("!"); } }
insertNode = ref != null ? isImage ? new ImageRef() : new LinkRef() : isImage ? new Image() : new Link(); ((Image) insertNode).setUrlContent(imageUrlContent);
private void render(Image node, NodeFormatterContext context, MarkdownWriter markdown) { markdown.lineIf(formatterOptions.keepImageLinksAtStart); if (!formatterOptions.optimizedInlineRendering || context.isTransformingText()) { markdown.append(node.getTextOpeningMarker()); if (context.isTransformingText()) { markdown.appendTranslating(node.getText()); } else { context.renderChildren(node); } markdown.append(node.getTextClosingMarker()); markdown.append(node.getLinkOpeningMarker()); markdown.append(node.getUrlOpeningMarker()); markdown.appendNonTranslating(node.getPageRef()); markdown.append(node.getUrlClosingMarker()); if (node.getTitleOpeningMarker().isNotNull()) { markdown.append(' '); markdown.append(node.getTitleOpeningMarker()); if (node.getTitle().isNotNull()) markdown.appendTranslating(node.getTitle()); markdown.append(node.getTitleClosingMarker()); } markdown.append(node.getLinkClosingMarker()); } else { markdown.append(node.getChars()); } }
private void render(Image node, NodeRendererContext context, final HtmlWriter html) { if (!(context.isDoNotRenderLinks() || CoreNodeRenderer.isSuppressedLinkPrefix(node.getUrl(), context))) { final String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null, null); final String url = resolvedLink.getUrl(); if (node.getUrlContent().isEmpty()) { Attributes attributes = resolvedLink.getNonNullAttributes(); // need to take attributes for reference definition, then overlay them with ours attributes = context.extendRenderingNodeAttributes(node, AttributablePart.NODE, attributes); if (renderVideoImage(node, url, altText, attributes, html)) { return; } } context.delegateRender(); } }
private void render(Image node, NodeRendererContext context, HtmlWriter html) { if (!context.isDoNotRenderLinks()) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null); html.raw("!").raw(resolvedLink.getUrl()).raw("!"); } }
insertNode = ref != null ? isImage ? new ImageRef() : new LinkRef() : isImage ? new Image() : new Link(); ((Image) insertNode).setUrlContent(imageUrlContent);
@SuppressWarnings("MethodMayBeStatic") void render(Image node, NodeRendererContext context, HtmlWriter html) { if (!(context.isDoNotRenderLinks() || isSuppressedLinkPrefix(node.getUrl(), context))) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null, null); String url = resolvedLink.getUrl(); if (!node.getUrlContent().isEmpty()) { // reverse URL encoding of =, & String content = Escaping.percentEncodeUrl(node.getUrlContent()).replace("+", "%2B").replace("%3D", "=").replace("%26", "&"); url += content; } html.attr("src", url); html.attr("alt", altText); // we have a title part, use that if (node.getTitle().isNotNull()) { resolvedLink.getNonNullAttributes().replaceValue(Attribute.TITLE_ATTR, node.getTitle().unescape()); } else { resolvedLink.getNonNullAttributes().remove(Attribute.TITLE_ATTR); } html.attr(resolvedLink.getAttributes()); html.srcPos(node.getChars()).withAttr(resolvedLink).tagVoid("img"); } }
/** Create a validation component for an image reference. * * @param it the image reference. * @param currentFile the current file. * @param context the validation context. * @return the validation components. */ protected Iterable<DynamicValidationComponent> createValidatorComponents(Image it, File currentFile, DynamicValidationContext context) { final Collection<DynamicValidationComponent> components = new ArrayList<>(); if (isLocalImageReferenceValidation()) { final int lineno = computeLineNo(it); final URL url = FileSystem.convertStringToURL(it.getUrl().toString(), true); if (URISchemeType.FILE.isURL(url)) { final DynamicValidationComponent component = createLocalImageValidatorComponent( it, url, lineno, currentFile, context); if (component != null) { components.add(component); } } } return components; }
@Override public void getAstExtra(StringBuilder out) { delimitedSegmentSpanChars(out, textOpeningMarker, text, textClosingMarker, "text"); segmentSpanChars(out, linkOpeningMarker, "linkOpen"); delimitedSegmentSpanChars(out, urlOpeningMarker, url, urlClosingMarker, "url"); if (pageRef.isNotNull()) segmentSpanChars(out, pageRef, "pageRef"); if (anchorMarker.isNotNull()) segmentSpanChars(out, anchorMarker, "anchorMarker"); if (anchorRef.isNotNull()) segmentSpanChars(out, anchorRef, "anchorRef"); if (urlContent.isNotNull()) segmentSpanChars(out, urlContent, "urlContent"); delimitedSegmentSpanChars(out, titleOpeningMarker, title, titleClosingMarker, "title"); segmentSpanChars(out, linkClosingMarker, "linkClose"); }
private void render(Image node, NodeRendererContext context, HtmlWriter html) { if (!context.isDoNotRenderLinks()) { String altText = new TextCollectingVisitor().collectAndGetText(node); ResolvedLink resolvedLink = context.resolveLink(LinkType.IMAGE, node.getUrl().unescape(), null); html.raw("!").raw(resolvedLink.getUrl()).raw("!"); } }