From d148c6ef77df5c5cb6aa21ecd9647eee2d220c86 Mon Sep 17 00:00:00 2001 From: James Moger Date: Fri, 25 Oct 2013 14:02:35 -0400 Subject: [PATCH 1/2] Process images with LinkRenderer (fixes #95) --- src/main/java/org/pegdown/LinkRenderer.java | 10 ++++++++++ src/main/java/org/pegdown/ToHtmlSerializer.java | 16 +++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/pegdown/LinkRenderer.java b/src/main/java/org/pegdown/LinkRenderer.java index 58448ef..45b8719 100644 --- a/src/main/java/org/pegdown/LinkRenderer.java +++ b/src/main/java/org/pegdown/LinkRenderer.java @@ -60,6 +60,11 @@ public Rendering render(ExpLinkNode node, String text) { return StringUtils.isEmpty(node.title) ? rendering : rendering.withAttribute("title", encode(node.title)); } + public Rendering render(ExpImageNode node, String text) { + Rendering rendering = new Rendering(node.url, text); + return StringUtils.isEmpty(node.title) ? rendering : rendering.withAttribute("title", encode(node.title)); + } + public Rendering render(MailLinkNode node) { String obfuscated = obfuscate(node.getText()); return new Rendering("mailto:" + obfuscated, obfuscated); @@ -70,6 +75,11 @@ public Rendering render(RefLinkNode node, String url, String title, String text) return StringUtils.isEmpty(title) ? rendering : rendering.withAttribute("title", encode(title)); } + public Rendering render(RefImageNode node, String url, String title, String alt) { + Rendering rendering = new Rendering(url, alt); + return StringUtils.isEmpty(title) ? rendering : rendering.withAttribute("title", encode(title)); + } + public Rendering render(WikiLinkNode node) { try { String url = "./" + URLEncoder.encode(node.getText().replace(' ', '-'), "UTF-8") + ".html"; diff --git a/src/main/java/org/pegdown/ToHtmlSerializer.java b/src/main/java/org/pegdown/ToHtmlSerializer.java index 73b59bc..62bb608 100644 --- a/src/main/java/org/pegdown/ToHtmlSerializer.java +++ b/src/main/java/org/pegdown/ToHtmlSerializer.java @@ -123,7 +123,8 @@ public void visit(DefinitionTermNode node) { } public void visit(ExpImageNode node) { - printImageTag(node, node.url); + String text = printChildrenToString(node); + printImageTag(linkRenderer.render(node, text)); } public void visit(ExpLinkNode node) { @@ -197,7 +198,7 @@ public void visit(RefImageNode node) { if (node.referenceKey != null) printer.print(key); printer.print(']'); } - } else printImageTag(node, refNode.getUrl()); + } else printImageTag(linkRenderer.render(node, refNode.getUrl(), refNode.getTitle(), text)); } public void visit(RefLinkNode node) { @@ -384,9 +385,14 @@ protected void printIndentedTag(SuperNode node, String tag) { printer.indent(-2).println().print('<').print('/').print(tag).print('>'); } - protected void printImageTag(SuperNode imageNode, String url) { - printer.print("\"")"); + protected void printImageTag(LinkRenderer.Rendering rendering) { + printer.print(""); } protected void printLink(LinkRenderer.Rendering rendering) { From 205bca24eb9ddf724b855b840026a000bcf88f1e Mon Sep 17 00:00:00 2001 From: James Moger Date: Sat, 9 Nov 2013 16:51:46 -0500 Subject: [PATCH 2/2] Adjust Maruku/images expected output for LinkRenderer improvement --- src/test/resources/Maruku/images.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/resources/Maruku/images.html b/src/test/resources/Maruku/images.html index f2799bd..8020ca8 100644 --- a/src/test/resources/Maruku/images.html +++ b/src/test/resources/Maruku/images.html @@ -1,9 +1,9 @@

This page does not uilizes Cascading Style Sheets

-

Please mouseover to see the title: Cascading Style Sheets

+

Please mouseover to see the title: Cascading Style Sheets

-

Please mouseover to see the title: Cascading Style Sheets

+

Please mouseover to see the title: Cascading Style Sheets

-

I’ll say it one more time: this page does not use Cascading Style Sheets

+

I’ll say it one more time: this page does not use Cascading Style Sheets

-

This is double size: Cascading Style Sheets

+

This is double size: Cascading Style Sheets