##// END OF EJS Templates
Add Sphinx extension to document line & cell magics
Thomas Kluyver -
Show More
@@ -0,0 +1,24 b''
1 import re
2 from sphinx import addnodes
3
4 line_magic_re = re.compile(r"%([\w_]+)")
5 cell_magic_re = re.compile(r"%%([\w_]+)")
6
7 def parse_magic(env, sig, signode):
8 m = line_magic_re.match(sig)
9 if not m:
10 raise Exception("Invalid magic command: %s" % sig)
11 signode += addnodes.desc_name(sig, sig)
12 return m.group(1)
13
14 def parse_cell_magic(env, sig, signode):
15 m = cell_magic_re.match(sig)
16 if not m:
17 raise ValueError("Invalid cell magic: %s" % sig)
18 signode += addnodes.desc_name(sig, sig)
19 return m.group(1)
20
21
22 def setup(app):
23 app.add_object_type('magic', 'magic', '%%%s (magic command)', parse_magic)
24 app.add_object_type('cellmagic', 'cellmagic', '%%%%%s (cell magic)', parse_cell_magic)
@@ -52,6 +52,7 b' extensions = ['
52 'IPython.sphinxext.ipython_directive',
52 'IPython.sphinxext.ipython_directive',
53 'numpydoc', # to preprocess docstrings
53 'numpydoc', # to preprocess docstrings
54 'github', # for easy GitHub links
54 'github', # for easy GitHub links
55 'magics',
55 ]
56 ]
56
57
57 if ON_RTD:
58 if ON_RTD:
General Comments 0
You need to be logged in to leave comments. Login now