[selinux-policy: 326/3172] html tag updates
Daniel J Walsh
dwalsh at fedoraproject.org
Thu Oct 7 19:33:05 UTC 2010
commit e214f627335ae9eaec21d0625b7e01c536c225f2
Author: Chris PeBenito <cpebenito at tresys.com>
Date: Fri Jun 10 20:39:41 2005 +0000
html tag updates
refpolicy/doc/policy.dtd | 10 ++++++-
refpolicy/doc/templates/int_list.html | 8 ++++--
refpolicy/doc/templates/interface.html | 9 ++++--
refpolicy/doc/templates/module.html | 11 ++++----
refpolicy/doc/templates/style.css | 2 +-
refpolicy/support/sedoctool.py | 40 +++++++++++++++++++++++++++----
6 files changed, 60 insertions(+), 20 deletions(-)
---
diff --git a/refpolicy/doc/policy.dtd b/refpolicy/doc/policy.dtd
index 88e6f94..a9c3e11 100644
--- a/refpolicy/doc/policy.dtd
+++ b/refpolicy/doc/policy.dtd
@@ -1,5 +1,7 @@
+<!ENTITY % inline.class "pre|p|ul|li">
+
<!ELEMENT policy (module+,tunable*)>
-<!ELEMENT module (summary,interface+)>
+<!ELEMENT module (summary,description,interface+)>
<!ATTLIST module
name CDATA #REQUIRED
layer CDATA #REQUIRED>
@@ -8,7 +10,7 @@
name CDATA #REQUIRED
dftval CDATA #REQUIRED>
<!ELEMENT summary (#PCDATA)>
-<!ELEMENT interface (description,securitydesc*,parameter+,infoflow?)>
+<!ELEMENT interface (summary,description,securitydesc*,parameter+,infoflow)>
<!ATTLIST interface name CDATA #REQUIRED>
<!ELEMENT description (#PCDATA)>
<!ELEMENT securitydesc (#PCDATA)>
@@ -20,3 +22,7 @@
<!ATTLIST infoflow
type CDATA #REQUIRED
weight CDATA #IMPLIED>
+
+<!ELEMENT p (#PCDATA|%inline.class;)*>
+<!ELEMENT ul (li+)>
+<!ELEMENT li (#PCDATA|%inline.class;|ul|ol)*>
diff --git a/refpolicy/doc/templates/int_list.html b/refpolicy/doc/templates/int_list.html
index 52d5e5f..c2ebfb3 100644
--- a/refpolicy/doc/templates/int_list.html
+++ b/refpolicy/doc/templates/int_list.html
@@ -24,8 +24,10 @@ Layer: <a href='[[int['mod_layer']]].html'>
[[end]]
)<br>
</div>
-<pre>
-[[int['interface_desc']]]<br><br>
-</pre>
+[[if int['interface_summary']]]
+<div id="description">
+[[int['interface_summary']]]
+</div>
+[[end]]
</div>
[[end]]
diff --git a/refpolicy/doc/templates/interface.html b/refpolicy/doc/templates/interface.html
index e9b12ab..85a669a 100644
--- a/refpolicy/doc/templates/interface.html
+++ b/refpolicy/doc/templates/interface.html
@@ -24,12 +24,15 @@
[[end]]
)<br>
</div>
+[[if int['interface_summary']]]
+<div id="description">
+<h5>Summary</h5>
+[[int['interface_summary']]]
+</div>
+[[end]]
<div id="description">
-<p/>
<h5>Description:</h5>
-<pre>
[[int['interface_desc']]]<br><br>
-</pre>
<h5>Parameters:</h5>
<div id="description">
<table border="1" cellspacing="0" cellpadding="3" width="80%">
diff --git a/refpolicy/doc/templates/module.html b/refpolicy/doc/templates/module.html
index 53cac90..94824be 100644
--- a/refpolicy/doc/templates/module.html
+++ b/refpolicy/doc/templates/module.html
@@ -1,9 +1,10 @@
<h1>Layer: [[mod_layer]]</h1><p/>
<h2>Module: [[mod_name]]</h2><p/>
-<h3>Summary:</h3><br>
-<pre>
-[[mod_summary]]<p/>
-</pre>
-<br/>
+<h3>Description:</h3>
+[[if mod_desc]]
+[[mod_desc]]
+[[else]]
+[[mod_summary]]
+[[end]]
<h3>Interfaces: </h3>
[[interfaces]]
diff --git a/refpolicy/doc/templates/style.css b/refpolicy/doc/templates/style.css
index a0eba00..6f01e5a 100644
--- a/refpolicy/doc/templates/style.css
+++ b/refpolicy/doc/templates/style.css
@@ -43,7 +43,7 @@ li {
p {
/* normal */
font:11px/20px verdana, arial, helvetica, sans-serif;
- margin:0px 0px 16px 0px;
+ margin:0px 0px 0px 10px;
padding:0px;
}
diff --git a/refpolicy/support/sedoctool.py b/refpolicy/support/sedoctool.py
index a4d9b9c..73a5a10 100755
--- a/refpolicy/support/sedoctool.py
+++ b/refpolicy/support/sedoctool.py
@@ -93,6 +93,24 @@ def gen_doc_menu(mod_layer, module_list):
x[1].sort(stupid_cmp)
return menu
+def format_desc(node):
+
+ desc_buf = ''
+ for desc in node.childNodes:
+ if desc.nodeName == "#text":
+ desc_buf += "<p>" + desc.data + "<p>"
+ elif desc.nodeName == "p":
+ desc_buf += "<p>" + desc.firstChild.data + "</p>"
+ for chld in desc.childNodes:
+ if chld.nodeName == "ul":
+ print "got a ul!"
+ desc_buf += "<ul>"
+ for li in chld.getElementsByTagName("li"):
+ desc_buf += "<li>" + li.firstChild.data + "</li>"
+
+ return desc_buf
+
+
def gen_docs(doc, dir, templatedir):
try:
@@ -135,7 +153,8 @@ def gen_docs(doc, dir, templatedir):
if name == "layer":
mod_layer = value
for desc in node.getElementsByTagName("summary"):
- mod_summary = desc.firstChild.data
+ if desc.parentNode == node:
+ mod_summary = format_desc(desc)
if not module_list.has_key(mod_layer):
module_list[mod_layer] = {}
@@ -183,26 +202,32 @@ def gen_docs(doc, dir, templatedir):
all_interfaces = []
for node in doc.getElementsByTagName("module"):
- mod_name = mod_layer = interface_buf = ''
+ mod_name = mod_layer = mod_desc = interface_buf = ''
for (name, value) in node.attributes.items():
if name == "name":
mod_name = value
if name == "layer":
mod_layer = value
for desc in node.getElementsByTagName("summary"):
- mod_summary = desc.firstChild.data
+ if desc.parentNode == node:
+ mod_summary = format_desc(desc)
+ for desc in node.getElementsByTagName("description"):
+ if desc.parentNode == node:
+ mod_desc = format_desc(desc)
interfaces = []
for interface in node.getElementsByTagName("interface"):
interface_parameters = []
- interface_secdesc = None
+ interface_secdesc = interface_summary = None
for i,v in interface.attributes.items():
interface_name = v
for desc in interface.getElementsByTagName("description"):
- interface_desc = desc.firstChild.data
+ interface_desc = format_desc(desc)
for desc in interface.getElementsByTagName("securitydesc"):
if desc:
- interface_secdesc = desc.firstChild.data
+ interface_secdesc = format_desc(desc)
+ for desc in interface.getElementsByTagName("summary"):
+ interface_summary = format_desc(desc)
for args in interface.getElementsByTagName("parameter"):
paramdesc = args.firstChild.data
@@ -219,11 +244,13 @@ def gen_docs(doc, dir, templatedir):
"optional" : paramopt }
interface_parameters.append(parameter)
interfaces.append( { "interface_name" : interface_name,
+ "interface_summary" : interface_summary,
"interface_desc" : interface_desc,
"interface_parameters" : interface_parameters,
"interface_secdesc" : interface_secdesc })
#all_interfaces is for the main interface index with all interfaces
all_interfaces.append( { "interface_name" : interface_name,
+ "interface_summary" : interface_summary,
"interface_desc" : interface_desc,
"interface_parameters" : interface_parameters,
"interface_secdesc" : interface_secdesc,
@@ -241,6 +268,7 @@ def gen_docs(doc, dir, templatedir):
module_args = { "mod_layer" : mod_layer,
"mod_name" : mod_name,
"mod_summary" : mod_summary,
+ "mod_desc" : mod_desc,
"interfaces" : interface_buf }
module_tpl = pyplate.Template(moduledata)
More information about the scm-commits
mailing list