| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  |  | <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> | 
					
						
							|  |  |  |  | <head> | 
					
						
							|  |  |  |  |   <meta charset="utf-8" /> | 
					
						
							|  |  |  |  |   <meta name="generator" content="pandoc" /> | 
					
						
							|  |  |  |  |   <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  |   <title>cipherbliss_blog</title> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  |   <style> | 
					
						
							| 
									
										
										
										
											2024-11-04 11:52:45 +01:00
										 |  |  |  |     html { | 
					
						
							|  |  |  |  |       color: #1a1a1a; | 
					
						
							|  |  |  |  |       background-color: #fdfdfd; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     body { | 
					
						
							|  |  |  |  |       margin: 0 auto; | 
					
						
							|  |  |  |  |       max-width: 36em; | 
					
						
							|  |  |  |  |       padding-left: 50px; | 
					
						
							|  |  |  |  |       padding-right: 50px; | 
					
						
							|  |  |  |  |       padding-top: 50px; | 
					
						
							|  |  |  |  |       padding-bottom: 50px; | 
					
						
							|  |  |  |  |       hyphens: auto; | 
					
						
							|  |  |  |  |       overflow-wrap: break-word; | 
					
						
							|  |  |  |  |       text-rendering: optimizeLegibility; | 
					
						
							|  |  |  |  |       font-kerning: normal; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     @media (max-width: 600px) { | 
					
						
							|  |  |  |  |       body { | 
					
						
							|  |  |  |  |         font-size: 0.9em; | 
					
						
							|  |  |  |  |         padding: 12px; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       h1 { | 
					
						
							|  |  |  |  |         font-size: 1.8em; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     @media print { | 
					
						
							|  |  |  |  |       html { | 
					
						
							|  |  |  |  |         background-color: white; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       body { | 
					
						
							|  |  |  |  |         background-color: transparent; | 
					
						
							|  |  |  |  |         color: black; | 
					
						
							|  |  |  |  |         font-size: 12pt; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       p, h2, h3 { | 
					
						
							|  |  |  |  |         orphans: 3; | 
					
						
							|  |  |  |  |         widows: 3; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |       h2, h3, h4 { | 
					
						
							|  |  |  |  |         page-break-after: avoid; | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     p { | 
					
						
							|  |  |  |  |       margin: 1em 0; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     a { | 
					
						
							|  |  |  |  |       color: #1a1a1a; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     a:visited { | 
					
						
							|  |  |  |  |       color: #1a1a1a; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     img { | 
					
						
							|  |  |  |  |       max-width: 100%; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     h1, h2, h3, h4, h5, h6 { | 
					
						
							|  |  |  |  |       margin-top: 1.4em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     h5, h6 { | 
					
						
							|  |  |  |  |       font-size: 1em; | 
					
						
							|  |  |  |  |       font-style: italic; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     h6 { | 
					
						
							|  |  |  |  |       font-weight: normal; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     ol, ul { | 
					
						
							|  |  |  |  |       padding-left: 1.7em; | 
					
						
							|  |  |  |  |       margin-top: 1em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     li > ol, li > ul { | 
					
						
							|  |  |  |  |       margin-top: 0; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     blockquote { | 
					
						
							|  |  |  |  |       margin: 1em 0 1em 1.7em; | 
					
						
							|  |  |  |  |       padding-left: 1em; | 
					
						
							|  |  |  |  |       border-left: 2px solid #e6e6e6; | 
					
						
							|  |  |  |  |       color: #606060; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     code { | 
					
						
							|  |  |  |  |       font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace; | 
					
						
							|  |  |  |  |       font-size: 85%; | 
					
						
							|  |  |  |  |       margin: 0; | 
					
						
							|  |  |  |  |       hyphens: manual; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     pre { | 
					
						
							|  |  |  |  |       margin: 1em 0; | 
					
						
							|  |  |  |  |       overflow: auto; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     pre code { | 
					
						
							|  |  |  |  |       padding: 0; | 
					
						
							|  |  |  |  |       overflow: visible; | 
					
						
							|  |  |  |  |       overflow-wrap: normal; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .sourceCode { | 
					
						
							|  |  |  |  |      background-color: transparent; | 
					
						
							|  |  |  |  |      overflow: visible; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     hr { | 
					
						
							|  |  |  |  |       background-color: #1a1a1a; | 
					
						
							|  |  |  |  |       border: none; | 
					
						
							|  |  |  |  |       height: 1px; | 
					
						
							|  |  |  |  |       margin: 1em 0; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     table { | 
					
						
							|  |  |  |  |       margin: 1em 0; | 
					
						
							|  |  |  |  |       border-collapse: collapse; | 
					
						
							|  |  |  |  |       width: 100%; | 
					
						
							|  |  |  |  |       overflow-x: auto; | 
					
						
							|  |  |  |  |       display: block; | 
					
						
							|  |  |  |  |       font-variant-numeric: lining-nums tabular-nums; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     table caption { | 
					
						
							|  |  |  |  |       margin-bottom: 0.75em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     tbody { | 
					
						
							|  |  |  |  |       margin-top: 0.5em; | 
					
						
							|  |  |  |  |       border-top: 1px solid #1a1a1a; | 
					
						
							|  |  |  |  |       border-bottom: 1px solid #1a1a1a; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     th { | 
					
						
							|  |  |  |  |       border-top: 1px solid #1a1a1a; | 
					
						
							|  |  |  |  |       padding: 0.25em 0.5em 0.25em 0.5em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     td { | 
					
						
							|  |  |  |  |       padding: 0.125em 0.5em 0.25em 0.5em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     header { | 
					
						
							|  |  |  |  |       margin-bottom: 4em; | 
					
						
							|  |  |  |  |       text-align: center; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     #TOC li { | 
					
						
							|  |  |  |  |       list-style: none; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     #TOC ul { | 
					
						
							|  |  |  |  |       padding-left: 1.3em; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     #TOC > ul { | 
					
						
							|  |  |  |  |       padding-left: 0; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     #TOC a:not(:hover) { | 
					
						
							|  |  |  |  |       text-decoration: none; | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  |     code{white-space: pre-wrap;} | 
					
						
							|  |  |  |  |     span.smallcaps{font-variant: small-caps;} | 
					
						
							| 
									
										
										
										
											2024-11-04 11:52:45 +01:00
										 |  |  |  |     div.columns{display: flex; gap: min(4vw, 1.5em);} | 
					
						
							|  |  |  |  |     div.column{flex: auto; overflow-x: auto;} | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  |     div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} | 
					
						
							| 
									
										
										
										
											2024-11-04 11:52:45 +01:00
										 |  |  |  |     /* The extra [class] is a hack that increases specificity enough to | 
					
						
							|  |  |  |  |        override a similar rule in reveal.js */ | 
					
						
							|  |  |  |  |     ul.task-list[class]{list-style: none;} | 
					
						
							|  |  |  |  |     ul.task-list li input[type="checkbox"] { | 
					
						
							|  |  |  |  |       font-size: inherit; | 
					
						
							|  |  |  |  |       width: 0.8em; | 
					
						
							|  |  |  |  |       margin: 0 0.8em 0.2em -1.6em; | 
					
						
							|  |  |  |  |       vertical-align: middle; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     .display.math{display: block; text-align: center; margin: 0.5rem auto;} | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  |   </style> | 
					
						
							|  |  |  |  | </head> | 
					
						
							|  |  |  |  | <body> | 
					
						
							|  |  |  |  | <header id="title-block-header"> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <h1 class="title">cipherbliss_blog</h1> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | </header> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <h1 id="création-dun-blog-gemini-1">Création d'un blog gemini</h1> | 
					
						
							|  |  |  |  | <p>Et hop, un générateur qui fait le café à partir de fichiers orgmode | 
					
						
							|  |  |  |  | ou markdown.</p> | 
					
						
							|  |  |  |  | <p>L'idée est d'avoir un ensemble de billets de blogs en texte simple | 
					
						
							|  |  |  |  | versionnés avec git et servis par une capsule gemini ainsi que par un | 
					
						
							|  |  |  |  | site web. On aura besoin de convertir des billets existants, et de | 
					
						
							|  |  |  |  | rédiger les nouveaux dans un format qui nous convient, par exemple | 
					
						
							|  |  |  |  | markdown ou orgmode afin de rendre le tout le plus pérenne possible. On | 
					
						
							|  |  |  |  | aura aussi besoin de référencer les images dans un dossier de notre | 
					
						
							|  |  |  |  | dépot, et de gérer les relations entres articles pour que les liens | 
					
						
							|  |  |  |  | aient du sens sur la capsule gemini autant que dans la version web. On | 
					
						
							|  |  |  |  | souhaite aussi fournir un flux RSS, et un template de billet de blog | 
					
						
							|  |  |  |  | avec une entête et un pied de page commun qui donne des moyens de | 
					
						
							|  |  |  |  | contact, de soutenir l'auteur, et de revenir à l'accueil. On prendra | 
					
						
							|  |  |  |  | aussi en charge différentes pages:</p> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | <ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <li>à propos</li> | 
					
						
							|  |  |  |  | <li>contact</li> | 
					
						
							|  |  |  |  | <li>nos projets</li> | 
					
						
							|  |  |  |  | <li>une liste des articles triés par date.</li> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | </ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <p>Il nous faudra aussi un script de mise à jour du blog qui se charge | 
					
						
							|  |  |  |  | de mettre à jour le flux rss, le dépot git. On peut aller chercher de | 
					
						
							|  |  |  |  | l'automatisation dans la gestion de plusieurs capsules différentes en | 
					
						
							|  |  |  |  | tagguant les articles par nom de blog, ce qui nécessite un fichier de | 
					
						
							|  |  |  |  | config pour les correspondances.</p> | 
					
						
							|  |  |  |  | <h1 id="export-darticles-existants">export d'articles existants</h1> | 
					
						
							|  |  |  |  | <h2 id="depuis-wordpress">Depuis wordpress</h2> | 
					
						
							|  |  |  |  | <p>Connec à la base de données mysql, et extraction de chaque article | 
					
						
							|  |  |  |  | pour récupérer la partie HTML et la convertir en markdown et en fichiers | 
					
						
							|  |  |  |  | org.</p> | 
					
						
							|  |  |  |  | <h2 id="depuis-des-fichiers-orgmode.">Depuis des fichiers orgmode.</h2> | 
					
						
							|  |  |  |  | <p>J'écris en orgmode une base de connaissances qui contient aussi un | 
					
						
							|  |  |  |  | export de mes anciens billets de blog dans un dossier par blog. Pour | 
					
						
							|  |  |  |  | cibler quels billets utiliser pour quel blog j'ai donc deux | 
					
						
							|  |  |  |  | possibilités: leur chemin de fichier, ou des tags particuliers présents | 
					
						
							|  |  |  |  | dans les fichiers org. <a | 
					
						
							|  |  |  |  | href="id:5a197a1b-ddfe-4c79-8934-d9a28ab6df65">Textes de blog en | 
					
						
							|  |  |  |  | préparation</a> <a | 
					
						
							|  |  |  |  | href="https://forge.chapril.org/tykayn/org-report-stats">https://forge.chapril.org/tykayn/org-report-stats</a></p> | 
					
						
							|  |  |  |  | <h1 id="flux-créatif">Flux créatif</h1> | 
					
						
							|  |  |  |  | <p>Rédaction, conversion, completion des nouveaux articles, régénération | 
					
						
							|  |  |  |  | des indexs et flux rss, mise à jour du dépot git, publication des | 
					
						
							|  |  |  |  | pages.</p> | 
					
						
							|  |  |  |  | <h1 id="sources-dinspiration">Sources d'inspiration:</h1> | 
					
						
							|  |  |  |  | <p>Offpunk LazyBlog Dotclear, Wordpress, Hugo, Pélican Pandoc, PandocGmi | 
					
						
							|  |  |  |  | <a | 
					
						
							|  |  |  |  | href="https://github.com/njamescouk/pandocGmi/tree/master">https://github.com/njamescouk/pandocGmi/tree/master</a></p> | 
					
						
							|  |  |  |  | <h1 id="roadmap">Roadmap</h1> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | <ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <li>config par site web de son nom de domaine</li> | 
					
						
							|  |  |  |  | <li>réécriture des liens internes</li> | 
					
						
							|  |  |  |  | <li>réécriture des url des images vers le dossier courant</li> | 
					
						
							|  |  |  |  | <li>réparer la génération de fichiers gmi</li> | 
					
						
							|  |  |  |  | <li>template footer article: gestion article suivant et précédent</li> | 
					
						
							|  |  |  |  | <li>conversion des liens avec nom de domaine si relatifs</li> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | </ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <h1 id="fait">Fait</h1> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | <ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <li>navigation sur les pages d'article</li> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | </ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <p>- gestion des langues dans la source et la destination</p> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | <ul> | 
					
						
							| 
									
										
										
										
											2024-11-15 16:24:31 +01:00
										 |  |  |  | <li>gestion multi site et multi langue</li> | 
					
						
							| 
									
										
										
										
											2024-11-04 00:26:25 +01:00
										 |  |  |  | </ul> | 
					
						
							|  |  |  |  | </body> | 
					
						
							|  |  |  |  | </html> |