Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--article.html9
-rw-r--r--parse.py61
-rw-r--r--xol.py7
3 files changed, 76 insertions, 1 deletions
diff --git a/article.html b/article.html
new file mode 100644
index 0000000..f57266a
--- /dev/null
+++ b/article.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>%(title)s</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" href="ditastyle.css" type="text/css" />
+ </head>
+ <body>%(body)s</body>
+</html>
diff --git a/parse.py b/parse.py
new file mode 100644
index 0000000..96383ac
--- /dev/null
+++ b/parse.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+from gettext import gettext as _
+from BeautifulSoup import BeautifulSoup
+
+
+def parse_dita(dita_str):
+ soup = BeautifulSoup(dita_str)
+
+ html = open('article.html', 'r').read().decode('utf-8')
+
+ html_tags = []
+
+ title = soup.find('title').string.strip()
+ h1_title = '<h1>%(title)s</h1>' % \
+ {'title': title}
+ index_link = '<p><a href="librarymap.html">' + \
+ _('Return to index') + '</a></p>'
+
+ html_tags.append(index_link)
+ html_tags.append(h1_title)
+
+ for section in soup.findAll('section'):
+ for p in section.findAll('p'):
+ images = p.findAll('image')
+ for img in images:
+ html_tags.append('<img src="%(src)s" />' % \
+ {'src': img.get('href')})
+ html_tags.append('<p>')
+ for ph in p.findAll('ph'):
+ html_tags.append(ph.string.strip())
+ html_tags.append('</p>')
+
+ html = html % {'title': title,
+ 'body': '\n'.join(html_tags)}
+ return html
+
+
+def parse_ditamap(ditamap_str):
+ soup = BeautifulSoup(ditamap_str)
+ html = open('article.html', 'r').read().decode('utf-8')
+
+ html_tags = []
+
+ title = soup.find('map').get('title')
+
+ h1_title = '<h1>%(title)s</h1>' % \
+ {'title': title}
+ html_tags.append(h1_title)
+
+ html_tags.append('<li>')
+ for topic in soup.findAll('topicref'):
+ dita_path = topic.get('href')
+ html_tags.append('<ul><a href="%(href)s">%(name)s</a></ul>' % \
+ {'href': dita_path.replace('.dita', '.html'),
+ 'name': topic.get('navtitle')})
+ html_tags.append('</li>')
+
+ html = html % {'title': title,
+ 'body': '\n'.join(html_tags)}
+ return html
diff --git a/xol.py b/xol.py
index b5aa1df..6b2a34f 100644
--- a/xol.py
+++ b/xol.py
@@ -19,6 +19,7 @@ import gtk
import zipfile
import uuid
import logging
+import parse
from glob import glob
from gettext import gettext as _
@@ -152,6 +153,8 @@ def _dita_management(zip, uid, title):
'href="ditastylesheet.xsl"?>')
zipstr(zip, os.path.join(uid, 'slicecontent', '%s.dita' % auid),
content.prettify())
+ zipstr(zip, os.path.join(uid, 'slicecontent', '%s.html' % auid),
+ parse.parse_dita(content.prettify()))
map.append('<topicref href="%s.dita" navtitle="%s">' % (auid, atitle))
map.append('</topicref>')
@@ -159,12 +162,14 @@ def _dita_management(zip, uid, title):
map.append('</map>')
zipstr(zip, os.path.join(uid, 'slicecontent', 'librarymap.ditamap'),
"\n".join(map))
+ zipstr(zip, os.path.join(uid, 'slicecontent', 'librarymap.html'),
+ parse.parse_ditamap("\n".join(map)))
def _index_redirect(zip, uid):
"""
Creates the redirecting index.html
"""
- redirect_loc = 'slicecontent/librarymap.ditamap'
+ redirect_loc = 'slicecontent/librarymap.html'
html = ['<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">',\
'<html>',\