comparison setup.py @ 508:cabd80e75dad

Enable syntax highlighting (with Pygments) on doc page.
author cmlenz
date Wed, 06 Jun 2007 10:06:29 +0000
parents 460b1f0db935
children f38ce008ab0a
comparison
equal deleted inserted replaced
507:c006015dc52d 508:cabd80e75dad
33 def finalize_options(self): 33 def finalize_options(self):
34 pass 34 pass
35 35
36 def run(self): 36 def run(self):
37 from docutils.core import publish_cmdline 37 from docutils.core import publish_cmdline
38 from docutils.nodes import raw
39 from docutils.parsers import rst
40
38 docutils_conf = os.path.join('doc', 'docutils.conf') 41 docutils_conf = os.path.join('doc', 'docutils.conf')
39 epydoc_conf = os.path.join('doc', 'epydoc.conf') 42 epydoc_conf = os.path.join('doc', 'epydoc.conf')
43
44 try:
45 from pygments import highlight
46 from pygments.lexers import get_lexer_by_name
47 from pygments.formatters import HtmlFormatter
48
49 def code_block(name, arguments, options, content, lineno,
50 content_offset, block_text, state, state_machine):
51 lexer = get_lexer_by_name(arguments[0])
52 html = highlight('\n'.join(content), lexer, HtmlFormatter())
53 return [raw('', html, format='html')]
54 code_block.arguments = (1, 0, 0)
55 code_block.options = {'language' : rst.directives.unchanged}
56 code_block.content = 1
57 rst.directives.register_directive('code-block', code_block)
58 except ImportError:
59 print 'Pygments not installed, syntax highlighting disabled'
40 60
41 for source in glob('doc/*.txt'): 61 for source in glob('doc/*.txt'):
42 dest = os.path.splitext(source)[0] + '.html' 62 dest = os.path.splitext(source)[0] + '.html'
43 if not os.path.exists(dest) or \ 63 if not os.path.exists(dest) or \
44 os.path.getmtime(dest) < os.path.getmtime(source): 64 os.path.getmtime(dest) < os.path.getmtime(source):
56 '--simple-term', 76 '--simple-term',
57 '--verbose' 77 '--verbose'
58 ] 78 ]
59 cli.cli() 79 cli.cli()
60 sys.argv[1:] = old_argv 80 sys.argv[1:] = old_argv
61
62 except ImportError: 81 except ImportError:
63 print 'epydoc not installed, skipping API documentation.' 82 print 'epydoc not installed, skipping API documentation.'
64 83
65 84
66 class test_doc(Command): 85 class test_doc(Command):
Copyright (C) 2012-2017 Edgewall Software