1.1 --- a/parsers/MoinShare.py Fri May 17 23:07:09 2013 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,87 +0,0 @@
1.4 -# -*- coding: iso-8859-1 -*-
1.5 -"""
1.6 - MoinMoin - MoinShare fragment parser
1.7 -
1.8 - @copyright: 2011, 2012, 2013 by Paul Boddie <paul@boddie.org.uk>
1.9 - @license: GNU GPL (v2 or later), see COPYING.txt for details.
1.10 -"""
1.11 -
1.12 -from MoinSupport import parseAttributes, getParserClass, formatText
1.13 -from MoinMoin import wikiutil
1.14 -
1.15 -try:
1.16 - from hashlib import sha1
1.17 -except ImportError:
1.18 - from sha import new as sha1
1.19 -
1.20 -Dependencies = ["pages"]
1.21 -
1.22 -# Parser support.
1.23 -
1.24 -class Parser:
1.25 -
1.26 - """
1.27 - Format shared content fragments of the form...
1.28 -
1.29 - {{{#!MoinShare fragment=fragment-id ref=ref-fragment-id format=content-format
1.30 -
1.31 - Content...
1.32 - }}}
1.33 - """
1.34 -
1.35 - def __init__(self, raw, request, **kw):
1.36 -
1.37 - """
1.38 - Initialise the parser with the given 'raw' data, 'request' and any
1.39 - keyword arguments that may have been supplied.
1.40 - """
1.41 -
1.42 - self.raw = raw
1.43 - self.request = request
1.44 -
1.45 - attrs = parseAttributes(request, False)
1.46 -
1.47 - # Get any reference to this fragment, another fragment and the content
1.48 - # format.
1.49 -
1.50 - self.fragment = attrs.get("fragment", '')
1.51 - self.ref = attrs.get("ref", '')
1.52 - self.format_type = attrs.get("format", '')
1.53 -
1.54 - def getDigest(self):
1.55 -
1.56 - "Make a message digest for the fragment's content."
1.57 -
1.58 - return sha1(self.raw).hexdigest()
1.59 -
1.60 - def format(self, fmt):
1.61 -
1.62 - "Format a fragment using the given formatter 'fmt'."
1.63 -
1.64 - request = self.request
1.65 -
1.66 - if self.fragment:
1.67 - request.write(fmt.anchordef(self.fragment))
1.68 -
1.69 - request.write(fmt.div(1, css_class="moinsharefragment"))
1.70 - request.write(self.formatText(self.raw, fmt))
1.71 - request.write(fmt.div(0))
1.72 -
1.73 - def getFormat(self):
1.74 -
1.75 - "Get the format used on this page."
1.76 -
1.77 - return self.format_type
1.78 -
1.79 - def formatText(self, text, fmt):
1.80 -
1.81 - """
1.82 - Format the given 'text' using the specified formatter 'fmt'.
1.83 - """
1.84 -
1.85 - request = self.request
1.86 - format = self.getFormat()
1.87 -
1.88 - return formatText(text, request, fmt, inhibit_p=True, parser_cls=getParserClass(request, format))
1.89 -
1.90 -# vim: tabstop=4 expandtab shiftwidth=4