Based on https://github.com/robertgaal/notes-export
- + writeToFile in UTF8
- + format name as yyyymmddhhmmss
Based on https://github.com/robertgaal/notes-export
| on writeToFile(filename, filecontents) | |
| set the output to open for access file filename with write permission | |
| set eof of the output to 0 | |
| write filecontents to the output starting at eof as «class utf8» | |
| close access the output | |
| end writeToFile | |
| on replace_chars(this_text, search_string, replacement_string) | |
| set AppleScript's text item delimiters to the search_string | |
| set the item_list to every text item of this_text | |
| set AppleScript's text item delimiters to the replacement_string | |
| set this_text to the item_list as string | |
| set AppleScript's text item delimiters to "" | |
| return this_text | |
| end replace_chars | |
| on yyyymmddhhmmss(date_) | |
| set y to year of date_ | |
| set m_ to month of (date_) as integer | |
| if m_ < 10 then | |
| set m to "0" & (m_ as string) | |
| else | |
| set m to (m_ as string) | |
| end if | |
| set dnum to (day of (date_)) as integer | |
| if dnum < 10 then | |
| set d to "0" & (dnum as string) | |
| else | |
| set d to (dnum as string) | |
| end if | |
| set t to time of date_ | |
| set h_ to (round (t / 3600) rounding down) | |
| if h_ < 10 then | |
| set h to "0" & (h_ as string) | |
| else | |
| set h to (h_ as string) | |
| end if | |
| set t to t - h_ * 3600 | |
| set min_ to (round (t / 60) rounding down) | |
| if min_ < 10 then | |
| set minstr to "0" & (min_ as string) | |
| else | |
| set minstr to (min_ as string) | |
| end if | |
| set t to t - min_ * 60 | |
| if t < 10 then | |
| set s to "0" & (t as string) | |
| else | |
| set s to (t as string) | |
| end if | |
| set result to (y & "-" & m & "-" & d & "-" & h & "-" & minstr & "-" & s) | |
| return result | |
| end yyyymmddhhmmss | |
| tell application "Notes" | |
| activate | |
| display dialog "This is the export utility for Notes.app. | |
| " & "Exactly " & (count of notes) & " notes are stored in the application. " & "Each one of them will be exported as a simple HTML file stored in a folder of your choice." with title "Notes Export" buttons {"Cancel", "Proceed"} cancel button "Cancel" default button "Proceed" | |
| set exportFolder to choose folder | |
| repeat with each in every note | |
| set noteName to name of each | |
| set noteBody to body of each as text | |
| set itemProps to properties of each | |
| log itemProps | |
| set d to creation date of each | |
| set timef to my yyyymmddhhmmss(d) | |
| set noteName to my replace_chars(noteName, ":", "-") | |
| set filename to ((exportFolder as string) & timef & "-" & noteName & ".html") | |
| my writeToFile(filename, noteBody as text) | |
| end repeat | |
| display alert "Notes Export" message "All notes were exported successfully." as informational | |
| end tell |