source: spip-zone/_contribs_/pygments/trunk/spip/__init__.py @ 88386

Last change on this file since 88386 was 88386, checked in by maieul@…, 4 years ago

encore des caractères à prendre en compte, faudrait que je les sépares dans une variable

File size: 2.2 KB
Line 
1# -*- coding: utf-8 -*-
2# Maïeul ROUQUETTE
3# http://geekographie.maieul.net
4# Paternité  - Partage des Conditions Initiales à l'Identique 2.0 France (CC BY-SA 2.0)
5# http://creativecommons.org/licenses/by-sa/2.0/fr/
6from pygments.lexer import RegexLexer,bygroups
7from pygments.token import *
8import re
9class spipLexer(RegexLexer):
10        name = 'spip'
11        aliases = ['SPIP','spip']
12        filenames = ['*.html']
13        flags=re.U
14       
15        tokens = {
16                'root': [
17                        (r'<BOUCLE[\w]+',Name.Class,'debut_boucle'),                                                            # ouverture de la boucle
18                       
19                        (r'#+', Keyword,'balise'),                                                              # balises
20                        (r'\|[\w:]+',Name.Function),                                                            # filtres
21                        (r'<:[\w]+(:[\w]+)?:>',Literal.String.Other),                           # chaînes de langues simple (sans filtres dedans)
22                        (r':>',Literal.String.Other),                                                           # fin chaîne de langue
23                        (r'<:[\w]+(:[\w]+)?',Literal.String.Other),                                     # début chaine
24                        (r'<\/{0,2}B(OUCLE)?[\w]+>',Name.Class),                                        # partie optionelle des boucles et fermeture
25                        (r'\{',Name.Attribute,'critere'),                                                       #debut d'un critère
26                        (r'\}',Name.Attribute),                                                                         #fin d'un critère
27                        (r'.',Text)                                                                                                     #tout ce qui se situe en dehors de boucle, filtre, critère etc.
28
29                ],
30                'balise':[
31                        (r'(\A:){0}[A-Z_]\*{0,2}',Keyword),                                                     #balise de la boucle courante
32                        (r'[\w]+:',Keyword.Type),                                                                       #indication de la boucle concernée
33                        (r'\{',Name.Attribute,'critere'),                                                       #debut d'un parametre
34                        (r'\|[\w:]+',Name.Function),                                                            # filtres
35                        (r'.',Text,'#pop'),                                                                             #fin de la balise
36                        (r'\|[\w:]+',Name.Function),                                                            # filtres       
37                ],
38               
39                'debut_boucle':[
40                        ('\/|>',Name.Class,'#pop'),                                                                     # debut boucle
41                        ('\([\w]+[\s]*\??\)',Name.Variable.Instance),                                           # type de boucle
42                        (r'\{',Name.Attribute,'critere'),                                                       #debut d'un critère
43                        (r'\s',Name.Class)
44                ],
45               
46                'critere':[
47                       
48                        (r'#+[A-Z_]+\*{0,2}', Keyword),                                                         # balise
49                        (r'\|[\w:]+',Name.Function),                                                            # filtres
50                        (r':>',Literal.String.Other),                                                           # fin chaîne de langue
51                        (r'<:[\w]+(:[\w]+)?',Literal.String.Other),                                     # début chaine
52
53                        (r'\}',Name.Attribute,'#pop'),                                                          #fin d'un critère
54                        (r'[\w=,!\?\'\"\s\[\(\)\]\.\?\!\¡\¿\&\~\;\:\*\$\^\+\-\\]+|\|',Name.Attribute),                                                          # contenu simple d'un critères
55                        (r'\{',Name.Attribute,'critere'),                                               #debut d'un critères
56                       
57
58                ]
59               
60        }
Note: See TracBrowser for help on using the repository browser.