Last active
November 16, 2017 05:31
-
-
Save rashita/c097530303ce1808bf6b9abb5fd30bb0 to your computer and use it in GitHub Desktop.
Evernote for Mac で指定したノートブックから最近のノート20件を表示させ、選択したノートのノートリンクをペーストする。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use scripting additions | |
use framework "AppKit" | |
use framework "Foundation" | |
property defaultNoteBook : {} | |
property defaultNoteBookName : "" | |
property beforeNoteBookLength : 0 | |
property defaultNote : {} | |
property listNoteName : {} | |
property maxListLength : 20 | |
if defaultNoteBookName = "" then --デフォルトノートブックの設定 | |
tell application "Evernote" | |
set a to name of notebooks | |
set defaultNoteBookName to choose from list a | |
repeat with t in notebooks | |
if (name of t) as text = (defaultNoteBookName) as text then | |
set defaultNoteBook to t | |
end if | |
end repeat | |
end tell | |
end if | |
tell application "Evernote" | |
--新しく起動したときの対象のノートブックのノートの数と、保存しておいたノートの数を比較 | |
set m to notes of defaultNoteBook | |
set defaultNoteBookLength to length of m | |
if defaultNoteBookLength = beforeNoteBookLength then | |
else | |
set listNoteName to {} | |
set resultNote to find notes "notebook:\"" & defaultNoteBookName & "\"" | |
set beforeNoteBookLength to length of resultNote | |
if beforeNoteBookLength > maxListLength then | |
set resultNote to items 1 thru maxListLength of resultNote | |
end if | |
repeat with i in resultNote | |
set end of listNoteName to title of i | |
end repeat | |
end if | |
set targetNote to choose from list listNoteName | |
repeat with i in resultNote | |
if (title of i) as text = targetNote as text then | |
set tempClipboard to get the clipboard | |
set pasteContents to note link of i as text | |
my copyHTML("<a href=\"" & pasteContents & "\">" & title of i & "</a>") | |
--set the clipboard to copyHTML | |
tell application "System Events" | |
keystroke "v" using {command down} | |
end tell | |
delay 1 | |
set the clipboard to tempClipboard | |
exit repeat | |
end if | |
end repeat | |
end tell | |
on copyHTML(HTML) | |
--require framework: AppKit, Foundation | |
set pasteboard to current application's NSPasteboard's generalPasteboard() | |
pasteboard's clearContents() | |
pasteboard's declareTypes:{current application's NSPasteboardTypeHTML, current application's NSPasteboardTypeString, current application's NSPasteboardTypeRTF} owner:me | |
pasteboard's setString:HTML forType:(current application's NSPasteboardTypeHTML) | |
set attributedString to my attributedStringOfHTMLText(HTML) | |
pasteboard's setString:(attributedString's |string|()) forType:(current application's NSPasteboardTypeString) | |
set attributes to current application's NSDictionary's dictionaryWithObject:(current application's NSHTMLTextDocumentType) forKey:(current application's NSDocumentTypeDocumentAttribute) | |
set HTMLData to attributedString's RTFFromRange:{location:0, |length|:attributedString's |length|()} documentAttributes:attributes | |
pasteboard's setData:HTMLData forType:(current application's NSPasteboardTypeRTF) | |
end copyHTML | |
on attributedStringOfHTMLText(HTML as text) | |
--require framework: AppKit, Foundation | |
set HTMLString to current application's NSString's stringWithString:HTML | |
set HTMLData to HTMLString's dataUsingEncoding:(current application's NSUnicodeStringEncoding) | |
return current application's NSAttributedString's alloc()'s initWithHTML:HTMLData documentAttributes:(missing value) | |
end attributedStringOfHTMLText |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment