diff --git a/build_indexes.py b/build_indexes.py
index adfd75af..f49e3ec0 100755
--- a/build_indexes.py
+++ b/build_indexes.py
@@ -1,10 +1,7 @@
import argparse
-import datetime
-import os
-import shutil
-from utils import *
from enrich_html import enrich_one_file
+from utils import *
from website_config import configs_sites, global_config
# from enrich_html import static_page_path
@@ -22,12 +19,10 @@ source_files_extension = "org"
config_title = configs_sites[args.source]['BLOG_TITLE']
-
use_article_file_for_name = (not global_config["slug_with_year"])
website_name = args.source
-
# transformer le nom du fichier orgmode en une création de dossier de l'année, et un sous dossier du nom du slug dans le nom de fichier, contenant un seul fichier d'index afin de faire de l'url rewrite en dur.
# le nom de fichier org commence par une date YYYY-MM-DD ou bien YYYYMMDDHHmmss, est suivie d'un slug, et finit par l'extension .org
@@ -53,7 +48,6 @@ def generer_index(dossier_source, fichier_index):
contenu_index_gmi += "\n# Navigation\n-------------------------\n"
-
# ne préciser la langue français que si on a des articles en Anglais
if len(files_en):
contenu_index_gmi += "\n# Articles en Français\n-------------------------\n"
@@ -70,19 +64,21 @@ def generer_index(dossier_source, fichier_index):
link_org = fichier.replace('.gmi', '.org')
file_path_org = os.path.join(dossier_parent, "sources", website_name, lang_folder, link_org)
- article_name = trouver_nom_article(file_path_org,args.source, 'org')
+ article_name = trouver_nom_article(file_path_org, args.source, 'org')
+
+ basename_file = os.path.basename(file_path_org)
+ article_relative_url = detect_slug_in_file_basename(basename_file)
if not article_name:
article_name = slug.replace('-', ' ')
if global_config["slug_with_year"]:
- new_folder = f"{année}/{slug}"
- new_folder_path_this_article = os.path.join(dossier_parent,
- 'html-websites/' + args.source + '/' + new_folder + '/')
+ new_folder = article_relative_url
+ new_folder_path_this_article = os.path.join(dossier_parent, f"html-websites{args.source}/{new_folder}/")
# déplacer le fichier html dans le dossier slug,
# et le renommer en index.html ensuite pour ne pas modifier l'index du blog
- contenu_index_html += f" {année} {article_name}"
+ contenu_index_html += f" {année} {article_name}"
os.makedirs(os.path.dirname(new_folder_path_this_article), exist_ok=True)
shutil.copy(chemin_fichier_this_article_html, new_folder_path_this_article + 'index.html')
else:
@@ -95,7 +91,7 @@ def generer_index(dossier_source, fichier_index):
link_html = fichier.replace('.gmi', '.html')
link_org = fichier.replace('.gmi', '.org')
file_path_org = os.path.join(dossier_parent, "sources", website_name, link_org)
- article_name = trouver_nom_article(file_path_org,args.source, 'org')
+ article_name = trouver_nom_article(file_path_org, args.source, 'org')
if article_name:
contenu_index_gmi += f"=> {fichier} {article_name}\n"
@@ -107,7 +103,7 @@ def generer_index(dossier_source, fichier_index):
if use_article_file_for_name:
article_name = link_html
else:
- article_name = trouver_nom_article(file_path_org,args.source, 'org')
+ article_name = trouver_nom_article(file_path_org, args.source, 'org')
if not article_name:
article_name = link_html
diff --git a/gather_tags_in_json.py b/gather_tags_in_json.py
index bc9616a7..36a210ba 100644
--- a/gather_tags_in_json.py
+++ b/gather_tags_in_json.py
@@ -130,12 +130,16 @@ def generate_html_pages_for_all_tags(tag_to_files, html_output_folder):
"""
for file_path_org in files:
basename_file= os.path.basename(file_path_org)
+ slug=detect_slug_in_file_basename(basename_file)
+ if not slug:
+ slug = trouver_slug_in_article(file_path_org)
nom_article = trouver_nom_article( file_path_org, blog_folder, 'org')
- slug = trouver_slug_in_article(file_path_org)
- print('nom_article',nom_article)
- html_content += f"
Georges est en vacances, mais je vous propose de pratiquer le python
-en fabriquant une comptine que ma fille chantait à la crèche, histoire
-de ne pas trop rouiller pendant l'été et de voir comme on peut faire de
-la réutilisation. (et pourquoi pas, faire du python avec les enfants
-:D)
-
Cette comptine étant habituellement utilisée en crèche ou ailleurs
-pour que tous les enfants retiennent le prénom des autres.
-
On va donc revoir plusieurs éléments déjà vu à la MJC de Gometz: les
-fonctions, les boucles et les listes.
-
Créez votre fichier python dans votre éditer de texte préféré, perso
-je recommande PyCharm, version communautaire qui est donc gratuit et
-très complet.
-
sudo snap install pycharm-community --classic
-
donc, dans un fichier comptinepython.py, on veut faire
-notre comptine qui va chanter ceci:
-
-
#### c'est l'heure de la chanson ##### //
-
- Par la fenêtre ouverte //
-
- bonjour, bonjour //
-
- Par la fenêtre ouverte
-
- bonjour, le jour
-
/ /
-
- bonjour les pythons! //
-
- bonjour les abeilles! //
-
- bonjour les fleurs!
-
/ /
-
- Par la fenêtre ouverte //
-
- bonjour, bonjour //
-
- Par la fenêtre ouverte //
-
- bonjour, le jour
-
-
nous avons donc une première ligne, un refrain, une suite de
-bonjours, et un refrain.
-
Le plus simple est de commencer par la première ligne, qu'il suffit
-d'imprimer avec print.
-
-
print("##### c'est l'heure de la chanson #####")
-
-
-
Ensuite, nous avons notre refrain. Au lieu de faire plein de print,
-nous pouvons faire une fonction qui va imprimer toutes les lignes de ce
-refrain , comme ça on pourra l'appeler deux fois pour faire notre
-comptine.
-
Définissons donc la fonction refrain. On va écrire notre chaîne de
-caractères entre une triple paire de guillemets afin de pouvoir écrire
-sur plusieurs lignes le contenu de notre print.
-
def refrain():
-print("""
-- Par la fenêtre ouverte
-- bonjour, bonjour
-- Par la fenêtre ouverte
-- bonjour, le jour
-""")
-
-
-
Ensuite nous avons plusieurs bonjours dit à un destinataire
-différent. Nous pouvons donc faire une fonction qui dit bonjour, définir
-une liste de destinataires, et dire bonjour à chacun d'eux avec une
-boucle.
-
Commençons par la liste de destinataires que sont les pythons, les
-abeilles et les fleurs. On utilise des crochets pour définir une liste
-et l'attribuer à une variable.
Pour leur dire bonjour on définit une fonction qui va avoir en
-paramètre un destinataire, et on va imprimer dans la console un bonjour
-avec le nom du destinataire. Pour mélanger ensemble une chaîne de
-caractère et une variable, on va utiliser la substitution. ça consiste à
-écrire dans la chaîne un %s, et après la chaîne à lui donner quoi
-substituer avec un symbole pourcent % et le nom de la variable à
-substituer. Ici on veut dire bonjour au destinataire, donc on écrit
-% destinataire. il existe plusieurs façons de mélanger
-des variables en python, le terme correct étant "concaténer". Je vous
-laisse creuser le sujet si ça vous intéresse.
-
En tous cas, voici ce que donne notre fonction pour dire bonjour.
-
def direbonjour(destinataire):
-
print('- bonjour %s!' % destinataire)
-
Nous n'avons plus qu'a rassembler le puzzle pour que lors de
-l'éxécution de notre fichier de comptine on puisse voir la chanson en
-entier. Il nous faut donc encore réaliser une boucle sur chaque élément
-de notre liste de destinataires. On va utiliser la boucle for
-in et leur passer le bonjour.
-
for quelqun in destinataires:
-dire_bonjour(quelqun)
-Voilà!
-
-
Nous n'avons plus qu'à réorganiser nos lignes et demander au refrain
-de s'exécuter avant et après la boucle.
-
# comptine de la chanson du bonjour
-
-destinataires = ['les pythons', 'les abeilles', 'les fleurs']
-
-def refrain():
-print("""
-- Par la fenêtre ouverte
-- bonjour, bonjour
-- Par la fenêtre ouverte
-- bonjour, le jour
-""")
-
-def dire_bonjour(destinataire):
-print('- bonjour %s!' % destinataire)
-
-print("##### c'est l'heure de la chanson #####")
-
-refrain()
-
-for quelqun in destinataires:
-dire_bonjour(quelqun)
-
-refrain()
-
-# et voilà!
-
-
exécuter le fichier python devrait donc nous faire apparaître en
-console la chanson complète. Dans pycharm vous pouvez voir ce que ça
-donne avec votre script juste en appuyant sur F6.
Voici quelques sujets que nous pouvons évoquer lors de nos réunions
-hebdomadaires dans le cadre du CIL:
-
-
Découvrir des logiciels libres en général
-
Comprendre le fonctionnement d'internet et du web
-
Installation de systèmes libres comme ubuntu sur ordinateur et
-téléphone (on dit ordiphone parait-il)
-
Développer son site web, tenir un blog
-
S'auto héberger avec nextcloud et d'autres logiciels
-libres
-
Faire de la création numérique, médias à imprimer, montage vidéo,
-fichiers audio, livres numérique, création graphique, 3D
-
Contribuer à des projets libres, comment faire?
-
Contribution collaborative: de la bureautique simple de Cryptpad à la cartographie openstreetmap en passant par wikipédia
-
Protéger sa vie privée, communication sécurisée, gestion des mots
-de passe, chiffrement et cryptographie
-
Sauvegarder et compresser automatiquement ses fichiers
-
Organiser ses projets perso et boulot, seul ou à
-plusieurs
-
Créer des synergies entre associations
-
Que faire avec un RaspberryPI ou un Arduino ?
-
Programmation, concepts généraux, outils, gestion de version, et
-exercices en python
-
Découvrir la ligne de commande
-
Méthodes pour se documenter et apprendre
-
Un logiciel pour la monnaie libre: Duniter
-
Les réseaux sociaux fédérés et le fédiverse: Mastodon, Peertube,
-Pixelfed, Mobilizon…
-
Questions réponses en tout genre
-
Nous échangeons entre les séances grâce à la liste de diffusion
-cil-gometz@framalistes.org
-(abonnez
-vous ici)et y communiquons des sondages framadate pour savoir qui
-viendra aux prochaines séances afin de les préparer au mieux. Ajoutez ce
-contact à votre carnet d'adresses mail pour être certain qu'il n'arrive
-pas dans les indésirables ou soit supprimé automatiquement.
-
-
Chacun vient au CIL avec des compétences variées, du néophyte au plus
-averti, pour échanger autour des sujets de leur choix, aucune assiduité
-aux séances n'est requise. Si besoin nous organisons aussi des
-visioconférences sur Jitsi / Matrix / Element, des outils libres bien
-entendu.
-
Cependant, bien évidemment, plus on est de fous plus on rit.
Nous sommes des amateurs non-professionnels, certains d'entre nous
-ont utilisé (ou utilisent) l'informatique dans le cadre de leur activité
-professionnelle mais aucun d'entre nous n'est informaticien (sauf tykayn qui a retapé ce site).
-
Nos déboires avec les logiciels commerciaux (surtout ceux de
-Microsoft) font que nous nous sommes tournés vers les logiciels libres
-et en particulier vers le système Linux dans ses diverse versions.Nous
-ne sommes pas pour autant opposés à tout logiciel commercial mais si un
-logiciel libre fait la même chose qu'un logiciel commercial, nous
-préférons le logiciel libre.
-Chacune de nos réunions nous permet de progresser et de mieux comprendre
-ce qu'est l'informatique : un peu de système (terminal et ligne de
-commande), un peu de bureautique (traitement de texte, tableur…), un peu
-de programmation (Python), un peu de gestion de photos… et voilà !
-
Tout amateur, même (et surtout) débutant, est le bien venu et nous
-l'aiderons du mieux possible tout en profitant de ses connaissances.
Salut les ptis poulets et bienvenue dans un lieu de déperdition
-geekesque où vont s'affronter divers centres d'intérêt autour des
-nouvelles technologies, de la programmation et de l'insolite du web.
-Bonne visite!