85 lines
3.2 KiB
Python
85 lines
3.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
..
|
|
.... ............ ........
|
|
. ....... . .... ..
|
|
. ... .. .. .. .. ..... . ..
|
|
.. .. ....@@@. .. . ........ .
|
|
.. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. ....
|
|
.@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... ....
|
|
@@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. ..
|
|
.@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. .....
|
|
...@@@.... @@@ .@@.......... ........ ..... ..
|
|
. ..@@@@.. . .@@@@. .. ....... . .............
|
|
. .. .... .. .. . ... ....
|
|
. . .... ............. .. ...
|
|
.. .. ... ........ ... ...
|
|
................................
|
|
|
|
MoinMoin - Portail parser
|
|
|
|
PURPOSE:
|
|
Pour afficher un portail a la wikipedia.
|
|
|
|
CALLING SEQUENCE:
|
|
{{{
|
|
#!Portail
|
|
image1.png @@ title1 @@ description 1
|
|
image2.png @@ title2 @@ description 2
|
|
image3.png @@ title3 @@ description 3
|
|
}}}
|
|
|
|
Copyright 2008 Antoine Durand-Gasselin <adg@crans.org>
|
|
|
|
"""
|
|
import os,string,re,StringIO
|
|
from MoinMoin.action import AttachFile
|
|
from MoinMoin.parser.text_moin_wiki import Parser as WikiParser
|
|
|
|
#####################################################################
|
|
# Parser : classe principale, c'est elle qui fait tout
|
|
#######
|
|
class Parser:
|
|
def __init__(self, raw, request, **kw):
|
|
self.request = request
|
|
self.form = request.form
|
|
self.raw = raw
|
|
|
|
def format(self, formatter):
|
|
# on divise le textes en lignes (1 ligne = une entree dans le portail)
|
|
quotes = self.raw.split('\n')
|
|
|
|
# on récupere le chemin des fichiers attaches pour les images
|
|
current_pagename=formatter.page.page_name
|
|
attachment_path = AttachFile.getAttachDir(self.request, current_pagename, create=1)
|
|
# on traite les ligne une à une
|
|
entries = []
|
|
for line in quotes:
|
|
line=line.strip()
|
|
items=line.split('@@',2)
|
|
if len(items)<3:
|
|
# Voir ce qu'on fait
|
|
## self.request.write('<!-- error, wrong number of parameters -->')
|
|
pass
|
|
else:
|
|
# On récupère le nom de l'image
|
|
pic = items[0].strip()
|
|
|
|
# On va formatter le titre et la légende
|
|
tit_buf = StringIO.StringIO()
|
|
bod_buf = StringIO.StringIO()
|
|
|
|
self.request.redirect(tit_buf)
|
|
WikiParser(items[1], self.request).format(formatter)
|
|
title = tit_buf.getvalue()
|
|
self.request.redirect()
|
|
|
|
self.request.redirect(bod_buf)
|
|
WikiParser(items[2], self.request).format(formatter)
|
|
body = bod_buf.getvalue()
|
|
self.request.redirect()
|
|
|
|
# Qu'on rajoute à la liste des entrées
|
|
entries += [ (( pic, title, body )) ]
|
|
|
|
self.request.write(formatter.crans_portal(entries))
|