Attachment 'compatibility.patch'
Download 1 diff -r ffaec355ee84 MoinMoin/parser/highlight.py
2 --- a/MoinMoin/parser/highlight.py Mon Dec 28 14:53:08 2009 +0000
3 +++ b/MoinMoin/parser/highlight.py Tue Jan 05 22:38:32 2010 +0100
4 @@ -28,6 +28,9 @@
5 if m and m.groups(0):
6 extensions.extend(m.groups(0))
7
8 +def extensions_from_lexer(parsername):
9 + lexer = pygments.lexers.get_lexer_by_name(parsername)
10 + extensions = [ext.strip('*') for ext in lexer.filenames if ext.startswith('*.')]
11
12 class PygmentsFormatter(pygments.formatter.Formatter):
13 """ a formatter for Pygments that uses the moin formatter for creating output """
14 @@ -169,4 +172,3 @@
15 fmt.result.append(formatter.code_area(0, self._code_id))
16 fmt.result.append(formatter.div(0))
17 self.request.write("".join(fmt.result))
18 -
19 diff -r ffaec355ee84 MoinMoin/parser/text_cplusplus.py
20 --- a/MoinMoin/parser/text_cplusplus.py Mon Dec 28 14:53:08 2009 +0000
21 +++ b/MoinMoin/parser/text_cplusplus.py Tue Jan 05 22:38:32 2010 +0100
22 @@ -19,8 +19,8 @@
23 """
24
25 from MoinMoin.parser.highlight import Parser as HighlightParser
26 -from MoinMoin.parser.highlight import Dependencies
27 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
28
29 class Parser(HighlightParser):
30 parsername = 'cpp' # Lexer name pygments recognizes
31 -
32 + extensions = extensions_from_lexer(parsername)
33 diff -r ffaec355ee84 MoinMoin/parser/text_diff.py
34 --- a/MoinMoin/parser/text_diff.py Mon Dec 28 14:53:08 2009 +0000
35 +++ b/MoinMoin/parser/text_diff.py Tue Jan 05 22:38:32 2010 +0100
36 @@ -19,8 +19,8 @@
37 """
38
39 from MoinMoin.parser.highlight import Parser as HighlightParser
40 -from MoinMoin.parser.highlight import Dependencies
41 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
42
43 class Parser(HighlightParser):
44 parsername = 'diff' # Lexer name pygments recognizes
45 -
46 + extensions = extensions_from_lexer(parsername)
47 diff -r ffaec355ee84 MoinMoin/parser/text_irssi.py
48 --- a/MoinMoin/parser/text_irssi.py Mon Dec 28 14:53:08 2009 +0000
49 +++ b/MoinMoin/parser/text_irssi.py Tue Jan 05 22:38:32 2010 +0100
50 @@ -19,8 +19,8 @@
51 """
52
53 from MoinMoin.parser.highlight import Parser as HighlightParser
54 -from MoinMoin.parser.highlight import Dependencies
55 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
56
57 class Parser(HighlightParser):
58 parsername = 'irc' # Lexer name pygments recognizes
59 -
60 + extensions = extensions_from_lexer(parsername)
61 diff -r ffaec355ee84 MoinMoin/parser/text_java.py
62 --- a/MoinMoin/parser/text_java.py Mon Dec 28 14:53:08 2009 +0000
63 +++ b/MoinMoin/parser/text_java.py Tue Jan 05 22:38:32 2010 +0100
64 @@ -19,8 +19,8 @@
65 """
66
67 from MoinMoin.parser.highlight import Parser as HighlightParser
68 -from MoinMoin.parser.highlight import Dependencies
69 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
70
71 class Parser(HighlightParser):
72 parsername = 'java' # Lexer name pygments recognizes
73 -
74 + extensions = extensions_from_lexer(parsername)
75 diff -r ffaec355ee84 MoinMoin/parser/text_pascal.py
76 --- a/MoinMoin/parser/text_pascal.py Mon Dec 28 14:53:08 2009 +0000
77 +++ b/MoinMoin/parser/text_pascal.py Tue Jan 05 22:38:32 2010 +0100
78 @@ -19,8 +19,10 @@
79 """
80
81 from MoinMoin.parser.highlight import Parser as HighlightParser
82 -from MoinMoin.parser.highlight import Dependencies
83 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
84
85 class Parser(HighlightParser):
86 parsername = 'pascal' # Lexer name pygments recognizes
87 + extensions = extensions_from_lexer(parsername)
88
89 +
90 diff -r ffaec355ee84 MoinMoin/parser/text_python.py
91 --- a/MoinMoin/parser/text_python.py Mon Dec 28 14:53:08 2009 +0000
92 +++ b/MoinMoin/parser/text_python.py Tue Jan 05 22:38:32 2010 +0100
93 @@ -19,8 +19,9 @@
94 """
95
96 from MoinMoin.parser.highlight import Parser as HighlightParser
97 -from MoinMoin.parser.highlight import Dependencies
98 +from MoinMoin.parser.highlight import extensions_from_lexer, Dependencies
99
100 class Parser(HighlightParser):
101 parsername = 'python' # Lexer name pygments recognizes
102 + extensions = extensions_from_lexer(parsername)
103
104 diff -r ffaec355ee84 MoinMoin/wikiutil.py
105 --- a/MoinMoin/wikiutil.py Mon Dec 28 14:53:08 2009 +0000
106 +++ b/MoinMoin/wikiutil.py Tue Jan 05 22:38:32 2010 +0100
107 @@ -839,7 +839,7 @@
108 ### mimetype support
109 #############################################################################
110 import mimetypes
111 -
112 +import pygments.lexers
113 MIMETYPES_MORE = {
114 # OpenOffice 2.x & other open document stuff
115 '.odt': 'application/vnd.oasis.opendocument.text',
116 @@ -868,6 +868,13 @@
117 '.wmv': 'video/x-ms-wmv',
118 '.swf': 'application/x-shockwave-flash',
119 }
120 +# add all mimetype patterns of pygments
121 +for name, short, patterns, mime in pygments.lexers.get_all_lexers():
122 + for pattern in list(patterns):
123 + if pattern.startswith('*.') and mime:
124 + patt = pattern.strip('*')
125 + MIMETYPES_MORE[patt] = mime[0]
126 +
127 [mimetypes.add_type(mimetype, ext, True) for ext, mimetype in MIMETYPES_MORE.items()]
128
129 MIMETYPES_sanitize_mapping = {
130 @@ -1188,7 +1195,13 @@
131 """
132 if not hasattr(cfg.cache, 'EXT_TO_PARSER'):
133 etp, etd = {}, None
134 - for pname in getPlugins('parser', cfg):
135 + parser_plugins = getPlugins('parser', cfg)
136 + # force highlight parser first entry in the list
137 + # this makes it possible to overwrite an extension
138 + # for a different parser
139 + parser_plugins.remove('highlight')
140 + parser_plugins = ['highlight'] + parser_plugins
141 + for pname in parser_plugins:
142 try:
143 Parser = importPlugin(cfg, 'parser', pname, 'Parser')
144 except PluginMissingError:
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.