Acabei encontrando um pipeline de exportação, mas foi uma dor. Aqui estão minhas anotações para fazer isso:
Desative suas redes para impedir que o OneNote execute uma sincronização longa do OneDrive após cada exportação.
Na lista Cadernos, expanda o caderno para ver todas as guias.
Clique com o botão direito do mouse em uma guia e clique em "Exportar ...".
Clique no menu suspenso do tipo de arquivo e pressione Mpara selecionar o .docx
formato. Pressione Enterpara selecioná-lo.
Pressione Enternovamente para salvar o arquivo exportado.
Repita as etapas 2 a 5 para cada guia do notebook.
Configure o pandoc e abra uma janela do PowerShell ou cmd.
cd no diretório em que os .docx
arquivos exportados estão localizados.
Para cada .docx
arquivo exportado , use o seguinte comando pandoc para convertê-lo em markdown (substitua journal
pelo nome do seu arquivo):
pandoc --extract-media='' --wrap=preserve '.\journal.docx' -o journal.md
Aqui está uma explicação do comando: --extract-media=''
diz ao pandoc para extrair imagens do .docx
arquivo e colocá-las na subpasta padrão (denominada 'mídia' por padrão). --wrap=preserve
diz ao pandoc para não quebrar o arquivo de saída com quebras de linha (que é o padrão). O próximo campo é o nome do arquivo de entrada e -o
significa 'output', assim journal.md
como o nome do arquivo de saída.
Se você não deseja dividir este arquivo (por exemplo, se sua guia contiver apenas uma página), pule para a etapa 15.
(Quando você faz várias delas, pode pressionar a ↑tecla (seta para cima) para recuperar o comando anterior no shell e editar o nome do arquivo.)
Crie uma nova pasta para armazenar as páginas na guia. Neste exemplo, no momento, todas as páginas da guia Diário no OneNote são agrupadas journal.md
. Crie uma pasta chamada journal
que armazenará as páginas separadas finais como arquivos .md individuais.
Se houver alguma imagem no .docx
arquivo, elas serão exportadas para uma nova pasta chamada media
. Arraste a pasta de mídia, se existir, para a pasta que você acabou de criar agora. (É por isso que precisamos executar cada operação pandoc separadamente, porque cada exportação criará uma pasta de mídia separada e queremos mantê-las separadas para que os links nos arquivos de marcação funcionem corretamente. Poderíamos escrever um script inteligente para fazer tudo isso automaticamente, mas levará menos tempo para fazê-lo manualmente, a menos que você tenha um grande número de notebooks.) (Observação: você pode salvar uma etapa colocando o nome da pasta desejado entre aspas simples do --extract-media=''
argumento - por.docx
arquivos com imagens, uma pasta será criada automaticamente para você.)
Abra um terminal bash e cd no diretório que contém o .md
arquivo. A pasta que você criou na etapa 10 deve ser uma subpasta desta (a menos que você corrija o caminho no comando a seguir).
Se você ainda não o fez, clique no ícone da janela do Windows Bash, clique em Propriedades, verifique o Modo Edição Rápida e clique em OK. Agora clique no ícone da janela do Windows Bash novamente, desta vez clique em Padrões, marque o Modo de Edição Rápida e clique em OK (para que as novas janelas do Bash criadas no futuro lembrem dessa configuração). Agora você pode selecionar o texto no terminal e pressionar Ctrl+ Cpara copiar, ou clique com o botão direito do mouse na janela do terminal para colar o texto na área de transferência. Agora podemos preparar nosso comando em um local separado e colar rapidamente cada versão no Bash.
Personalize o seguinte comando e execute-o para cada .md
arquivo que você deseja dividir em páginas individuais:
csplit ./journal.md --keep-files --prefix='journal/journalentry '
--suffix-format='%i.md' --elide-empty-files '/^\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\),/-2' '{*}'
(Digite como uma linha.)
Como você pode ver, journal.md
é o nome do nosso arquivo de remarcação (no diretório atual, indicado por ./
), a segunda ocorrência de journal
(depois --prefix='
) é o nome da nossa subpasta que conterá os arquivos divididos ejournalentry
será o nome de cada arquivo (seguido por um número de índice).
Se você deseja entender o comando, aqui está uma explicação: --keep-files
ainda imprime arquivos quando erros ou o final do arquivo é encontrado, garantindo que a última página seja impressa corretamente (já que não termina no padrão de nossa expressão regular). --prefix
define o esquema de nomeação dos arquivos de saída. --suffix-format
permite definir nossa extensão de arquivo ( .md
nesse caso), mas devemos incluir %i
a instrução sprintf que gera o número de índice do arquivo. --elide-empty-files
pula a saída de arquivos vazios, com os quais não nos importamos. Finalmente, a expressão regular, que começa '/
e termina com/-2'
, define quando dividir o arquivo: diz "Quando você encontra (/) no início da linha (^) o seguinte (() segunda ou (\ |) terça ou quarta ou quinta ou quinta ou sexta ou sábado ou domingo () ) seguido por vírgula, retroceda duas linhas (-2) "e divida o arquivo lá, exibindo o que temos até agora. O bit final'{*}'
, repete o comando anterior indefinidamente, até o final do arquivo ser atingido.
Arraste os arquivos .docx
e .md
para uma pasta, digamos que uma pasta criada agora seja chamada intermediates
. Ou você pode simplesmente excluí-los. É bom salvá-los por um tempo, até você se sentir confortável com seu novo formato de arquivo, caso deseje voltar e fazer referência a algo que aconteceu durante o processo de conversão. Movê-los para a pasta intermediários agora terá poucas chances de esquecer onde estamos e de repetir etapas.
Repita as etapas 9 a 14 para cada .docx
arquivo exportado do OneNote.
Agora você tem uma pasta para cada guia, com um monte de .md
arquivos separados , uma para cada página! Além disso, uma media
pasta em cada subpasta que tinha imagens na guia OneNote.
Eu recomendo exportar cada um dos blocos de anotações do OneNote como um .mht
arquivo (página da web de arquivo único) ou, se preferir, a .pdf
. Dessa forma, se houver perda de formatação ou outras informações em alguns dos seus arquivos de remarcação, devido à conversão múltipla, você sempre poderá voltar e ver com facilidade como deveria aparecer no .mht
arquivo. Além disso, eu recomendo exportar cada um dos seus blocos de anotações do OneNote como um .onepkg
arquivo (pacote OneNote), para que você tenha uma boa cópia final de exportação, se desejar reabrir o Notebook no OneNote em seu formato de arquivo nativo / original (isso pode ser útil se, por exemplo, .mht
também estiver faltando alguma formatação original no arquivo que você deseja recuperar).
Ao terminar cada bloco de anotações, clique com o botão direito do mouse no OneNote e clique em "Fechar este bloco de anotações" para não editar acidentalmente o bloco de anotações e ter que reexportar suas novas alterações. Para as pastas de remarcação, também criei uma pasta para cada bloco de anotações e coloquei todas as pastas da guia.
Ao concluir todo o projeto de exportação, você pode ir para o OneDrive e excluir todos os originais dos blocos de anotações do OneNote que foram sincronizados (verifique se você está fazendo backup de seus próprios arquivos agora, é claro! Existe o OneDrive para Linux ou você poderia tentar algo como Syncthing).
Por fim, podemos renomear todos os nossos arquivos .md para o título da página do OneNote, que é a primeira linha de cada arquivo, usando dois scripts. Faça os seguintes arquivos:
Arquivo 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
Arquivo 2: ~/scripts/recurse.sh
CDIR=$(pwd)
for i in $(ls -R | grep :); do
DIR=${i%:} # Strip ':'
cd $DIR
$1 # Your command
cd $CDIR
done
Em seguida, navegue até a pasta do Notes e execute o recurse.sh
comando usando o rename-files-to-first-line.sh
comando como argumento:
$ ~/scripts/recurse.sh ~/scripts/rename-files-to-first-line.sh
Você verá o script percorrer todos os seus arquivos recursivamente, lançando alguns erros em arquivos com primeiras linhas estranhas (que não serão convertidas em um nome de arquivo) e em outros casos extremos. No entanto, o mv
comando in rename-files-to-first-line
é executado com argumento -n
, o que impedirá a substituição de arquivos. Pode haver algumas notas que não são renomeadas, porque a primeira linha nelas está em branco ou é outra coisa estranha, mas você pode corrigir esses poucos arquivos manualmente.
Aproveite o seu escape limpo do OneNote.
A outra resposta não serviu para mim, porque minhas anotações não são entradas de diário, mas encontrei uma solução usando a API Graph da Microsoft . Isso significa que você nem precisa executar o OneNote, apenas exige que suas anotações sejam sincronizadas com sua conta da Microsoft e você poderá obtê-las como HTML perfeitamente formatado (que você pode visualizar no navegador ou converter para o formato que preferir) usando Pandoc).
A mágica acontece neste script Python . Ele executa um servidor Web local simples que você pode usar para fazer login na sua conta da Microsoft e, depois disso, baixa todas as suas anotações como HTML, além de imagens e anexos em seus formatos originais, e as armazena na hierarquia de arquivos, preservando a estrutura original. dos seus notebooks (incluindo ordem das páginas e subpáginas).
Antes de executar o script, é necessário registrar um "aplicativo" no Microsoft Azure para que ele possa acessar a API do Graph:
http://localhost:5000/getToken
. Registro.client_id
no início do script Python.secret
no script Python.Então você precisa instalar as dependências do Python. Certifique-se de ter o Python 3.7 (ou mais recente) instalado e instalar as dependências usando o comando
pip install flask msal requests_oauthlib
.Agora você pode executar o script. Em um terminal, navegue até o diretório em que o script está localizado e execute-o usando
python onenote_export.py
. Isso iniciará um servidor web local na porta 5000.No navegador, navegue até http: // localhost: 5000 e faça login na sua conta da Microsoft. Na primeira vez que você fizer isso, você também precisará aceitar que o aplicativo possa ler suas anotações do OneNote. (Isso não concede a terceiros acesso aos seus dados, desde que você não compartilhe a ID do cliente e o segredo que criou no portal do Azure). Depois disso, volte ao terminal para acompanhar o progresso.
Nota: A Microsoft limita quantas solicitações você pode fazer dentro de um determinado período. Portanto, se você tiver muitas anotações, poderá ver mensagens como esta no terminal:
Too many requests, waiting 20s and trying again.
Isso não é um problema, mas significa que todo o processo pode demorar um pouco. Além disso, a sessão de login pode expirar após um tempo, o que resulta em umTokenExpiredError
. Se isso acontecer, basta recarregar http: // localhost: 5000 e o script continuará (ignorando os arquivos que já foram baixados).fonte
pandoc --from html --to markdown -o output.md input.html
). No entanto, observe que nem todas as páginas do OneNote podem ser representadas perfeitamente na remarcação, para que você possa perder alguns detalhes de formatação. Além disso, o pandoc suporta vários tipos de descontos, portanto, você pode ler a documentação para encontrar um que se adapte ao seu uso.Para exportar suas páginas do OneNote para descontos individuais (
.md
), você deve instalar o Joplin e o Evernote .Conforme sugerido neste link , primeiro importe as notas para o Evernote. Em seguida, exporte todas as notas para um
.enex
arquivo do Evernote e importe-as para o Joplin.Joplin tem a opção de exportar as notas como
.md
arquivos.Nota: Sugiro o uso de sinalizadores no Evernote antecipadamente, se você deseja agrupar suas anotações, pois a maneira do Evernote de manter a hierarquia entre as notas é diferente do OneNote.
fonte
Eu encontrei um trabalho não programático para isso.
TLDR;
Exporte notas do OneNote para o Evernote e depois para o Notion (Opcional) e exporte como arquivos individuais com o formato de sua escolha.
Eu tenho realmente me esforçado para exportar minhas anotações do Notion, uma aparência on-line retornará algumas maneiras realmente impuras de exportar e dividir páginas do OneNote e transformá-las em arquivos md ou html. Que bagunça!
Basicamente, você pode importar facilmente suas seções do OneNote para o Evernote; depois de baixar o Evernote para desktop, é muito fácil fazer isso; então, a partir daí, também é igualmente fácil importá-las para o Notion.
Esteja ciente de que você pode importar seções individuais se quiser manter a mesma organização; caso contrário, você pode importar em massa todas as seções, as páginas serão marcadas com os nomes das seções e também serão incluídas no Noion.
Observe que você precisará sincronizar seus blocos de anotações do OneNote fazendo login na sua conta do Microsoft / Outlook e verificando se eles estão sincronizados usando o OneNote 2016.
Espero que isto ajude.
fonte