changeset 1341:599b606c4669

Start to implement HTML5/CSS3 exporter
author Thinker K.F. Li <thinker@codemud.net>
date Mon, 07 Feb 2011 21:54:03 +0800
parents 10d5f06f7566
children 972d749b9656
files pyink/extensions.py pyink/html5css3.py pyink/pyink.py
diffstat 3 files changed, 57 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pyink/extensions.py	Mon Feb 07 21:54:03 2011 +0800
@@ -0,0 +1,39 @@
+import pybExtension
+import html5css3
+
+_all_extensions = [html5css3.extension]
+
+_DEBUG_FLAG_NAME = 'PYINK_EXT_DBG_ENABLE'
+
+def _reg_extensions():
+    import os
+
+    if os.environ.has_key(_DEBUG_FLAG_NAME):
+        debug_level = int(os.environ[_DEBUG_FLAG_NAME])
+    else:
+        debug_level = 0
+        pass
+    
+    if debug_level > 0:
+        print 'Loading extensions'
+        pass
+    
+    for ext_imp, ext_id, ext_name, ioe_name, ioe_items in _all_extensions:
+        if debug_level > 0:
+            print '    register %s -- %s' % (ext_id, ext_name)
+            pass
+        
+        #
+        # ioe_items is description items for input, output, and effect.
+        #
+        if ioe_name not in ('input', 'output', 'effect'):
+            raise ValueError, 'invalid extension type (%s)' % (ioe_name)
+        
+        kws = {ioe_name: ioe_items}
+        pybExtension.register_extension(ext_imp, ext_id, ext_name, **kws)
+        pass
+    pass
+
+def initial():
+    _reg_extensions()
+    pass
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pyink/html5css3.py	Mon Feb 07 21:54:03 2011 +0800
@@ -0,0 +1,15 @@
+import pybExtension
+
+class html5css3_ext(pybExtension.PYBindExtImp):
+    def save(self, module, doc, filename):
+        print 'save to ' + filename
+        pass
+    pass
+
+extension = (html5css3_ext(),
+             'net.scribboo.html5css3',
+             'HTML5/CSS3 exporter',
+             'output',
+             {'extension': '.html',
+              'mimetype': 'text/html',
+              '_filetypename': 'HTML5/CSS3 (*.html)'})
--- a/pyink/pyink.py	Sun Feb 06 23:12:48 2011 +0800
+++ b/pyink/pyink.py	Mon Feb 07 21:54:03 2011 +0800
@@ -47,7 +47,10 @@
 
 
 def pyink_start():
+    import extensions
+    
     pybInkscape.inkscape.connect('activate_desktop', act_desktop)
+    extensions.initial()
     pass