Require PNG fall back for SVG images. Remove dead code from node handler template.
diff --git a/src/main/org/freemarker/docgen/Transform.java b/src/main/org/freemarker/docgen/Transform.java
index 3df97ed..663951c 100644
--- a/src/main/org/freemarker/docgen/Transform.java
+++ b/src/main/org/freemarker/docgen/Transform.java
@@ -1668,15 +1668,22 @@
if (!loRef.startsWith("http://")
&& !loRef.startsWith("https://")
&& !ref.startsWith("/")) {
- if (!new File(contentDir,
- ref.replace('/', File.separatorChar))
- .isFile()) {
+ if (!new File(contentDir, ref.replace('/', File.separatorChar)).isFile()) {
throw new DocgenException(
- XMLUtil.theSomethingElement(elem) + " contains "
- + "a broken file reference: \""
+ XMLUtil.theSomethingElement(elem) + " refers "
+ + "to a missing file: \""
+ ref.replace("\"", """) + "\"");
}
}
+ if (loRef.endsWith(".svg")) {
+ String pngRef = ref.substring(0, ref.length() - 4) + ".png";
+ if (!new File(contentDir, pngRef.replace('/', File.separatorChar)).isFile()) {
+ throw new DocgenException(
+ XMLUtil.theSomethingElement(elem)
+ + " refers to an SVG file for which the fallback PNG file is missing: \""
+ + pngRef.replace("\"", """) + "\"");
+ }
+ }
}
// Adding title prefixes to document structure elements:
diff --git a/src/main/org/freemarker/docgen/templates/node-handlers.ftl b/src/main/org/freemarker/docgen/templates/node-handlers.ftl
index 8996677..ef45d49 100644
--- a/src/main/org/freemarker/docgen/templates/node-handlers.ftl
+++ b/src/main/org/freemarker/docgen/templates/node-handlers.ftl
@@ -90,18 +90,6 @@
<dt><@Anchor .node?parent/><#recurse></dt>
</#macro>
-<#macro graphic>
- <#local role=.node.@role[0]!?string>
- <#if role?startsWith("alt:")>
- <#local alt = role[4.. .node.@role?length-1]?trim>
- <#else>
- <#local alt = "figure">
- </#if>
- <img src="${.node.@fileref}" alt="${alt?html}"><#t>
-</#macro>
-
-<#assign imagedata=graphic>
-
<#macro indexterm>
<@Anchor/>
</#macro>
@@ -736,7 +724,12 @@
<#if imageobject?nodeName == "imageobject">
<#list imageobject.* as imagedata>
<#if imagedata?nodeName == "imagedata">
- <p class="center-img"><@Anchor /><img src="${imagedata.@fileref?html}" alt="figure"></p>
+ <p class="center-img"><@Anchor /><#t>
+ <#local src = imagedata.@fileref>
+ <img src="${src}" alt="Figure"<#rt>
+ <#if src?endsWith(".svg")> onerror="this.src="${src?keepBeforeLast('.') + '.png'}"; this.onerror=null;"</#if><#t>
+ ><#t>
+ </p>
<#else>
<#stop "Unexpected element when \"imagedata\" was expected: "
+ imagedata?nodeName>