iBooks에는 내가 읽은 강조 표시와 메모가 많이 있으며 사용하기 쉬운 하나에 수집하고 싶습니다. 형식을 조작합니다 (예 : 논문 작성 및 인용 인용).
예를 들어 뭔가를 만들기 위해 다음과 같은 하이라이트를
하고 싶습니다 (예 : CSV로)
Quod me nutrit me destruit – 나를 지탱하는 것은 나를 파괴합니다 .14, Tamburlane Parts One and Two, Christopher Marlowe, Anthony B . Dawson ed., Bloomsbury, https://itun.es/us/qSrZ0.l
iBook의 “공유”기능 (또는 복사 및 붙여 넣기)을 사용하여 한 번에 하나의 메모를 사용하여 힘들게 수행하는 방법을 알 수 있지만 수행 할 방법이 없습니다. 책의 모든 메모 또는 모든 책에 대해 일괄 처리합니다.
예를 들어 Apple Script 또는 Automator를 사용하여이를 수행 할 수있는 방법이 있습니까? 아니면 텍스트가있을 수 있습니다. 또는 내 메모를 포함하고 구문 분석 할 스크립트 (가급적이면 Python)를 작성할 수 있음을 강조하는 XML 파일입니다.
댓글
- 해결책, it (많은 경우에서와 같이) Apple을 뒤에 남겨 두는 것이 밝혀졌습니다. 하이라이트 및 메모 내보내기를 지원하는 Kindle로 전환하십시오.
답변
iBooks는 그렇지 않습니다. AppleScript를 지원합니다. 주석은 SQLite 파일에 저장됩니다 : ~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/
.
분석을 시도 할 수 있습니다. 그. 이 답변 은 해당 데이터베이스를 읽고 내보낼 수있는 Digested 에 대한 링크를 제공합니다. 주석을 Evernote에 추가했지만 어떤 서식이 적용되는지 또는 Evernote를 엉망으로 만들고 싶은지 모르겠습니다.
한 가지 간단한 해결책은 iOS 용 iBooks에서 책을 여는 것입니다. 그런 다음 주석을 대량으로 자신에게 이메일로 보낼 수 있습니다.
- 책 열기
- “목록 버튼”을 눌러 목차를 불러옵니다.
- 노트 탭으로 전환
- 공유 버튼 누르기
- 메모 편집 선택
- 모두 선택
- 이메일을 통해 공유
수정 :
사실 a를 읽은 후 reddit에 댓글을 달면 OS X의 iBooks에서도 모두 내보낼 수있는 방법이있는 것 같습니다.
노트를 내보낼 수 있습니다. Notes의 이메일에서-> 모두 선택-> 공유 (선택 사항을 유지하려면 Ctrl 키를 누른 상태에서 마우스 오른쪽 버튼을 클릭해야 함). 강조 표시된 부분은 메모와 함께 이메일에 복사되고 멋지게 서식이 지정됩니다. 이상하게도 Mac에서 응용 프로그램은 책이 복사 방지되어 있는지 여부를 신경 쓰지 않습니다. 항상 강조 표시된 부분을 복사합니다.하지만 iOS 응용 프로그램은 실제로 구별합니다. 책이 복사 방지되어 있으면 장 이름 만 공유됩니다. 안타깝게도 이것이 유일한 방법 인 것 같습니다. : /
내 노트북의 트랙 패드를 사용하여 트랙 패드를 탭하는 동안 선택 항목을 유지하면서 상황에 맞는 메뉴를 표시합니다.
댓글
- 이것은 매우 도움이됩니다. 저는 ' 주석을 CSV 또는 기타 편리한 형식으로 가져 오는 데는 여전히 멀었습니다. 저는 ' SQL 데이터베이스에서 아무것도 만들 수 없으며 메일은 멋지게 보이지만 프로그래밍 방식으로 액세스 할 수 없습니다 '.
li>
답변
나는 이러한 목적으로 메모를 추출하는 스크립트를 작성했습니다. 두 번 클릭 할 준비가 된 Evernote 내보내기 파일을 Mac에서 출력합니다. “사용자의 목적에 정확히 맞지 않는 경우 스크립트를 수정할 수 있습니다.
간단히 말하면 다음 위치에서 SQLite 데이터베이스를 읽습니다./Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary ./Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotations
… 그리고이 경우 내 보냅니다. Evernote의 .enex 형식으로.
https://github.com/jorisw/ibooks2evernote/
<?php /* * iBooks notes to Evernote converter * by Joris Witteman <[email protected]> * * Reads the iBooks Annotations library on your Mac and exports * them, tagged with their respective book title and imported in * separate notebooks. * * Usage: * * Move this script to the top of your personal home directory on your Mac. * This is the folder that has your name, which the Finder opens if you * click on the Finder icon in the Dock. * * To export your notes to Evernote: * * 1. Run the following command in the Terminal: * * php ./ibooks2evernote.php * * 2. Open the newly created "iBooks exports for Evernote" folder from your * home folder, open each file in there, Evernote will open and start * importing your notes. * */ // Default file locations for required iBooks data define("RESULT_DIRECTORY_NAME","iBooks exports for Evernote"); define("BOOKS_DATABASE_DIRECTORY","./Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary"); define("NOTES_DATABASE_DIRECTORY","./Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation"); if(file_exists(RESULT_DIRECTORY_NAME)){ die("The destination folder for the exports already exists on your Mac.\nPlease move that one out of the way before proceeding.\n"); } // Verify presence of iBooks database if(!file_exists(BOOKS_DATABASE_DIRECTORY)){ die("Sorry, couldn"t find an iBooks Library on your Mac. Have you put any books in there?\n"); }else{ if(!$path = exec("ls ".BOOKS_DATABASE_DIRECTORY."/*.sqlite")){ die("Could not find the iBooks library database. Have you put any books in there?\n"); }else{ define("BOOKS_DATABASE_FILE",$path); } } // Verify presence of iBooks notes database if(!file_exists(NOTES_DATABASE_DIRECTORY)){ die("Sorry, couldn"t find any iBooks notes on your Mac. Have you actually taken any notes in iBooks?\n"); }else{ if(!$path = exec("ls ".NOTES_DATABASE_DIRECTORY."/*.sqlite")){ die("Could not find the iBooks notes database. Have you actually taken any notes in iBooks?\n"); }else{ define("NOTES_DATABASE_FILE",$path); } } // Fire up a SQLite parser class MyDB extends SQLite3 { function __construct($FileName) { $this->open($FileName); } } // Retrieve any books. $books = array(); $booksdb = new MyDB(BOOKS_DATABASE_FILE); if(!$booksdb){ echo $booksdb->lastErrorMsg(); } $res = $booksdb->query(" SELECT ZASSETID, ZTITLE AS Title, ZAUTHOR AS Author FROM ZBKLIBRARYASSET WHERE ZTITLE IS NOT NULL"); while($row = $res->fetchArray(SQLITE3_ASSOC) ){ $books[$row["ZASSETID"]] = $row; } $booksdb->close(); if(count($books)==0) die("No books found in your library. Have you added any to iBooks?\n"); // Retrieve the notes. $notesdb = new MyDB(NOTES_DATABASE_FILE); if(!$notesdb){ echo $notesdb->lastErrorMsg(); } $notes = array(); $res = $notesdb->query(" SELECT ZANNOTATIONREPRESENTATIVETEXT as BroaderText, ZANNOTATIONSELECTEDTEXT as SelectedText, ZANNOTATIONNOTE as Note, ZFUTUREPROOFING5 as Chapter, ZANNOTATIONCREATIONDATE as Created, ZANNOTATIONMODIFICATIONDATE as Modified, ZANNOTATIONASSETID FROM ZAEANNOTATION WHERE ZANNOTATIONSELECTEDTEXT IS NOT NULL ORDER BY ZANNOTATIONASSETID ASC,Created ASC"); while($row = $res->fetchArray(SQLITE3_ASSOC) ){ $notes[$row["ZANNOTATIONASSETID"]][] = $row; } $notesdb->close(); if(count($notes)==0) die("No notes found in your library. Have you added any to iBooks?\n\nIf you did on other devices than this Mac, make sure to enable iBooks notes/bookmarks syncing on all devices."); // Create a new directory and cd into it mkdir(RESULT_DIRECTORY_NAME); chdir(RESULT_DIRECTORY_NAME); $i=0; $j=0; $b=0; foreach($notes as $AssetID => $booknotes){ $Body = "<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export3.dtd"> <en-export export-date="".@strftime("%Y%m%dT%H%M%S",time())."" application="iBooks2Evernote" version="iBooks2Evernote Mac 0.0.1">"; $BookTitle = $books[$AssetID]["Title"]; $j = 0; foreach($booknotes as $note){ $CappedText = null; $TextWithContext = null; // Skip empty notes if(strlen($note["BroaderText"]?$note["BroaderText"]:$note["SelectedText"])==0) continue; $HighlightedText = $note["SelectedText"]; // Cap the titles to 255 characters or Evernote will blank them. if(strlen($HighlightedText)>255) $CappedText = substr($note["SelectedText"],0,254)."…"; // If iBooks stored the surrounding paragraph of a highlighted text, show it and make the highlighted text show as highlighted. if(!empty($note["BroaderText"]) && $note["BroaderText"] != $note["SelectedText"]){ $TextWithContext = str_replace($note["SelectedText"],"<span style=\"background: yellow;\">".$note["SelectedText"]."</span>",$note["BroaderText"]); } // Keep some counters for commandline feedback if($j==0)$b++; $i++; $j++; // Put it in Evernote"s ENEX format. $Body .=" <note><title>".($CappedText?$CappedText:$HighlightedText)."</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note> <div> <p>".($TextWithContext?$TextWithContext:$HighlightedText)."</p> <p><span style="color: rgb(169, 169, 169);font-size: 12px;">From chapter: ".$note["Chapter"]."</span></p> </div> <div>".$note["Note"]."</div> </en-note> ]]></content><created>".@strftime("%Y%m%dT%H%M%S",@strtotime("2001-01-01 +". ((int)$note["Created"])." seconds"))."</created><updated>".@strftime("%Y%m%dT%H%M%S",@strtotime("2001-01-01 +". ((int)$note["Modified"])." seconds"))."</updated><tag>".$BookTitle.".</tag><note-attributes><author>[email protected]</author><source>desktop.mac</source><reminder-order>0</reminder-order></note-attributes></note>"; } $Body .=" </en-export> "; file_put_contents($BookTitle.".enex", $Body); } echo "Done! Exported $i notes into $b separate export files in the "".RESULT_DIRECTORY_NAME."" folder.\n\n";
답변
- 무료 설치 SQLite 용 DB 브라우저 .
- iBooks 주석 폴더로 이동 :
~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/
- 파일 (예 : 데스크톱)을 사용하여 원본을 안전하게 보관하세요.
- DB 브라우저로 파일을 엽니 다.
- 데이터를 검색하여 대상 책에서 메모를 찾습니다. .
- ZANNOTATIONASSETID로 필터링하여 대상 책에있는 노트 만 표시합니다.
- 원하는 주석을 복사하여 Numbers 또는 원하는 응용 프로그램에 붙여 넣습니다.
댓글
- Apple '의 유명한 사용 용이성!
- @raxacoricofallapatorius : 진심입니다. ' 제가 강조한 어휘 목록을 얻기위한 약간의 rigmarole입니다.