mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
fix template include for article
This commit is contained in:
parent
a473479b83
commit
9ab4b98c1d
30 changed files with 115 additions and 87 deletions
|
@ -52,7 +52,7 @@ except FileNotFoundError:
|
|||
print(f"Impossible de trouver le fichier {json_file}")
|
||||
exit(1)
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la lecture du fichier {json_file}: {e}")
|
||||
print(f"gather tags in json: Erreur lors de la lecture du fichier {json_file}: {e}")
|
||||
exit(1)
|
||||
|
||||
def find_org_files(directory):
|
||||
|
@ -110,15 +110,7 @@ def generate_html_pages_for_all_tags(tag_to_files, html_output_folder):
|
|||
template = env.get_template('templates/html/tag.html.j2')
|
||||
sorted_tags = sorted(tag_to_files.items())
|
||||
|
||||
for tag, files in sorted_tags:
|
||||
print('------------ tag', tag, len(files))
|
||||
print('Files pour ce tag:', files)
|
||||
print('Clés disponibles dans articles_info:', list(articles_info.keys())[:5], '...')
|
||||
|
||||
# Afficher un exemple détaillé de non-correspondance
|
||||
for f in files:
|
||||
if f not in articles_info:
|
||||
print(f"Fichier non trouvé dans articles_info: {f}")
|
||||
for tag, files in sorted_tags:
|
||||
|
||||
# Préparer les données pour le template
|
||||
data = {
|
||||
|
|
|
@ -23,13 +23,13 @@ start_time = time.time()
|
|||
# Configurer argparse pour prendre le blog en argument
|
||||
parser = argparse.ArgumentParser(description='Générer une liste des derniers articles de blog.')
|
||||
parser.add_argument('blog', type=str, help='Nom du dossier du blog à traiter', default='cipherbliss_blog')
|
||||
parser.add_argument('--run_gemini', type=str, help='Activer ou non la génération des billets gemini', default=True)
|
||||
parser.add_argument('--run_pandoc', type=str, help='Activer ou non la génération des fichiers html', default=True)
|
||||
parser.add_argument('--enable_roam_id_rewrite', type=str, help='Activer ou non la réécriture des liens roam', default=False)
|
||||
parser.add_argument('--generate_html_pages', type=str, help='Activer ou non la génération des pages html', default=True)
|
||||
parser.add_argument('--generate_linkings_json', type=str, help='Activer ou non la génération du json des liens entre articles', default=True)
|
||||
parser.add_argument('--force_html_regen', action='store_true', help='Forcer la régénération des fichiers HTML même s\'ils existent déjà', default=False)
|
||||
parser.add_argument('--rebuild_articles_info_json', type=str, help='Reconstruire le fichier de données JSON des articles', default=False)
|
||||
parser.add_argument('--run_gemini', type=bool, help='Activer ou non la génération des billets gemini', default=True)
|
||||
parser.add_argument('--run_pandoc', type=bool, help='Activer ou non la génération des fichiers html', default=True)
|
||||
parser.add_argument('--enable_roam_id_rewrite', type=bool, help='Activer ou non la réécriture des liens roam', default=False)
|
||||
parser.add_argument('--generate_html_pages', type=bool, help='Activer ou non la génération des pages html', default=True)
|
||||
parser.add_argument('--generate_linkings_json', type=bool, help='Activer ou non la génération du json des liens entre articles', default=True)
|
||||
parser.add_argument('--force_html_regen', type=bool, help='Forcer la régénération des fichiers HTML même s\'ils existent déjà', default=False)
|
||||
parser.add_argument('--rebuild_articles_info_json', type=bool, help='Reconstruire le fichier de données JSON des articles', default=False)
|
||||
|
||||
args = parser.parse_args()
|
||||
run_gemini = args.run_gemini
|
||||
|
@ -191,6 +191,8 @@ if generate_linkings_json :
|
|||
# Vérifier si l'article doit être reconstruit
|
||||
file_modified_time = os.path.getmtime(file_path)
|
||||
rebuild_this_article_gemini = file_modified_time > last_gemini_build_time
|
||||
if rebuild_this_article_gemini:
|
||||
print("le dernier build gemini est plus ancien que la dernière modification de la source, on le rebuild")
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la vérification des dates pour {gemini_path}: {e}")
|
||||
rebuild_this_article_gemini = True
|
||||
|
@ -210,7 +212,7 @@ if generate_linkings_json :
|
|||
if rebuild_this_article_html:
|
||||
print(f"\033[91m--------- article modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}\033[0m")
|
||||
# else:
|
||||
# print(f"\033[91m--------- article non modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}, on ne recrée pas\033[0m")
|
||||
# print(f"\033[91m--------- article non modifié après le build de son rendu html: {file_path}, {rebuild_this_article_html}, on ne recrée pas\033[0m")
|
||||
|
||||
else:
|
||||
# si il n'y a pas de fichier html, on le construit pour la première fois
|
||||
|
@ -238,7 +240,7 @@ if generate_linkings_json :
|
|||
if len(files_dict[slug_with_year]['html_content_without_h1']) > 0 :
|
||||
html_content_without_h1 = files_dict[slug_with_year]['html_content_without_h1']
|
||||
else:
|
||||
print('========= pas de contenu html existant: ', title)
|
||||
print('========= pas de contenu html existant: ', title , '|on le génère|',slug_with_year)
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc html_content : {title} en html\033[0m")
|
||||
pandoc_runs_counter += 1
|
||||
html_content = pypandoc.convert_text(content_without_h1, 'html', format='org')
|
||||
|
@ -247,13 +249,13 @@ if generate_linkings_json :
|
|||
|
||||
|
||||
if run_pandoc and rebuild_this_article_html or force_html_regen:
|
||||
print(f"run_pandoc: {run_pandoc}")
|
||||
print(f"rebuild_this_article_html: {rebuild_this_article_html}")
|
||||
print(f"force_html_regen: {force_html_regen}")
|
||||
# print(f"run_pandoc: {run_pandoc}")
|
||||
# print(f"rebuild_this_article_html: {rebuild_this_article_html}")
|
||||
# print(f"force_html_regen: {force_html_regen}")
|
||||
# convertir le contenu d'article org vers html
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc : {title} en html\033[0m")
|
||||
# print(f"\033[91m.\033[0m", end='', flush=True)
|
||||
if not html_content:
|
||||
print(f"\033[91m {time.strftime('%H:%M:%S')} BRRRRRRRRRRRRR pandoc : {title} en html\033[0m")
|
||||
html_content = pypandoc.convert_text(content_without_h1, 'html', format='org')
|
||||
html_content_without_h1 = re.sub(r'<h1>.*?</h1>', '', html_content)
|
||||
pandoc_runs_counter += 1
|
||||
|
@ -435,8 +437,11 @@ Dernière mise à jour: {dt.datetime.now().strftime('%Y-%m-%d, %H:%M:%S')}
|
|||
=> tags.gmi Tags
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
{template_content['SOUTIEN']}
|
||||
|
||||
-----------------------------------------------
|
||||
|
||||
{template_content['WEBSITE_GENERATOR_DESCRIPTION']}
|
||||
{template_content['WEBSITE_GENERATOR']}
|
||||
"""
|
||||
|
@ -535,7 +540,7 @@ def generate_article_pages(json_file, template_file, output_dir):
|
|||
print(f"\033[94m Nombre d'articles gemini générés : {counter_gemini}\033[0m")
|
||||
return
|
||||
except IOError as e:
|
||||
print(f"Erreur lors de la lecture du fichier {json_file}: {e}")
|
||||
print(f"linking articles prev next: Erreur lors de la lecture du fichier {json_file}: {e}")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"Erreur inattendue lors de la lecture du fichier {json_file}: {e}")
|
||||
|
|
|
@ -7,7 +7,11 @@ sass templates/styles_src/style_general.scss templates/styles/style_general.css
|
|||
|
||||
echo "copier le style général et le js principal vers html-websites pour chaque site"
|
||||
|
||||
for i in $(ls html-websites); do
|
||||
cp templates/styles/style_general.css html-websites/$i/style.css
|
||||
cp templates/js/main_script.js html-websites/$i/main_script.js
|
||||
for i in $(ls sources); do
|
||||
if [ -d "html-websites/$i" ]; then
|
||||
cp templates/styles/style_general.css html-websites/$i/style.css
|
||||
cp templates/js/main_script.js html-websites/$i/main_script.js
|
||||
fi
|
||||
done
|
||||
|
||||
echo "c'est fait!"
|
||||
|
|
|
@ -29,7 +29,7 @@ raconte pourquoi les femmes sont encore bien trop mises à l'écart des
|
|||
corps de métier.
|
||||
|
||||
|
||||
<<player>>
|
||||
https://www.youtube.com/watch?v=FEeTLopLkEo
|
||||
|
||||
* Une erreur s'est produite.
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#+retrieved_from_db_at: <2024-11-18 16:25:08>
|
||||
|
||||
|
||||
* comment se délester de la charge mentale
|
||||
* Comment se délester de la charge mentale
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: comment-se-délester-de-la-charge-mentale
|
||||
:END:
|
||||
|
@ -463,12 +463,17 @@ intéressent.
|
|||
:END:
|
||||
Et si c'était les évènements qui se rappelaient à
|
||||
nous au bon moment, au lieu d'avoir tout le temps à y
|
||||
penser?[[https://www.cipherbliss.com/wp-content/uploads/2017/11/odgn4Ry_700wa_0.jpg][https://www.cipherbliss.com/wp-content/uploads/2017/11/odgn4Ry_700wa_0.jpg]]Beaucoup
|
||||
de gens ont un smartphone, mais assez peu utilisent des agendas
|
||||
penser?
|
||||
|
||||
[[https://www.cipherbliss.com/wp-content/uploads/2017/11/odgn4Ry_700wa_0.jpg][https://www.cipherbliss.com/wp-content/uploads/2017/11/odgn4Ry_700wa_0.jpg]]
|
||||
|
||||
Beaucoup de gens ont un smartphone, mais assez peu utilisent des agendas
|
||||
numériques sur leur téléphone. C'est bien dommage. Alors créez un agenda
|
||||
numérique et faites en sorte de le partager avec votre conjoint de sorte
|
||||
que lui/elle aussi puisse le mettre à jour sur des choses qui vous
|
||||
concernent tous les deux. les options de partage se trouvent dans les
|
||||
concernent tous les deux.
|
||||
|
||||
les options de partage se trouvent dans les
|
||||
propriétés d'agenda, sur google calendar et d'autres c'est
|
||||
pareil.Comme ça vous n'aurez pas en plus à penser à
|
||||
rappeler à l'autre que vous avez des choses qui arrivent
|
||||
|
@ -476,15 +481,14 @@ bientôt.Votre smartphone se chargera pour vous de ce
|
|||
boulot de rappel. Vous venez d'avoir rendez-vous avec votre médecin et
|
||||
il vous propose de vous revoir dans trois mois? Notez-le tout de suite
|
||||
dans votre agenda. Votre chat doit se faire revisiter tous les ans?
|
||||
faites un évènement récurrent.Faites plusieurs
|
||||
agendas afin de ne pas polluer votre partenaire de notifications qui ne
|
||||
le concernent pas.Ne mettez pas vos réunions de
|
||||
boulot dans votre agenda partagé.Mais c'est un bon
|
||||
endroit pour prévoir de recevoir des amis ou de partir en
|
||||
vacances.Créez un agenda spécifique à la gestion des
|
||||
RDV et évènements relatifs à vos enfants, que vous pourrez partager
|
||||
également. Utiliser DES agendas évite énormément de charge mentale
|
||||
inutile.
|
||||
faites un évènement récurrent.
|
||||
|
||||
Faites plusieurs agendas afin de ne pas polluer votre partenaire de notifications qui ne le concernent pas.
|
||||
|
||||
Ne mettez pas vos réunions de boulot dans votre agenda partagé.Mais c'est un bon endroit pour prévoir de recevoir des amis ou de partir en
|
||||
vacances.
|
||||
|
||||
Créez un agenda spécifique à la gestion des RDV et évènements relatifs à vos enfants, que vous pourrez partager également. Utiliser DES agendas évite énormément de charge mentale inutile.
|
||||
|
||||
|
||||
*** Pour les tâches n'ayant pas spécialement de date, utiliser un tableau kanban
|
||||
|
|
|
@ -265,11 +265,6 @@ roulez jeunesse.
|
|||
[[https://www.cipherbliss.com/wp-content/uploads/2021/05/vorta.png]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Plus qu'a attendre quelques minutes ou heures selon le volume de trucs à
|
||||
sauvegarder et la force de compression que vous avez choisi.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: jeux-de-données-sur-datagouv
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: jeux-de-données-sur-datagouv
|
||||
#+post_url: https://www.ciperbliss.com/2024/jeux-de-données-sur-datagouv
|
||||
#+post_title: Jeux de données sur DataGouv
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: julia-de-l'ign---elles-font-le-libre---sotmfr-2024
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: julia-de-l'ign---elles-font-le-libre---sotmfr-2024
|
||||
#+post_url: https://www.ciperbliss.com/2024/julia-de-l'ign---elles-font-le-libre---sotmfr-2024
|
||||
#+post_title: Julia de l'IGN - Elles font le libre - sotmfr 2024
|
||||
#+post_tags: sotm, ign, open-data
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: stitching-de-photo-gopro-fusion-pour-panoramax
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: stitching-de-photo-gopro-fusion-pour-panoramax
|
||||
#+post_url: https://www.ciperbliss.com/2024/stitching-de-photo-gopro-fusion-pour-panoramax
|
||||
#+post_title: Stitching de photo gopro fusion pour Panoramax
|
||||
#+post_tags: panoramax, hugin, gopro, photo, 360
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: julie-de-la-fabrique-des-mobilités-elles-font-le-libre
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: julie-de-la-fabrique-des-mobilités-elles-font-le-libre
|
||||
#+post_url: https://www.ciperbliss.com/2024/julie-de-la-fabrique-des-mobilités-elles-font-le-libre
|
||||
#+post_title: Julie de la fabrique des mobilités - Elles font le libre
|
||||
#+post_tags: openstreetmap, transport, sotm
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: dépasser-la-spécialisation
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: dépasser-la-spécialisation
|
||||
#+post_url: https://www.ciperbliss.com/2024/dépasser-la-spécialisation
|
||||
#+post_title: dépasser la spécialisation
|
||||
#+post_tags: information, médias, internet, médias sociaux, mastodon
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: critères-de-qualité-de-votre-plan-de-sauvegarde
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: critères-de-qualité-de-votre-plan-de-sauvegarde
|
||||
#+post_url: https://www.ciperbliss.com/2025/critères-de-qualité-de-votre-plan-de-sauvegarde
|
||||
#+post_title: Critères de qualité de votre plan de sauvegarde
|
||||
#+post_tags: backup, chiffrement
|
||||
|
|
|
@ -27,19 +27,19 @@ https://forge.chapril.org/tykayn/wololo
|
|||
|
||||
Vous pouvez par exemple voir ce que cela donne sur le jeu de données Data Gouv des bornes de recharge pour véhicules électriques qui contient une cinquantaine de propriétés différentes:
|
||||
|
||||
#+begin_src bash
|
||||
#+BEGIN_SRC bash
|
||||
git clone https://forge.chapril.org/tykayn/wololo
|
||||
cd wololo
|
||||
npm install
|
||||
make irve
|
||||
#+end_src
|
||||
#+END_SRC
|
||||
|
||||
|
||||
Le makefile permet de lancer des scripts prédéfinis sur le point d'entrée principal du projet, du Nodejs écrit en TypeScript à qui on donne un fichier à convertir et une configuration de conversion.
|
||||
|
||||
#+begin_src bash
|
||||
#+BEGIN_SRC bash
|
||||
ts-node convert_to_osm_tags.ts
|
||||
#+end_src
|
||||
#+END_SRC
|
||||
|
||||
Vous avez le fichier geojson qui a suivi les conversions selon le Mapper IRVE, et celui ci contient des tags OpenStreetMap. Ça se passe par ici:
|
||||
https://forge.chapril.org/tykayn/wololo/src/branch/main/mappings/converters/configIRVE.ts
|
||||
|
@ -185,7 +185,7 @@ Le projet Wololo permet aussi d'appliquer des conversions sur des geojson issus
|
|||
|
||||
https://osmose.openstreetmap.fr
|
||||
|
||||
* Extraction de données depuis OpenStreetMap
|
||||
** Extraction de données depuis OpenStreetMap
|
||||
|
||||
On peut faire des extractions thématiques sur des données OpenStreetMap un peu à la façon Geodatamine.
|
||||
https://geodatamine.fr/
|
||||
|
|
|
@ -43,16 +43,16 @@ docker-compose --project-name essonne run --rm backend ./osmose_run.py --list-an
|
|||
#+END_SRC
|
||||
Vous verrez que plusieurs analyses ont des noms très similaires, ils diffèrent par leur zone géographique car on valide différemment des données selon leur production, qui se fait souvent par zones et par des gens dont l'informatique n'est (généralement) pas du tout le métier. C'est pourquoi concernant la catégorie défibrilateurs vous avez ceci:
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
merge_defibrillators_FR
|
||||
merge_defibrillators_FR_aedmap
|
||||
merge_defibrillators_FR_hautesalpes
|
||||
merge_defibrillators_FR_issylesmoulineaux
|
||||
merge_defibrillators_FR_lorient
|
||||
merge_defibrillators_FR_montfort
|
||||
merge_defibrillators_FR_paris
|
||||
merge_defibrillators_FR_saintmalo
|
||||
merge_defibrillators_FR_toulouse
|
||||
#+BEGIN_QUOTE
|
||||
merge_defibrillators_FR
|
||||
merge_defibrillators_FR_aedmap
|
||||
merge_defibrillators_FR_hautesalpes
|
||||
merge_defibrillators_FR_issylesmoulineaux
|
||||
merge_defibrillators_FR_lorient
|
||||
merge_defibrillators_FR_montfort
|
||||
merge_defibrillators_FR_paris
|
||||
merge_defibrillators_FR_saintmalo
|
||||
merge_defibrillators_FR_toulouse
|
||||
#+END_QUOTE
|
||||
|
||||
Vous pouvez faire une analyse qui incluera toutes les validation des zones à la fois de cette thématique, ou plus précisément en ne demandant qu'une validation spécifique à une zone, mais pas forcément sur cette zone. Sauf que vous risquez de ne pas avoir de données à comparer.
|
||||
|
@ -66,8 +66,11 @@ https://www.cipherbliss.com/2025/contribuer-%c3%a0-un-projet-libre/
|
|||
Avant d'aller vraiment modifier une analyse, on va faire tourner le projet sur son propre ordi et voir ce qui se passe dans une analayse simple.
|
||||
|
||||
** Analyser une zone localement
|
||||
Disons que l'on veut modifier le Merger "merge_charging_station_FR", et que l'on veut voir ce que donne nos modifications en lançant une analyse. Pour éviter que cela prenne toute la journée, nous allons restreindre le champ d'analyse au patelin perdu de Monaco.
|
||||
Après une installation locale avec docker-compose du dépot osmose-backend, nous pouvons lancer cette commande qui va demander au point d'entrée principal de faire marcher l'analyse "merge_charging_station_FR" sur la zone "monaco", sans supprimer les données en base si elles existent déjà:
|
||||
|
||||
|
||||
|
||||
Disons que l'on veut modifier le Merger `merge_charging_station_FR`, et que l'on veut voir ce que donne nos modifications en lançant une analyse. Pour éviter que cela prenne toute la journée, nous allons restreindre le champ d'analyse au patelin perdu de Monaco.
|
||||
Après une installation locale avec docker-compose du dépot osmose-backend, nous pouvons lancer cette commande qui va demander au point d'entrée principal de faire marcher l'analyse `merge_charging_station_FR` sur la zone `monaco`, sans supprimer les données en base si elles existent déjà:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
# je vous passe l'installation de docker et docker-compose
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#+title: Rétrospective de blogs
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: rétrospective-de-blogs
|
||||
#+post_url: https://www.ciperbliss.com/2025/rétrospective-de-blogs
|
||||
#+post_title: Rétrospective de blogs
|
||||
#+post_tags: blog, orgmode, gemini, python, bash, dessin
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#+title: Stratégie de mitigation de l’accident de fusion du cœur sur l’EPR
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: stratégie-de-mitigation-de-l’accident-de-fusion-du-cœur-sur-l’epr
|
||||
#+post_url: https://www.ciperbliss.com/2025/stratégie-de-mitigation-de-l’accident-de-fusion-du-cœur-sur-l’epr
|
||||
#+post_title: Stratégie de mitigation de l’accident de fusion du cœur sur l’EPR
|
||||
#+post_tags: nucléaire, fusion, EPR, corium, core catcher
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-4
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-4
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-4
|
||||
#+post_title: Les récits de Jeanine - chapitre 4
|
||||
#+post_tags: récit
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-5
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-5
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-5
|
||||
#+post_title: Les récits de Jeanine - chapitre 5
|
||||
#+post_tags: récit
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-6
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-6
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-6
|
||||
#+post_title: Les récits de Jeanine - chapitre 6
|
||||
#+post_tags: récit
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-7
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-7
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-7
|
||||
#+post_title: Les récits de Jeanine - chapitre 7
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-12
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-12
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-12
|
||||
#+post_title: Les récits de Jeanine - chapitre 12
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-13
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-13
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-13
|
||||
#+post_title: Les récits de Jeanine - chapitre 13
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-14
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-14
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-14
|
||||
#+post_title: Les récits de Jeanine - chapitre 14
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-15
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-15
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-15
|
||||
#+post_title: Les récits de Jeanine - chapitre 15
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-16
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-16
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-16
|
||||
#+post_title: Les récits de Jeanine - chapitre 16
|
||||
#+post_tags:
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
#+title: les-récits-de-jeanine-chapitre-17
|
||||
#+post_ID:
|
||||
#+post_slug: organisation-de-taches-orgmode
|
||||
#+post_slug: les-récits-de-jeanine-chapitre-17
|
||||
#+post_url: https://www.ciperbliss.com/2024/les-récits-de-jeanine-chapitre-17
|
||||
#+post_title: Les récits de Jeanine - chapitre 17
|
||||
#+post_tags:
|
||||
#+post_tags: récits
|
||||
#+post_type: post
|
||||
#+post_mime_types:
|
||||
#+post_guid:
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
|
||||
|
||||
|
||||
{% include 'site_head.j2' %}
|
||||
{% include 'templates/html/site_head.html.j2' %}
|
||||
|
||||
<body>
|
||||
|
||||
|
|
|
@ -48,12 +48,17 @@ h6 {
|
|||
line-height: 1.3em;
|
||||
}
|
||||
|
||||
.article-title,
|
||||
hr + h1 {
|
||||
margin-top: 5rem;
|
||||
border-left: 3px solid gray;
|
||||
padding-left: 3rem;
|
||||
margin-left: -4rem;
|
||||
}
|
||||
|
||||
h1:first-letter {
|
||||
text-transform: uppercase;
|
||||
font-size: 4.5rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
|
@ -138,6 +143,8 @@ p {
|
|||
text-wrap: pretty;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
||||
#root,
|
||||
|
@ -315,6 +322,12 @@ q {
|
|||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.site-foot-soutien {
|
||||
font-size: 0.8rem;
|
||||
width: 75ch;
|
||||
max-width: calc(100vw - 6rem);
|
||||
}
|
||||
|
||||
@media (max-width: 75ch) {
|
||||
body {
|
||||
padding: 0;
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../styles_src/style_general.scss","../styles_src/_variables.scss"],"names":[],"mappings":";AAAA;AAGA;EACE;EACA;EACA;;AAEA;EAEE;;;AAIJ;EACE,WCCe;EDAf,aCoBiB;;;ADjBnB;EACE;EACA,WCJe;EDKf;EACA,OCtBW;EDuBX,YCtBiB;EDuBjB;EACA,gBCGW;;;ADAb;AAAA;AAAA;AAAA;EAIE,WClBoB;EDmBpB;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME,aCNoB;EDOpB,YCjBW;EDkBX,eChBW;EDiBX,OC3Cc;ED4Cd;EACA;EACA;EACA,aC3BoB;;;AD8BtB;EACE,YCxBW;;;AD2Bb;EACE;;;AAGF;EACE,OC1DiB;ED2DjB,WC5Ca;ED6Cb;;;AAGF;EACE,WChDa;EDiDb;;;AAGF;EACE,WCpDa;EDqDb;;;AAGF;EACE,WC5DkB;ED6DlB;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE,OCxEY;EDyEZ;EACA,YC7DS;ED8DT,eC9DS;ED+DT;;;AAIJ;AAAA;EAEE;;;AAIF;EACE;EACA,eCrEiB;EDsEjB,OClGW;EDmGX;EACA,SC9EW;;ADgFX;EACE,YCjGkB;EDkGlB,OCxGS;;AD0GT;EACE,OC3GO;;AD+GX;EAEE;EACA;EACA,cC7FS;ED8FT,eC9FS;;ADiGX;EACE;EACA;;;AAIJ;EACE,YC1Fe;;AD4Ff;EACE;EACA,YC/Fe;;;ADmGnB;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;EACA;EACA,YCzHW;ED0HX,eC3HW;;;AD8Hb;AAAA;EAEE;;;AAGF;EACE;EACA;;;AAGF;EACE,eCzIW;;AD2IX;EACE;;AAGF;EACE;EACA,cCjJS;;;ADsJb;EACE;;;AAGF;EACE;EACA;;;AAIA;EACE;;;AAKF;EACE,OCrKS;EDsKT,QCtKS;EDuKT,cCzKS;;AD4KX;EACE;EACA;;;AAIJ;EACE,YClLW;EDmLX,eCnLW;EDoLX;;AAEA;EACE;EACA,SC1LS;ED2LT;EACA,eCtLe;;;AD0LnB;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,SCvMS;;;AD2Mb;EACE;EACA,SC7MW;ED8MX;EACA;;;AAGF;AAAA;EAEE,QCpNW;EDqNX,OC9OiB;ED+OjB;;;AAGF;EACE,YC7Oc;;;ADgPhB;EACE,YCvPiB;EDwPjB,SC3NkB;ED4NlB;EACA,YCjOW;EDkOX,eC5NiB;ED6NjB;;AAEA;EACE;;;AAIJ;EACE;EACA,SC1OW;ED2OX,YClQgB;EDmQhB,OClQkB;;;ADqQpB;EACE,OC/Pc;EDgQd;;;AAGF;EACE;EACA,SCxPW;;;AD2Pb;EACE,YC1PW;ED2PX,eC3PW;;AD6PX;EACE,eC9PS;;;ADkQb;EACE,YCrQW;EDsQX,eCtQW;;ADwQX;EACE;EACA,SC3QS;;;ADkRX;AAAA;EACE;;AAGF;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA,SC5RO;;;ADiSb;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,cCtSW;EDuSX,aCxSW;EDySX,gBCzSW;;;AD4Sb;EACE;;;AAIA;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA,cC7TS;;;ADiUb;EACE;IACE;;EAGF;IACE,SCvUS","file":"style_general.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../styles_src/style_general.scss","../styles_src/_variables.scss"],"names":[],"mappings":";AAAA;AAIA;EACE;EACA;EACA;;AAEA;EAEE;;;AAIJ;EACE;EACA,aCmBiB;;;ADhBnB;EACE;EACA,WCLe;EDMf,aCDiB;EDEjB,OCvBW;EDwBX,YCvBiB;EDwBjB;EACA,gBCEW;;;ADCb;AAAA;AAAA;AAAA;EAIE,WCnBoB;EDoBpB;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME,aCPoB;EDQpB,YClBW;EDmBX,eCjBW;EDkBX,OC5Cc;ED6Cd;EACA;EACA;EACA,aC5BoB;;;ADgCtB;AAAA;EAEE,YAvDW;EAwDX;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE,OCjEiB;EDkEjB,WCnDa;EDoDb;;;AAGF;EACE,WCvDa;EDwDb;;;AAGF;EACE,WC3Da;ED4Db;;;AAGF;EACE,WCnEkB;EDoElB;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE,OC/EY;EDgFZ;EACA,YCpES;EDqET,eCrES;EDsET;;;AAIJ;AAAA;EAEE;;;AAIF;EACE;EACA,eC5EiB;ED6EjB,OCzGW;ED0GX;EACA,SCrFW;;ADuFX;EACE,YCxGkB;EDyGlB,OC/GS;;ADiHT;EACE,OClHO;;ADsHX;EAEE;EACA;EACA,cCpGS;EDqGT,eCrGS;;ADwGX;EACE;EACA;;;AAIJ;EACE,YCjGe;;ADmGf;EACE;EACA,YCtGe;;;AD0GnB;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;EACA;EACA,YChIW;EDiIX,eClIW;EDmIX;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;;;AAGF;EACE,eClJW;;ADoJX;EACE;;AAGF;EACE;EACA,cC1JS;;;AD+Jb;EACE;;;AAGF;EACE;EACA;;;AAIA;EACE;;;AAKF;EACE,OC9KS;ED+KT,QC/KS;EDgLT,cClLS;;ADqLX;EACE;EACA;;;AAIJ;EACE,YC3LW;ED4LX,eC5LW;ED6LX;;AAEA;EACE;EACA,SCnMS;EDoMT;EACA,eC/Le;;;ADmMnB;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,SChNS;;;ADoNb;EACE;EACA,SCtNW;EDuNX;EACA;;;AAGF;AAAA;EAEE,QC7NW;ED8NX,OCvPiB;EDwPjB;;;AAGF;EACE,YCtPc;;;ADyPhB;EACE,YChQiB;EDiQjB,SCpOkB;EDqOlB;EACA,YC1OW;ED2OX,eCrOiB;EDsOjB;;AAEA;EACE;;;AAIJ;EACE;EACA,SCnPW;EDoPX,YC3QgB;ED4QhB,OC3QkB;;;AD8QpB;EACE,OCxQc;EDyQd;;;AAGF;EACE;EACA,SCjQW;;;ADoQb;EACE,YCnQW;EDoQX,eCpQW;;ADsQX;EACE,eCvQS;;;AD2Qb;EACE,YC9QW;ED+QX,eC/QW;;ADiRX;EACE;EACA,SCpRS;;;AD2RX;AAAA;EACE;;AAGF;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA,SCrSO;;;AD0Sb;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,cC/SW;EDgTX,aCjTW;EDkTX,gBClTW;;;ADqTb;EACE;;;AAIA;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA,cCtUS;;;AD0Ub;EACE;EACA;EACA;;;AAGF;EACE;IACE;;EAGF;IACE,SCtVS","file":"style_general.css"}
|
|
@ -1,5 +1,6 @@
|
|||
/*style général scss*/
|
||||
@use 'variables' as *;
|
||||
$spacing-xl: 5rem;
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
|
@ -49,14 +50,20 @@ h6 {
|
|||
overflow-wrap: break-word;
|
||||
text-wrap: balance;
|
||||
line-height: $line-height-heading;
|
||||
|
||||
}
|
||||
|
||||
.article-title,
|
||||
hr+h1 {
|
||||
margin-top: $spacing-xl;
|
||||
border-left: 3px solid gray;
|
||||
padding-left: 3rem;
|
||||
margin-left: -4rem;
|
||||
}
|
||||
|
||||
h1:first-letter {
|
||||
text-transform: uppercase;
|
||||
font-size: 4.5rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
|
@ -149,6 +156,8 @@ p {
|
|||
text-wrap: pretty;
|
||||
margin-top: $spacing-md;
|
||||
margin-bottom: $spacing-sm;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
||||
#root,
|
||||
|
@ -346,6 +355,12 @@ q {
|
|||
}
|
||||
}
|
||||
|
||||
.site-foot-soutien {
|
||||
font-size: 0.8rem;
|
||||
width: 75ch;
|
||||
max-width: calc(100vw - 6rem);
|
||||
}
|
||||
|
||||
@media (max-width: $article-width) {
|
||||
body {
|
||||
padding: 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue