자료를 수집해서 저장해두고 필요할 때 찾아쓰는 용도로 에버노트를 많이 사용하고 있는데, 특히 프리미엄 기능에 PDF 검색까지 가능하기 때문에 보관만 열심히 해두어도 필요할 때 요긴하게 찾아 쓸 수 있는 장점이 있습니다.
논문이나 기사를 에버노트에 저장하려면 새노트를 만들고, 타이틀을 지정하고, 태그를 지정해주고, 파일을 첨부시키는 단계를 반복해야 합니다. 한 두 편이면 문제가 되지 않지만 서베이한 자료가 많을 경우에는 단순 노가다양이 보통을 넘기 때문에 엄두가 잘 안나는 일이기도 합니다.
최근에 미뤄두었던 논문을 준비해야겠다는 생각이 들어 관련 학술지 논문들을 서베이했는데 자료 욕심이 많아서 그런지 서베이한 양이 좀 많았습니다. 몇 편 노가다를 해보다가 이건 아니지 싶어서 스크립트를 만들어 처리할 수 있지 않을까 싶어서 구글링을 해보니 가능할 것 같더군요.
AppleScript는 처음이데다 개발을 안한지가 오래되어 걱정은 되었지만, 생각보다 어렵지는 않았습니다. 혹시 도움이 될 수 있는 사람이 있을까 싶어 공유해봅니다.
스크립트의 기능은 지정한 폴더에 있는 PDF 파일을 에버노트의 "Papers" 노트북에 파일 하나 당 하나의 노트를 생성시켜주고 태그를 { 폴더이름, '논문', '연구', 'Papers', 'Research' }와 같이 추가시켜 줍니다. 간단한 기능이기는 하지만 200편 정도의 논문을 한 방에 추가시켜서 모르는 스크립트 배워가면서 만든 보람이 있었습니다.
Source Code:
(*
==================================================
Create Evernote notes by importing pdf files in a folder
Version 1.0.0
Written By: Sungwon Choe <sungwon.choe@gmail.com>
http://badliar.tistory.com
==================================================
*)
set folderName to choose folder with prompt "Select a folder to import" default location (path to documents folder) without invisibles
set fileNames to list folder folderName without invisibles
log "Selected folder name is : \"" & folderName & "\""
tell application "Evernote"
-- Create a notebook named "Papers" if not exists
if (not (notebook named "Papers" exists)) then
make notebook with properties {name:"Papers"}
end if
try
log "Set the notebook named \"Papers\""
set theNotebook to "Papers"
on error
log "There is no notebook named \"Papers\". Create it."
set theNotebook to create notebook "Papers" with type synchronized
end try
-- Determine the name of the journal from the folder name
set savedDelimiters to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to {":"}
set textItems to text items of (folderName as string)
set journalName to ((item ((length of textItems) - 1) of textItems) as string)
log "Determined journal name is : \"" & journalName & "\""
set AppleScript's text item delimiters to savedDelimiters
on error m number n
set AppleScript's text item delimiters to savedDelimiters
error m number n
end try
-- Make a list of tags
set theTags to {}
repeat with tagText in {(journalName as string), "논문", "연구", "Papaers", "Research"}
if (not (tag named tagText exists)) then
make tag with properties {name:tagText}
end if
set aTag to tag tagText
copy aTag to the end of theTags
end repeat
-- log "Tags to be applied are : " & (theTags as string)
-- Create a note for each pdf files in the folder
repeat with a from 1 to length of fileNames
set aFile to item a of fileNames
if (aFile contains ".pdf") or (aFile contains ".PDF") then
log "Create a note by importing \"" & (aFile as string) & "\""
set notePath to folderName & aFile as string as alias
set aNote to create note title ("[" & journalName & "] - " & aFile as string) from file notePath notebook theNotebook
assign theTags to {aNote}
end if
end repeat
end tell
'Hobby > Mac' 카테고리의 다른 글
맥에서 에버노트 안열릴 때 해결 방법 (Evernote does not open) (0) | 2020.04.15 |
---|---|
Mac OSX(Mojave)에 tmuxinator 설치하기 (0) | 2019.07.30 |
Markdown으로 작성한 포스트에 그림 걸기 - Droplr (0) | 2013.11.23 |
MacJournal로 Tumblr에 블로깅하기 (0) | 2013.10.14 |