mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Escape all strings put into the Qt help XML files.
This commit is contained in:
parent
c3c6bba214
commit
50058db273
@ -11,10 +11,10 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import cgi
|
|
||||||
import codecs
|
import codecs
|
||||||
import posixpath
|
import posixpath
|
||||||
from os import path
|
from os import path
|
||||||
|
from cgi import escape
|
||||||
|
|
||||||
from docutils import nodes
|
from docutils import nodes
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ collection_template = u'''\
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<QHelpCollectionProject version="1.0">
|
<QHelpCollectionProject version="1.0">
|
||||||
<assistant>
|
<assistant>
|
||||||
<title>%(project)s %(version)s</title>
|
<title>%(title)s</title>
|
||||||
<homePage>%(homepage)s</homePage>
|
<homePage>%(homepage)s</homePage>
|
||||||
<startPage>%(startpage)s</startPage>
|
<startPage>%(startpage)s</startPage>
|
||||||
</assistant>
|
</assistant>
|
||||||
@ -154,8 +154,8 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
if (resourcedir and not fn.endswith('.js')) or \
|
if (resourcedir and not fn.endswith('.js')) or \
|
||||||
fn.endswith('.html'):
|
fn.endswith('.html'):
|
||||||
filename = path.join(root, fn)[olen:]
|
filename = path.join(root, fn)[olen:]
|
||||||
#filename = filename.replace(os.sep, '\\') # XXX
|
projectfiles.append(file_template %
|
||||||
projectfiles.append(file_template % {'filename': filename})
|
{'filename': escape(filename)})
|
||||||
projectfiles = '\n'.join(projectfiles)
|
projectfiles = '\n'.join(projectfiles)
|
||||||
|
|
||||||
# it seems that the "namespace" may not contain non-alphanumeric
|
# it seems that the "namespace" may not contain non-alphanumeric
|
||||||
@ -168,15 +168,16 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
# write the project file
|
# write the project file
|
||||||
f = codecs.open(path.join(outdir, outname+'.qhp'), 'w', 'utf-8')
|
f = codecs.open(path.join(outdir, outname+'.qhp'), 'w', 'utf-8')
|
||||||
try:
|
try:
|
||||||
f.write(project_template % {'outname': outname,
|
f.write(project_template % {
|
||||||
'title': self.config.html_title,
|
'outname': escape(outname),
|
||||||
'version': self.config.version,
|
'title': escape(self.config.html_title),
|
||||||
'project': self.config.project,
|
'version': escape(self.config.version),
|
||||||
'namespace': nspace,
|
'project': escape(self.config.project),
|
||||||
'masterdoc': self.config.master_doc,
|
'namespace': escape(nspace),
|
||||||
'sections': sections,
|
'masterdoc': escape(self.config.master_doc),
|
||||||
'keywords': keywords,
|
'sections': sections,
|
||||||
'files': projectfiles})
|
'keywords': keywords,
|
||||||
|
'files': projectfiles})
|
||||||
finally:
|
finally:
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
@ -187,11 +188,11 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
self.info('writing collection project file...')
|
self.info('writing collection project file...')
|
||||||
f = codecs.open(path.join(outdir, outname+'.qhcp'), 'w', 'utf-8')
|
f = codecs.open(path.join(outdir, outname+'.qhcp'), 'w', 'utf-8')
|
||||||
try:
|
try:
|
||||||
f.write(collection_template % {'outname': outname,
|
f.write(collection_template % {
|
||||||
'project': self.config.project,
|
'outname': escape(outname),
|
||||||
'version': self.config.version,
|
'title': escape(self.config.html_short_title),
|
||||||
'homepage': homepage,
|
'homepage': escape(homepage),
|
||||||
'startpage': startpage})
|
'startpage': escape(startpage)})
|
||||||
finally:
|
finally:
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
@ -213,7 +214,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
if self.isdocnode(node):
|
if self.isdocnode(node):
|
||||||
refnode = node.children[0][0]
|
refnode = node.children[0][0]
|
||||||
link = refnode['refuri']
|
link = refnode['refuri']
|
||||||
title = cgi.escape(refnode.astext()).replace('"','"')
|
title = escape(refnode.astext()).replace('"','"')
|
||||||
item = '<section title="%(title)s" ref="%(ref)s">' % {
|
item = '<section title="%(title)s" ref="%(ref)s">' % {
|
||||||
'title': title,
|
'title': title,
|
||||||
'ref': link}
|
'ref': link}
|
||||||
@ -226,7 +227,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
parts.extend(self.write_toc(subnode, indentlevel))
|
parts.extend(self.write_toc(subnode, indentlevel))
|
||||||
elif isinstance(node, nodes.reference):
|
elif isinstance(node, nodes.reference):
|
||||||
link = node['refuri']
|
link = node['refuri']
|
||||||
title = cgi.escape(node.astext()).replace('"','"')
|
title = escape(node.astext()).replace('"','"')
|
||||||
item = section_template % {'title': title, 'ref': link}
|
item = section_template % {'title': title, 'ref': link}
|
||||||
item = ' '*4*indentlevel + item.encode('ascii', 'xmlcharrefreplace')
|
item = ' '*4*indentlevel + item.encode('ascii', 'xmlcharrefreplace')
|
||||||
parts.append(item.encode('ascii', 'xmlcharrefreplace'))
|
parts.append(item.encode('ascii', 'xmlcharrefreplace'))
|
||||||
@ -263,7 +264,7 @@ class QtHelpBuilder(StandaloneHTMLBuilder):
|
|||||||
def build_keywords(self, title, refs, subitems):
|
def build_keywords(self, title, refs, subitems):
|
||||||
keywords = []
|
keywords = []
|
||||||
|
|
||||||
title = cgi.escape(title)
|
title = escape(title)
|
||||||
# if len(refs) == 0: # XXX
|
# if len(refs) == 0: # XXX
|
||||||
# write_param('See Also', title)
|
# write_param('See Also', title)
|
||||||
if len(refs) == 1:
|
if len(refs) == 1:
|
||||||
|
Loading…
Reference in New Issue
Block a user