Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jessefulton/d335c9d2c39a96506a9d to your computer and use it in GitHub Desktop.
Save jessefulton/d335c9d2c39a96506a9d to your computer and use it in GitHub Desktop.
This script sends presenter notes from a Keynote 6.2 presentation to Evernote.
--==============================
-- Send Keynote Presenter Notes to Evernote
-- Version 1.0.1
-- Written By: Ben Waldie <ben@automatedworkflows.com>
-- http://www.automatedworkflows.com
-- Version 1.0.0 - Initial release
-- Version 1.0.1 - Updated for Keynote 6.2 compatibility
--==============================
-- Make sure a presentation is opened in Keynote. If not, notify the user and stop.
tell application "Keynote"
if (front document exists) = false then
display alert "Unable to proceed." message "Please open a presentation in Keynote."
return
end if
set extractBody to button returned of (display alert "Would you like to extract slide content too?" buttons {"Yes", "No"}) = "Yes"
-- Target the front presentation.
tell front document
-- Get the name of the presentation.
set thePresentationName to name
-- Retrieve the titles of all slides.
set theTitles to object text of default title item of every slide
-- If specified, retrieve the body text of all slides
if extractBody = true then
set theBodyText to object text of default body item of every slide
end if
-- Retrieve the presenter notes for all slides.
set theNotes to presenter notes of every slide
end tell
end tell
-- Prepare the notes as HTML.
set theFormattedNotes to "<html><body><h1>" & "Keynote Presentation: " & thePresentationName & "</h1>" & return
repeat with a from 1 to length of theTitles
set theFormattedNotes to theFormattedNotes & "<h2>Slide #" & a & "</h2>" & return
set theFormattedNotes to theFormattedNotes & "<b>Title: " & item a of theTitles & "</b>" & return & return
if extractBody = true then
set theFormattedNotes to theFormattedNotes & "<b>Body:</b> " & item a of theBodyText & return & return
end if
set theFormattedNotes to theFormattedNotes & "<b>Presenter Notes:</b> " & item a of theNotes & return & return
end repeat
set theFormattedNotes to theFormattedNotes & "</body></html>"
-- Replace any returns with line breaks.
set AppleScript's text item delimiters to {return, ASCII character 10}
set theFormattedNotes to text items of theFormattedNotes
set AppleScript's text item delimiters to "<br>"
set theFormattedNotes to theFormattedNotes as string
set AppleScript's text item delimiters to ""
-- Create the note in Evernote.
tell application "Evernote"
activate
set theNote to create note notebook "Inbox" title thePresentationName with html theFormattedNotes
open note window with theNote
end tell
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment