Quick and dirty hack to get syntax coloring in Keynote
Sep 11, 2008 15:27 · 182 words · 1 minute read
I figured I’d toss this out in the event that someone has a better solution in hand. I tossed this together quickly and it works. It requires that you have Pygments installed and pygmentize on your path (which is silly, because I could have just imported pygments as a library…) It also requires that Safari is running. But, hey, it works.
import os
import sys
def go():
if len(sys.argv) != 2:
print "Usage: %s <filename>" % sys.argv[0]
sys.exit(1)
output_fn, ext = os.path.splitext(sys.argv[1])
output_fn += '.html'
print "Generating %s" % (output_fn)
os.system("pygmentize -O full -o %s %s" % (output_fn, sys.argv[1]))
print "Copying to clipboard..."
fullpath = os.path.abspath(output_fn)
os.system("""osascript<<END
tell application "Safari"
activate
make new document at end of documents
set url of document 1 to "file://%s"
end tell
tell application "System Events"
tell process "Safari"
click menu item "Select All" of menu "Edit" of menu bar 1
click menu item "Copy" of menu "Edit" of menu bar 1
click menu item "Close Window" of menu "File" of menu bar 1
end tell
end tell
END
""" % (fullpath))
if __name__ == "__main__":
go()