summaryrefslogtreecommitdiff
path: root/docs/users_guide/conf.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/users_guide/conf.py')
-rw-r--r--docs/users_guide/conf.py52
1 files changed, 28 insertions, 24 deletions
diff --git a/docs/users_guide/conf.py b/docs/users_guide/conf.py
index 8a4c18f53e..12ecee9beb 100644
--- a/docs/users_guide/conf.py
+++ b/docs/users_guide/conf.py
@@ -116,35 +116,39 @@ texinfo_documents = [
from sphinx import addnodes
from docutils import nodes
+# The following functions parse flag declarations, and then have two jobs. First
+# they modify the docutils node `signode` for the proper display of the
+# declaration. Second, they return the name used to reference the flag.
+# (i.e. return "name" implies you reference the flag with :flag:`name`)
def parse_ghci_cmd(env, sig, signode):
- name = sig.split(';')[0]
- sig = sig.replace(';', '')
- signode += addnodes.desc_name(name, sig)
+ parts = sig.split(';')
+ name = parts[0]
+ args = ''
+ if len(parts) > 1:
+ args = parts[1]
+ # Bold name
+ signode += addnodes.desc_name(name, name)
+ # Smaller args
+ signode += addnodes.desc_addname(args, args)
+ # Reference name
return name
def parse_flag(env, sig, signode):
+
+ # Break flag into name and args
import re
- names = []
- for i, flag in enumerate(sig.split(',')):
- flag = flag.strip()
- sep = '='
- parts = flag.split('=')
- if len(parts) == 1:
- sep=' '
- parts = flag.split()
- if len(parts) == 0: continue
-
- name = parts[0]
- names.append(name)
- sig = sep + ' '.join(parts[1:])
- sig = re.sub(ur'<([-a-zA-Z ]+)>', ur'⟨\1⟩', sig)
- if i > 0:
- signode += addnodes.desc_name(', ', ', ')
- signode += addnodes.desc_name(name, name)
- if len(sig) > 0:
- signode += addnodes.desc_addname(sig, sig)
-
- return names[0]
+ parts = re.split('( |=|\\[)', sig, 1)
+ flag = parts[0]
+ args = ''
+ if len(parts) > 1:
+ args = ''.join(parts[1:])
+
+ # Bold printed name
+ signode += addnodes.desc_name(flag, flag)
+ # Smaller arguments
+ signode += addnodes.desc_addname(args, args)
+ # Reference name left unchanged
+ return sig
def setup(app):
from sphinx.util.docfields import Field, TypedField