[parser/] ajout de box et de portail comme plugins
Ignore-this: 795d4f28affe989c46f3573c6576985c * moinmoin 1.7,1.8 compliant * pour dépackager moinmoin darcs-hash:20090614234623-bd074-107936160340bd233f2e8bc378acf0f669236b21.gz
This commit is contained in:
parent
f224c4f8ae
commit
694285a3d4
2 changed files with 263 additions and 0 deletions
113
wiki/parser/Box.py
Normal file
113
wiki/parser/Box.py
Normal file
|
@ -0,0 +1,113 @@
|
|||
# -*- coding: iso-8859-1 -*-
|
||||
"""
|
||||
..
|
||||
.... ............ ........
|
||||
. ....... . .... ..
|
||||
. ... .. .. .. .. ..... . ..
|
||||
.. .. ....@@@. .. . ........ .
|
||||
.. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. ....
|
||||
.@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... ....
|
||||
@@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. ..
|
||||
.@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. .....
|
||||
...@@@.... @@@ .@@.......... ........ ..... ..
|
||||
. ..@@@@.. . .@@@@. .. ....... . .............
|
||||
. .. .... .. .. . ... ....
|
||||
. . .... ............. .. ...
|
||||
.. .. ... ........ ... ...
|
||||
................................
|
||||
|
||||
MoinMoin - Box parser
|
||||
|
||||
PURPOSE:
|
||||
une boite jolie
|
||||
|
||||
CALLING SEQUENCE:
|
||||
{{{
|
||||
#!Box titre
|
||||
blablabla
|
||||
|
||||
tables, images....
|
||||
}}}
|
||||
|
||||
Copyright 2008,2009 Antoine Durand-Gasselin <adg@crans.org>
|
||||
|
||||
"""
|
||||
|
||||
import os,string,re,StringIO
|
||||
from MoinMoin import config, wikiutil
|
||||
from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
|
||||
|
||||
Dependencies = []
|
||||
color_list = ['orange', 'black', 'red', 'green', 'blue', 'gray']
|
||||
|
||||
#####################################################################
|
||||
# Parser : classe principale, c'est elle qui fait tout
|
||||
#######
|
||||
class Parser:
|
||||
parsername = "Box"
|
||||
Dependencies=Dependencies
|
||||
|
||||
def __init__(self, raw, request, **kw):
|
||||
self.form = request.form
|
||||
self.request = request
|
||||
self.raw = raw
|
||||
self.settings = self.parseArgs(kw["format_args"])
|
||||
|
||||
def getRandomColor(self):
|
||||
nb_of_colors = color_list.__len__()
|
||||
from random import randint
|
||||
colorNum = randint(0, nb_of_colors - 1)
|
||||
return color_list[colorNum]
|
||||
|
||||
def parseArgs(self, argsString):
|
||||
argList = argsString.split(u',')
|
||||
settings = {}
|
||||
for anArg in argList:
|
||||
anArg = anArg.strip(u' ')
|
||||
if anArg.find(u'color=')!=-1:
|
||||
theColor = anArg.split(u'=')[1].lower()
|
||||
if theColor == 'random':
|
||||
theColor = self.getRandomColor()
|
||||
settings['color'] = theColor
|
||||
else:
|
||||
settings['title'] = anArg
|
||||
return settings
|
||||
|
||||
def format(self, formatter):
|
||||
|
||||
# on utilise la classe qui va fabriquer le code html
|
||||
try: title = self.settings['title']
|
||||
except: title = ''
|
||||
try: color = self.settings['color']
|
||||
except: color=None
|
||||
|
||||
content_buf = StringIO.StringIO()
|
||||
self.request.redirect(content_buf)
|
||||
WikiParser(self.raw, self.request).format(formatter)
|
||||
content = content_buf.getvalue()
|
||||
self.request.redirect()
|
||||
|
||||
del content_buf
|
||||
|
||||
# On le fout dans une boîte
|
||||
self.request.write(self.request.formatter.rawHTML(self.crans_box(title, content, color)))
|
||||
|
||||
def crans_box(self, title, body_html, color=None):
|
||||
if color==None: css_color_class=u""
|
||||
else: css_color_class = u" %s_box" % color
|
||||
html = [
|
||||
'<div class="sidebox%s">' % css_color_class,
|
||||
'<div class="boxhead">',
|
||||
self.heading(1,3),
|
||||
title,
|
||||
self.heading(0,3),
|
||||
'</div>',
|
||||
'<div class="boxbody1">',
|
||||
'<div class="boxbody2">',
|
||||
body_html,
|
||||
'</div>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
]
|
||||
return('\n'.join(html))
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue