summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2013-02-15 06:40:20 -0500
committerJasper St. Pierre <jstpierre@mecheye.net>2013-02-15 19:54:08 -0500
commita3e9079c7381218e8111f81402ad2e70c9e416d4 (patch)
tree2f3f819ad13103e704d044d1ba1e8aa540b4f37f
parentf0bdbc7f283c080da5c07aad5becf6b843e9dd2e (diff)
downloadgobject-introspection-a3e9079c7381218e8111f81402ad2e70c9e416d4.tar.gz
docwriter: Clean up make_page_id
Make it use a simple recursive technique similar to format_page_name.
-rw-r--r--giscanner/docwriter.py29
1 files changed, 8 insertions, 21 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py
index 763a09d6..affcd2d1 100644
--- a/giscanner/docwriter.py
+++ b/giscanner/docwriter.py
@@ -31,30 +31,17 @@ from mako.lookup import TemplateLookup
from . import ast, xmlwriter
from .utils import to_underscores
-def make_page_id(node):
+def make_page_id(node, recursive=False):
if isinstance(node, ast.Namespace):
- return 'index'
-
- namespace = node.namespace
- if isinstance(node, (ast.Class, ast.Interface)):
- return '%s.%s' % (namespace.name, node.name)
- elif isinstance(node, ast.Record):
- return '%s.%s' % (namespace.name, node.name)
- elif isinstance(node, ast.Function):
- if node.parent is not None:
- return '%s.%s.%s' % (namespace.name, node.parent.name, node.name)
+ if recursive:
+ return node.name
else:
- return '%s.%s' % (namespace.name, node.name)
- elif isinstance(node, ast.Enum):
- return '%s.%s' % (namespace.name, node.name)
- elif isinstance(node, ast.Property) and node.parent is not None:
- return '%s.%s-%s' % (namespace.name, node.parent.name, node.name)
- elif isinstance(node, ast.Signal) and node.parent is not None:
- return '%s.%s-%s' % (namespace.name, node.parent.name, node.name)
- elif isinstance(node, ast.VFunction) and node.parent is not None:
- return '%s.%s-%s' % (namespace.name, node.parent.name, node.name)
+ return 'index'
+
+ if isinstance(node, (ast.Property, ast.Signal, ast.VFunction)):
+ return '%s-%s' % (make_page_id(node.parent, recursive=True), node.name)
else:
- return '%s.%s' % (namespace.name, node.name)
+ return '%s.%s' % (make_page_id(node.parent, recursive=True), node.name)
def get_node_kind(node):
if isinstance(node, ast.Namespace):