ปิดเครือข่ายของคุณเพื่อป้องกัน OneNote ไม่ให้ทำการซิงค์ OneDrive ที่มีความยาวหลังจากส่งออกแต่ละครั้ง
ในรายการสมุดบันทึกขยายสมุดบันทึกเพื่อดูแท็บทั้งหมด
คลิกขวาที่แท็บและคลิก "ส่งออก ... "
คลิกที่ประเภทไฟล์แบบเลื่อนลงและกดMเพื่อเลือก.docx
รูปแบบ กดEnterเพื่อเลือก
กดEnterอีกครั้งเพื่อบันทึกไฟล์ที่ส่งออก
ทำซ้ำขั้นตอนที่ 2-5 สำหรับแต่ละแท็บในสมุดบันทึก
ตั้งค่า pandoc และเปิดหน้าต่าง PowerShell หรือ cmd
cd ลงในไดเร็กทอรีที่มี.docx
ไฟล์ที่เอ็กซ์พอร์ตอยู่
สำหรับ.docx
ไฟล์ที่ส่งออกแต่ละไฟล์ให้ใช้คำสั่ง pandoc ต่อไปนี้เพื่อแปลงเป็น markdown (แทนที่journal
ด้วยชื่อไฟล์ของคุณ):
pandoc --extract-media='' --wrap=preserve '.\journal.docx' -o journal.md
นี่คือคำอธิบายของคำสั่ง: --extract-media=''
บอกให้ pandoc เพื่อดึงภาพจาก.docx
ไฟล์และวางไว้ในโฟลเดอร์ย่อยเริ่มต้น (ชื่อ 'สื่อ' โดยค่าเริ่มต้น) --wrap=preserve
pandoc บอกไม่ให้ตัดไฟล์เอาต์พุตด้วยการแบ่งบรรทัด (ซึ่งเป็นค่าดีฟอลต์) ฟิลด์ถัดไปคือชื่อไฟล์อินพุตและ-o
หมายถึง 'เอาต์พุต' ดังนั้นjournal.md
ชื่อไฟล์เอาต์พุต
หากคุณไม่ต้องการแยกไฟล์นี้ (ตัวอย่างเช่นหากแท็บของคุณมีเพียงหน้าเดียว) ให้ข้ามไปที่ขั้นตอนที่ 15
(เมื่อคุณกำลังทำสิ่งเหล่านี้คุณสามารถกดปุ่ม↑(ลูกศรขึ้น) เพื่อเรียกคืนคำสั่งก่อนหน้าในเชลล์จากนั้นแก้ไขชื่อไฟล์)
สร้างโฟลเดอร์ใหม่เพื่อจัดเก็บหน้าในแท็บ สำหรับตัวอย่างนี้ตอนนี้ทุกหน้าจากแท็บวารสารของเราใน OneNote journal.md
จะถูกบดเข้าด้วยกันใน สร้างโฟลเดอร์ชื่อjournal
ซึ่งจะจัดเก็บหน้าแยกสุดท้ายเป็นไฟล์. md แต่ละไฟล์
ถ้ามีภาพใด ๆ ในไฟล์เหล่านี้จะถูกส่งออกไปยังโฟลเดอร์ใหม่ที่เรียกว่า.docx
media
ลากโฟลเดอร์มีเดียหากมีอยู่ไปยังโฟลเดอร์ที่คุณเพิ่งสร้างขึ้น (นี่คือสาเหตุที่เราต้องทำการดำเนินการแบบ pandoc แยกกันเนื่องจากการส่งออกแต่ละครั้งจะสร้างโฟลเดอร์สื่อแยกต่างหากและเราต้องการแยกสิ่งเหล่านี้ออกเพื่อให้ลิงก์ในไฟล์ markdown ทำงานอย่างถูกต้องเราสามารถเขียนสคริปต์ที่ชาญฉลาดเพื่อทำสิ่งนี้ทั้งหมด โดยอัตโนมัติ แต่จะใช้เวลาน้อยลงในการทำด้วยตนเองเว้นแต่คุณจะมีสมุดบันทึกจำนวนมาก) (หมายเหตุ: คุณสามารถบันทึกขั้นตอนโดยใส่ชื่อโฟลเดอร์ที่คุณต้องการในเครื่องหมายคำพูดเดี่ยวของ--extract-media=''
อาร์กิวเมนต์ - สำหรับ.docx
ไฟล์ที่มีรูปภาพ โฟลเดอร์จะถูกสร้างขึ้นโดยอัตโนมัติสำหรับคุณ)
เปิด bash terminal และ cd ไปยังไดเรกทอรีที่มี.md
ไฟล์ โฟลเดอร์ที่คุณสร้างในขั้นตอนที่ 10 จะต้องเป็นโฟลเดอร์ย่อยของโฟลเดอร์นี้ (เว้นแต่คุณจะแก้ไขพา ธ ในคำสั่งต่อไปนี้)
หากคุณยังไม่ได้คลิกที่ไอคอน Windows Bash หน้าต่างคลิกที่ Properties ตรวจสอบ QuickEdit Mode จากนั้นคลิก OK ตอนนี้คลิกที่ไอคอนหน้าต่าง Bash ของ Windows อีกครั้งคราวนี้คลิกที่ค่าเริ่มต้นตรวจสอบโหมด QuickEdit แล้วคลิกตกลง (ดังนั้นหน้าต่าง Bash ใหม่ที่คุณสร้างขึ้นในอนาคตจะจดจำการตั้งค่านี้) ตอนนี้คุณสามารถเลือกข้อความในเทอร์มินัลแล้วกดCtrl+ Cเพื่อคัดลอกหรือคลิกขวาที่หน้าต่างเทอร์มินัลเพื่อวางข้อความลงในคลิปบอร์ด ตอนนี้เราสามารถเตรียมคำสั่งของเราในสถานที่แยกต่างหากและวางแต่ละเวอร์ชันลงใน Bash อย่างรวดเร็ว
ปรับแต่งคำสั่งต่อไปนี้และเรียกใช้สำหรับแต่ละ.md
ไฟล์ที่คุณต้องการแบ่งออกเป็นแต่ละหน้า:
csplit ./journal.md --keep-files --prefix='journal/journalentry '
--suffix-format='%i.md' --elide-empty-files '/^\(Monday\|Tuesday\|Wednesday\|Thursday\|Friday\|Saturday\|Sunday\),/-2' '{*}'
(พิมพ์เป็นหนึ่งบรรทัด)
อย่างที่คุณเห็นjournal.md
คือชื่อไฟล์ markdown ของเรา (ในไดเรกทอรีปัจจุบันเขียนแทนด้วย./
) การเกิดขึ้นครั้งที่สองของjournal
(หลังจาก--prefix='
) คือชื่อของโฟลเดอร์ย่อยของเราซึ่งจะมีไฟล์แยกและjournalentry
เป็นชื่อไฟล์แต่ละไฟล์ (ตามด้วยหมายเลขดัชนี)
หากคุณต้องการเข้าใจคำสั่งต่อไปนี้เป็นคำอธิบาย: --keep-files
ยังพิมพ์ไฟล์เมื่อพบข้อผิดพลาดหรือจุดสิ้นสุดของไฟล์ทำให้มั่นใจว่าหน้าสุดท้ายจะออกอย่างถูกต้อง (เนื่องจากไม่ได้อยู่ในรูปแบบการแสดงออกปกติของเรา) --prefix
ชุดรูปแบบการตั้งชื่อของไฟล์ที่ส่งออก --suffix-format
อนุญาตให้เราตั้งค่านามสกุลไฟล์ของเรา ( .md
ในกรณีนี้) แต่เราต้องรวม%i
สำหรับคำสั่ง sprintf ซึ่งส่งออกหมายเลขดัชนีของไฟล์ --elide-empty-files
ข้ามการแสดงผลไฟล์ว่างเปล่าซึ่งเราไม่สนใจ ในที่สุดการแสดงออกปกติซึ่งเริ่มต้นด้วย'/
และลงท้ายด้วย/-2'
กำหนดว่าเมื่อใดที่จะแยกไฟล์: มันบอกว่า "เมื่อคุณพบ (/) ที่จุดเริ่มต้นของบรรทัด (^) ต่อไปนี้ (() วันจันทร์หรือ (\ |) วันอังคารหรือวันพุธหรือวันพฤหัสบดีหรือวันศุกร์หรือวันเสาร์หรือวันอาทิตย์ ) ตามด้วยเครื่องหมายจุลภาค, ถอยกลับสองบรรทัด (-2) "และแยกไฟล์ที่นั่น, แสดงสิ่งที่เรามีจนถึงตอนนี้ บิตสุดท้าย'{*}'
, ทำซ้ำคำสั่งก่อนหน้าอย่างไม่มีกำหนดจนกว่าจะถึงจุดสิ้นสุดของไฟล์
ลาก.docx
และไฟล์ลงในโฟลเดอร์ที่บอกว่าคุณสร้างโฟลเดอร์ที่เรียกว่าตอนนี้.md
intermediates
หรือคุณสามารถลบได้ เป็นการดีที่จะบันทึกเป็นระยะเวลาหนึ่งจนกว่าคุณจะพอใจกับรูปแบบไฟล์ใหม่ของคุณในกรณีที่คุณต้องการย้อนกลับและอ้างอิงสิ่งที่เกิดขึ้นระหว่างกระบวนการแปลง การย้ายพวกเขาไปไว้ในโฟลเดอร์ intermediates จะทำให้คุณลืมว่าเราอยู่ที่ไหนและทำตามขั้นตอนซ้ำอีกครั้ง
ทำซ้ำขั้นตอนที่ 9-14 สำหรับแต่ละ.docx
ไฟล์ที่คุณส่งออกจาก OneNote
ตอนนี้คุณมีหนึ่งโฟลเดอร์สำหรับแต่ละแท็บโดยมี.md
ไฟล์แยกกันอยู่หนึ่งไฟล์สำหรับแต่ละหน้า! รวมmedia
โฟลเดอร์ในโฟลเดอร์ย่อยแต่ละโฟลเดอร์ที่มีรูปภาพในแท็บ OneNote
ผมขอแนะนำให้ส่งออกแต่ละโน้ตบุ๊ค OneNote ของคุณเป็น.mht
ไฟล์ (File เดี่ยวหน้าเว็บ) .pdf
หรือหากคุณต้องการเป็น ด้วยวิธีนี้หากการจัดรูปแบบสูญหายหรือข้อมูลอื่น ๆ ในไฟล์ markdown บางไฟล์ของคุณเนื่องจากการแปลงหลายครั้งคุณสามารถย้อนกลับและดูว่ามันควรจะดูใน.mht
ไฟล์ได้อย่างไร นอกจากนี้ฉันขอแนะนำให้ส่งออกสมุดบันทึก OneNote ของคุณแต่ละ.onepkg
ไฟล์ (OneNote Package) ดังนั้นคุณจะมีสำเนาการส่งออกขั้นสุดท้ายที่ดีหากคุณต้องการเปิดสมุดบันทึกใน OneNote ในรูปแบบไฟล์ดั้งเดิม / ดั้งเดิม (อาจเป็นประโยชน์ ตัวอย่างเช่นหาก.mht
ไฟล์นั้นหายไปบางรูปแบบดั้งเดิมที่คุณต้องการกู้คืน)
เมื่อคุณเสร็จสิ้นสมุดบันทึกแต่ละเล่มให้คลิกขวาที่สมุดบันทึกใน OneNote แล้วคลิก "ปิดสมุดบันทึกนี้" ดังนั้นคุณจะไม่แก้ไขสมุดบันทึกโดยไม่ได้ตั้งใจและต้องส่งออกการเปลี่ยนแปลงใหม่ของคุณอีกครั้ง สำหรับโฟลเดอร์ markdown ฉันยังสร้างโฟลเดอร์สำหรับสมุดบันทึกแต่ละรายการและวางแท็บโฟลเดอร์ทั้งหมดไว้ในนั้น
เมื่อเสร็จสิ้นโครงการส่งออกทั้งหมดคุณสามารถไปที่ OneDrive ของคุณและลบต้นฉบับสมุดบันทึก OneNote ทั้งหมดของคุณที่ซิงค์อยู่ที่นั่น (ตรวจสอบให้แน่ใจว่าคุณกำลังสำรองไฟล์ของคุณเองตอนนี้แน่นอนมี OneDrive for Linux หรือคุณ สามารถลองบางอย่างเช่น Syncthing)
สุดท้ายเราสามารถเปลี่ยนชื่อไฟล์. md ทั้งหมดของเราเป็นชื่อหน้า OneNote ซึ่งเป็นบรรทัดแรกในแต่ละไฟล์โดยใช้สองสคริปต์ ทำไฟล์ต่อไปนี้:
ไฟล์ 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
ไฟล์ 2: ~/scripts/recurse.sh
CDIR=$(pwd)
for i in $(ls -R | grep :); do
DIR=${i%:} # Strip ':'
cd $DIR
$1 # Your command
cd $CDIR
done
จากนั้นไปที่โฟลเดอร์บันทึกย่อของคุณและเรียกใช้recurse.sh
คำสั่งโดยใช้rename-files-to-first-line.sh
คำสั่งเป็นอาร์กิวเมนต์:
$ ~/scripts/recurse.sh ~/scripts/rename-files-to-first-line.sh
คุณจะเห็นสคริปต์ผ่านไฟล์ทั้งหมดของคุณซ้ำ ๆ โยนข้อผิดพลาดบางอย่างในไฟล์ที่มีบรรทัดแรกแปลก (ที่จะไม่แปลงเป็นชื่อไฟล์) และในกรณีขอบอื่น ๆ อย่างไรก็ตามmv
คำสั่งในrename-files-to-first-line
จะถูกดำเนินการด้วยอาร์กิวเมนต์-n
ซึ่งจะป้องกันไม่ให้เขียนทับไฟล์ใด ๆ อาจมีโน้ตเล็กน้อยที่ไม่ได้เปลี่ยนชื่อเนื่องจากบรรทัดแรกในบรรทัดนั้นว่างเปล่าหรือมีอะไรแปลก ๆ แต่คุณสามารถแก้ไขไฟล์เหล่านั้นด้วยตนเองได้
รับความสุขในการหลบหนีที่สะอาดจาก OneNote