* Add IDs for generated sections, so it can be used as link targets.
* Comments before class will be added as paragraph in the manual
* Argument description (desc attribute) added to table of arguments
Signed-off-by: Radek Novacek <rnovacek(a)redhat.com>
---
src/schematodocbook.py | 46 +++++++++++++++++++++++++++-------------------
1 files changed, 27 insertions(+), 19 deletions(-)
diff --git a/src/schematodocbook.py b/src/schematodocbook.py
index 336cbf4..d42692a 100755
--- a/src/schematodocbook.py
+++ b/src/schematodocbook.py
@@ -21,7 +21,7 @@ class Schema(object):
f.write("<para>Package:
<literal>%s</literal></para>\n" % self.package)
if len(self.events):
for e in self.events:
- e.write_docbook(f)
+ e.write_docbook(f, self.package)
if len(self.classes):
for c in self.classes:
c.write_docbook(f)
@@ -34,8 +34,8 @@ class Event(object):
for arg_name in args.split(","):
self.args.append(schema.event_args[arg_name])
- def write_docbook(self, f):
- f.write(" <section>\n")
+ def write_docbook(self, f, pkgname):
+ f.write(" <section id=\"%s_%s\">\n" % (pkgname,
self.name))
f.write(" <title>Event:
<literal>%s</literal></title>\n" % self.name)
f.write(" <table>\n")
f.write(" <title>Arguments for Event:
<literal>%s</literal></title>\n"
@@ -69,18 +69,21 @@ class EventArgument(object):
class Class(object):
- def __init__(self, name):
+ def __init__(self, name, more_info):
self.name = name
self.properties = []
self.statistics = []
self.methods = []
+ self.more_info = more_info
def write_docbook(self, f):
- f.write(" <section>\n")
+ f.write(" <section id=\"%s\">\n" % self.name)
f.write(" <title>Class: %s</title>\n" % self.name)
+ if self.more_info:
+ f.write("%s\n" % self.more_info)
if len(self.properties):
- f.write(" <table>\n")
+ f.write(" <table id=\"%s_properties\">\n" %
self.name)
f.write(" <title>Properties for Class:
<literal>%s</literal></title>\n"
% self.name)
f.write(" <tgroup cols=\"5\">\n")
@@ -95,13 +98,13 @@ class Class(object):
f.write(" </thead>\n")
f.write(" <tbody>\n")
for p in self.properties:
- p.write_docbook(f)
+ p.write_docbook(f, self.name)
f.write(" </tbody>\n")
f.write(" </tgroup>\n")
f.write(" </table>\n")
if len(self.statistics):
- f.write(" <table>\n")
+ f.write(" <table id=\"%s_statistics\">\n" %
self.name)
f.write(" <title>Statistics for Class:
<literal>%s</literal></title>\n"
% self.name)
f.write(" <tgroup cols=\"4\">\n")
@@ -115,16 +118,16 @@ class Class(object):
f.write(" </thead>\n")
f.write(" <tbody>\n")
for s in self.statistics:
- s.write_docbook(f)
+ s.write_docbook(f, self.name)
f.write(" </tbody>\n")
f.write(" </tgroup>\n")
f.write(" </table>\n")
if len(self.methods):
- f.write(" <section>\n")
+ f.write(" <section id=\"%s_methods\">\n" %
self.name)
f.write(" <title>Methods</title>\n")
for m in self.methods:
- m.write_docbook(f)
+ m.write_docbook(f, self.name)
f.write(" </section>\n")
f.write(" </section>\n")
@@ -138,8 +141,8 @@ class Property(object):
self.desc = desc
self.more_info = more_info
- def write_docbook(self, f):
- f.write(" <row>\n")
+ def write_docbook(self, f, clsname):
+ f.write(" <row id=\"%s_%s\">\n" % (clsname,
self.name))
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.name)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.type)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.access)
@@ -158,8 +161,8 @@ class Statistic(object):
self.desc = desc
self.unit = ""
- def write_docbook(self, f):
- f.write(" <row>\n")
+ def write_docbook(self, f, clsname):
+ f.write(" <row id=\"%s_%s\">\n" % (clsname,
self.name))
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.name)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.type)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.unit)
@@ -174,8 +177,8 @@ class Method(object):
self.more_info = more_info
self.args = []
- def write_docbook(self, f):
- f.write(" <section>\n")
+ def write_docbook(self, f, clsname):
+ f.write(" <section id=\"%s_%s\">\n" % (clsname,
self.name))
f.write(" <title>Method:
<literal>%s</literal></title>\n" % self.name)
f.write(" <para>%s</para>\n" % self.desc)
if self.more_info:
@@ -184,12 +187,13 @@ class Method(object):
f.write(" <table>\n")
f.write(" <title>Arguments for Method:
<literal>%s</literal></title>\n"
% self.name)
- f.write(" <tgroup cols=\"3\">\n")
+ f.write(" <tgroup cols=\"4\">\n")
f.write(" <thead>\n")
f.write(" <row>\n")
f.write(" <entry>Name</entry>\n")
f.write(" <entry>Direction</entry>\n")
f.write(" <entry>Type</entry>\n")
+ f.write("
<entry>Description</entry>\n")
f.write(" </row>\n")
f.write(" </thead>\n")
f.write(" <tbody>\n")
@@ -206,12 +210,14 @@ class MethodArgument(object):
self.name = name
self.dir = dir
self.type = type
+ self.desc = ""
def write_docbook(self, f):
f.write(" <row>\n")
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.name)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.dir)
f.write("
<entry><para><literal>%s</literal></para></entry>\n"
% self.type)
+ f.write("
<entry><para>%s</para></entry>\n" % self.desc)
f.write(" </row>\n")
@@ -231,6 +237,8 @@ class SchemaCallbacks(object):
elif self.cur_method:
method_arg = MethodArgument(attrs["name"], attrs["dir"],
attrs["type"])
+ if "desc" in attrs:
+ method_arg.desc = attrs["desc"]
self.cur_method.args.append(method_arg)
else:
sys.stderr.write("Unexpected arg with attrs: %s\n" % attrs)
@@ -250,7 +258,7 @@ class SchemaCallbacks(object):
self.cur_schema.events.append(Event(self.cur_schema,
attrs["name"],
attrs["args"]))
elif tag == "class":
- self.cur_class = Class(attrs["name"])
+ self.cur_class = Class(attrs["name"], self.last_comment)
self.cur_schema.classes.append(self.cur_class)
elif tag == "method":
self.cur_method = Method(attrs["name"], attrs["desc"],
--
1.7.7