Improve fopxconf info
diff --git a/content/fop/trunk/fopxconf.mdtext b/content/fop/trunk/fopxconf.mdtext
index 788ce5e..0f9e3b2 100644
--- a/content/fop/trunk/fopxconf.mdtext
+++ b/content/fop/trunk/fopxconf.mdtext
@@ -60,7 +60,7 @@
     - weight=string
     - style=string
 
-### [AFPRendererOption](output.html#afp-configuration)
+### [AFPRendererConfig](output.html#afp-configuration)
 
 - default-resource-levels=string
 - images=string
@@ -90,7 +90,7 @@
 - single-strip=true/false
 - endianness=string
 
-### [BitmapRendererOption](output.html#bitmap-configuration)
+### [BitmapRendererConfig](output.html#bitmap-configuration)
 
 - transparent-page-background=default: false
 - background-color=string
@@ -105,16 +105,17 @@
 - binary=string
 - bi-level=string
 
-### [PSRendererOption](output.html#ps-configuration)
+### [PSRendererConfig](output.html#ps-configuration)
 
 - auto-rotate-landscape=default: false
 - language-level=string
-- optimize-resources=true/false
+- optimize-resources=default: false
 - safe-set-page-device=default: false
 - dsc-compliant=default: true
+- rendering=string
 - acrobat-downsample=default: false
 
-### [PDFEncryptionOption](pdfencryption.html#embedded)
+### [PDFEncryptionConfig](pdfencryption.html#embedded)
 
 - encryption-length=string
 - noprinthq=string
@@ -130,8 +131,9 @@
 - encrypt-metadata=default: true
 - encryption-params=string
 
-### [PDFRendererOption](pdfa.html#fop-xconf)
+### [PDFRendererConfig](pdfa.html#fop-xconf)
 
+- filterList=string
 - pdf-a-mode=string
 - pdf-ua-mode=string
 - pdf-x-mode=string
@@ -143,9 +145,12 @@
 - form-xobject=default: false
 - output-profile=string
 
-### [PCLRendererOption](output.html#pcl-configuration)
+### [PCLRendererConfig](output.html#pcl-configuration)
 
+- transparent-page-background=string
+- rendering=string
 - text-rendering=true/false
 - disable-pjl=true/false
+- optimize-resources=true/false
 - color=true/false
 
diff --git a/generatefopxconf.py b/generatefopxconf.py
index 0160629..54a9357 100644
--- a/generatefopxconf.py
+++ b/generatefopxconf.py
@@ -7,9 +7,10 @@
 args = parser.parse_args()
 
 class Item:
-    def __init__(self, name, parent):
+    def __init__(self, name, var, parent):
         self.name = name
-        self.parent = parent.replace('.java', '')
+        self.var = var
+        self.parent = parent
         self.element = False
         self.attrtype = 'string'
 
@@ -17,55 +18,74 @@
 
 def getItem(parent, l):
     tag = None
+    var = None
     if '"' in l:
-        tag = l.split('"')[1]
-        if ' ' in tag or len(tag) < 2 or tag.lower() != tag or tag == 'true':
+        tag = findTag(l)
+        if '_' in l and '(' in l:
+            var = l.split('(')[0]
+        elif '_' in l and '=' in l:
+            var = l.split('=')[0].strip().split(' ')[-1].strip()
+    elif '(' in l and ')' in l and '_' in l:
+        var = l.split('(')[1].split(')')[0]
+        if '.' in var:
+            var = var.split('.')[0]
+        if ',' in var:
+            var = var.split(',')[0]
+        if '_' not in var or ' ' in var:
             return None
-    elif '(' in l:
-        tag = l.split('(')[1].split(')')[0]
-        if '_' not in tag or ' ' in tag or '.' in tag:
-            return None
-        tag = tag.lower().replace('_', '-')
     else:
         return None
+    parent = parent.replace('.java', '')
+    parent = parent.replace('Java2D', 'PCL')
+    parent = parent.replace('Option', 'Config')
     for item in tags:
-        if tag == item.name:
+        if parent == item.parent and ((tag and tag == item.name) or (var and var == item.var)):
             return item
-    item = Item(tag, parent)
+    item = Item(tag, var, parent)
     tags.append(item)
     return item
 
-for root, _, files in os.walk(args.fop):
-    for name in files:
-        if name.endswith('.java'):
-            fn = os.path.join(root, name)
-            f = open(fn)
-            if name == 'Java2DRendererOption.java':
-                name = 'PCLRendererOption.java'
-            parser = name in ['FopConfParser.java', 'DefaultFontConfig.java']
-            rendererConfigOption = False
-            for l in f:
-                l = l.strip()
-                if 'implements RendererConfigOption' in l:
-                    rendererConfigOption = True
-                if rendererConfigOption or parser:
-                    item = getItem(name, l)
-                    if item:
-                        if 'getChild' in l:
-                            item.element = True
-                        if 'Boolean' in l:
-                            item.attrtype = 'true/false'
-                        if 'Integer' in l:
-                            item.attrtype = 'integer'
-                        if 'Float' in l:
-                            item.attrtype = 'float'
-                        if 'Option' in name:
-                            if 'true' in l:
-                                item.attrtype = 'default: true'
-                            if 'false' in l:
-                                item.attrtype = 'default: false'       
-            f.close()
-            
+def findTag(l):
+    if 'debug' not in l and '*' not in l:
+        exclude = ['true', 'false']
+        for tag in l.split('"'):
+            if tag.upper() != tag and '.' not in tag and ' ' not in tag and '(' not in tag and tag not in exclude and '[' not in tag:
+                return tag
+
+def scan(afilter):
+    for root, _, files in os.walk(args.fop):
+        for name in files:
+            if name.endswith('.java') and afilter in name:
+                fn = os.path.join(root, name)
+                f = open(fn)
+                parser = name in ['FopConfParser.java', 'DefaultFontConfig.java']
+                rendererConfigOption = False
+                for l in f:
+                    l = l.strip()
+                    if 'implements RendererConfigOption' in l:
+                        rendererConfigOption = True
+                    if rendererConfigOption or parser:
+                        item = getItem(name, l)
+                        if item:
+                            if 'getChild' in l:
+                                item.element = True
+                            if 'Boolean' in l:
+                                item.attrtype = 'true/false'
+                            if 'Integer' in l:
+                                item.attrtype = 'integer'
+                            if 'Float' in l:
+                                item.attrtype = 'float'
+                            if 'Option' in name:
+                                if 'true' in l:
+                                    item.attrtype = 'default: true'
+                                if 'false' in l:
+                                    item.attrtype = 'default: false'       
+                f.close()
+
+#scan('RendererOption')
+scan('')
+
+"""
 def check(fn):
     f = open(fn)
     for l in f:
@@ -80,6 +100,7 @@
             fn = os.path.join(root, name)
             #check(fn)
 #check(home + '/xmlgraphics-website/content/fop/fop-pdf-images.mdtext')
+"""
 
 f = open(args.website + '/content/fop/trunk/fopxconf.mdtext', 'w')
 
@@ -89,26 +110,28 @@
 links = {
 'FopConfParser':'configuration.html',
 'DefaultFontConfig': 'fonts.html#bulk',
-'PDFEncryptionOption': 'pdfencryption.html#embedded',
-'PDFRendererOption': 'pdfa.html#fop-xconf',
-'AFPRendererOption': 'output.html#afp-configuration',
-'PSRendererOption': 'output.html#ps-configuration',
+'PDFEncryptionConfig': 'pdfencryption.html#embedded',
+'PDFRendererConfig': 'pdfa.html#fop-xconf',
+'AFPRendererConfig': 'output.html#afp-configuration',
+'PSRendererConfig': 'output.html#ps-configuration',
 'TxtRendererConfig': 'output.html#txt',
-'PCLRendererOption': 'output.html#pcl-configuration',
-'BitmapRendererOption': 'output.html#bitmap-configuration',
+'PCLRendererConfig': 'output.html#pcl-configuration',
+'BitmapRendererConfig': 'output.html#bitmap-configuration',
 'TIFFRendererConfig': 'output.html#bitmap-configuration',
+'IFRendererConfig': ''
 }
 
 def printtags(tag, hasParent):
-    if tag.element:
-        if tag.attrtype != 'string':
-            f.write('- &lt;' + tag.name + '&gt;' + tag.attrtype + '&lt;/' + tag.name + '&gt;\n')
+    if tag.name:
+        if tag.element:
+            if tag.attrtype != 'string':
+                f.write('- &lt;' + tag.name + '&gt;' + tag.attrtype + '&lt;/' + tag.name + '&gt;\n')
+            else:
+                f.write('- &lt;' + tag.name + '/&gt;\n')
         else:
-            f.write('- &lt;' + tag.name + '/&gt;\n')
-    else:
-        if hasParent:
-            f.write('    ')
-        f.write('- ' + tag.name + '=' + tag.attrtype + '\n')
+            if hasParent:
+                f.write('    ')
+            f.write('- ' + tag.name + '=' + tag.attrtype + '\n')
     
 seen = []