From c1d5e45ce1ec1af0b3d9881ca820aa0333b1ed19 Mon Sep 17 00:00:00 2001 From: Grgoire Dtrez Date: Wed, 10 Jun 2009 12:08:26 +0200 Subject: [PATCH] Ajout de scripts manquants darcs-hash:20090610100826-69ccb-32281005e3cc3d598d4b10a440fe9c29826e32a0.gz --- wiki/macro/BackgroundImage.py | 13 ++ wiki/macro/Latex.py | 44 +++++++ wiki/theme/CransWifi.py | 237 ++++++++++++++++++++++++++++++++++ 3 files changed, 294 insertions(+) create mode 100644 wiki/macro/BackgroundImage.py create mode 100644 wiki/macro/Latex.py create mode 100644 wiki/theme/CransWifi.py diff --git a/wiki/macro/BackgroundImage.py b/wiki/macro/BackgroundImage.py new file mode 100644 index 00000000..0426d5a9 --- /dev/null +++ b/wiki/macro/BackgroundImage.py @@ -0,0 +1,13 @@ + +def execute(macro, args): + + argv = args.split(',') + pic = argv[0].strip() + + html_fmt = ''' +
+ %s +
+ ''' + pic0 = AttachFile.getAttachUrl(pn, pic0, self.request) + pic0 = wikiutil.escape(pic0) diff --git a/wiki/macro/Latex.py b/wiki/macro/Latex.py new file mode 100644 index 00000000..cd275a6c --- /dev/null +++ b/wiki/macro/Latex.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +""" +See the latex parser, this is just a thin wrapper around it. +""" +# Imports +from MoinMoin import wikiutil +import re + +Dependencies = [] + +splitre = re.compile(r'([^\\])%') + +class latex: + def __init__(self, macro, args): + self.macro = macro + self.formatter = macro.formatter + self.text = args + + def renderInPage(self): + # return immediately if getting links for the current page + if self.macro.request.mode_getpagelinks: + return '' + + if self.text is None: # macro call without parameters + return '' + + # get an exception? for moin before 1.3.2 use the following line instead: + # L = wikiutil.importPlugin('parser', 'latex', 'Parser', self.macro.cfg.data_dir) + L = wikiutil.importPlugin(self.macro.cfg, 'parser', 'latex', 'Parser') + if L is None: + return self.formatter.text("<>") + l = L('', self.macro.request) + tmp = splitre.split(self.text, 1) + if len(tmp) == 3: + prologue,p2,tex=tmp + prologue += p2 + else: + prologue = '' + tex = tmp[0] + return l.get(self.formatter, tex, prologue) + + +def execute(macro, args): + return latex(macro, args).renderInPage() diff --git a/wiki/theme/CransWifi.py b/wiki/theme/CransWifi.py new file mode 100644 index 00000000..4a984165 --- /dev/null +++ b/wiki/theme/CransWifi.py @@ -0,0 +1,237 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin cr@ns + + +""" + +from MoinMoin import wikiutil, version +from MoinMoin import caching +from MoinMoin.theme import ThemeBase +from MoinMoin.Page import Page +from MoinMoin.widget import html + +class Theme(ThemeBase): + name = "CransWifi" + scripts = ['jquery-1.3.2.min.js', 'crans.js'] + stylesheets = ( + # media basename + ('all', 'reset-fonts-grids'), + ('all', 'base-min'), + ('all', 'common'), + ('screen', 'screen'), + ('print', 'print'), + ('projection', 'projection'), + ) + + def header(self, d, **kw): + """ Assemble wiki header + + @param d: parameter dictionary + @rtype: unicode + @return: page header html + """ + # hack + self.cfg.logo_string = u'cr@ns Logo' + html = [ + # Pre header custom html + self.emit_custom_html(self.cfg.page_header1), + + # Header + u'
', + u'
', + + u'
', +# u'
', +# self.interwiki(d), +# u'
', +# u'

', + +# self.editbar(d), +# u'
', + u'
', + u'
', + u'
', + self.msg(d), + self.breadcrumbs(d), + self.title(d), + + # Post header custom html (not recommended) + self.emit_custom_html(self.cfg.page_header2), + + # Start of page + self.startPage(), + ] + return u'\n'.join(html) + + def footer(self, d, **keywords): + """ Assemble wiki footer + + @param d: parameter dictionary + @keyword ...:... + @rtype: unicode + @return: page footer html + """ + page = d['page'] + html = [ + # End of page + u'
', + self.pageinfo(page), + self.endPage(), + # Pre footer custom html (not recommended!) + self.emit_custom_html(self.cfg.page_footer1), + u'
', # end of yui-g + u'
', # end of yui-b + u'
', # end of yui-main + # NAVIGATION + u'
', + self.logo(), + u'

Navigation

', + self.navibar(d), + u'
', # end of yui-b (navigation) + u'
', # end of #bd +# self.credits(d), +# self.showversion(d, **keywords), + u'', # end of #doc4 + # Toolbar + u'
', + self.editbar(d), + self.searchform(d), + u'
', + # UserBar + u'
', + self.username(d), + u'
', + # Login + u'
', + self.loginform(d), + u'
', + # Post footer custom html + self.emit_custom_html(self.cfg.page_footer2), + ] + return u'\n'.join(html) + + def title(self, d): + """ Assemble the title + + @param d: parameter dictionary + @rtype: string + @return: title html + """ + _ = self.request.getText + page_title = "" + if d['title_text'] == d['page'].split_title(): + curpage = '' + segments = d['page_name'].split('/') # was: title_text + page_title = segments[-1] + else: + page_title = wikiutil.escape(d['title_text']) + html = '

%s

' % page_title + return html + + def breadcrumbs(self, d): + """ Assemble the breadcrumbs + + @param d: parameter dictionary + @rtype: string + @return: title html + """ + _ = self.request.getText + content = [] + if d['title_text'] == d['page'].split_title(): + curpage = '' + segments = d['page_name'].split('/') # was: title_text + for s in segments[:-1]: + curpage += s + content.append("
  • %s
  • " % Page(self.request, curpage).link_to(self.request, s)) + curpage += '/' + content.append(('
  • %(text)s
  • ') % { + 'text': wikiutil.escape(segments[-1]), + }) + else: + content.append('
  • %s
  • ' % wikiutil.escape(d['title_text'])) + if len(content) < 2 : + return "" + html = '' % "".join(content) + return html + + def loginform(self, d): + """ Create the complete HTML form code. """ + def make_field(label, name, value="", type="text", size="32", **kw): + p = html.P(**kw) + if label: + p.append(html.Raw('' % (name, label))) + p.append(html.INPUT(type=type, value=value, size=size, name=name)) + return p + _ = self.request.getText + request = self.request + sn = request.getScriptname() + pi = request.getPathinfo() + action = u"%s%s" % (sn, pi) + hints = [] + for authm in request.cfg.auth: + hint = authm.login_hint(request) + if hint: + hints.append(hint) + form = html.FORM(action=action, name="loginform") + form.append(html.INPUT(type="hidden", name="action", value="login")) + for hint in hints: + form.append(html.P().append(html.Raw(hint))) + cfg = request.cfg + if 'username' in cfg.auth_login_inputs: + form.append( + make_field(label=_('Name'), name="name")) + + if 'password' in cfg.auth_login_inputs: + form.append( + make_field(label=_('Password'), name="password", type="password")) + + if 'openid_identifier' in cfg.auth_login_inputs: + form.append( + make_field(label=_('OpenID'), name="openid_identifier", id="openididentifier")) + buttons = html.P(CLASS="buttons").extend([ + html.A(CLASS="hideLoginBox", href="#").extend([html.Raw(_("Cancel"))]), + html.Raw(' '), + html.INPUT(name='login', type="submit", value=_('Login'))]) + form.append(buttons) + + return unicode(form) + + def headscript(self, d): + link = '' + + # Create stylesheets links + html = [] + prefix = self.cfg.url_prefix_static + jshref = '%s/%s/js' % (prefix, self.name) + for script in self.scripts: + href = '%s/%s' % (jshref, script) + html.append(link % href) + html = u"\n".join(html) + + return ThemeBase.headscript(self, d)+html + + # disable gui editor + def guiEditorScript(self, d): + return "" + + def editorheader(self, d, **kw): + """ Assemble wiki header for editor + + @param d: parameter dictionary + @rtype: unicode + @return: page header html + """ + return self.header(d, **kw) + + +def execute(request): + """ + Generate and return a theme object + + @param request: the request object + @rtype: MoinTheme + @return: Theme object + """ + return Theme(request) +