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.
  • [get | view] (2010-01-06 03:22:05, 68.0 KB) [[attachment:INSTALL.html]]
  • [get | view] (2010-01-05 21:39:15, 5.5 KB) [[attachment:compatibility.patch]]
  • [get | view] (2010-01-01 20:22:43, 15.3 KB) [[attachment:example.png]]
  • [get | view] (2010-01-01 20:18:13, 0.3 KB) [[attachment:test.rst]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.