Kaarsemaker.net


pygments-get-style-defs
2.04 KB

62 lines

Download

my_ssh
reset_passwords

Preview

 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