[1.9.29] - 'wip' process. See changelog
This commit is contained in:
parent
b6730f2f77
commit
84abcb5e92
21
CHANGELOG.md
21
CHANGELOG.md
|
@ -1,13 +1,26 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
Tyto - Littérateur
|
Tyto - Littérateur
|
||||||
- Repository:
|
- Repository: https://forge.a-lec.org/echolib/tyto-litterateur/
|
||||||
- Issues:
|
- Issues: https://forge.a-lec.org/echolib/tyto-litterateur/issues
|
||||||
- Changelog:
|
- Changelog:
|
||||||
- License:
|
- License:
|
||||||
- Documentation:
|
- Documentation: https://forge.a-lec.org/echolib/tyto-litterateur/src/branch/master/LICENSE
|
||||||
|
- Development: https://forge.a-lec.org/echolib/tyto-litterateur/src/branch/devel
|
||||||
|
|
||||||
# CURRENTLY IN DEV !
|
# CURRENTLY IN DEV (in devel branch) !
|
||||||
|
|
||||||
|
## [1.9.29]
|
||||||
|
- Translations
|
||||||
|
- - added for logs (english)
|
||||||
|
- - updated french logs
|
||||||
|
- wip (working on...)
|
||||||
|
- - added modules conversions (source to HTML)
|
||||||
|
- check
|
||||||
|
- - some fixes and updated code
|
||||||
|
- tools
|
||||||
|
- - check css content
|
||||||
|
- readme : updated article example with comments
|
||||||
|
|
||||||
## [1.9.28]
|
## [1.9.28]
|
||||||
- readme
|
- readme
|
||||||
|
|
105
README.md
105
README.md
|
@ -11,17 +11,23 @@ tyto
|
||||||
- added lists to post database (prepared wip)
|
- added lists to post database (prepared wip)
|
||||||
|
|
||||||
## Working on
|
## Working on
|
||||||
- 'check' action processes
|
- 'wip' action processes
|
||||||
- thinking about creating an auto top article menu from titles
|
- - images module
|
||||||
- stats for article words
|
|
||||||
- Translate logs in english !
|
|
||||||
|
|
||||||
## Exemple d'article
|
## ToDo
|
||||||
|
- thinking about creating an auto top article menu from titles
|
||||||
|
- create full HTML page
|
||||||
|
- sitemaps
|
||||||
|
- RSS
|
||||||
|
- 'publish' process
|
||||||
|
|
||||||
|
## Exemple d'article .tyto commenté
|
||||||
```
|
```
|
||||||
#================================================#
|
#================================================#
|
||||||
# Entete de l'article #
|
# Entete de l'article #
|
||||||
# Fin de l'entête avec au moins 5 tirets "-----" #
|
# Fin de l'entête avec au moins 5 tirets "-----" #
|
||||||
# Toute ligne de commentaire "# ..." est ignorée #
|
# Toute ligne de commentaire "# ..." est ignorée #
|
||||||
|
# ! Recommandé de ne pas utiliser le signe "_" #
|
||||||
#================================================#
|
#================================================#
|
||||||
|
|
||||||
# Pour ne pas inclure cet article dans les sitemaps :
|
# Pour ne pas inclure cet article dans les sitemaps :
|
||||||
|
@ -34,7 +40,16 @@ tags: Tyto, tuto,
|
||||||
author: echolib
|
author: echolib
|
||||||
date: 2023-10-27
|
date: 2023-10-27
|
||||||
|
|
||||||
# Données multiple sur 3 lignes
|
# Données unique sur UNE ligne optionnelle
|
||||||
|
# Si non définit, le logo du domaine est utilisé
|
||||||
|
# Ne sera affiché qu'avec _image:logo
|
||||||
|
logo: post-logo.png
|
||||||
|
|
||||||
|
# Données multiples sur 3 lignes
|
||||||
|
# [TAG]: Nom
|
||||||
|
# LIEN
|
||||||
|
# Text alternatif
|
||||||
|
|
||||||
link: cliquer sur ce Lien
|
link: cliquer sur ce Lien
|
||||||
https://
|
https://
|
||||||
Text alternatif
|
Text alternatif
|
||||||
|
@ -47,66 +62,121 @@ file: télécharger ce fichier
|
||||||
@/PDFs/hello.pdf
|
@/PDFs/hello.pdf
|
||||||
Un PDF !
|
Un PDF !
|
||||||
|
|
||||||
|
code: codetest
|
||||||
|
@RAWS/test.py
|
||||||
|
Exemple d'un code Python
|
||||||
|
|
||||||
|
# Les abréviations :
|
||||||
|
# 2eme ligne: Texte alternatif
|
||||||
|
# 3ème ligne: valeur affichée dans l'article à la place du Nom
|
||||||
|
abbr: HTML
|
||||||
|
HuperText Markup Langage
|
||||||
|
HTML
|
||||||
|
|
||||||
|
abbr: css
|
||||||
|
Cascading Stylesheet
|
||||||
|
CSS
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
#=====================================================================#
|
#=====================================================================#
|
||||||
# Contenu de l'article #
|
# Contenu de l'article #
|
||||||
# Les classe optionnelles non renseignées deviennent celle du domaine #
|
# Les classe optionnelles non renseignées deviennent celle du domaine #
|
||||||
|
# /!\ Tout code HTML sera interprêté par le navigateur sauf si placé #
|
||||||
|
# entre les marqueurs de block-code ou icode #
|
||||||
#=====================================================================#
|
#=====================================================================#
|
||||||
|
|
||||||
# La ligne suivante est un commentaire HTML "<!-- Commentaire -->"
|
# La ligne suivante est un commentaire HTML "<!-- Commentaire -->"
|
||||||
|
# ----------------------------------------------------------------
|
||||||
;; Commentaire
|
;; Commentaire
|
||||||
|
|
||||||
# Ceci est une ancre avec l'ID uniq1 (ID unique)
|
# Ceci est une ancre avec l'ID uniq1 (ID unique)
|
||||||
|
# ----------------------------------------------
|
||||||
-> uniq1
|
-> uniq1
|
||||||
-> top
|
-> top
|
||||||
|
|
||||||
# Créer un lien vers l'ancre "uniq1"
|
# Créer un lien vers l'ancre "uniq1"
|
||||||
|
# ----------------------------------
|
||||||
>_uniq1: Go to uniq1 anchor_<
|
>_uniq1: Go to uniq1 anchor_<
|
||||||
|
|
||||||
# Ceci est une ligne <hr> ayant pour classe hrcss
|
# Ceci est une ligne <hr> ayant pour classe hrcss
|
||||||
|
# -----------------------------------------------
|
||||||
-- hrcss
|
-- hrcss
|
||||||
|
|
||||||
# Les Titres de l'article de #1 à #5 (<h2> à <h6>)
|
# Les Titres de l'article de #1 à #5 (<h2> à <h6>)
|
||||||
|
# ------------------------------------------------
|
||||||
#1 Titre en h2
|
#1 Titre en h2
|
||||||
|
|
||||||
# Contenu dans un paragraphe ayant pour classe "mypar"
|
# Contenu dans un paragraphe entre (( ... )) ayant pour classe "mypar"
|
||||||
|
# --------------------------------------------------------------------
|
||||||
(( mypar
|
(( mypar
|
||||||
Un long paragraphe...
|
Un long paragraphe...
|
||||||
|
|
||||||
# Retour à la ligne avec un <br /> de classe brcss
|
# Retour à la ligne avec un <br /> de classe brcss
|
||||||
# (les retours à la ligne vides ne sont pas pris en compte)
|
# (les retours à la ligne vides ne sont pas pris en compte)
|
||||||
|
# ---------------------------------------------------------
|
||||||
| brcss
|
| brcss
|
||||||
|
|
||||||
|
# Reprise du Nom pour les liens de link: et file:
|
||||||
|
# Reprise des abréviations
|
||||||
Il faut __cliquer sur ce Lien, __Réservez ici et --télécharger ce fichier
|
Il faut __cliquer sur ce Lien, __Réservez ici et --télécharger ce fichier
|
||||||
ou encore faire une ::CSS pour du beau rendu ::HTML
|
ou encore faire une ::css pour du beau rendu ::HTML
|
||||||
|
|
||||||
# Un paragraphe dans le paragraphe ayant pour classe, celle du domaine
|
# Un paragraphe dans le paragraphe ayant pour classe, celle du domaine
|
||||||
|
# --------------------------------------------------------------------
|
||||||
((
|
((
|
||||||
Un /_court_/ paragraphe de :_1984_: pour de ~_vrai_~ +_faux en gras_+
|
Un /_court_/ paragraphe de :_1984_: pour de ~_vrai_~ +_faux en gras_+
|
||||||
Il faut le ._souligner_. et *_Très Gras_*
|
Il faut le ._souligner_. et *_Très Gras_*
|
||||||
))
|
))
|
||||||
|
|
||||||
# Créer un icode (utiliser la balise <code>)
|
# Créer un icode (utilise la balise <code> HTML)
|
||||||
# /!\ ! Doit être sur une ligne
|
# /!\ ! Doit être sur une même ligne
|
||||||
|
# ----------------------------------------------
|
||||||
{_<ol>, <ul>_}
|
{_<ol>, <ul>_}
|
||||||
|
{_{_Afficher un icode brut_}_}
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# Un exemple de block code ayant pour classe python
|
||||||
#2 Un exemple de block code ayant pour classe python
|
|
||||||
# Tout contenu entre les marqueurs "{{" et "}}" est conservé
|
# Tout contenu entre les marqueurs "{{" et "}}" est conservé
|
||||||
|
# ----------------------------------------------------------
|
||||||
|
#2 Block Code
|
||||||
{{ python
|
{{ python
|
||||||
# Un commentaire et du code
|
# Un commentaire et du code
|
||||||
def hello(world):
|
def hello(world):
|
||||||
world and print(world) or print("NoMore")
|
world and print(world) or print("NoMore")
|
||||||
}}
|
}}
|
||||||
|
|
||||||
#2 Citation
|
|
||||||
|
# Écrire en gras, italique...
|
||||||
|
# ---------------------------
|
||||||
|
#2 Marqueurs de mots
|
||||||
|
((
|
||||||
|
Même si, il est possible d'écrire directement des balises (HTML), Tyto
|
||||||
|
propose de les simplifier, en entourant les mots avec des marqueurs. La
|
||||||
|
classe CSS du domaine est utilisée pour chaque marqueur.
|
||||||
|
|
||||||
|
{{
|
||||||
|
*_Très Gras_* > <strong>
|
||||||
|
+_En Gras_+ > <b>
|
||||||
|
[_Citer un texte_] > <q>
|
||||||
|
:_Citer une référence_: > <cite>
|
||||||
|
~_Texte barré_~ > <del>
|
||||||
|
._Text souligné_. > <u>
|
||||||
|
/_En italique_/ > <em>
|
||||||
|
;_En italique_; > <i>
|
||||||
|
|
||||||
|
# Marques multiples, ajouter "&"
|
||||||
|
*_&._Très gras et souligné_.&_*
|
||||||
|
}}
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
# Dans un block div [[ ... ]] (classe CSS mydiv),
|
# Dans un block div [[ ... ]] (classe CSS mydiv),
|
||||||
# La citation entre [" ... "] (classe CSS mycite)
|
# La citation entre [" ... "] (classe CSS mycite)
|
||||||
# est placée dans un paragraphe (classe CSS mycite)
|
# est placée dans un paragraphe (classe CSS mycite)
|
||||||
# ! Tout commentaire "# ..." dans la citation sera affiché...
|
# ! Tout commentaire "# ..." dans la citation sera affiché...
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
#2 Citation
|
||||||
[[ mydiv
|
[[ mydiv
|
||||||
[" mycite
|
[" mycite
|
||||||
;; A great quote here !
|
;; A great quote here !
|
||||||
|
@ -127,6 +197,7 @@ file: télécharger ce fichier
|
||||||
# dans un paragraphe (classe du domaine)
|
# dans un paragraphe (classe du domaine)
|
||||||
# "+" pour ol, "=" pour ul
|
# "+" pour ol, "=" pour ul
|
||||||
# Ajouter toujours un signe pour un sous-item ou /!\ au changement de signe
|
# Ajouter toujours un signe pour un sous-item ou /!\ au changement de signe
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
#2 Une liste mixée {_<ol>, <ul>_}
|
#2 Une liste mixée {_<ol>, <ul>_}
|
||||||
((
|
((
|
||||||
<: mylist
|
<: mylist
|
||||||
|
@ -138,4 +209,10 @@ file: télécharger ce fichier
|
||||||
:>
|
:>
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# Afficher un block code avec le contenu d'un fichier
|
||||||
|
# Il doit avoir été configuré dans l'entête
|
||||||
|
# -----------------------------------------
|
||||||
|
#2 Un block code depuis un fichier
|
||||||
|
_code:codetest
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Package: tyto
|
Package: tyto
|
||||||
Version: 1.0.0
|
Version: 1.9.29
|
||||||
Section: custom
|
Section: custom
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: all
|
Architecture: all
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Version: 1.9.28
|
# Version: 1.9.29
|
||||||
# Updated: 2023-10-18 1697613100
|
# Updated: 2023-10-18 1697613100
|
||||||
# Tyto - Littérateur
|
# Tyto - Littérateur
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -33,7 +33,7 @@
|
||||||
#--------------------------
|
#--------------------------
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import langs, tyto, debug, help, new, check, userset, show
|
import langs, tyto, debug, help, new, check, userset, show, wip
|
||||||
|
|
||||||
|
|
||||||
#==================#
|
#==================#
|
||||||
|
@ -100,6 +100,7 @@ def start_process():
|
||||||
"start" : userset.manage,
|
"start" : userset.manage,
|
||||||
"stop" : userset.manage,
|
"stop" : userset.manage,
|
||||||
"show" : show.manage,
|
"show" : show.manage,
|
||||||
|
"wip" : wip.manage,
|
||||||
}
|
}
|
||||||
|
|
||||||
do[action](action, target)
|
do[action](action, target)
|
||||||
|
|
|
@ -77,16 +77,14 @@ def is_article(target):
|
||||||
|
|
||||||
# When all is OK
|
# When all is OK
|
||||||
# Will create post database, but now, show some values
|
# Will create post database, but now, show some values
|
||||||
print("Final texts string")
|
"""
|
||||||
|
print("Final texts string:")
|
||||||
for ln, line in enumerate(texts, post.head_lines + 1):
|
print('\n'.join(texts))
|
||||||
print(">", ln, line)
|
"""
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
# Write to post database
|
# Write to post database
|
||||||
cf_update_values("after")
|
cf_update_values("after")
|
||||||
|
|
||||||
|
|
||||||
#===========================================#
|
#===========================================#
|
||||||
# Check full article contents (head + text) #
|
# Check full article contents (head + text) #
|
||||||
|
@ -394,8 +392,9 @@ def ml_tag_values(ln, tag, stats):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# value1 must not starts or contains:o
|
# value1 must not starts or contains:o
|
||||||
elif value1.startswith("_"):
|
elif "_" in value1:
|
||||||
post.error = debug.out(56, "%s) '_...'"%(ln+1), post.uri, True, 2, False)
|
post.error = \
|
||||||
|
debug.out(56, '%s) "_" : "%s"'%(ln+1, value1), post.uri, True, 2, False)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Specific for image: logo name is reserved
|
# Specific for image: logo name is reserved
|
||||||
|
@ -442,7 +441,7 @@ def ml_tag_values(ln, tag, stats):
|
||||||
post.stats_text_links += post.text_contents.count(tyto_value)
|
post.stats_text_links += post.text_contents.count(tyto_value)
|
||||||
post.cf_set("STATS_TEXTS", "links", str(post.stats_text_links))
|
post.cf_set("STATS_TEXTS", "links", str(post.stats_text_links))
|
||||||
html_value = tyto.a_link%(
|
html_value = tyto.a_link%(
|
||||||
value2, "%s link"%css, "%%s", value3, value1
|
value2, "%s link"%css, value3, value1
|
||||||
)
|
)
|
||||||
|
|
||||||
# file:
|
# file:
|
||||||
|
@ -451,7 +450,7 @@ def ml_tag_values(ln, tag, stats):
|
||||||
post.stats_text_files += post.text_contents.count(tyto_value)
|
post.stats_text_files += post.text_contents.count(tyto_value)
|
||||||
post.cf_set("STATS_TEXTS", "files", str(post.stats_text_files))
|
post.cf_set("STATS_TEXTS", "files", str(post.stats_text_files))
|
||||||
html_value = tyto.a_link%(
|
html_value = tyto.a_link%(
|
||||||
value2, "%s file"%css, "%%s", value3, value1
|
value2, "%s file"%css, value3, value1
|
||||||
)
|
)
|
||||||
|
|
||||||
# image:
|
# image:
|
||||||
|
@ -487,7 +486,14 @@ def ml_tag_values(ln, tag, stats):
|
||||||
line = tyto.code_line%(ln, line)
|
line = tyto.code_line%(ln, line)
|
||||||
htmlbcode = "%s\n%s"%(htmlbcode, line)
|
htmlbcode = "%s\n%s"%(htmlbcode, line)
|
||||||
|
|
||||||
html_value = tyto.code_bcode%(css, htmlbcode)
|
footer_code = '\n<footer class="bcode">\n' + \
|
||||||
|
'<p class="bcode">\n' + \
|
||||||
|
'<a class="bcode" href="%s" title="%s">%s</a>\n'%(
|
||||||
|
value2, value3, "Source"
|
||||||
|
) + \
|
||||||
|
'</p>\n' + \
|
||||||
|
'</footer>'
|
||||||
|
html_value = tyto.code_bcode%(css, htmlbcode, footer_code)
|
||||||
html_value = tools.b64_convert("encode", html_value)
|
html_value = tools.b64_convert("encode", html_value)
|
||||||
|
|
||||||
# abbr:
|
# abbr:
|
||||||
|
@ -587,7 +593,8 @@ def sl_ptags(markers):
|
||||||
if index0 >= 0 :
|
if index0 >= 0 :
|
||||||
content = "%s\n%s"%(content, line)
|
content = "%s\n%s"%(content, line)
|
||||||
if markers[2] == "bcodes":
|
if markers[2] == "bcodes":
|
||||||
texts[ln - 1 - post.head_lines] = ""
|
if index1 != index0:
|
||||||
|
texts[ln - 1 - post.head_lines] = ""
|
||||||
|
|
||||||
# Opened mark
|
# Opened mark
|
||||||
if line.lstrip().startswith(markers[0]):
|
if line.lstrip().startswith(markers[0]):
|
||||||
|
@ -601,9 +608,11 @@ def sl_ptags(markers):
|
||||||
), post.uri, True, 2, False)
|
), post.uri, True, 2, False)
|
||||||
return False
|
return False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
csstest = tools.get_css(line, markers[0], ln)
|
csstest = tools.get_css(line, markers[0], ln)
|
||||||
if post.error > 0:
|
if post.error > 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
index0 = line.index(markers[0][0])
|
index0 = line.index(markers[0][0])
|
||||||
tag_ln = ln
|
tag_ln = ln
|
||||||
content = line
|
content = line
|
||||||
|
@ -612,12 +621,14 @@ def sl_ptags(markers):
|
||||||
|
|
||||||
# Closed mark
|
# Closed mark
|
||||||
if line.lstrip().startswith(markers[1]):
|
if line.lstrip().startswith(markers[1]):
|
||||||
|
# But not opened
|
||||||
if index0 < 0:
|
if index0 < 0:
|
||||||
post.error = \
|
post.error = \
|
||||||
debug.out(53, '%s) %s: %s...'%(
|
debug.out(53, '%s) %s: %s...'%(
|
||||||
ln, markers[2], markers[0]
|
ln, markers[2], markers[0]
|
||||||
), post.uri, True, 2, False)
|
), post.uri, True, 2, False)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
index1 = line.index(markers[1][0])
|
index1 = line.index(markers[1][0])
|
||||||
# at same position as opened
|
# at same position as opened
|
||||||
if index1 == index0:
|
if index1 == index0:
|
||||||
|
@ -633,6 +644,10 @@ def sl_ptags(markers):
|
||||||
if markers[2] in ("parags", "divs"):
|
if markers[2] in ("parags", "divs"):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
elif markers[2] == "bcodes":
|
||||||
|
texts[ln - 1 - post.head_lines] = \
|
||||||
|
"%s_%s"%(markers[2][:-1], post.ptags_stats[markers[2]])
|
||||||
|
|
||||||
# Set keys, values to post database
|
# Set keys, values to post database
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
markers[2].upper(),
|
markers[2].upper(),
|
||||||
|
@ -726,59 +741,65 @@ def icodes():
|
||||||
|
|
||||||
if markers[0][0] in line:
|
if markers[0][0] in line:
|
||||||
# Double mark first
|
# Double mark first
|
||||||
line = line.replace(markers[0][0], markers[0][4])
|
line = line.replace(markers[0][0], markers[0][4])
|
||||||
line = line.replace(markers[0][1], markers[0][5])
|
line = line.replace(markers[0][1], markers[0][5])
|
||||||
icodes = re.findall('%s(.*?)%s'%(markers[0][4], markers[0][5]), line)
|
icodes = re.findall('%s(.*?)%s'%(markers[0][4], markers[0][5]), line)
|
||||||
|
|
||||||
for icode in icodes:
|
for icode in icodes:
|
||||||
stats_text_icodes += 1
|
stats_text_icodes += 1
|
||||||
|
icleg = markers[0][0] + icode + markers[0][1]
|
||||||
icnew = markers[0][4] + \
|
icnew = markers[0][4] + \
|
||||||
tools.convert_html_signs(icode) + \
|
tools.convert_html_signs(icode) + \
|
||||||
markers[0][5]
|
markers[0][5]
|
||||||
icrep = markers[0][4] + \
|
icrep = markers[0][4] + \
|
||||||
icode + \
|
icode + \
|
||||||
markers[0][5]
|
markers[0][5]
|
||||||
line = line.replace(icrep, "")
|
line = line.replace(icrep, "icode_%s"%stats_text_icodes)
|
||||||
|
|
||||||
# Set HTML [ICODES] to post database
|
# Set HTML [ICODES] to post database
|
||||||
html_val = icnew.replace(markers[0][4], markers[0][2]%css)
|
html_val = icnew.replace(markers[0][4], markers[0][2]%css)
|
||||||
|
html_val = html_val.replace(markers[0][5], markers[0][3])
|
||||||
|
html_val = tools.b64_convert("encode", html_val)
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
"ICODES",
|
"ICODES",
|
||||||
"icode_%s"%stats_text_icodes,
|
"icode_%s"%stats_text_icodes,
|
||||||
markers[0][0] + icode + markers[0][1]
|
icleg
|
||||||
)
|
)
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
"ICODES",
|
"ICODES",
|
||||||
"html_%s"%stats_text_icodes,
|
"html_%s"%stats_text_icodes,
|
||||||
html_val.replace(markers[0][5], markers[0][3])
|
html_val
|
||||||
)
|
)
|
||||||
|
|
||||||
# Single mark
|
# Single mark
|
||||||
line = line.replace(markers[1][0], markers[1][4])
|
line = line.replace(markers[1][0], markers[1][4])
|
||||||
line = line.replace(markers[1][1], markers[1][5])
|
line = line.replace(markers[1][1], markers[1][5])
|
||||||
icodes = re.findall('%s(.*?)%s'%(markers[1][4], markers[1][5]), line)
|
icodes = re.findall('%s(.*?)%s'%(markers[1][4], markers[1][5]), line)
|
||||||
|
|
||||||
for icode in icodes:
|
for icode in icodes:
|
||||||
stats_text_icodes += 1
|
stats_text_icodes += 1
|
||||||
|
icleg = markers[1][0] + icode + markers[1][1]
|
||||||
icnew = markers[1][4] + \
|
icnew = markers[1][4] + \
|
||||||
tools.convert_html_signs(icode) + \
|
tools.convert_html_signs(icode) + \
|
||||||
markers[1][5]
|
markers[1][5]
|
||||||
icrep = markers[1][4] + \
|
icrep = markers[1][4] + \
|
||||||
icode + \
|
icode + \
|
||||||
markers[1][5]
|
markers[1][5]
|
||||||
line = line.replace(icrep, "")
|
line = line.replace(icrep, "icode_%s"%stats_text_icodes)
|
||||||
|
|
||||||
# Set HTML [ICODES] to post database
|
# Set HTML [ICODES] to post database
|
||||||
html_val = icnew.replace(markers[1][4], markers[1][2]%css)
|
html_val = icnew.replace(markers[1][4], markers[1][2]%css)
|
||||||
|
html_val = html_val.replace(markers[1][5], markers[1][3])
|
||||||
|
html_val = tools.b64_convert("encode", html_val)
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
"ICODES",
|
"ICODES",
|
||||||
"icode_%s"%stats_text_icodes,
|
"icode_%s"%stats_text_icodes,
|
||||||
markers[1][0] + icode + markers[1][1]
|
icleg
|
||||||
)
|
)
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
"ICODES",
|
"ICODES",
|
||||||
"html_%s"%stats_text_icodes,
|
"html_%s"%stats_text_icodes,
|
||||||
html_val.replace(markers[1][5], markers[1][3])
|
html_val
|
||||||
)
|
)
|
||||||
|
|
||||||
texts[ln - 1 - post.head_lines] = line
|
texts[ln - 1 - post.head_lines] = line
|
||||||
|
@ -850,7 +871,7 @@ def sl_stags():
|
||||||
real_com = line.lstrip()[3:]
|
real_com = line.lstrip()[3:]
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
"COMMENTS",
|
"COMMENTS",
|
||||||
"comm_%s"%stats_html_coms,
|
"comment_%s"%stats_html_coms,
|
||||||
line.lstrip()
|
line.lstrip()
|
||||||
)
|
)
|
||||||
post.cf_set(
|
post.cf_set(
|
||||||
|
@ -1098,8 +1119,13 @@ def cf_update_values(part):
|
||||||
stats_tyto_all_coms > 0 and \
|
stats_tyto_all_coms > 0 and \
|
||||||
post.cf_set("STATS_FILE", "tyto_coms", str(stats_tyto_all_coms))
|
post.cf_set("STATS_FILE", "tyto_coms", str(stats_tyto_all_coms))
|
||||||
|
|
||||||
|
# Add base64 new article TEXTS
|
||||||
|
post.cf_set("TEXTS", "post", tools.b64_convert("encode", '\n'.join(texts)))
|
||||||
|
|
||||||
# ============================
|
# ============================
|
||||||
# Write new values in database
|
# Write new values in database
|
||||||
# ============================
|
# ============================
|
||||||
post.cf_write()
|
post.cf_write()
|
||||||
|
|
||||||
|
# Show done message
|
||||||
|
debug.out(254, "[%s]"%post.title[1], post.uri, True, 0, False)
|
||||||
|
|
|
@ -84,6 +84,7 @@ def out(nbr, var, val, show, color, stop):
|
||||||
7 : langs.logs.err_cr_file,
|
7 : langs.logs.err_cr_file,
|
||||||
8 : langs.logs.err_lang,
|
8 : langs.logs.err_lang,
|
||||||
9 : langs.logs.err_ini_file,
|
9 : langs.logs.err_ini_file,
|
||||||
|
10 : langs.logs.err_post_global,
|
||||||
20 : langs.logs.err_bad_uri,
|
20 : langs.logs.err_bad_uri,
|
||||||
21 : langs.logs.err_post_sep,
|
21 : langs.logs.err_post_sep,
|
||||||
22 : langs.logs.err_post_head,
|
22 : langs.logs.err_post_head,
|
||||||
|
@ -114,6 +115,7 @@ def out(nbr, var, val, show, color, stop):
|
||||||
208 : langs.logs.website_lang,
|
208 : langs.logs.website_lang,
|
||||||
209 : langs.logs.domain_on,
|
209 : langs.logs.domain_on,
|
||||||
210 : langs.logs.post_chk_yet,
|
210 : langs.logs.post_chk_yet,
|
||||||
|
254 : langs.logs.post_chk_ready,
|
||||||
255 : langs.logs.later,
|
255 : langs.logs.later,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,12 +122,6 @@ def is_tyto_format():
|
||||||
if not separator:
|
if not separator:
|
||||||
error = debug.out(21, sep, uri, True, 2, False)
|
error = debug.out(21, sep, uri, True, 2, False)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
print("===")
|
|
||||||
print(head_contents)
|
|
||||||
print("===")
|
|
||||||
print(text_contents)
|
|
||||||
print("===")
|
|
||||||
|
|
||||||
if not head_contents:
|
if not head_contents:
|
||||||
error = debug.out(22, "?", uri, True, 2, False)
|
error = debug.out(22, "?", uri, True, 2, False)
|
||||||
|
@ -209,20 +203,22 @@ def cf_datas():
|
||||||
def compare_datas():
|
def compare_datas():
|
||||||
global do_chk, do_wip
|
global do_chk, do_wip
|
||||||
|
|
||||||
|
# check can be done ?
|
||||||
do_chk = False
|
do_chk = False
|
||||||
|
if chk_errors or \
|
||||||
if chk_errors:
|
chk_static != domain.static or \
|
||||||
|
args.force == True:
|
||||||
do_chk = True
|
do_chk = True
|
||||||
do_wip = False
|
|
||||||
|
|
||||||
if chk_static != domain.static:
|
|
||||||
do_chk = True
|
|
||||||
|
|
||||||
if args.force:
|
|
||||||
do_chk = do_wip = True
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
do_chk = tools.compare_values(wrk_id, chk_hash)
|
do_chk = tools.compare_values(wrk_id, chk_hash)
|
||||||
|
|
||||||
|
|
||||||
|
# wip can be done
|
||||||
|
do_wip = False
|
||||||
|
if wip_static != domain.static or \
|
||||||
|
args.force:
|
||||||
|
do_wip = True
|
||||||
|
else:
|
||||||
do_wip = tools.compare_values(chk_hash, wip_hash)
|
do_wip = tools.compare_values(chk_hash, wip_hash)
|
||||||
|
|
||||||
|
|
||||||
|
@ -388,13 +384,13 @@ html_titles = {
|
||||||
"#5" : '<h6 class="%s">%s</h6>',
|
"#5" : '<h6 class="%s">%s</h6>',
|
||||||
}
|
}
|
||||||
|
|
||||||
html_brline = ("|", '<br class="%s%s">')
|
html_brline = ("|", '<br class="%s">')
|
||||||
html_hrline = ("--", '<hr class="%s%s">')
|
html_hrline = ("--", '<hr class="%s">')
|
||||||
text_comments = (";;", "<!--")
|
text_comments = (";;", "<!--")
|
||||||
anchor_target = ("->", '<a id="%s" class="anchor_target"></a>')
|
anchor_target = ("->", '<a id="%s" class="anchor_target"></a>')
|
||||||
anchor_link = (">_", "_<")
|
anchor_link = (">_", "_<")
|
||||||
anchor_set = (">_%s_<", '<a class="%s anchor_link" href="#%s">%s</a>')
|
anchor_set = (">_%s_<", '<a class="%s anchor_link" href="#%s">%s</a>')
|
||||||
quote_metas = ("cite:", "date:", "book:", "lang:", "link:")
|
quote_metas = ("cite:", "date:", "book:", "lang:", "link:")
|
||||||
|
|
||||||
# Words tags
|
# Words tags
|
||||||
words_tags = (
|
words_tags = (
|
||||||
|
@ -408,6 +404,8 @@ words_tags = (
|
||||||
(";_", "_;", "italics", '<i class="%s">', '</i>'),
|
(";_", "_;", "italics", '<i class="%s">', '</i>'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
words_ml_tag = "&"
|
||||||
|
|
||||||
# Specifics convertion
|
# Specifics convertion
|
||||||
words_markers = \
|
words_markers = \
|
||||||
(
|
(
|
||||||
|
@ -425,6 +423,8 @@ ini_template = """[DOMAIN]
|
||||||
|
|
||||||
[HEADERS]
|
[HEADERS]
|
||||||
|
|
||||||
|
[TEXTS]
|
||||||
|
|
||||||
[CHECK]
|
[CHECK]
|
||||||
|
|
||||||
[WIP]
|
[WIP]
|
||||||
|
|
|
@ -34,9 +34,7 @@
|
||||||
|
|
||||||
from hashlib import blake2b
|
from hashlib import blake2b
|
||||||
import sys, os, configparser, datetime, time, base64
|
import sys, os, configparser, datetime, time, base64
|
||||||
import debug, domain, post
|
import args, debug, domain, post
|
||||||
|
|
||||||
import post
|
|
||||||
|
|
||||||
|
|
||||||
#=========================================#
|
#=========================================#
|
||||||
|
@ -211,9 +209,9 @@ def get_css(line, mark, ln):
|
||||||
css = css or domain.css
|
css = css or domain.css
|
||||||
|
|
||||||
# Tyto use _abc as markers
|
# Tyto use _abc as markers
|
||||||
if css.startswith("_"):
|
if "_" in css:
|
||||||
post.error = \
|
post.error = \
|
||||||
debug.out(56, '%s) CSS: "%s"'%(ln, css), post.uri, True, 2, False)
|
debug.out(56, '%s) (CSS) "_" : "%s"'%(ln, css), post.uri, True, 2, False)
|
||||||
return "NameError"
|
return "NameError"
|
||||||
|
|
||||||
return css
|
return css
|
||||||
|
@ -223,12 +221,17 @@ def get_css(line, mark, ln):
|
||||||
# Compare 2 values #
|
# Compare 2 values #
|
||||||
# used for hashes and more... #
|
# used for hashes and more... #
|
||||||
# return True if not same values #
|
# return True if not same values #
|
||||||
# ex: do_wip = True #
|
# ex: do_chk = True #
|
||||||
# (as chk_hash and wip_hash are different) #
|
# (as chk_hash and wip_hash are different) #
|
||||||
#------------------------------------------#
|
#------------------------------------------#
|
||||||
def compare_values(val1, val2):
|
def compare_values(val1, val2):
|
||||||
if val1 != val2:
|
# Mainly for check comparison values
|
||||||
return True
|
if args.action == "check":
|
||||||
|
if val1 != val2:
|
||||||
|
return True
|
||||||
|
|
||||||
|
# Others, like wip, publish
|
||||||
|
else:
|
||||||
|
if val1 == val2: return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ notarget = ("./", "../")
|
||||||
# HTML #=======================================================================
|
# HTML #=======================================================================
|
||||||
#======#
|
#======#
|
||||||
code_bcode = """<code class="%s bcode">
|
code_bcode = """<code class="%s bcode">
|
||||||
%s
|
%s%s
|
||||||
</code>"""
|
</code>"""
|
||||||
|
|
||||||
code_line = '<p class="bcode">' + \
|
code_line = '<p class="bcode">' + \
|
||||||
|
@ -107,7 +107,7 @@ code_line = '<p class="bcode">' + \
|
||||||
'</p>'
|
'</p>'
|
||||||
|
|
||||||
image_link = '<a href="%s" class="%s" target="%s" alt="%s" title="%s">%s</a>'
|
image_link = '<a href="%s" class="%s" target="%s" alt="%s" title="%s">%s</a>'
|
||||||
a_link = '<a href="%s" class="%s" target="%s" title="%s">%s</a>'
|
a_link = '<a href="%s" class="%s" title="%s">%s</a>'
|
||||||
|
|
||||||
quote = """<blockquote class="%s"%s%s%s>%s
|
quote = """<blockquote class="%s"%s%s%s>%s
|
||||||
%s%s
|
%s%s
|
||||||
|
|
|
@ -35,7 +35,209 @@
|
||||||
# file program :
|
# file program :
|
||||||
#--------------------------
|
#--------------------------
|
||||||
|
|
||||||
import tyto, tools, post, domain
|
import sys
|
||||||
|
import args, debug, tyto, tools, post, domain
|
||||||
|
|
||||||
|
|
||||||
|
#=====================================#
|
||||||
|
# Check domain #
|
||||||
|
# Load domain configuration file #
|
||||||
|
# Update it if needed, and set values #
|
||||||
|
# Load website lang #
|
||||||
|
# Domain must be activated #
|
||||||
|
#-------------------------------------#
|
||||||
|
def ready():
|
||||||
|
domain.cf_update_values(False)
|
||||||
|
domain.ready()
|
||||||
|
|
||||||
|
|
||||||
|
#=========================================#
|
||||||
|
# Manage argument from command line "wip" #
|
||||||
|
# Domain must be valid to proceed #
|
||||||
|
# Create user work domain directories #
|
||||||
|
#-----------------------------------------#
|
||||||
|
def manage(action, target):
|
||||||
|
# target is "all"
|
||||||
|
if args.targets:
|
||||||
|
multiple_targets()
|
||||||
|
return
|
||||||
|
|
||||||
|
# target is not "all"
|
||||||
|
ready()
|
||||||
|
target.endswith(".tyto") and is_article(target)
|
||||||
|
|
||||||
|
|
||||||
|
#===========================================#
|
||||||
|
# Create a loop to get all .tyto articles #
|
||||||
|
#-------------------------------------------#
|
||||||
|
def multiple_targets():
|
||||||
|
ready()
|
||||||
|
post.find_tyto_article()
|
||||||
|
|
||||||
|
|
||||||
|
#================================#
|
||||||
|
# Check article(S) #
|
||||||
|
# Also used with multiple (loop) #
|
||||||
|
#--------------------------------#
|
||||||
|
def is_article(target):
|
||||||
|
if not convert(target) or post.error != 0:
|
||||||
|
if targets: return
|
||||||
|
else: sys.exit(post.error)
|
||||||
|
|
||||||
|
print("> wip:", target)
|
||||||
|
print(html_post)
|
||||||
|
|
||||||
|
|
||||||
|
#===========================================#
|
||||||
|
# Check full article contents (head + text) #
|
||||||
|
# In error case, exit or return if targetS #
|
||||||
|
#-------------------------------------------#
|
||||||
|
def convert(target):
|
||||||
|
global targets, raw_post
|
||||||
|
targets = args.targets
|
||||||
|
|
||||||
|
# Target is a tyto article format
|
||||||
|
if not post.is_article(target):
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Article has errors
|
||||||
|
if post.chk_errors:
|
||||||
|
post.error = debug.out(10, "'check'", post.uri, True, 2, False)
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Get raw post from database
|
||||||
|
raw_post = tools.b64_convert("decode", post.cf.get("TEXTS", "post"))
|
||||||
|
|
||||||
|
# words_tags
|
||||||
|
clean_post()
|
||||||
|
value_replace("QUOTES", True, True)
|
||||||
|
value_replace("LISTS", True, True)
|
||||||
|
value_replace("ANCHORS", False, False)
|
||||||
|
value_replace("TITLES", False, False)
|
||||||
|
value_replace("LINKS", False, False)
|
||||||
|
value_replace("FILES", False, False)
|
||||||
|
|
||||||
|
words_tags()
|
||||||
|
sl_tags()
|
||||||
|
|
||||||
|
value_replace("COMMENTS", False, False)
|
||||||
|
value_replace("ABBRS", False, False)
|
||||||
|
|
||||||
|
value_replace("ICODES", False, True)
|
||||||
|
value_replace("BCODES", False, True)
|
||||||
|
value_replace("CODES", False, True)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
#==========================================================#
|
||||||
|
# Generic function that replace source text with HTML text #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
def text_replace(src, html):
|
||||||
|
global html_post
|
||||||
|
|
||||||
|
html_post = html_post.replace(src, html)
|
||||||
|
|
||||||
|
|
||||||
|
#==========================================#
|
||||||
|
# Generic function that: #
|
||||||
|
# - get key_X, html_X in post DB #
|
||||||
|
# - replace key_X with html_X in html_post #
|
||||||
|
# srv_b64 : True to decode base64 source #
|
||||||
|
# tgt_b64 : True to decode base64 target # #
|
||||||
|
#------------------------------------------#
|
||||||
|
def value_replace(section, src_b64, tgt_b64):
|
||||||
|
for key, val in post.cf.items(section):
|
||||||
|
if key.startswith("html_"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if section == "BCODES" or section == "ICODES":
|
||||||
|
val = key
|
||||||
|
|
||||||
|
# val is base64 string
|
||||||
|
if src_b64:
|
||||||
|
val = tools.b64_convert("decode", val)
|
||||||
|
|
||||||
|
# Get target value by replacing key with html
|
||||||
|
html_key = key.replace(section.lower()[:-1], "html")
|
||||||
|
html_val = post.cf.get(section, html_key)
|
||||||
|
|
||||||
|
# target val is base64 string
|
||||||
|
if tgt_b64:
|
||||||
|
html_val = tools.b64_convert("decode", html_val)
|
||||||
|
|
||||||
|
# Replace in html_post src value with html_value
|
||||||
|
text_replace(val, html_val)
|
||||||
|
|
||||||
|
|
||||||
|
#========================================#
|
||||||
|
# Clean article texts #
|
||||||
|
# (remove empty lines and tyto comments) #
|
||||||
|
#----------------------------------------#
|
||||||
|
def clean_post():
|
||||||
|
global html_post
|
||||||
|
html_post = "<!-- Article Text: [%s] -->"%post.cf.get("HEADERS", "title")
|
||||||
|
|
||||||
|
for line in raw_post.rsplit("\n"):
|
||||||
|
# Line is empty
|
||||||
|
if not line or line == " ":
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Line is a tyto comment or tyto title
|
||||||
|
if line.lstrip().startswith("#") and \
|
||||||
|
not line.lstrip().startswith(post.tyto_titles):
|
||||||
|
continue
|
||||||
|
|
||||||
|
html_post = "%s\n%s"%(html_post, line)
|
||||||
|
|
||||||
|
|
||||||
|
#============================#
|
||||||
|
# Convert words tags to HTML #
|
||||||
|
#----------------------------#
|
||||||
|
def words_tags():
|
||||||
|
for tags in post.words_tags:
|
||||||
|
text_replace(tags[0], tags[3]%domain.css) # Opened tag
|
||||||
|
text_replace(tags[1], tags[4]) # closed tag
|
||||||
|
text_replace(">%s<"%post.words_ml_tag, "><") # multiple tags for words
|
||||||
|
|
||||||
|
|
||||||
|
#=========================#
|
||||||
|
# Convert Start line tags #
|
||||||
|
# anchors, paragraphs... #
|
||||||
|
#-------------------------#
|
||||||
|
def sl_tags():
|
||||||
|
for line in html_post.rsplit("\n"):
|
||||||
|
css = ""
|
||||||
|
|
||||||
|
# Paragraphs
|
||||||
|
if line.lstrip().startswith(post.ptags[2][0]):
|
||||||
|
css = tools.get_css(line, post.ptags[2][0], "?")
|
||||||
|
text_replace(line, post.ptags[2][3]%css)
|
||||||
|
elif line.lstrip().startswith(post.ptags[2][1]):
|
||||||
|
text_replace(line, post.ptags[2][4])
|
||||||
|
|
||||||
|
# DIVs
|
||||||
|
if line.lstrip().startswith(post.ptags[4][0]):
|
||||||
|
css = tools.get_css(line, post.ptags[4][0], "?")
|
||||||
|
text_replace(line, post.ptags[4][3]%css)
|
||||||
|
elif line.lstrip().startswith(post.ptags[4][1]):
|
||||||
|
text_replace(line, post.ptags[4][4])
|
||||||
|
|
||||||
|
# <br>
|
||||||
|
elif line.lstrip().startswith(post.html_brline[0]):
|
||||||
|
css = tools.get_css(line, post.html_brline[0][0], "?")
|
||||||
|
text_replace(line, post.html_brline[1]%css)
|
||||||
|
|
||||||
|
# <hr>
|
||||||
|
elif line.lstrip().startswith(post.html_hrline[0]):
|
||||||
|
css = tools.get_css(line, post.html_hrline[0][0], "?")
|
||||||
|
text_replace(line, post.html_hrline[1]%css)
|
||||||
|
|
||||||
|
|
||||||
|
# Anchors
|
||||||
|
elif line.lstrip().startswith(post.anchor_target[0]):
|
||||||
|
css = tools.get_css(line, post.anchor_target[0], "?")
|
||||||
|
text_replace(line, post.anchor_target[1]%css)
|
||||||
|
|
||||||
|
|
||||||
#=========================================================#
|
#=========================================================#
|
||||||
|
@ -69,7 +271,7 @@ def bcode(lines, ln):
|
||||||
if not html_bcode: html_bcode = line
|
if not html_bcode: html_bcode = line
|
||||||
else: html_bcode = "%s\n%s"%(html_bcode, line)
|
else: html_bcode = "%s\n%s"%(html_bcode, line)
|
||||||
|
|
||||||
html_bcode = tyto.code_bcode%(css, html_bcode)
|
html_bcode = tyto.code_bcode%(css, html_bcode, "")
|
||||||
|
|
||||||
post.cf_set("STATS_TEXTS", "bcodes_lines", str(post.stats_bcodes_lines))
|
post.cf_set("STATS_TEXTS", "bcodes_lines", str(post.stats_bcodes_lines))
|
||||||
|
|
||||||
|
@ -170,8 +372,6 @@ def quote(lines, ln):
|
||||||
footer
|
footer
|
||||||
)
|
)
|
||||||
|
|
||||||
#print(html_quote)
|
|
||||||
|
|
||||||
return html_quote
|
return html_quote
|
||||||
|
|
||||||
|
|
||||||
|
@ -287,21 +487,7 @@ def convert_list(markdown_str, mark_b, mark_c):
|
||||||
return work_str
|
return work_str
|
||||||
|
|
||||||
|
|
||||||
#=========================#
|
"""
|
||||||
# WIP process #====================================================
|
|
||||||
# Convert article to HTML #
|
|
||||||
# Create new file #
|
|
||||||
#-------------------------#
|
|
||||||
|
|
||||||
#============================#
|
|
||||||
# code #
|
|
||||||
# Used by check module that #
|
|
||||||
# convert file lines to HTML #
|
|
||||||
#----------------------------#
|
|
||||||
def code(lines):
|
|
||||||
print("soon...")
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Not Yet done, soon...
|
# Not Yet done, soon...
|
||||||
#
|
#
|
||||||
|
@ -312,3 +498,4 @@ def paragraphs():
|
||||||
html_quote = "%s\n%s"%(html_quote, post.ptags[2][3]%p_css)
|
html_quote = "%s\n%s"%(html_quote, post.ptags[2][3]%p_css)
|
||||||
elif line.startswith(post.ptags[2][1]):
|
elif line.startswith(post.ptags[2][1]):
|
||||||
html_quote = "%s\n%s"%(html_quote, post.ptags[2][4])
|
html_quote = "%s\n%s"%(html_quote, post.ptags[2][4])
|
||||||
|
"""
|
||||||
|
|
Binary file not shown.
|
@ -33,6 +33,66 @@
|
||||||
# Réponses valides (! NON sensible à la case : oui = OUI, Oui...)
|
# Réponses valides (! NON sensible à la case : oui = OUI, Oui...)
|
||||||
ok = ("yes", "y")
|
ok = ("yes", "y")
|
||||||
|
|
||||||
|
# Form
|
||||||
|
q = " ?"
|
||||||
|
configure_domain = "Configure domain"
|
||||||
|
domain_title = "Domain title"
|
||||||
|
domain_date = "Creation date"
|
||||||
|
domain_about = "Domain description"
|
||||||
|
domain_mail = "Admin mail"
|
||||||
|
domain_tags = "Domain tags [1,2,3]"
|
||||||
|
domain_lang = "Website lang"
|
||||||
|
domain_srv = "Server URI"
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
anchor_title = "Anchor title"
|
||||||
|
|
||||||
|
# logs for debug
|
||||||
|
#---------------
|
||||||
|
# Errors
|
||||||
|
err_arg = "Argument error"
|
||||||
|
err_hole = "Current directory error"
|
||||||
|
err_date = "Date error"
|
||||||
|
err_lang = "Lang error"
|
||||||
|
err_dir = "Directory error"
|
||||||
|
err_no_dir = "Directory unused"
|
||||||
|
err_cd = "Directory not created"
|
||||||
|
err_no_file = "File unused"
|
||||||
|
err_cr_file = "File not created"
|
||||||
|
err_bad_uri = "URI error"
|
||||||
|
err_post_sep = "Separator unused"
|
||||||
|
err_post_head = "Header is empty"
|
||||||
|
err_post_empty = "Article is empty"
|
||||||
|
err_ini_file = "Configuration error"
|
||||||
|
err_post_data = "Data unused"
|
||||||
|
err_post_title = "Title error"
|
||||||
|
err_post_paired = "Markers not paired"
|
||||||
|
err_post_in_tag = "Markers without contents"
|
||||||
|
err_post_datatag= "Data reserved"
|
||||||
|
err_post_id_yet = "ID used yet"
|
||||||
|
err_post_global = "Article Error"
|
||||||
|
|
||||||
|
# Warnings
|
||||||
|
warn_no_dom = "Domain not configured"
|
||||||
|
domain_off = "Domain deactivated"
|
||||||
|
reset_dom = "RESET domain"
|
||||||
|
|
||||||
|
# infos
|
||||||
|
load_file = "File loaded"
|
||||||
|
lang_logs_sys = "Logs lang"
|
||||||
|
website_lang = "Website lang"
|
||||||
|
domains_no = "Domain not found"
|
||||||
|
domain_found = "Domain exists"
|
||||||
|
domain_on = "Domain activated"
|
||||||
|
domain_created = "Domain updated yet"
|
||||||
|
domain_updated = "Domain updated"
|
||||||
|
domain_new = "Domain created"
|
||||||
|
created_dir = "Directory created"
|
||||||
|
created_file = "File created"
|
||||||
|
updated_file = "File Updated"
|
||||||
|
post_chk_yet = "Article checked yet"
|
||||||
|
post_chk_ready = "Article checked"
|
||||||
|
later = "Maybe later..."
|
||||||
|
|
||||||
#
|
#
|
||||||
# Show HELP
|
# Show HELP
|
||||||
|
@ -44,6 +104,7 @@ tyto [action] [target] [options]
|
||||||
set : set website lang, domain values (title, server...)
|
set : set website lang, domain values (title, server...)
|
||||||
start : activate domain (default "no" when created)
|
start : activate domain (default "no" when created)
|
||||||
stop : deactivate domain
|
stop : deactivate domain
|
||||||
|
show : [domains]
|
||||||
check :
|
check :
|
||||||
wip :
|
wip :
|
||||||
publish :
|
publish :
|
||||||
|
|
|
@ -40,7 +40,7 @@ domain_title = "Titre du domaine"
|
||||||
domain_date = "Date de création"
|
domain_date = "Date de création"
|
||||||
domain_about = "Description du domaine"
|
domain_about = "Description du domaine"
|
||||||
domain_mail = "Courriel de l'administration"
|
domain_mail = "Courriel de l'administration"
|
||||||
domain_tags = "Mots-clés génériques [1,2,3]"
|
domain_tags = "Mots-clés du domaine [1,2,3]"
|
||||||
domain_lang = "Langue du site web"
|
domain_lang = "Langue du site web"
|
||||||
domain_srv = "URI du serveur"
|
domain_srv = "URI du serveur"
|
||||||
|
|
||||||
|
@ -70,6 +70,7 @@ err_post_paired = "Marqueurs non apairés"
|
||||||
err_post_in_tag = "Marqueurs sans contenu"
|
err_post_in_tag = "Marqueurs sans contenu"
|
||||||
err_post_datatag= "Donnée réservée"
|
err_post_datatag= "Donnée réservée"
|
||||||
err_post_id_yet = "Identité déjà utilisée"
|
err_post_id_yet = "Identité déjà utilisée"
|
||||||
|
err_post_global = "Article erronné"
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
warn_no_dom = "Domaine non configuré"
|
warn_no_dom = "Domaine non configuré"
|
||||||
|
@ -77,7 +78,7 @@ domain_off = "Domaine désactivé"
|
||||||
reset_dom = "RÉINITIALISE le domaine"
|
reset_dom = "RÉINITIALISE le domaine"
|
||||||
|
|
||||||
# infos
|
# infos
|
||||||
load_file = "Chargement du fichier"
|
load_file = "Fichier chargé"
|
||||||
lang_logs_sys = "Langue des logs"
|
lang_logs_sys = "Langue des logs"
|
||||||
website_lang = "Langue du site web"
|
website_lang = "Langue du site web"
|
||||||
domains_no = "Aucun domaine trouvé"
|
domains_no = "Aucun domaine trouvé"
|
||||||
|
@ -90,10 +91,9 @@ created_dir = "Dossier créé"
|
||||||
created_file = "Fichier créé"
|
created_file = "Fichier créé"
|
||||||
updated_file = "Fichier mis à jour"
|
updated_file = "Fichier mis à jour"
|
||||||
post_chk_yet = "Article déjà vérifié"
|
post_chk_yet = "Article déjà vérifié"
|
||||||
|
post_chk_ready = "Article vérifié"
|
||||||
later = "Peut-être plus tard..."
|
later = "Peut-être plus tard..."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Show HELP
|
# Show HELP
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue