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=&quot;${src?keepBeforeLast('.') + '.png'}&quot;; this.onerror=null;"</#if><#t>
+            ><#t>
+          </p>
         <#else>
           <#stop "Unexpected element when \"imagedata\" was expected: "
               + imagedata?nodeName>