Nowe parsery dla wiki

Można dołożyć własne parsery dla MoinMoin. W tym celu, trzeba zrobić drobne zmiany:

   1 --- /usr/local/lib/python2.6/site-packages/MoinMoin/config/__init__.py.orig     2009-06-09 21:49:50.000000000 +0200
   2 +++ /usr/local/lib/python2.6/site-packages/MoinMoin/config/__init__.py  2009-09-30 10:04:44.000000000 +0200
   3 @@ -16,7 +16,7 @@
   4 
   5  # Parser to use mimetype text
   6  parser_text_mimetype = ('plain', 'csv', 'rst', 'docbook', 'latex', 'tex', 'html', 'css',
   7 -                       'xml', 'python', 'perl', 'php', 'ruby', 'javascript',
   8 +                       'xml', 'python', 'perl', 'php', 'ruby', 'javascript', 'shell', 'bsdmake',
   9                         'cplusplus', 'java', 'pascal', 'diff', 'gettext', 'xslt', 'creole', )
  10 
  11  # When creating files, we use e.g. 0666 & config.umask for the mode:

Kolejny krok to wykonanie plików w katalogu /usr/local/lib/python2.6/site-packages/MoinMoin/parser o nazwie text_parser.py, np.:

   1 # -*- coding: iso-8859-1 -*-
   2 """
   3     MoinMoin - SHell Source Parser
   4 
   5     @copyright: 2009 Krzysztof Stryjek <wtps0n@bsdserwis.com>
   6     @license: GNU GPL, see COPYING for details.
   7 
   8 """
   9 
  10 from MoinMoin.parser._ParserBase import ParserBase
  11 
  12 Dependencies = ['user'] # the "Toggle line numbers link" depends on user's language
  13 
  14 class Parser(ParserBase):
  15 
  16     parsername = "ColorizedShell"
  17     extensions = ['.shell']
  18     Dependencies = Dependencies
  19 
  20     def setupRules(self):
  21         ParserBase.setupRules(self)
  22 
  23         self.addRule("Comment", r"#.*$")
  24         self.addRulePair("String", r'"', r'$|[^\\](\\\\)*"')
  25         self.addRule("Char", r"'\\.'|'[^\\]'")
  26         self.addRule("Number", r"[0-9](\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?")
  27         self.addRule("ID", r"\$?[a-zA-Z_][0-9a-zA-Z_]*")
  28         self.addRule("SPChar", r"[~!$%^&*()+=|\[\]:;,.<>/?{}-]")
  29 
  30         reserved_words = ['echo', 'elif', 'until', 'in', 'alias','bg','fg',
  31         'builtin', 'cd', 'command', 'chdir', 'mkdir','eval', 'exec', 'exit',
  32         'export', 'fc', 'getopts',' jobid', 'hash', 'jobs', 'pwd', 'read', 'set',
  33         'readonly', 'setvar', 'shift', 'test', 'trap', 'times', 'type', 'ulimit',
  34         'umask', 'unalias', 'unset', 'wait', 'bind',
  35         'if', 'else', 'fi', 'while', 'for', 'do', 'done', 'case', 'esac', 'then',
  36         'local', 'return', 'continue', 'break']
  37 
  38         self.addReserved(reserved_words)
  39 
  40         constant_words = ['true', 'false', ':']
  41 
  42         self.addConstant(constant_words)


Teoretycznie prasery powinny wylądować w katalogu /usr/local/share/moin/data/plugin/parser jako parser.py, ale z jakiegoś powodu nie chce to działać.

WelcomeHome/NoweParsery (ostatnio edytowane 2009-09-30 09:27:53 przez ns37332)