Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Denis Salem
VenC
Commits
0ac1dc02
Commit
0ac1dc02
authored
May 03, 2020
by
Denis Salem
Browse files
WIP: strip spaces in pattern escaping, documentation
parent
fc570f40
Changes
4
Hide whitespace changes
Inline
Side-by-side
VenC-site/entries/17__05-02-2020-21-59__Pattern_Processor
0 → 100644
View file @
0ac1dc02
authors: 'Denis Salem'
categories: ''
tags: ''
chapter: 5
title: Pattern Processor
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
VenC utilise un moteur de reconnaissance de motif permettant une mise en
page facilitée et automatisée. Ce système devrait permettre dans de
futures versions d'utiliser des modules externes. La création et l'ajout
de greffons sera détaillé dans une autre partie.
Les motifs pouvant être reconnus dépendent du contexte dans lequel ils
sont trouvés.
Les motifs sont définis de la façon suivante dans VenC
- Chaque motifs commence par .:Escape::'.:'::EndEscape:.
- Chaque motifs se termine par .:Escape::':.'::EndEscape:.
- Le ou les séparateurs à l'intérieur d'un motif sont représentés par .:Escape::'::'::EndEscape:.
Un motif est une fonction pouvant prendre des paramètres. L'objectif est
de remplacer un motif par une chaine de caractères formatée. Typiquement,
les motifs permettent d'accéder aux données du blog ou de faire de la mise
en page spécifique pour faire, par exemple, un menu déroulant, ou une
barre de navigation.
VenC-site/entries/18__05-02-2020-22-16__Motifs_de_Templates
0 → 100644
View file @
0ac1dc02
authors: 'Denis Salem'
categories: ''
tags: ''
chapter: 5.1
title: Motifs de Templates
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
Pour en savoir plus sur les templates, rendez vous [ici](.:GetRelativeOrigin:.Les-templates) Un template peut
contenir un certains nombre de motifs que VenC peut interpréter.
- __.:Escape:: .:GetEntryID:. ::EndEscape:.__ : Retourne l'identifiant unique de la publication.
- __.:Escape:: .:GetEntryTitle:. ::EndEscape:.__ : Retourne le nom de la publication.
- __.:Escape:: .:GetEntryMonth:. ::EndEscape:.__ : Retourne le mois de création de la publication.
- __.:Escape:: .:GetEntryYear:. ::EndEscape:.__ : Retourne l'année de création de la publication.
- __.:Escape:: .:GetEntryDay:. ::EndEscape:.__ : Retourne le jour de création de la publication.
- __.:Escape:: .:GetEntryHour:. ::EndEscape:.__ : Retourne l'heure de création de la publication.
- __.:Escape:: .:GetEntryMinute:. ::EndEscape:.__ : Retourne la minute de création de la publication.
À ces motifs s'ajoutent les super globaux généralement disponibles quelque soit le contexte.
VenC-site/entries/19__05-02-2020-22-50__Motifs_super_globaux
0 → 100644
View file @
0ac1dc02
authors: 'Denis Salem'
categories: ''
tags: ''
chapter: 5.2
title: Motifs super globaux
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
Ces motifs sont généralement disponibles quelque soit le contexte et
sont définis dans blog_configuration.yaml.
- .:Escape:: .:GetAuthorName:. ::EndEscape:. : Retourne le nom de l'auteur du blog.
- .:Escape:: .:GetBlogName:. ::EndEscape:.: Retourne le titre du blog.
- .:Escape:: .:GetBlogDescription:. ::EndEscape:. : Retourne la description du blog.
- .:Escape:: .:GetBlogKeywords:. ::EndEscape:. : Retourne les mots clefs décrivant le blog.
- .:Escape:: .:GetAuthorDescription:. ::EndEscape:. : Retourne la description de l'auteur du blog.
- .:Escape:: .:GetBlogLicense:. ::EndEscape:. : Retourne la licence appliquée au contenu du blog.
- .:Escape:: .:GetBlogURL:. ::EndEscape:. : Retourne l'URL du blog.
- .:Escape:: .:GetBlogLanguage:. ::EndEscape:. : Retourne le language du blog.
- .:Escape:: .:GetAuthorEmail:. ::EndEscape:. : Retourne l'adresse email de l'auteur du blog.
- .:Escape:: blablabla.:GetRelativeOrigin:. ::EndEscape:. : Retourne le chemin relatif de la racine du blog.
- .:Escape:: .:GetRelativeLocation:. ::EndEscape:. : Retourne le répertoire courant relativement à la racine du blog.
Vous pouvez également définir vos propres variables en rajoutant des
champs au fichier de configuration blog_configuration.yaml. Par exemple
en rajoutant la ligne
> Banner: 'maBanniere.jpg'
dans le fichier de configuration, vous pourrez récupérer la valeurs de Banner avec
> .:Escape:: .:Get::Banner:. ::EndEscape:.
src/venc2/patterns/processor.py
View file @
0ac1dc02
...
...
@@ -47,27 +47,46 @@ def cgi_escape(string):
)
def
get_markers_indexes
(
string
,
begin
=
".:"
,
end
=
":."
):
op
=
[]
cp
=
[]
op
,
cp
=
[],
[]
op_append
,
cp_append
=
op
.
append
,
cp
.
append
string_find
=
string
.
find
strip_begin
,
strip_end
=
[],
[]
strip_begin_append
,
strip_end_append
=
strip_begin
.
append
,
strip_end
.
append
i
=
0
l
=
len
(
string
)
offset
=
0
while
i
<
l
:
i
=
string
.
find
(
begin
,
i
)
i
=
string
_
find
(
begin
,
i
)
if
i
==
-
1
:
i
=
0
break
op
.
append
(
i
)
if
begin
==
".:Escape::"
:
j
=
0
while
string
[
i
+
10
+
j
]
==
' '
:
j
+=
1
strip_begin_append
(
i
+
j
)
op_append
(
i
)
i
+=
2
while
i
<
l
:
i
=
string
.
find
(
end
,
i
)
i
=
string
_
find
(
end
,
i
)
if
i
==
-
1
:
i
=
0
break
cp
.
append
(
i
)
if
begin
==
".:EndEscape::"
and
False
:
j
=
-
1
while
string
[
i
+
j
]
==
' '
:
j
-=
1
strip_end_append
(
i
+
j
)
cp_append
(
i
)
i
+=
2
if
begin
==
".:Escape::"
:
return
(
op
,
cp
,
strip_begin
,
strip_end
)
return
(
op
,
cp
)
def
handle_markup_language_error
(
message
,
line
=
None
,
string
=
None
):
...
...
@@ -107,7 +126,7 @@ class ProcessedString():
self
.
open_pattern_pos
,
self
.
close_pattern_pos
=
get_markers_indexes
(
string
)
#Process escape
self
.
escapes_o
,
self
.
escapes_c
=
get_markers_indexes
(
string
,
begin
=
".:Escape::"
,
end
=
"::EndEscape:."
)
self
.
escapes_o
,
self
.
escapes_c
,
self
.
strip_begin
,
self
.
strip_end
=
get_markers_indexes
(
string
,
begin
=
".:Escape::"
,
end
=
"::EndEscape:."
)
leo
,
lec
=
len
(
self
.
escapes_o
),
len
(
self
.
escapes_c
)
if
leo
!=
lec
:
raise
MalformedPatterns
(
leo
>
lec
,
True
,
ressource
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment