interactive new article
This commit is contained in:
parent
cfd6545a1a
commit
5ecbe07f53
@ -1,19 +1,61 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# création de nouvel article de blog
|
# Création de nouvel article de blog
|
||||||
# exemple de commande
|
# Exemple de commande :
|
||||||
# python new_article.py cipherbliss_blog fr "Création d'un blog gemini"
|
# python new_article.py [blog_dir] [lang] "article_title"
|
||||||
import os
|
import os
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# Configuration des arguments de la ligne de commande
|
# Configuration des arguments de la ligne de commande
|
||||||
parser = argparse.ArgumentParser(description="Générer un nouvel article en mode orgmode.")
|
parser = argparse.ArgumentParser(description="Générer un nouvel article en mode orgmode.")
|
||||||
parser.add_argument("blog_dir", help="Le nom du dossier de blog.")
|
parser.add_argument("title", nargs="?", help="Le titre de l'article.")
|
||||||
parser.add_argument("lang", help="La langue de l'article.")
|
parser.add_argument("lang", nargs="?", default="fr", help="La langue de l'article (par défaut : fr pour Français ou en pour English).")
|
||||||
parser.add_argument("title", help="Le titre de l'article.")
|
parser.add_argument("blog_dir", nargs="?", default=None, help="Le nom du dossier de blog (sous source/). Si non spécifié, une liste de dossiers disponibles sera proposée.")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Définition du dossier de base pour les blogs
|
||||||
|
base_blog_dir = "sources/"
|
||||||
|
|
||||||
|
# Si aucun dossier de blog n'est spécifié, proposer une sélection
|
||||||
|
if args.blog_dir is None:
|
||||||
|
available_dirs = [d for d in os.listdir(base_blog_dir) if os.path.isdir(os.path.join(base_blog_dir, d))]
|
||||||
|
if not available_dirs:
|
||||||
|
print("Aucun dossier de blog trouvé sous", base_blog_dir)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
print("Sélectionnez un dossier de blog :")
|
||||||
|
for i, dir_name in enumerate(available_dirs, start=1):
|
||||||
|
print(f"{i}. {dir_name}")
|
||||||
|
|
||||||
|
choice = input("Entrez le numéro de votre choix : ")
|
||||||
|
try:
|
||||||
|
choice = int(choice)
|
||||||
|
if choice < 1 or choice > len(available_dirs):
|
||||||
|
raise ValueError
|
||||||
|
args.blog_dir = available_dirs[choice - 1]
|
||||||
|
except ValueError:
|
||||||
|
print("Choix invalide. Annulation.")
|
||||||
|
exit(1)
|
||||||
|
if args.title is None:
|
||||||
|
args.title = input("Entrez le titre de votre nouvel article: ")
|
||||||
|
|
||||||
|
if args.title is None:
|
||||||
|
print("Vous n'avez pas choisi de titre d'article")
|
||||||
|
exit(1)
|
||||||
|
# Vérification de l'existence du dossier de blog
|
||||||
|
blog_path = os.path.join(base_blog_dir, args.blog_dir)
|
||||||
|
if not os.path.exists(blog_path):
|
||||||
|
print(f"Le dossier de blog '{args.blog_dir}' n'existe pas sous '{base_blog_dir}'.")
|
||||||
|
create_dir = input("Créer le dossier? (o/n) : ")
|
||||||
|
if create_dir.lower() == 'o':
|
||||||
|
os.makedirs(blog_path)
|
||||||
|
print(f"Dossier '{args.blog_dir}' créé sous '{base_blog_dir}'.")
|
||||||
|
else:
|
||||||
|
print("Annulation de la création de l'article.")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
uuid_value=''
|
uuid_value=''
|
||||||
# Génération du nom de fichier org avec la date et le slug
|
# Génération du nom de fichier org avec la date et le slug
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
@ -21,12 +63,18 @@ now = datetime.now()
|
|||||||
date_string = now.strftime("%Y%m%d%H%M%S")
|
date_string = now.strftime("%Y%m%d%H%M%S")
|
||||||
date_string_full = now.strftime("%Y-%m-%d %H:%M:%S")
|
date_string_full = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
# date_string_full = now.strftime("%Y%m%d%H%M%S")
|
# date_string_full = now.strftime("%Y%m%d%H%M%S")
|
||||||
slug = args.title.lower().replace(" ", "-")
|
slug = ''
|
||||||
|
if args.title:
|
||||||
|
slug = args.title.lower().replace(" ", "-")
|
||||||
slug = slug.replace("--", "-")
|
slug = slug.replace("--", "-")
|
||||||
slug = slug.replace("--", "-")
|
slug = slug.replace("--", "-")
|
||||||
file_abs_path = os.path.abspath(os.path.dirname(__file__))
|
file_abs_path = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
|
||||||
filename = f"{file_abs_path}/sources/{args.blog_dir}/lang_{args.lang}/{date_string}__{slug}.org"
|
if args.lang == 'fr' or args.lang == 'en':
|
||||||
|
filename = f"{file_abs_path}/sources/{args.blog_dir}/lang_{args.lang}/{date_string}__{slug}.org"
|
||||||
|
else:
|
||||||
|
print('langue invalide, disponible: fr ou en seulement')
|
||||||
|
exit(1)
|
||||||
|
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
17
sources/dragonfeu_blog/lang_fr/20250222000320__.org
Normal file
17
sources/dragonfeu_blog/lang_fr/20250222000320__.org
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
#+title:
|
||||||
|
#+post_ID:
|
||||||
|
#+post_slug: organisation-de-taches-orgmode
|
||||||
|
#+post_url: https://www.ciperbliss.com/2025/
|
||||||
|
#+post_title: None
|
||||||
|
#+post_tags:
|
||||||
|
#+post_type: post
|
||||||
|
#+post_status: publish
|
||||||
|
#+post_date_published: <2025-02-22 00:03:20>
|
||||||
|
#+post_date_modified: <2025-02-22 00:03:20>
|
||||||
|
#+post_index_page_roam_id:
|
||||||
|
#+BLOG: cipherbliss_blog dragonfeu_blog
|
||||||
|
|
||||||
|
* None
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
#+title: hé-bien-vouala
|
||||||
|
#+post_ID:
|
||||||
|
#+post_slug: organisation-de-taches-orgmode
|
||||||
|
#+post_url: https://www.ciperbliss.com/2025/hé-bien-vouala
|
||||||
|
#+post_title: hé bien vouala
|
||||||
|
#+post_tags:
|
||||||
|
#+post_type: post
|
||||||
|
#+post_status: publish
|
||||||
|
#+post_date_published: <2025-02-22 00:05:32>
|
||||||
|
#+post_date_modified: <2025-02-22 00:05:32>
|
||||||
|
#+post_index_page_roam_id:
|
||||||
|
#+BLOG: cipherbliss_blog dragonfeu_blog
|
||||||
|
|
||||||
|
* hé bien vouala
|
||||||
|
|
||||||
|
|
@ -30,8 +30,9 @@
|
|||||||
|
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00561.JPG]]Épitanime
|
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00561.JPG]]
|
||||||
c'était kro kro bien. Pour nous c'était notre première participation en
|
|
||||||
|
Épitanime c'était kro kro bien. Pour nous c'était notre première participation en
|
||||||
tant que stand. J'y étais allé en visiteur en 2006.On
|
tant que stand. J'y étais allé en visiteur en 2006.On
|
||||||
était donc hyper bien accueilli avec petit dej et bouteilles d'eau
|
était donc hyper bien accueilli avec petit dej et bouteilles d'eau
|
||||||
cadeau, autant de tables et de chaises qu'on voulait pour un espace de
|
cadeau, autant de tables et de chaises qu'on voulait pour un espace de
|
||||||
@ -52,7 +53,9 @@ qui étaient placés à côté de la marche de darwin (ainsi nommée parce
|
|||||||
qu'elle contribue à la disparition des gens qui ne savent pas lire
|
qu'elle contribue à la disparition des gens qui ne savent pas lire
|
||||||
"attention à la marche").Bon du coup on a plus que 3
|
"attention à la marche").Bon du coup on a plus que 3
|
||||||
fanzines à vendre, mouhaha, va falloir qu'on réimprime
|
fanzines à vendre, mouhaha, va falloir qu'on réimprime
|
||||||
:D[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00532.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00532.JPG]]
|
:D
|
||||||
|
|
||||||
|
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00532.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00532.JPG]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00534.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00534.JPG]]
|
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00534.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00534.JPG]]
|
||||||
|
|
||||||
@ -340,19 +343,16 @@ fanzines à vendre, mouhaha, va falloir qu'on réimprime
|
|||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00784.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00784.JPG]]
|
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00784.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00784.JPG]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00785.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00785.JPG]]On
|
[[https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/g/DSC00785.JPG][https://tykayn.fr/wp-content/uploads/i/2012/05mai/epitanime_2012/DSC00785.JPG]]
|
||||||
est rarement aussi choyés en tant que fanzines et on compte bien y
|
|
||||||
revenir. Awesome!Et sinon, vous pourrez me voir aux
|
On est rarement aussi choyés en tant que fanzines et on compte bien y
|
||||||
stands de Méluzine ce weekend de fêtes des mères au festival d'Amiens.
|
revenir. Awesome! Et sinon, vous pourrez me voir aux stands de Méluzine ce weekend de fêtes des mères au festival d'Amiens.
|
||||||
|
|
||||||
(Jdevrais ptetre faire payer pour faire des massages en convention à
|
(Jdevrais ptetre faire payer pour faire des massages en convention à
|
||||||
force qu'on me dise que je les fasse si bien. En plus ça lancera des
|
force qu'on me dise que je les fasse si bien. En plus ça lancera des
|
||||||
débats très animés sur la prostitution et autres raccourcis entre vente
|
débats très animés sur la prostitution et autres raccourcis entre vente
|
||||||
du corps et vente de prestation. Je vous ai déjà parlé du
|
du corps et vente de prestation. Je vous ai déjà parlé du
|
||||||
[[https://site.strass-syndicat.org/][syndicat des travailleuses et
|
[[https://site.strass-syndicat.org/][syndicat des travailleuses et travailleurs du sexe? Allez donc lire un peu leur site officiel]] )
|
||||||
travailleurs du sexe? Allez donc lire un peu leur site officiel]] ) Je
|
|
||||||
vais tenter l'incruste également à Orléans pour geek faeries qui se
|
Je vais tenter l'incruste également à Orléans pour geek faeries qui se déroulera le weekend de la semaine prochaine. Ayez du fun, si vous avez vous aussi un compte rendu de l'épitanime faites le passer dans les commentaires :) grows bisous!
|
||||||
déroulera le weekend de la semaine prochaine.Ayez du
|
|
||||||
fun, si vous avez vous aussi un compte rendu de l'épitanime faites le
|
|
||||||
passer dans les commentaires :)grows bisous!
|
|
||||||
|
|
@ -33,19 +33,26 @@ en savoir plus sur UDoduF : https://udoduf.wordpress.com/.
|
|||||||
|
|
||||||
Le 29 mars, nous étions pour une journée au nord de Paris, pour le Forum
|
Le 29 mars, nous étions pour une journée au nord de Paris, pour le Forum
|
||||||
du fanzine et des éditions modestes. Si vous voulez en savoir plus sur
|
du fanzine et des éditions modestes. Si vous voulez en savoir plus sur
|
||||||
UDoduF : [[https://udoduf.wordpress.com/.]]En bref,
|
UDoduF : [[https://udoduf.wordpress.com/.]]
|
||||||
|
|
||||||
|
En bref,
|
||||||
nous avons retrouvé des amis et quelques nouvelles têtes ainsi qu'une
|
nous avons retrouvé des amis et quelques nouvelles têtes ainsi qu'une
|
||||||
grande variété de fanzines, qui pour certains sont des œuvres d'art, en
|
grande variété de fanzines, qui pour certains sont des œuvres d'art, en
|
||||||
pièce unique ou tirages très limités puisque fait
|
pièce unique ou tirages très limités puisque fait
|
||||||
main.[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.21.09.jpg]]
|
main.
|
||||||
|
|
||||||
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.21.09.jpg]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.12.49.jpg]]
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.12.49.jpg]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.21.01.jpg]]A
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.21.01.jpg]]
|
||||||
cette occasion notre chez Reg à participé à l'atelier "fanzine
|
|
||||||
|
À cette occasion notre chez Reg à participé à l'atelier "fanzine
|
||||||
toi-même"lors duquel il à réalisé un mini fanzine en
|
toi-même"lors duquel il à réalisé un mini fanzine en
|
||||||
un après
|
un après
|
||||||
midi![[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.12.25.jpg]]
|
midi!
|
||||||
|
|
||||||
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%2015.12.25.jpg]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/_MG_0776.JPG]]
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/_MG_0776.JPG]]
|
||||||
|
|
||||||
@ -59,7 +66,7 @@ midi![[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/2014-03-29%201
|
|||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/_MG_0786.JPG]]
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/_MG_0786.JPG]]
|
||||||
|
|
||||||
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/RegRaoniUdoduf.jpg]] Une
|
[[https://tykayn.fr/wp-content/uploads/i/2014/04avril/udoduf/RegRaoniUdoduf.jpg]]
|
||||||
belle initiative pour populariser la création de fanzines.
|
Une belle initiative pour populariser la création de fanzines.
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user