1 #!/usr/bin/python 2 3 import pygments.formatters 4 import pygments.styles 5 import sys,os 6 7 formatters = { 8 'latex': ('tex', pygments.formatters.latex.LatexFormatter), 9 'html': ('css', pygments.formatters.html.HtmlFormatter) 10 } 11 styles = pygments.styles.get_all_styles() 12 13 def usage(): 14 print >>sys.stderr, """Usage: %s [-a|style] formatter [output]
1 #!/usr/bin/python
2
3 import pygments.formatters
4 import pygments.styles
5 import sys,os
6
7 formatters = {
8 'latex': ('tex', pygments.formatters.latex.LatexFormatter),
9 'html': ('css', pygments.formatters.html.HtmlFormatter)
10 }
11 styles = pygments.styles.get_all_styles()
12
13 def usage():
14 print >>sys.stderr, """Usage: %s [-a|style] formatter [output]
15
16 Output all style definitions for the given style and formatter to the specified
17 output file. Use - to output to stdout. Default outpufile is stylename.extension
18 (extension being the extension of the formatter)
19
20 Use -a to output style definitions for all styles. Each style is written to its
21 own file. Specifying an output file is not needed (or possible).
22
23 Supported formatters: html, latex
24 Supported styles: %s """ % (sys.argv[0], ' '.join(styles))
25 sys.exit(1)
26
27 def write_style(formatter, style, output):
28 if output == '-':
29 outfd = sys.stdout
30 else:
31 if os.path.exists(output):
32 answer = ''
33 while answer.lower() not in ('a','s','o'):
34 sys.stdout.write("%s exists. [S]kip [A]bort [O]verwrite? " % output)
35 answer = raw_input()
36 if answer.lower() == 's':
37 return
38 if answer.lower() == 'a':
39 sys.exit(1)
40 outfd = open(output, 'w')
41 outfd.write(formatters[formatter][1](style=style).get_style_defs())
42
43 # Main program
44 if len(sys.argv) == 3 and sys.argv[1] == '-a':
45 formatter = sys.argv[2]
46 if formatter not in formatters:
47 usage()
48 for style in styles:
49 write_style(formatter, style, style + '.' + formatters[formatter][0])
50 elif len(sys.argv) == 3:
51 style, formatter = sys.argv[1:]
52 if style not in styles or formatter not in formatters:
53 usage()
54 write_style(formatter, style, style + '.' + formatters[formatter][0])
55 elif len(sys.argv) == 4:
56 style, formatter, output = sys.argv[1:]
57 if style not in styles or formatter not in formatters:
58 usage()
59 write_style(formatter, style, output)
60 else:
61 usage()
Show all