{"id":13116,"date":"2012-08-17T17:46:51","date_gmt":"2012-08-17T15:46:51","guid":{"rendered":"http:\/\/davidbosman.fr\/blog\/2012\/08\/17\/importer-un-lot-de-fichiers-markdown-dans-day-one\/"},"modified":"2012-08-25T16:24:17","modified_gmt":"2012-08-25T14:24:17","slug":"importer-un-lot-de-fichiers-markdown-dans-day-one","status":"publish","type":"post","link":"https:\/\/www.davidbosman.fr\/blog\/2012\/08\/17\/importer-un-lot-de-fichiers-markdown-dans-day-one\/","title":{"rendered":"Importer un lot de fichiers Markdown dans Day One"},"content":{"rendered":"<p><strong>Edit :<\/strong> Si vous pr\u00e9f\u00e9rez, le code est \u00e0 pr\u00e9sent dispo sur <a href=\"https:\/\/github.com\/davidbosman\/Import-Markdown-to-Day-One\">Github<\/a>.<\/p>\n\n<p>Depuis plusieurs ann\u00e9es, je tiens mon journal dans des fichiers TXT, en Markdown. Si ma fa\u00e7on d&#8217;\u00e9crire et de structurer n&#8217;a pas chang\u00e9 de fa\u00e7on radicale, elle a quand m\u00eame pas mal vari\u00e9 au cours des ann\u00e9es \u2014 et c&#8217;est tout le probl\u00e8me quand on d\u00e9cide de changer d&#8217;outil et d&#8217;importer d&#8217;un coup l&#8217;ensemble des entr\u00e9es dans une autre application, plus sp\u00e9cifiquement : dans Day One, qui ne cesse de me s\u00e9duire.<\/p>\n\n<p>Comment lui faire reconna\u00eetre \u00e0 coup s\u00fbr les diff\u00e9rentes entr\u00e9es et les distinguer les unes des autres, quand elles ne sont pas exactement format\u00e9es de la m\u00eame fa\u00e7on ?<\/p>\n\n<!--more-->\n\n<p>La bonne nouvelle, pour moi, c&#8217;est qu&#8217;il y a une chose qui n&#8217;a pas chang\u00e9 : la fa\u00e7on dont je nomme mes fichiers, en utilisant la date du jour. Comme ceci :<\/p>\n\n<p><code>2012-0816-J-jeudi<\/code><\/p>\n\n<p>Ce fichier correspond au journal du 16 ao\u00fbt 2012. Il est donc ais\u00e9 de savoir \u00e0 quel jour appartient une entr\u00e9e de ce fichier, gr\u00e2ce \u00e0 son nom.<\/p>\n\n<p>C&#8217;est un peu moins facile en ce qui concerne les heures associ\u00e9es aux diff\u00e9rentes entr\u00e9es puisque, sur les ann\u00e9es, j&#8217;ai fait \u00e9voluer ma notation et je me retrouve avec, au choix :<\/p>\n\n<ul>\n<li><code>### 09h27<\/code><\/li>\n<li><code>### 09h et quelques<\/code><\/li>\n<li><code>### 9h<\/code><\/li>\n<li>Avec ou sans espace entre les # et les chiffres,<\/li>\n<li>Sans <code>#<\/code><\/li>\n<li>Ou m\u00eame sans heure du tout.<\/li>\n<\/ul>\n\n<p>Bref, comment faire entrer tout \u00e7a dans Day One, tout en pr\u00e9servant le calendrier (et les heures) des entr\u00e9es ?<\/p>\n\n<p>Premi\u00e8re \u00e9tape, d\u00e9couper mes fichiers de journal de fa\u00e7on \u00e0 avoir une seule entr\u00e9e par fichier (requis par Day One), au lieu d&#8217;un seul fichier pour toute la journ\u00e9e.<\/p>\n\n<p>Seconde \u00e9tape, pour chaque fichier, r\u00e9cup\u00e9rer l&#8217;heure associ\u00e9e \u00e0 l&#8217;entr\u00e9e, s&#8217;il y en a une, afin de l&#8217;envoyer correctement format\u00e9e \u00e0 Day One.<\/p>\n\n<p>Il y a probablement des fa\u00e7ons plus rapides de faire \u00e7a, mais \u00e7a fonctionne pour moi. Je le publie au cas o\u00f9 \u00e7a int\u00e9resserait quelqu&#8217;un. Il s&#8217;agit de deux scripts, \u00e0 ex\u00e9cuter l&#8217;un apr\u00e8s l&#8217;autre.<\/p>\n\n<h3>1: t\u00e9l\u00e9charger<\/h3>\n\n<ul>\n<li><a href=\"http:\/\/davidbosman.fr\/blog\/wp-content\/uploads\/Split.sh.zip\">Split.sh<\/a><\/li>\n<li><a href=\"http:\/\/davidbosman.fr\/blog\/wp-content\/uploads\/Import2DayOne.sh.zip\">Import2DayOne.sh<\/a><\/li>\n<\/ul>\n\n<h3>2: d\u00e9couper les fichiers<\/h3>\n\n<p>Le premier script, <strong>Split.sh<\/strong>, se charge de parcourir tous les fichiers dans le dossier o\u00f9 vous l&#8217;ex\u00e9cutez et, pour chaque fichier, recherche les occurrences de ### ou ## (niveau de titres que j&#8217;utilise pour marquer les heures). Chaque fois qu&#8217;il en trouve un, il cr\u00e9e un nouveau fichier avec le titre et le texte correspondant, nomm\u00e9 sur la m\u00eame base que le fichier original, incr\u00e9ment\u00e9.<\/p>\n\n<p><img decoding=\"async\" src=\"http:\/\/davidbosman.fr\/blog\/wp-content\/uploads\/2012\/08\/script_1.png\" alt=\"Script 1\" \/><br \/>\n<em>\u00c7a fera peur ou bien on trouvera \u00e7a beau. Selon les affinit\u00e9s.<\/em><\/p>\n\n<p>Ainsi si le fichier <strong>2012-0816-J-jeudi<\/strong> contient deux entr\u00e9es :<\/p>\n\n<blockquote>\n  <p><code>### 9h12<br>\n  Une premi\u00e8re entr\u00e9e.<br><br>### 10h12<br>Une autre entr\u00e9e.<\/code><\/p>\n<\/blockquote>\n\n<p>Sera d\u00e9coup\u00e9 en <strong>2012-0816-J-jeudi1<\/strong> :<\/p>\n\n<blockquote>\n  <p><code>### 9h12<br>\n  Une premi\u00e8re entr\u00e9e.<\/code><\/p>\n<\/blockquote>\n\n<p>Et en <strong>2012-0816-J-jeudi2<\/strong> :<\/p>\n\n<blockquote>\n  <p><code>### 10h12<br>Une autre entr\u00e9e.<\/code><\/p>\n<\/blockquote>\n\n<p>Le script prend aussi en compte le cas o\u00f9 un fichier ne contient pas de <code>#<\/code>. Dans ce cas, l&#8217;entr\u00e9e sera cr\u00e9\u00e9e \u00e0 l&#8217;heure par d\u00e9faut de Day One.<\/p>\n\n<h3>3: les envoyer \u00e0 Day One<\/h3>\n\n<p>Day One dispose d&#8217;une ligne de commande (<a href=\"http:\/\/dayoneapp.com\/tools\/\">\u00e0 installer<\/a> en plus de l&#8217;application elle-m\u00eame) qui permet de cr\u00e9er facilement des notes \u00e0 la date et l&#8217;heure de votre choix.<\/p>\n\n<p>Le second script, \u00e0 placer dans le dossier <strong>output<\/strong> sur le Bureau du Mac, se charge de prendre chaque fichier cr\u00e9\u00e9 par le premier, r\u00e9cup\u00e8re les premi\u00e8res lettres du nom du fichier (AAAA-MMJJ) pour d\u00e9finir la date de l&#8217;entr\u00e9e, puis r\u00e9cup\u00e8re la partie utile de son titre (s&#8217;il y en a un) pour d\u00e9finir l&#8217;heure de l&#8217;entr\u00e9e. Enfin, il envoie le tout \u00e0 la ligne de commande de Day One qui cr\u00e9e l&#8217;entr\u00e9e.<\/p>\n\n<p><img decoding=\"async\" src=\"http:\/\/davidbosman.fr\/blog\/wp-content\/uploads\/2012\/08\/script_2.png\" alt=\"Script 2\" \/><br \/>\n<em>Il y a certainement mieux, mais j&#8217;en ai quand m\u00eame bav\u00e9 pour arriver \u00e0 convertir mes fichiers TXT et leur contenu \u00e0 g\u00e9om\u00e9trie variable dans un format compatible avec Day One. Et oui, il y a des fautes dans les commentaires (ce sera corrig\u00e9 prochainement).<\/em><\/p>\n\n<h3>4: utilisation<\/h3>\n\n<p>Ce sont des scripts, il faudra donc passer par le Terminal. <em>Brrrr&#8230;<\/em><\/p>\n\n<ul>\n<li>Sur le Bureau du Mac, cr\u00e9ez un dossier que vous nommerez <strong>output<\/strong> : il va contenir les fichiers de travail du premier script, vous pourrez le supprimer apr\u00e8s usage.<\/li>\n<li>Sauvegardez votre journal Day One, au cas o\u00f9 \u00e7a se passerait mal.<\/li>\n<li>Copiez les fichiers que vous voulez importer dans Day One dans un dossier provisoire (l\u00e0 encore, pour \u00e9viter les mauvaises surprises).<\/li>\n<li>Placez le script <strong>split.sh<\/strong> dans ce dossier. Puis, rendez-le ex\u00e9cutable : <code>chmod +x .\/split.sh<\/code> et lancez-le : <code>.\/split.sh<\/code><\/li>\n<li>Dans le dossier <strong>output<\/strong>, placez le script <strong>Import2DayOne.sh<\/strong>, rendez-le ex\u00e9cutable et lancez-le.<\/li>\n<\/ul>\n\n<p>C&#8217;est tout. Votre Day One devrait \u00e0 pr\u00e9sent afficher les nouvelles entr\u00e9es, aux bonnes dates.<\/p>\n\n<div align=\"center\"><img decoding=\"async\" src=\"http:\/\/davidbosman.fr\/images\/zen.png\" alt=\"\" zen=\"\" style=\"border: 0px none ;\"><\/div>\n\n<p>J&#8217;aurais pr\u00e9f\u00e9r\u00e9 ne pas avoir \u00e0 me farcir ce travail de codage (et que Day One propose un outil d&#8217;importation un peu plus riche), mais c&#8217;est probablement parce que je suis incurablement fain\u00e9ant. Les scripts sont basiques, mais me suffisent : ne vous privez pas de les am\u00e9liorer.<\/p>\n\n<p>S&#8217;il y a assez de demande (\u00e7a m&#8217;\u00e9tonnerait, vu l&#8217;usage tr\u00e8s sp\u00e9cifique), je veux bien essayer de cr\u00e9er une application Automator, histoire de rendre \u00e7a un peu&#8230; plus amical.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Edit : Si vous pr\u00e9f\u00e9rez, le code est \u00e0 pr\u00e9sent dispo sur Github. Depuis plusieurs ann\u00e9es, je tiens mon journal dans des fichiers TXT, en Markdown. Si ma fa\u00e7on d&#8217;\u00e9crire et de structurer n&#8217;a pas chang\u00e9 de fa\u00e7on radicale, elle &hellip; <a href=\"https:\/\/www.davidbosman.fr\/blog\/2012\/08\/17\/importer-un-lot-de-fichiers-markdown-dans-day-one\/\">Read more &rarr;<\/a><\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,12],"tags":[39,38,52,51],"class_list":["post-13116","post","type-post","status-publish","format-standard","hentry","category-mac","category-trucs-et-astuces","tag-apple","tag-markdown","tag-scripts","tag-txt"],"_links":{"self":[{"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/posts\/13116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/comments?post=13116"}],"version-history":[{"count":10,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/posts\/13116\/revisions"}],"predecessor-version":[{"id":13173,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/posts\/13116\/revisions\/13173"}],"wp:attachment":[{"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/media?parent=13116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/categories?post=13116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.davidbosman.fr\/blog\/wp-json\/wp\/v2\/tags?post=13116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}