diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e0f36..243d6f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,10 @@ Tyto - Littérateur # CURRENTLY IN DEV (in devel branch) ! +## [1.9.30] +- 'wip' process +- - About all markers done ! + ## [1.9.29] - Translations - - added for logs (english) diff --git a/README.md b/README.md index fa9615c..b8323d5 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,15 @@ This program can ve tested but not at all usable. Lots of work to do... # Get commands list help tyto ``` +# Create new domain +- create a domain directory, line www.domain.tld +- Go to this directory +- type `tyto new domain` -## ToDo next (working on) -- added lists to post database (prepared wip) ## Working on - 'wip' action processes -- - images module +- Create HTML full page from article ## ToDo - thinking about creating an auto top article menu from titles @@ -43,13 +45,14 @@ date: 2023-10-27 # 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 +logo: logo.png # Données multiples sur 3 lignes # [TAG]: Nom # LIEN # Text alternatif +# Reprendre dans l'article : __cliquer sur ce lien link: cliquer sur ce Lien https:// Text alternatif @@ -58,21 +61,29 @@ link: Réservez ici https:// Billets +# Reprendre dans l'article : --télécharger ce fichier file: télécharger ce fichier @/PDFs/hello.pdf Un PDF ! +# Reprendre dans l'article : _code:codetest code: codetest @RAWS/test.py Exemple d'un code Python +# Reprendre dans l'article : _image:mypic +image: mypic + @hello.png + Text Alt + # 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 - + +# Reprendre dans l'article : ;;css abbr: css Cascading Stylesheet CSS @@ -215,4 +226,141 @@ abbr: css #2 Un block code depuis un fichier _code:codetest +# Afficher une image (1 tag par ligne) +# ------------------------------------ +#2 Les images +# Placer le logo de l'article +_image:logo + +# Marqueur avec options +# ! Les images dans cet exemple sont affichées à la suite +# Placer "|", ou mettez une image dans un paragraphe "((...))" +# ou appliquer un style css de type display:block +# les options des marqueurs: +# - c=CLASS < Sinon la classe est celle du domaine +# - w=WIDTH < longueur (si pas d'unité : défaut "px") +# - h=HEIGHT < Comme w= +# - f=Ma légende sous l'image (ajoute
) +# - - Recommandé d'utiliser cette option en dernier +(( + _image:mypic + _image:mypic c=MYCSS + _image:mypic c=PIC w=60em h=30% f=echolib sur une chaise +)) + +``` + +## Output HTML +``` + + + + +Go to uniq1 anchor +
+

Titre en h2

+

+ Un long paragraphe... + +
+ + 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 + +

+ Un court paragraphe de 1984 pour de vrai faux en gras + Il faut le souligner et Très Gras +

+ <ol>, <ul> + {_Afficher un icode brut_} +

+

Block Code

+ +

1# Un commentaire et du code

+

2def hello(world):

+

3 world and print(world) or print("NoMore")

+
+

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. + + +

1*_Très Gras_* > <strong>

+

2+_En Gras_+ > <b>

+

3[_Citer un texte_] > <q>

+

4:_Citer une référence_: > <cite>

+

5~_Texte barré_~ > <del>

+

6._Text souligné_. > <u>

+

7/_En italique_/ > <em>

+

8;_En italique_; > <i>

+

9

+

10# Marques multiples, ajouter "&"

+

11*_&._Très gras et souligné_.&_*

+
+

+

Citation

+
+
+ + +
+
+

Une liste mixée <ol>, <ul>

+

+

    +
  1. numeric o: item 1
  2. +
      +
    1. numeric ol sub-Item 1
    2. +
        +
      1. numeric ol sub-sub-item 1
      2. + +
      +
    +
+ +

+

Un block code depuis un fichier

+ + +

1#================================#

+

2# Searching options in arguments #

+

3#--------------------------------#

+

4def get_options():

+

5 global dlogs, force, erron

+

6

+

7 dlogs = force = erron = False

+

8 for arg in range(1, len(sys.argv)):

+

9 dlogs = sys.argv[arg] in tyto.debug_options

+

10 force = sys.argv[arg] in tyto.force_options

+

11 erron = sys.argv[arg] in tyto.debug_errors

+

12

+

13 print("<li>my 'cafe !</li>")

+

14

+ +
+

Les images

+ +

+Text Alt +Text Alt +

Text Alt
echolib sur une chaise
+

``` diff --git a/debian/control b/debian/control index 4b3cb0b..4b9580c 100644 --- a/debian/control +++ b/debian/control @@ -1,5 +1,5 @@ Package: tyto -Version: 1.9.29 +Version: 1.9.30 Section: custom Priority: optional Architecture: all diff --git a/src/usr/bin/tyto b/src/usr/bin/tyto index 0b9734a..cad1efe 100755 --- a/src/usr/bin/tyto +++ b/src/usr/bin/tyto @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Version: 1.9.29 +# Version: 1.9.30 # Updated: 2023-10-18 1697613100 # Tyto - Littérateur diff --git a/src/var/lib/tyto/program/__pycache__/check.cpython-311.pyc b/src/var/lib/tyto/program/__pycache__/check.cpython-311.pyc index 78955bb..0e09008 100644 Binary files a/src/var/lib/tyto/program/__pycache__/check.cpython-311.pyc and b/src/var/lib/tyto/program/__pycache__/check.cpython-311.pyc differ diff --git a/src/var/lib/tyto/program/__pycache__/debug.cpython-311.pyc b/src/var/lib/tyto/program/__pycache__/debug.cpython-311.pyc index a0d4446..4395ed2 100644 Binary files a/src/var/lib/tyto/program/__pycache__/debug.cpython-311.pyc and b/src/var/lib/tyto/program/__pycache__/debug.cpython-311.pyc differ diff --git a/src/var/lib/tyto/program/__pycache__/post.cpython-311.pyc b/src/var/lib/tyto/program/__pycache__/post.cpython-311.pyc index 0bb6fd4..e417c3e 100644 Binary files a/src/var/lib/tyto/program/__pycache__/post.cpython-311.pyc and b/src/var/lib/tyto/program/__pycache__/post.cpython-311.pyc differ diff --git a/src/var/lib/tyto/program/__pycache__/tyto.cpython-311.pyc b/src/var/lib/tyto/program/__pycache__/tyto.cpython-311.pyc index 1880ecc..c10f143 100644 Binary files a/src/var/lib/tyto/program/__pycache__/tyto.cpython-311.pyc and b/src/var/lib/tyto/program/__pycache__/tyto.cpython-311.pyc differ diff --git a/src/var/lib/tyto/program/__pycache__/wip.cpython-311.pyc b/src/var/lib/tyto/program/__pycache__/wip.cpython-311.pyc index 1a96f23..658e801 100644 Binary files a/src/var/lib/tyto/program/__pycache__/wip.cpython-311.pyc and b/src/var/lib/tyto/program/__pycache__/wip.cpython-311.pyc differ diff --git a/src/var/lib/tyto/program/check.py b/src/var/lib/tyto/program/check.py index 53efbfa..b9f8534 100644 --- a/src/var/lib/tyto/program/check.py +++ b/src/var/lib/tyto/program/check.py @@ -459,8 +459,8 @@ def ml_tag_values(ln, tag, stats): post.stats_text_images += post.text_contents.count(tyto_value) post.cf_set("STATS_TEXTS", "images", str(post.stats_text_images)) html_value = tyto.image_link%( - value2, "%%s image", "%%s", - value3, value3, "%%s" + value2, "%%s image", value3, + "%%s", value2, "%%s", value3, value3, "%%s", "%%s" ) # raw: (content file converted to base64) @@ -893,8 +893,9 @@ def sl_stags(): "IMAGES", "html_%s"%(post.ml_tags_stats["image:"] + 1), tyto.image_link%( - post.logo[1], "post_logo image", "%%s", - post.title[1], post.title[1], "%%s" + post.logo[1], "%%s image", post.title[1], + "%%s", post.logo[1], "%%s", post.title[1], post.title[1], + "%%s", "%%s" ) ) diff --git a/src/var/lib/tyto/program/debug.py b/src/var/lib/tyto/program/debug.py index b7faf0a..90c9b44 100644 --- a/src/var/lib/tyto/program/debug.py +++ b/src/var/lib/tyto/program/debug.py @@ -103,6 +103,7 @@ def out(nbr, var, val, show, color, stop): 103 : langs.logs.website_lang, 104 : langs.logs.domains_no, 105 : langs.logs.domain_off, + 106 : langs.logs.warn_post_chk, # Great (200-255) 200 : langs.logs.load_file, 201 : langs.logs.lang_logs_sys, diff --git a/src/var/lib/tyto/program/post.py b/src/var/lib/tyto/program/post.py index 5c6f552..678bd99 100644 --- a/src/var/lib/tyto/program/post.py +++ b/src/var/lib/tyto/program/post.py @@ -201,9 +201,13 @@ def cf_datas(): # Used to do processes (mainly) # #-------------------------------# def compare_datas(): - global do_chk, do_wip + global do_chk, do_wip, has_changed # check can be done ? + has_changed = False + if wrk_id != chk_hash: + has_changed = True + do_chk = False if chk_errors or \ chk_static != domain.static or \ diff --git a/src/var/lib/tyto/program/tyto.py b/src/var/lib/tyto/program/tyto.py index 5d36756..603fe75 100644 --- a/src/var/lib/tyto/program/tyto.py +++ b/src/var/lib/tyto/program/tyto.py @@ -106,10 +106,13 @@ code_line = '

' + \ '%s' +\ '

' -image_link = '%s' +image_link = '' + \ + '%s%s' + \ + '%s' a_link = '%s' quote = """
%s %s%s %s
""" + diff --git a/src/var/lib/tyto/program/wip.py b/src/var/lib/tyto/program/wip.py index 0a00833..c90fa8f 100644 --- a/src/var/lib/tyto/program/wip.py +++ b/src/var/lib/tyto/program/wip.py @@ -84,7 +84,7 @@ def is_article(target): if targets: return else: sys.exit(post.error) - print("> wip:", target) + print("\n> wip:", target) print(html_post) @@ -105,6 +105,10 @@ def convert(target): post.error = debug.out(10, "'check'", post.uri, True, 2, False) return False + if post.has_changed and not args.force: + post.error = debug.out(106, "'check'", post.uri, True, 1,False) + return False + # Get raw post from database raw_post = tools.b64_convert("decode", post.cf.get("TEXTS", "post")) @@ -119,6 +123,7 @@ def convert(target): words_tags() sl_tags() + images() value_replace("COMMENTS", False, False) value_replace("ABBRS", False, False) @@ -240,6 +245,95 @@ def sl_tags(): text_replace(line, post.anchor_target[1]%css) +# +# +# +def split_size(size): + tup_size= ( + ''.join(filter(str.isdigit, size)) or "", + ''.join(c for c in size if not c.isdigit()) or "px" + ) + + if not tup_size[0]: + return "" + + return tup_size[0] + tup_size[1] + +#=============================# +# Convert images tags to HTML # +#-----------------------------# +def images(): + global html_post + + for key, val in post.cf.items("IMAGES"): + if key.startswith("html"): + continue + + # Get target value by replacing key with html + html_key = key.replace("image", "html") + html_val = post.cf.get("IMAGES", html_key) + + # Search tag from val in html_post + for ln, line in enumerate(html_post.rsplit("\n")): + if line.lstrip().startswith(val): + css = domain.css + width = height = figure = figcap_o = figcap_c = style = "" + options = line.split() + markers = ('c=', 'w=', 'h=','f=') + + # Specific CSS class for _image:logo + if options[0].rsplit(":")[1] == "logo": + css = "post_logo" + + for option in options: + #
was activated with f= + if figure and not option.startswith(markers): + figure = "%s %s"%(figure, option) + + # CSS (default domain css) + try: css = option.rsplit("c=")[1] + except: pass + + # >idth: + try: + width = option.rsplit("w=")[1] + width = split_size(width) + print("wip: size =", width) + except: + pass + + # Height + try: + height = option.rsplit("h=")[1] + height = split_size(height) + print("wip: size =", height) + except: + pass + + try: figure = option.rsplit("f=")[1] + except: pass + + #