W końcu znalazłem rurociąg eksportowy, ale to był problem. Oto moje notatki z tego:
Wyłącz swoje sieci, aby uniemożliwić OneNote wykonywanie długiej synchronizacji OneDrive po każdym eksporcie.
Na liście Notatniki rozwiń notatnik, aby wyświetlić wszystkie karty.
Kliknij kartę prawym przyciskiem myszy i kliknij polecenie „Eksportuj ...”.
Kliknij menu typu pliku i naciśnij, Maby wybrać .docx
format. Naciśnij, Enteraby go wybrać.
Naciśnij Enterponownie, aby zapisać wyeksportowany plik.
Powtórz kroki 2-5 dla każdej karty w notatniku.
Skonfiguruj pandoc i otwórz okno PowerShell lub cmd.
cd do katalogu, w którym znajdują się wyeksportowane .docx
pliki.
Dla każdego eksportowanego .docx
pliku użyj następującego polecenia pandoc, aby przekonwertować go na markdown (zamień journal
na nazwę swojego pliku):
pandoc --extract-media='' --wrap=preserve '.\journal.docx' -o journal.md
Oto wyjaśnienie polecenia: --extract-media=''
mówi pandoc, aby wyodrębnił obrazy z .docx
pliku i umieścił je w domyślnym podfolderze (domyślnie zwanym „nośnikiem”). --wrap=preserve
informuje pandoc, aby nie zawijał pliku wyjściowego łamaniem wierszy (co jest ustawieniem domyślnym). Następne pole to wejściowa nazwa pliku i -o
oznacza „wynik”, podobnie journal.md
jak wyjściowa nazwa pliku.
Jeśli nie chcesz dzielić tego pliku (na przykład jeśli karta zawiera tylko jedną stronę), przejdź do kroku 15.
(Kiedy robisz kilka z nich, możesz nacisnąć klawisz ↑(strzałka w górę), aby przywołać poprzednie polecenie w powłoce, a następnie edytować nazwę pliku).
Utwórz nowy folder do przechowywania stron na karcie. W tym przykładzie teraz wszystkie strony z naszej karty Dziennik w OneNote są połączone journal.md
. Utwórz folder o nazwie, journal
który będzie przechowywać końcowe oddzielone strony jako osobne pliki .md.
Jeśli w .docx
pliku były jakieś obrazy , zostaną one wyeksportowane do nowego folderu o nazwie media
. Przeciągnij folder multimediów, jeśli istnieje, do właśnie utworzonego folderu. (Dlatego właśnie musimy wykonać każdą operację pandoc osobno, ponieważ każdy eksport utworzy osobny folder multimediów i chcemy zachować te osobne, aby linki w plikach przeceny działały poprawnie. Moglibyśmy napisać sprytny skrypt, aby to wszystko zrobić automatycznie, ale zajmie to mniej czasu, aby zrobić to ręcznie, chyba że masz ogromną liczbę notatników.) (Uwaga: Możesz zapisać krok, umieszczając żądaną nazwę folderu w pojedynczych cudzysłowach --extract-media=''
argumentu - w przypadku .docx
plików z obrazami, folder zostanie utworzony automatycznie).
Otwórz terminal bash i cd do katalogu zawierającego .md
plik. Folder utworzony w kroku 10 musi być podfolderem tego folderu (chyba że naprawisz ścieżkę w poniższym poleceniu).
Jeśli jeszcze tego nie zrobiłeś, kliknij ikonę okna Windows Bash, kliknij Właściwości, zaznacz Tryb QuickEdit, a następnie kliknij OK. Teraz kliknij ponownie ikonę okna Windows Bash, tym razem kliknij Domyślne, sprawdź Tryb QuickEdit, a następnie kliknij OK (aby nowe okna Bash, które utworzysz w przyszłości, zapamiętały to ustawienie). Teraz możesz zaznaczyć tekst w terminalu i nacisnąć Ctrl+, Caby skopiować, lub kliknąć prawym przyciskiem myszy okno terminala, aby wkleić tekst do schowka. Teraz możemy przygotować nasze polecenie w osobnym miejscu i szybko wkleić każdą wersję do Bash.
Dostosuj następujące polecenie i uruchom je dla każdego .md
pliku, który chcesz podzielić na poszczególne strony:
csplit ./journal.md --keep-files --prefix='journal/journalentry '
--suffix-format='%i.md' --elide-empty-files '/^\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\),/-2' '{*}'
(Wpisz jako jedną linię.)
Jak widać, journal.md
jest to nazwa naszego pliku przeceny (w bieżącym katalogu oznaczonym przez ./
), drugie wystąpienie journal
(po --prefix='
) to nazwa naszego podfolderu, który będzie zawierał podzielone pliki i journalentry
to, jak każdy plik będzie się nazywał (po którym następuje numer indeksu).
Jeśli chcesz zrozumieć polecenie, oto wyjaśnienie: --keep-files
nadal drukuje pliki po napotkaniu błędów lub końca pliku, zapewniając, że ostatnia strona zostanie wydrukowana poprawnie (ponieważ nie kończy się ona na wzorcu naszego wyrażenia regularnego). --prefix
ustawia schemat nazewnictwa plików wyjściowych. --suffix-format
pozwala nam ustawić nasze rozszerzenie pliku ( .md
w tym przypadku), ale musimy dołączyć %i
do instrukcji sprintf, która wyświetla numer indeksu pliku. --elide-empty-files
pomija wyświetlanie pustych plików, na których nam nie zależy. Wreszcie wyrażenie regularne, które zaczyna się '/
i kończy na/-2'
, określa, kiedy podzielić plik: napis „Gdy znajdziesz (/) na początku wiersza (^), następujący (() poniedziałek lub (\ |) wtorek lub środa lub czwartek lub piątek lub sobota lub niedziela () ), po którym następuje przecinek, cofnij się o dwie linie (-2) ”i podziel plik tam, uzyskując to, co mamy do tej pory. Ostatni bit, '{*}'
powtarza poprzednie polecenie w nieskończoność, aż do osiągnięcia końca pliku.
Przeciągnij pliki .docx
i .md
do folderu, powiedz folder, który teraz utworzysz intermediates
. Lub możesz je po prostu usunąć. Przyjemnie jest je zapisać przez chwilę, dopóki nie poczujesz się komfortowo z nowym formatem pliku, na wypadek gdybyś chciał wrócić i odwołać się do czegoś, co wydarzyło się podczas procesu konwersji. Przeniesienie ich teraz do folderu pośredniego zwiększy szansę zapomnienia, gdzie jesteśmy i powtórzenia kroków.
Powtórz kroki 9-14 dla każdego .docx
pliku wyeksportowanego z OneNote.
Teraz masz jeden folder dla każdej karty, z garstką oddzielnych .md
plików, po jednym dla każdej strony! Plus media
folder w każdym podfolderze, który miał obrazy na karcie OneNote.
Zalecam wyeksportowanie każdego ze swoich notesów OneNote jako .mht
pliku (pojedyncza strona sieci Web) lub, jeśli wolisz, pliku .pdf
. W ten sposób, jeśli utraciłeś formatowanie lub inne informacje w niektórych plikach przeceny, z powodu wielokrotnej konwersji, zawsze możesz wrócić i łatwo zobaczyć, jak miało to wyglądać w .mht
pliku. Ponadto zaleciłbym wyeksportowanie każdego ze swoich notesów OneNote jako .onepkg
pliku (pakiet OneNote), więc masz fajną ostateczną kopię eksportu, jeśli kiedykolwiek chcesz ponownie otworzyć notes w OneNote w jego natywnym / oryginalnym formacie (może to być przydatne jeśli na przykład w .mht
pliku brakuje również oryginalnego formatowania, które chcesz odzyskać).
Po zakończeniu każdego notatnika kliknij prawym przyciskiem myszy notes w programie OneNote i kliknij polecenie „Zamknij ten notatnik”, aby nie przypadkowo edytować notesu i trzeba ponownie wyeksportować nowe zmiany. Dla folderów przeceny utworzyłem również folder dla każdego notatnika i umieściłem w nim wszystkie foldery z kartami.
Po zakończeniu całego projektu eksportu możesz przejść do OneDrive i usunąć wszystkie oryginały notesów OneNote, które zostały tam zsynchronizowane (oczywiście upewnij się, że teraz tworzysz kopie zapasowe własnych plików! Istnieje OneDrive dla systemu Linux lub może spróbować czegoś takiego jak Syncthing).
Wreszcie możemy zmienić nazwę wszystkich plików .md na tytuł strony OneNote, który jest pierwszym wierszem każdego pliku, za pomocą dwóch skryptów. Utwórz następujące pliki:
Plik 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
Plik 2: ~/scripts/recurse.sh
CDIR=$(pwd)
for i in $(ls -R | grep :); do
DIR=${i%:} # Strip ':'
cd $DIR
$1 # Your command
cd $CDIR
done
Następnie przejdź do folderu notatek i uruchom recurse.sh
polecenie, używając rename-files-to-first-line.sh
polecenia jako argumentu:
$ ~/scripts/recurse.sh ~/scripts/rename-files-to-first-line.sh
Zobaczysz skrypt przechodzący rekurencyjnie przez wszystkie twoje pliki, generujący błędy w plikach z dziwnymi pierwszymi wierszami (które nie zostaną przekonwertowane na nazwę pliku) i w innych przypadkach krawędzi. Jednak mv
polecenie w rename-files-to-first-line
jest wykonywane z argumentem -n
, co zapobiegnie zastąpieniu jakichkolwiek plików. Może być kilka notatek, których nie można zmienić nazwy, ponieważ pierwszy wiersz w nich jest pusty lub coś innego dziwnego, ale możesz po prostu naprawić te kilka plików ręcznie.
Zanurz się w czystej ucieczce z OneNote.