mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
changes
Original commit message from CVS: changes
This commit is contained in:
parent
7e0b9786ec
commit
876e4c8be7
2 changed files with 2 additions and 271 deletions
|
@ -6,14 +6,14 @@ devhelp: gstreamer.devhelp gstreamer-libs.devhelp
|
||||||
|
|
||||||
gstreamer.devhelp:
|
gstreamer.devhelp:
|
||||||
cd ../gst && make
|
cd ../gst && make
|
||||||
./html2xml.py ../gst/html
|
sh html2xml.py ../gst/html
|
||||||
sed 's@base=""@base="@HTML_DIR@/gstreamer"@g' html.devhelp > gstreamer.devhelp
|
sed 's@base=""@base="@HTML_DIR@/gstreamer"@g' html.devhelp > gstreamer.devhelp
|
||||||
perl -i -p -e 's/name="html"/name="gstreamer"/' gstreamer.devhelp
|
perl -i -p -e 's/name="html"/name="gstreamer"/' gstreamer.devhelp
|
||||||
rm html.devhelp
|
rm html.devhelp
|
||||||
|
|
||||||
gstreamer-libs.devhelp:
|
gstreamer-libs.devhelp:
|
||||||
cd ../libs && make
|
cd ../libs && make
|
||||||
./html2xml.py ../libs/html
|
sh html2xml.py ../libs/html
|
||||||
sed 's@base=""@base="@HTML_DIR@/gstreamer-libs"@g' html.devhelp > gstreamer-libs.devhelp
|
sed 's@base=""@base="@HTML_DIR@/gstreamer-libs"@g' html.devhelp > gstreamer-libs.devhelp
|
||||||
perl -i -p -e 's/name="html"/name="gstreamer-libs"/' gstreamer-libs.devhelp
|
perl -i -p -e 's/name="html"/name="gstreamer-libs"/' gstreamer-libs.devhelp
|
||||||
rm html.devhelp
|
rm html.devhelp
|
||||||
|
|
|
@ -1,269 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
import formatter
|
|
||||||
import htmllib
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import sgmllib
|
|
||||||
import string
|
|
||||||
import sys
|
|
||||||
|
|
||||||
base_dict = {
|
|
||||||
'glib' : 'http://developer.gnome.org/doc/API/glib/',
|
|
||||||
'gdk' : 'http://developer.gnome.org/doc/API/gdk/',
|
|
||||||
'gtk' : 'http://developer.gnome.org/doc/API/gtk/',
|
|
||||||
'gdk-pixbuf' : 'http://developer.gnome.org/doc/API/gdk-pixbuf/',
|
|
||||||
'glib-2.0' : 'http://developer.gnome.org/doc/API/2.0/glib/',
|
|
||||||
'gobject-2.0' : 'http://developer.gnome.org/doc/API/2.0/gobject/',
|
|
||||||
'atk' : 'http://developer.gnome.org/doc/API/2.0/atk/',
|
|
||||||
'pango' : 'http://developer.gnome.org/doc/API/2.0/pango/',
|
|
||||||
'gdk-2.0' : 'http://developer.gnome.org/doc/API/2.0/gdk/',
|
|
||||||
'gtk-2.0' : 'http://developer.gnome.org/doc/API/2.0/gtk/',
|
|
||||||
'gdk-pixbuf-2.0' : 'http://developer.gnome.org/doc/API/2.0/gdk-pixbuf/',
|
|
||||||
'gnome-vfs-2.0' : 'http://developer.gnome.org/doc/API/2.0/gnome-vfs/',
|
|
||||||
'libxml-2' : 'http://xmlsoft.org/html/',
|
|
||||||
'libgnome' : 'http://developer.gnome.org/doc/API/2.0/libgnome/',
|
|
||||||
'libgnomeui' : 'http://developer.gnome.org/doc/API/2.0/libgnomeui/',
|
|
||||||
}
|
|
||||||
|
|
||||||
def does_dict_have_keys (dict, keys):
|
|
||||||
for key in keys:
|
|
||||||
if not dict.has_key (key):
|
|
||||||
return 0
|
|
||||||
if len(dict) != len(keys):
|
|
||||||
return 0
|
|
||||||
return 1
|
|
||||||
|
|
||||||
class BookParser (sgmllib.SGMLParser):
|
|
||||||
def __init__ (self):
|
|
||||||
sgmllib.SGMLParser.__init__ (self)
|
|
||||||
self.a = self.parents = []
|
|
||||||
self.dict = {}
|
|
||||||
self.last = self.link = ""
|
|
||||||
self.is_a = self.level = 0
|
|
||||||
self.first = 1
|
|
||||||
|
|
||||||
def unknown_starttag (self, tag, attrs):
|
|
||||||
if tag == 'a':
|
|
||||||
self.is_a = 1
|
|
||||||
for attr in attrs:
|
|
||||||
if attr[0] == "href":
|
|
||||||
self.link = attr[1]
|
|
||||||
break
|
|
||||||
|
|
||||||
if tag in ['dd', 'ul']:
|
|
||||||
self.parents.append (self.last)
|
|
||||||
self.level = self.level + 1
|
|
||||||
|
|
||||||
def unknown_endtag (self, tag):
|
|
||||||
if tag == 'a':
|
|
||||||
self.is_a = 0
|
|
||||||
|
|
||||||
if tag in ['dd', 'ul']:
|
|
||||||
self.level = self.level - 1
|
|
||||||
self.parents.pop()
|
|
||||||
|
|
||||||
def handle_data (self, data):
|
|
||||||
data = string.strip (data)
|
|
||||||
if not data or data in [ ">", "<" ]:
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.first:
|
|
||||||
self.dict['name'] = data
|
|
||||||
self.first = 0
|
|
||||||
return
|
|
||||||
|
|
||||||
if data == self.dict['name'] or data in [ "Next Page", "Previous Page", "Home", "Next"]:
|
|
||||||
return
|
|
||||||
|
|
||||||
if len (self.parents) == 0:
|
|
||||||
dict = self.dict
|
|
||||||
elif len (self.parents) == 1:
|
|
||||||
dict = self.dict[self.parents[0]]
|
|
||||||
elif len (self.parents) == 2:
|
|
||||||
dict = self.dict[self.parents[0]][self.parents[1]]
|
|
||||||
elif len (self.parents) == 3:
|
|
||||||
dict = self.dict[self.parents[0]][self.parents[1]][self.parents[2]]
|
|
||||||
else:
|
|
||||||
dict = None
|
|
||||||
|
|
||||||
if self.is_a:
|
|
||||||
if dict == None:
|
|
||||||
return
|
|
||||||
|
|
||||||
if not dict.has_key (data):
|
|
||||||
dict[data] = {}
|
|
||||||
if not dict.has_key ('order'):
|
|
||||||
dict['order'] = []
|
|
||||||
dict['order'].append (data)
|
|
||||||
dict[data]['link'] = self.link
|
|
||||||
|
|
||||||
self.last = data
|
|
||||||
|
|
||||||
class FunctionParser (htmllib.HTMLParser):
|
|
||||||
SKIP_DATA = [ "Next Page", "Previous Page", "Home", "Next", "Up", "<", ">", "Figure 1", "[1]"]
|
|
||||||
is_a = 0
|
|
||||||
a = []
|
|
||||||
link = ""
|
|
||||||
def anchor_bgn (self, href, name, type):
|
|
||||||
self.is_a = 1
|
|
||||||
self.link = href
|
|
||||||
|
|
||||||
def anchor_end (self):
|
|
||||||
self.is_a = 0
|
|
||||||
|
|
||||||
def handle_data (self, data):
|
|
||||||
data = string.strip (data)
|
|
||||||
if data in self.SKIP_DATA:
|
|
||||||
return
|
|
||||||
|
|
||||||
if not '#' in self.link:
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.link[:2] == "..":
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.is_a and self.link:
|
|
||||||
self.a.append ((data, self.link))
|
|
||||||
|
|
||||||
def parse_file_for_functions (fd):
|
|
||||||
try:
|
|
||||||
p = FunctionParser (formatter.NullFormatter ())
|
|
||||||
p.feed (fd.read ())
|
|
||||||
p.close ()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
raise SystemExit
|
|
||||||
return p.a
|
|
||||||
|
|
||||||
def output_chapter (fd, main_dict, level=1):
|
|
||||||
if not main_dict.has_key ('order'):
|
|
||||||
return
|
|
||||||
|
|
||||||
for sub in main_dict['order']:
|
|
||||||
dict = main_dict[sub]
|
|
||||||
|
|
||||||
if not does_dict_have_keys (dict, ['link']):
|
|
||||||
fd.write (' '*(level*4))
|
|
||||||
fd.write ('<sub name="%s" link="%s">\n' % (sub, dict['link']))
|
|
||||||
output_chapter (fd, dict, level+1)
|
|
||||||
fd.write (' '*(level*4))
|
|
||||||
fd.write ('</sub>\n')
|
|
||||||
else:
|
|
||||||
fd.write (' '*(level*4))
|
|
||||||
fd.write ('<sub name="%s" link="%s"/>\n' % (sub, dict['link']))
|
|
||||||
|
|
||||||
def get_functions (dir):
|
|
||||||
function_list = []
|
|
||||||
|
|
||||||
for file in os.listdir (dirname):
|
|
||||||
if file[-5:] != ".html":
|
|
||||||
continue
|
|
||||||
|
|
||||||
fd = open (dirname + os.sep + file)
|
|
||||||
functions = parse_file_for_functions (fd)
|
|
||||||
|
|
||||||
for function in functions:
|
|
||||||
if not function in function_list:
|
|
||||||
function_list.append (function)
|
|
||||||
return function_list
|
|
||||||
|
|
||||||
def get_index_filename (dir):
|
|
||||||
dir = os.path.abspath (dir)
|
|
||||||
|
|
||||||
filename = dir + os.sep + 'index.html'
|
|
||||||
if os.path.exists (filename):
|
|
||||||
return filename
|
|
||||||
|
|
||||||
filename = dir + os.sep + 'book1.html'
|
|
||||||
if os.path.exists (filename):
|
|
||||||
return filename
|
|
||||||
else:
|
|
||||||
raise SystemExit, "Can't find an index file"
|
|
||||||
|
|
||||||
def output_xml (fd, filename, bookname, version):
|
|
||||||
global base_dict
|
|
||||||
|
|
||||||
templ = \
|
|
||||||
'<book title="%(title)s"\n' \
|
|
||||||
' name="%(name)s"\n%(version)s' \
|
|
||||||
' base="%(base)s"\n' \
|
|
||||||
' link="%(link)s">\n\n'
|
|
||||||
|
|
||||||
|
|
||||||
link = os.path.basename (filename)
|
|
||||||
|
|
||||||
input_fd = open (filename)
|
|
||||||
p = BookParser ()
|
|
||||||
p.feed (input_fd.read ())
|
|
||||||
p.close ()
|
|
||||||
|
|
||||||
fd.write ('<?xml version="1.0"?>\n')
|
|
||||||
|
|
||||||
full = book_full_name (bookname, version)
|
|
||||||
if base_dict.has_key (full):
|
|
||||||
base = base_dict[full]
|
|
||||||
else:
|
|
||||||
base = ""
|
|
||||||
|
|
||||||
if version:
|
|
||||||
version = ' version="%s"\n' % version
|
|
||||||
|
|
||||||
fd.write (templ % { 'title' : p.dict['name'],
|
|
||||||
'name' : bookname,
|
|
||||||
'version' : version,
|
|
||||||
'base' : base,
|
|
||||||
'link' : link })
|
|
||||||
|
|
||||||
fd.write ('<chapters>\n')
|
|
||||||
output_chapter (fd, p.dict)
|
|
||||||
fd.write ('</chapters>\n\n')
|
|
||||||
|
|
||||||
fd.flush ()
|
|
||||||
|
|
||||||
def output_functions (fd, dirname):
|
|
||||||
functions = get_functions (dirname)
|
|
||||||
functions.sort ()
|
|
||||||
|
|
||||||
fd.write ('<functions>\n')
|
|
||||||
for name, link in functions:
|
|
||||||
fd.write (' <function name="%s" link="%s"/>\n' % (name, link))
|
|
||||||
fd.write ('</functions>\n\n')
|
|
||||||
|
|
||||||
def dirname_to_bookname (dirname):
|
|
||||||
dirname = os.path.basename (dirname)
|
|
||||||
if string.find (dirname, '-') == -1:
|
|
||||||
return (dirname, "")
|
|
||||||
else:
|
|
||||||
pos = string.rfind (dirname, '-')
|
|
||||||
return (dirname[:pos], dirname[pos+1:])
|
|
||||||
|
|
||||||
def book_full_name (book, version):
|
|
||||||
if version:
|
|
||||||
return "%s-%s" % (book, version)
|
|
||||||
else:
|
|
||||||
return book
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
if len (sys.argv) != 2 and \
|
|
||||||
len (sys.argv) != 3:
|
|
||||||
print 'Usage: %s dirname [output]' % sys.argv[0]
|
|
||||||
raise SystemExit
|
|
||||||
|
|
||||||
index_filename = get_index_filename (sys.argv[1])
|
|
||||||
dirname = os.path.abspath (sys.argv[1])
|
|
||||||
book, version = dirname_to_bookname (sys.argv[1])
|
|
||||||
if len (sys.argv) != 2:
|
|
||||||
if sys.argv[2] == "-s":
|
|
||||||
fd = sys.stdout
|
|
||||||
else:
|
|
||||||
output_filename = sys.argv[2]
|
|
||||||
fd = open (output_filename, 'w')
|
|
||||||
else:
|
|
||||||
output_filename = book_full_name (book, version) + '.devhelp'
|
|
||||||
fd = open (output_filename, 'w')
|
|
||||||
|
|
||||||
output_xml (fd, index_filename, book, version)
|
|
||||||
output_functions (fd, dirname)
|
|
||||||
fd.write ('</book>\n')
|
|
||||||
fd.close ()
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue