mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
237 lines
6.9 KiB
HTML
237 lines
6.9 KiB
HTML
<!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" />
|
||
<title>cipherbliss_blog</title>
|
||
<style>
|
||
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;
|
||
}
|
||
code{white-space: pre-wrap;}
|
||
span.smallcaps{font-variant: small-caps;}
|
||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
div.column{flex: auto; overflow-x: auto;}
|
||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
/* 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;}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header id="title-block-header">
|
||
<h1 class="title">cipherbliss_blog</h1>
|
||
</header>
|
||
<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>
|
||
<ul>
|
||
<li>à propos</li>
|
||
<li>contact</li>
|
||
<li>nos projets</li>
|
||
<li>une liste des articles triés par date.</li>
|
||
</ul>
|
||
<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>
|
||
<ul>
|
||
<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>
|
||
</ul>
|
||
<h1 id="fait">Fait</h1>
|
||
<ul>
|
||
<li>navigation sur les pages d'article</li>
|
||
</ul>
|
||
<p>- gestion des langues dans la source et la destination</p>
|
||
<ul>
|
||
<li>gestion multi site et multi langue</li>
|
||
</ul>
|
||
</body>
|
||
</html>
|