summaryrefslogtreecommitdiff
path: root/sphinx/roles.py
diff options
context:
space:
mode:
authorgeorg.brandl <devnull@localhost>2007-08-01 14:09:18 +0000
committergeorg.brandl <devnull@localhost>2007-08-01 14:09:18 +0000
commita4d85f24fa37b0bf611dccc74cde6ccd594ff0cb (patch)
tree75b85c6c8da7ba6b196f758c8642b24ce8682936 /sphinx/roles.py
parent678238ffe0c6245a7c07ab646ce5562d3f229505 (diff)
downloadsphinx-a4d85f24fa37b0bf611dccc74cde6ccd594ff0cb.tar.gz
Make system messages stand out in HTML output.
Diffstat (limited to 'sphinx/roles.py')
-rw-r--r--sphinx/roles.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/sphinx/roles.py b/sphinx/roles.py
index fa194c76..f52c5b0d 100644
--- a/sphinx/roles.py
+++ b/sphinx/roles.py
@@ -21,9 +21,6 @@ ws_re = re.compile(r'\s+')
generic_docroles = {
'command' : nodes.strong,
'dfn' : nodes.emphasis,
- 'file' : nodes.emphasis,
- 'filenq' : nodes.emphasis,
- 'filevar' : nodes.emphasis,
'guilabel' : nodes.strong,
'kbd' : nodes.literal,
'keyword' : nodes.literal,
@@ -114,7 +111,25 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
def menusel_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
- return [nodes.emphasis(rawtext, text.replace('-->', u'\N{TRIANGULAR BULLET}'))], []
+ return [nodes.emphasis(
+ rawtext, utils.unescape(text).replace('-->', u'\N{TRIANGULAR BULLET}'))], []
+
+
+_filevar_re = re.compile('{([^}]+)}')
+
+def file_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
+ text = utils.unescape(text)
+ retnodes = []
+ pos = 0
+ for m in _filevar_re.finditer(text):
+ if m.start() > pos:
+ txt = text[pos:m.start()]
+ retnodes.append(nodes.literal(txt, txt))
+ retnodes.append(nodes.emphasis('', '', nodes.literal(m.group(1), m.group(1))))
+ pos = m.end()
+ if pos < len(text):
+ retnodes.append(nodes.literal(text[pos:], text[pos:]))
+ return retnodes, []
specific_docroles = {
@@ -137,6 +152,7 @@ specific_docroles = {
'token' : xfileref_role,
'menuselection' : menusel_role,
+ 'file' : file_role,
}
for rolename, func in specific_docroles.iteritems():