J'ai fini par trouver un pipeline d'exportation, mais c'était pénible. Voici mes notes de faire cela:
Désactivez votre ou vos réseaux pour empêcher OneNote d'effectuer une longue synchronisation OneDrive après chaque exportation.
Dans la liste des blocs-notes, développez le bloc-notes pour voir tous les onglets.
Faites un clic droit sur un onglet et cliquez sur "Exporter ...".
Cliquez sur la liste déroulante de type de fichier et appuyez sur Mpour sélectionner le .docx
format. Appuyez Enterpour le sélectionner.
Appuyez à Enternouveau pour enregistrer le fichier exporté.
Répétez les étapes 2 à 5 pour chaque onglet du bloc-notes.
Configurez pandoc et ouvrez une fenêtre PowerShell ou cmd.
cd dans le répertoire où se trouvent les .docx
fichiers exportés .
Pour chaque .docx
fichier exporté , utilisez la commande pandoc suivante pour le convertir en démarque (remplacez journal
par le nom de votre fichier):
pandoc --extract-media='' --wrap=preserve '.\journal.docx' -o journal.md
Voici une explication de la commande: --extract-media=''
indique à pandoc d'extraire des images du .docx
fichier et de les placer dans le sous-dossier par défaut (nommé 'media' par défaut). --wrap=preserve
indique à pandoc de ne pas envelopper le fichier de sortie avec des sauts de ligne (qui est la valeur par défaut). Le champ suivant est le nom du fichier d'entrée et -o
signifie «sortie», tout journal.md
comme le nom du fichier de sortie.
Si vous ne souhaitez pas fractionner ce fichier (par exemple, si votre onglet ne contient qu'une seule page), passez à l'étape 15.
(Lorsque vous en faites plusieurs, vous pouvez appuyer sur la touche ↑(flèche vers le haut) pour rappeler la commande précédente dans le shell, puis modifier le nom de fichier.)
Créez un nouveau dossier pour stocker les pages dans l'onglet. Pour cet exemple, en ce moment, toutes les pages de notre onglet Journal dans OneNote sont écrasées ensemble journal.md
. Créez un dossier appelé journal
qui stockera les dernières pages séparées sous forme de fichiers .md individuels.
S'il y avait des images dans le .docx
fichier, celles-ci seront exportées vers un nouveau dossier appelé media
. Faites glisser le dossier multimédia, s'il existe, dans le dossier que vous venez de créer maintenant. (C'est pourquoi nous devons effectuer chaque opération pandoc séparément, car chaque exportation créera un dossier multimédia distinct, et nous voulons les garder séparés afin que les liens dans les fichiers de démarque fonctionnent correctement. Nous pourrions écrire un script intelligent pour faire tout cela automatiquement, mais il faudra moins de temps pour le faire manuellement, sauf si vous avez un grand nombre de blocs-notes.) (Remarque: vous pouvez enregistrer une étape en mettant votre nom de dossier souhaité dans les guillemets simples de l' --extract-media=''
argument - pour les .docx
fichiers contenant des images, un dossier sera créé automatiquement pour vous.)
Ouvrez un terminal bash et cd dans le répertoire contenant le .md
fichier. Le dossier que vous avez créé à l'étape 10 doit être un sous-dossier de celui-ci (sauf si vous corrigez le chemin d'accès dans la commande suivante).
Si vous ne l'avez pas déjà fait, cliquez sur l'icône de la fenêtre Windows Bash, cliquez sur Propriétés, vérifiez le mode QuickEdit, puis cliquez sur OK. Maintenant, cliquez à nouveau sur l'icône de la fenêtre Windows Bash, cette fois cliquez sur Paramètres par défaut, vérifiez le mode QuickEdit, puis cliquez sur OK (de sorte que les nouvelles fenêtres Bash que vous créerez à l'avenir se souviendront de ce paramètre). Vous pouvez maintenant sélectionner du texte dans le terminal et appuyez sur Ctrl+ Cpour copier, ou cliquez avec le bouton droit sur la fenêtre du terminal pour coller le texte dans le presse-papiers. Nous pouvons maintenant préparer notre commande dans un emplacement séparé et coller rapidement chaque version dans Bash.
Personnalisez la commande suivante et exécutez-la pour chaque .md
fichier que vous souhaitez diviser en pages individuelles:
csplit ./journal.md --keep-files --prefix='journal/journalentry '
--suffix-format='%i.md' --elide-empty-files '/^\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\),/-2' '{*}'
(Tapez-le sur une seule ligne.)
Comme vous pouvez le voir, journal.md
est le nom de notre fichier de démarque (dans le répertoire courant, désigné par ./
), la deuxième occurrence de journal
(après --prefix='
) est le nom de notre sous-dossier qui contiendra les fichiers divisés, et journalentry
c'est ainsi que chaque fichier sera nommé (suivi d'un numéro d'index).
Si vous voulez comprendre la commande, voici une explication: --keep-files
imprime toujours les fichiers lorsque des erreurs ou la fin du fichier sont rencontrées, assurant que la dernière page sera sortie correctement (car elle ne se termine pas dans le modèle de notre expression régulière). --prefix
définit le schéma de dénomination des fichiers de sortie. --suffix-format
nous permet de définir notre extension de fichier ( .md
dans ce cas), mais nous devons inclure %i
pour l'instruction sprintf qui génère le numéro d'index du fichier. --elide-empty-files
saute la sortie des fichiers vides, ce qui nous importe peu. Enfin, l'expression régulière, qui commence '/
et se termine par/-2'
, définit quand fractionner le fichier: il indique "Lorsque vous trouvez (/) au début de la ligne (^) le (() lundi ou (\ |) mardi ou mercredi ou jeudi ou vendredi ou samedi ou dimanche suivant () ) suivi d'une virgule, reculez de deux lignes (-2) "et divisez-y le fichier, en affichant ce que nous avons jusqu'à présent. Le dernier bit '{*}'
,, répète la commande précédente indéfiniment, jusqu'à la fin du fichier.
Faites glisser les fichiers .docx
et .md
dans un dossier, par exemple un dossier que vous créez maintenant appelé intermediates
. Ou vous pouvez simplement les supprimer. Il est bon de les enregistrer pendant un certain temps, jusqu'à ce que vous soyez à l'aise avec votre nouveau format de fichier, au cas où vous voudriez revenir en arrière et référencer quelque chose qui s'est produit pendant le processus de conversion. Les déplacer dans le dossier des intermédiaires maintenant rude la chance d'oublier où nous en sommes et de répéter les étapes.
Répétez les étapes 9 à 14 pour chaque .docx
fichier que vous avez exporté à partir de OneNote.
Maintenant, vous avez un dossier pour chaque onglet, avec un tas de .md
fichiers séparés , un pour chaque page! Plus un media
dossier dans chaque sous-dossier contenant des images dans l'onglet OneNote.
Je recommande d'exporter chacun de vos blocs-notes OneNote sous forme de .mht
fichier (page Web à fichier unique) ou, si vous préférez, a .pdf
. De cette façon, en cas de perte de formatage ou d'autres informations dans certains de vos fichiers de démarque, en raison de la conversion multiple, vous pouvez toujours revenir en arrière et voir facilement à quoi il devait ressembler dans le .mht
fichier. En outre, je recommanderais d'exporter chacun de vos blocs-notes OneNote sous forme de .onepkg
fichier (package OneNote), afin que vous ayez une belle copie d'exportation finale si vous souhaitez rouvrir le bloc-notes dans OneNote dans son format de fichier natif / original (cela pourrait être utile si, par exemple, le .mht
fichier manque également une mise en forme originale que vous souhaitez récupérer).
Lorsque vous terminez chaque bloc-notes, cliquez avec le bouton droit sur le bloc-notes dans OneNote et cliquez sur "Fermer ce bloc-notes" afin de ne pas modifier accidentellement le bloc-notes et d'avoir à réexporter vos nouvelles modifications. Pour les dossiers de démarque, j'ai également créé un dossier pour chaque bloc-notes et y ai mis tous les dossiers d'onglets.
Lorsque vous avez terminé le projet d'exportation, vous pouvez accéder à votre OneDrive et supprimer tous les originaux de vos blocs-notes OneNote qui y ont été synchronisés (assurez-vous de sauvegarder vos propres fichiers maintenant, bien sûr! Il y a OneDrive pour Linux, ou vous pourrait essayer quelque chose comme Syncthing).
Enfin, nous pouvons renommer tous nos fichiers .md en leur titre de page OneNote, qui est la première ligne de chaque fichier, en utilisant deux scripts. Créez les fichiers suivants:
Fichier 1: ~/scripts/rename-files-to-first-line.sh
for i in *md ; do mv -n "$i" "$(cat "$i"|head -n1|tr -d '\000-\037[]{}()/\?*')".md; done
Fichier 2: ~/scripts/recurse.sh
CDIR=$(pwd)
for i in $(ls -R | grep :); do
DIR=${i%:} # Strip ':'
cd $DIR
$1 # Your command
cd $CDIR
done
Ensuite, accédez à votre dossier de notes et exécutez la recurse.sh
commande en utilisant la rename-files-to-first-line.sh
commande comme argument:
$ ~/scripts/recurse.sh ~/scripts/rename-files-to-first-line.sh
Vous verrez le script parcourir tous vos fichiers de manière récursive, jetant quelques erreurs sur les fichiers avec des premières lignes étranges (qui ne se convertiront pas en nom de fichier) et sur d'autres cas marginaux. Cependant, la mv
commande in rename-files-to-first-line
est exécutée avec un argument -n
, ce qui l'empêchera d'écraser les fichiers. Il peut y avoir quelques notes qui ne sont pas renommées, car la première ligne qu'elles contiennent est vide ou quelque chose de bizarre, mais vous pouvez simplement corriger ces quelques fichiers manuellement.
Profitez de votre évasion propre de OneNote.
L'autre réponse ne l'a pas coupé pour moi, car mes notes ne sont pas des entrées de journal, mais j'ai trouvé une solution en utilisant l'API Graph de Microsoft . Cela signifie que vous n'avez même pas besoin d'exécuter OneNote, cela nécessite simplement que vos notes soient synchronisées avec votre compte Microsoft, puis vous pouvez obtenir vos notes au format HTML parfaitement formaté (que vous pouvez afficher dans le navigateur ou convertir au format que vous préférez). utilisant Pandoc).
La magie opère dans ce script Python . Il exécute un simple serveur Web local que vous pouvez utiliser pour vous connecter à votre compte Microsoft et une fois que vous le faites, il télécharge toutes vos notes au format HTML, ainsi que les images et les pièces jointes dans leurs formats d'origine, et les stocke dans la hiérarchie des fichiers en préservant la structure d'origine de vos cahiers (y compris l'ordre des pages et les sous-pages).
Avant de pouvoir exécuter le script, vous devez enregistrer une "application" dans Microsoft Azure afin qu'elle puisse accéder à l'API Graph:
http://localhost:5000/getToken
. S'inscrire.client_id
au début du script Python.secret
dans le script Python.Ensuite, vous devez installer les dépendances Python. Assurez-vous que Python 3.7 (ou plus récent) est installé et installez les dépendances à l'aide de la commande
pip install flask msal requests_oauthlib
.Vous pouvez maintenant exécuter le script. Dans un terminal, accédez au répertoire où se trouve le script et exécutez-le à l'aide
python onenote_export.py
. Cela démarrera un serveur Web local sur le port 5000.Dans votre navigateur, accédez à http: // localhost: 5000 et connectez-vous à votre compte Microsoft. La première fois que vous le ferez, vous devrez également accepter que l'application puisse lire vos notes OneNote. (Cela ne donne à aucun tiers accès à vos données, tant que vous ne partagez pas l'ID client et le secret que vous avez créés sur le portail Azure). Après cela, retournez au terminal pour suivre la progression.
Remarque: Microsoft limite le nombre de demandes que vous pouvez effectuer au cours d'une période donnée. Par conséquent, si vous avez beaucoup de notes, vous pourriez éventuellement voir des messages comme celui-ci dans le terminal:
Too many requests, waiting 20s and trying again.
ce n'est pas un problème, mais cela signifie que le processus entier peut prendre un certain temps. De plus, la session de connexion peut expirer après un certain temps, ce qui entraîne unTokenExpiredError
. Dans ce cas, rechargez simplement http: // localhost: 5000 et le script continuera (en ignorant les fichiers qu'il a déjà téléchargés).la source
pandoc --from html --to markdown -o output.md input.html
). Cependant, il convient de noter que toutes les pages OneNote ne peuvent pas être parfaitement représentées dans le démarquage, vous risquez donc de perdre certains détails de mise en forme. En outre, pandoc prend en charge plusieurs versions de démarque, vous pouvez donc lire la documentation pour en trouver une qui convient à votre utilisation.Pour exporter vos pages OneNote dans un markdown individuel (
.md
), vous devez installer Joplin et Evernote .Comme suggéré dans ce lien , vous importez d'abord les notes dans Evernote. Exportez ensuite toutes les notes dans un
.enex
fichier depuis Evernote et importez-les dans Joplin.Joplin a la possibilité d'exporter les notes sous forme de
.md
fichiers.Remarque: je suggère d'utiliser des indicateurs dans Evernote au préalable si vous souhaitez regrouper vos notes, car la façon Evernote de conserver la hiérarchie entre les notes est différente de OneNote.
la source
J'ai trouvé un travail non programmatique pour cela.
TLDR;
Exportez les notes de OneNote vers Evernote puis vers Notion (facultatif) puis exportez-les sous forme de fichiers individuels au format de votre choix.
J'ai vraiment eu du mal à exporter mes notes à partir de Notion, un coup d'œil en ligne renverra des façons vraiment impures d'exporter et de diviser des pages OneNote et de les transformer en fichiers md ou html. Quel bordel!
En gros, vous pouvez très facilement importer vos sections OneNote dans Evernote, après avoir téléchargé Evernote pour le bureau, il est assez facile de le faire, puis à partir de là, il est également tout aussi facile d'importer celles-ci dans Notion.
Sachez simplement que vous voudrez peut-être importer des sections individuelles si vous souhaitez conserver la même organisation, sinon vous pouvez simplement importer en bloc toutes les sections, les pages seront étiquetées avec les noms des sections et c'est tout le chemin dans Notion également.
Veuillez noter que vous devrez synchroniser vos blocs-notes OneNote en vous connectant à votre compte Microsoft / Outlook et en vérifiant qu'ils sont synchronisés à l'aide de OneNote 2016.
J'espère que cela t'aides.
la source