Jump to content

John Christopher Jones

Level 2
  • Content Count

    40
  • Joined

  • Last visited

Community Reputation

28 Good

About John Christopher Jones

Recent Profile Visitors

1,988 profile views
  1. This doesn't work on the macOS client as of version 6.10. For example: I want to create a note to help me call my house, senate, and state senate and state delegates. Evernote could just let me CMD+K and type "tel:555-555-5510". Instead, well, I have to re-key the phone numbers into my phone every time I want to make a call. Footnote: I would at least like to explicitly opt into using unsupported url schema. This "safety" prohibition prevents a huge number of edge enhancements to the Evernote network. It'd be extremely useful to me to be able to add a link for FileMaker so I can use a url like "fmp://$/ProLog?script=NewCall&$tel=555-555-5510", which would let me invoke the FileMaker script "NewCall" in the already-opened datebase "ProLog", where FileMaker itself lets me invoke custom URL schema to start a phone call and create a database record to record the call log at the same time.
  2. Just because it's open source or free software doesn't mean it can't be commercial. That only means that you have to make the source code available to anyone who asks. If nothing else, you could stick a donation button in a Github readme). By the way, this is pretty awesome. I've been using the Evernote for Sublime Text package and I've been debating putting in the time to try porting it to Atom. You appear to have gone even further on features than my favorite Sublime Text package in many ways.
  3. You guys are totally right: Evernote is already using <div>s. It's right there in the developer docs on plaintext. So, Evernote wouldn't be moving any further from semantic markup, which means third-party apps probably won't break. So, I stand corrected.
  4. Although there isn't a way to do this in the Evernote client itself, ENML (the XML format Evernote notes are saved as) does provide a way. As a result, I've gotten kinda spoiled using bordaigorl's Sublime plugin for Evernote. It lets you write in Markdown, which gets converted to ENML when sent to Evernote. So, you can use block quotes and pre-formatted text blocks, in addition to various other XHTML tags that you don't normally get access to in the Evernote client. I think the easiest way to fake this in the current Evernote client is to make a 1x1 table. This will give you a box and some margin and padding around your text. It'll look a lot like a block quote on a forum.
  5. It looks like in Yosemite and/or with the Evernote ScanSnap, it's possible to wind up with ENML that the original version of my script won't work on. I've updated the script to handle this situation. Specifically, the problem is that PDFs are saved to Evernote as "Unnamed File Attachment". It turns out that sometimes the filename is actually a string of invalid UTF-8 characters (0xCA 0xCA 0xCA 0xCA). For example: <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div><en-media type="application/pdf" style="cursor:pointer;" width="100%" height="1082" hash="0760b2f2fcb5c4ce81ccae342f754b8f"/>ÊÊÊÊÊ</div></en-note> Updated script reproduced below in case my link breaks for some reason: -- Join PDFs in multiple Evernote notes into a single PDF in a new note-- Author: John Christopher Jones <john.christopher@alumni.virginia.edu>-- Created: 2014-11-17-- Updated: 2014-12-11 -- write utf8 and strip non-ascii characters when extracting hash values-- inspired by-- http://applehelpwriter.com/2013/03/23/how-to-merge-pdf-files-in-os-x/-- We'll join note titles together using this string-- This isn't going to be a great title, but it'll be-- a good reminder of what's in the new note.set title_separator to " | "-- Create a temporary folder for the exported Evernote attachments-- Create an output filepath to write the joined pdf toset temp_folder to do shell script "mktemp -d -t evernote_pdf"set output_filepath to temp_folder & "/" & (do shell script "uuidgen") & ".pdf"-- XSLT used to extract hash values from en-media tags-- Crazy {} translation nonsense used to work around forum post scrubbersset xslt to "{?xml version='1.0'?}{xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:en='http://xml.evernote.com/pub/enml2.dtd'} {xsl:output method='text' omit-xml-declaration='yes' indent='no'/} {xsl:strip-space elements='*'/} {xsl:template match='en-media'} {xsl:value-of select='@hash'/} {xsl:text} {/xsl:text} {/xsl:template} {xsl:template match='text()|@*'}{/xsl:template}{/xsl:stylesheet}"set my text item delimiters to "{"set xslt to text items of xsltset my text item delimiters to "<"set xslt to xslt as textset my text item delimiters to "}"set xslt to text items of xsltset my text item delimiters to ">"set xslt to xslt as text-- Write XSLT to temporary locationset xslt_path to do shell script "mktemp -t evernote_enml"tell application "Finder" to write xslt to xslt_path-- Initialize some listsset hash_values to {}set pdf_list to {}set title_list to {}tell application "Evernote" -- Loop over every attachment in every note -- Note order follows the visible sort order in the OS X Desktop Client v5.7.2 set noteList to selection repeat with n in noteList set the end of title_list to title of n -- Write the ENML to a temporary file and extract the en-media hash values set enml_text to (ENML content of n) as text set enml_path to do shell script "mktemp -t evernote_enml" tell application "Finder" to write enml_text to enml_path -- Extract the hash values from the ENML temporary file using the XSLT set hash_values to paragraphs of (do shell script "cat " & (quoted form of enml_path) & " | strings | xsltproc --novalid " & (quoted form of xslt_path) & " - ") -- Delete the temporary ENML file do shell script "rm " & (quoted form of enml_path) -- Export each attachment in the order that it appears in the note repeat with hash_value in hash_values -- Get the attachment that has this hash set a to item 1 of (attachments of n whose hash is hash_value) -- Write the attachment to the temporary folder set pdf_path to temp_folder & "/" & (do shell script "uuidgen") & ".pdf" write a to pdf_path as «class utf8» -- Save the filepath for later set the end of pdf_list to pdf_path end repeat end repeat -- We'll join PDF filepaths so that they're single-quoted and space-delimited set my text item delimiters to "' '" -- Join PDFs do shell script (quoted form of "/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py") & " --output " & (quoted form of output_filepath) & " " & ("'" & (pdf_list as text) & "'") -- Create a new note with a title built from the titles of the selected notes set my text item delimiters to title_separator set new_note to create note from file output_filepath title (title_list as text) -- Open the newly created note in a new window so the user doesn't have to wonder -- where the thing is and if it was actually created. open note window with new_note -- Delete all of the remaining temporary files do shell script "rm -r " & quoted form of temp_folder do shell script "rm " & quoted form of xslt_pathend tell
  6. I totally respect that a lot of people expect a, more or less, RTF Wordpad/TextEdit-like experience with formatting. I can appreciate that using non-semantic tags like div can give you that most easily. However, I'm worried about third-party integration if my Evernote notes have less resemblance to standard semantic HTML. There are some really neat third-party applications that will probably start to break down if the semantic markup falls away. For example, I'm a huge fan of postach.io, which lets you blog directly from an Evernote notebook. I use postach.io for my blog, vorpal.club. Editors that convert markdown to Evernote notes might also have some trouble. For example, writers tend to like to get as far away from fonts and font sizes as possible, focusing on structure—words, emphasis, paragraphs, headings, etc. See, for example Byword (which publishes to Evernote), iA Writer, and nvAlt. (I've also gotta plug bordaigorl's excellent Sublime plugin for Evernote.) There's a huge market (at least among my followees) for these minimalist structural editors that I'd love to see Evernote embrace as a platform. My ideal would be if paragraphs automatically put a full empty line of margin between themselves (markup: <p>first para</p><p>second para</p>), but I could hit ⌥⏎ to insert a line return within a paragraph (markup: <p>first para<br/>new line</p>). This is very much how Microsoft Word works and close to what the resulting XML looks like, so it would boost compatibility with third party apps, including exporting/importing to Word, and give Evernote's editor some beautiful+fast editing oomph. I haven't used Word on Windows in years, but I'm pretty sure there's an equivalent "force newline" keyboard shortcut (probably ⇧⏎ or ⌃⏎?), which you could use on the Web client to get perfect editing parity. And, yeah, iOS and OS X are using very different stylesheets. To demonstrate, here's a public notebook with a copy of a note that I publish on Postach.io: https://www.evernote.com/pub/teluial/demo2 How I'd like the note to look is basically how appears on my blog. On the beta web client the spacing is much less cramped than it appears in the OS X client. This crampedness isn't really a change from 5.x to 6.x, but it's a rough platform difference.
  7. An alternative would be to pop a skipable progress dialog. Title: Quitting Evernote Informative Text: Evernote is syncing your notes. You can quit now, but some of your changes won't be visible on other devices until your reopen Evernote on this device. Sync Progress: [============== ] 75% [ Quit Now ] [ Cancel ]
  8. I believe the box actually had three buttons: Cancel, Finish, and Quit Now. Finish and Cancel both did exactly the same thing as just dismissing the window: Cancel. It made sense to pare it down. However, even Apple doesn't default to dangerous in such modal dialog boxes. That's why there is always a cancel button and it's always the rightmost and default button on danger prompts.
  9. I stumbled across this post recently. It seems that the current iteration of Evernote Business would be perfect for publishing ebooks like you suggest, with a limit of 10,000 notebooks per business account.
  10. Putting my voice in as a member of the MBP 17" crowd. I didn't know there were so many of us hanging around the forums.
  11. Yosemite has been a bit of an acid test for apps that implement non-native or custom widgets. Apps that have followed the Apple guidelines have and used system defaults have made the transition smoothly. Vibrancy in particular has been hard for really customized apps to get right. There's a great contrast between Mail and Evernote. Mail can be considered a gold standard for how Vibrancy is supposed to work in Yosemite. Mail and Evernote have extremely similar UI needs, so there're a great pair of apps to compare and contrast. Here's a key point. Vibrancy does something very specific. It's supposed to make your personal content pop and make you aware of your personal content just beyond the boundaries of the scroll pane. If you just throw blending effects at the wall you're not going to hit the mark at all. You can see this in the way that Mail uses Vibrancy. Mail uses opaque backgrounds for your content. It uses Vibrant backgrounds for your ancillary content, like sidebars. Sidebars aren't content, so they get the vibrancy background to distinguish them from content. This increases the contrast between the ancillary matter and your own content. Vibrancy also blends your opaquely-backgrounded content through the toolbar and column headers, adding to you awareness of what's just beyond the scroll pane. Your content is not only opaque, but it burns through the toolbar to get to you. Another key point is that Vibrancy is used to ADD contrast to your content. It NEVER subtracts contrast from your content. That sidebar in Mail is not content. Vibrancy blends margins, helping you distinguish between padding and content. Mail uses the system standard of solid backgrounds for selection, both in the message list and in the sidebar. Blue is the system default, but if you choose another color in General Settings, then Mail and every other app uses that color. This puts the user's action foremost. This solid background has additional weight with Vibrancy, because the solid background nearly glows through the toolbar when it scrolls past the scroll pane. This shows the user's action is being respected and emphasized, to the expense of the window chrome. Evernote, by contrast, uses a faded blue border reminiscent of button focus in Mavericks. It's hard to spot and breaks system conventions—the blue border means the indicated element is not yet selected, yet Evernote uses it to indicate ​current selection. Personally, it causes me to act uncertainly and I'm never quite sure which note is selected. In addition, there's no indication of what notebook is selected in the Evernote sidebar. Mail, again, uses a solid background in the vibrant sidebar to indicate selection, though it's a vibrant background because it's a vibrant panel. Another thing to note is that Mail uses exactly TWO backgrounds: vibrant and opaque. Content is opaque, and ancillary or marginal space is vibrant. Any compromise between those two choices is an error. Evernote uses no less than three levels of opacity. The sidebar is the weakest opacity (which does not appear to be the native Vibrancy effect, which is a burn effect not the blur-and-blend effect Evernote uses). The column view itself uses a slightly heavier opacity, and the selected note in the note list uses an even heavier opacity. The overall effect is to be blurry. The content panel is another point of contrast. Mail uses exactly two kinds of content panels. The first is the single-message panel. The single message panel is opaque, edge-to-edge with the message list. Note that the mailbox sidebar is hidden by default in Mail, which means the default view in Mail is 100% opaque. The second content panel is the conversation view. In this view, the messages are still 100% opaque but the margins between and around messages take on a vibrant background. This adds contrast, helping you spot the dividing space between the messages in the conversation view. The hard boundary line between the message list and the message panel is always obvious. Evernote, by contrast, uses a blended background in the content panel. This blended background isn't adding information like it does in Mail. There's only ever one note in the content panel in Evernote, so it should be edge-to-edge flush opaque. It might make sense to go vibrant if you have Related Notes (or "Context") visible. In the Evernote content panel, there's a rounded border around the note body and that blended background is reminiscent of the linen background that we killed back in Mavericks with most of the skeuomorphism. It just adds noise, and makes the boundary between the note list and the note hard to see. A particularly glaring fault in Evernote's use of the language of Vibrancy in Evernote is that when you scroll down the note, the note vanishes behind the blended background of the toolbar/infopanel/buttonbar thingy at the top of the note. That is, not only is the note body not popping out through the toolbar, it's vanishing behind the background. In an FPS game, that'd be a drawing order bug, which is particularly disorienting. There are a couple of things Evernote could do to improve things. First, Evernote should follow Mail's lead and make content opaque. Content should never have a blended background. Second, reduce visual complexity. There should only ever be two backgrounds in the app: opaque and vibrant. Any compromise between vibrant and opaque is an error. Third, Evernote should use the system convention of solid background for selections. This applies to both the note and the sidebar. Fourth, try getting rid of the margins in the content panel. They add noise without information—Mail gets this one right. Fifth, please just standardize on the system standard single font face. I don't mean just matching the font, but using the system definition. OS X has taking big strides to resolution independence, and Yosemite lets uses really tweak their fonts for accessibility, including bumping the font size and font weight up. Evernote uses smaller fonts when people are trying to use bigger fonts. If Evernote uses the system font definitions then people can bump the font size up in System Preferences and get the results they expect.
  12. Since I posted that link back in January, I've taken to using this feature a lot. The problem is just getting the link out of Mail in a decent form. Once you've got the link you can throw it in Evernote, throw it in Things, TextEdit, or whatever, and it'll just magically work both in iOS and OS X. The message link should technically be a URN, but it's formatted as a URL. The format is message://<message-id>, with the angle brackets. However, to get consistent results the angle brackets need to be encoded (that's %3c and %3e). Anyhow, here's some AppleScript. I throw this into a Keyboard Maestro macro and use the hot key CMD+CTRL+C, which is a the same hotkey I use for my "copy file path" macro for Finder. tell application "Mail" set _sel to get selection set _links to {} repeat with _msg in _sel set _messageURL to "message://%3c" & _msg's message id & "%3e" set end of _links to _messageURL end repeat set AppleScript's text item delimiters to return set messageLinks to (_links as string) set the clipboard to messageLinks end tell
  13. Reminders do exactly this. Just click the alarm-clock icon in the note. You don't have to set a date with a reminder. I use this for a sort of "table of contents" when I create a special notebook for some sort of complicated and focused project.
  14. I agree that Evernote has more important fish to fry, but they do place a lot of importance on PDF handling in Evernote. They do this to the extent that they added inline PDF annotation, and they did this despite having developer access to Yosemite and recognizing that Apple would add their own system-wide PDF annotation extension in Yosemite. Evernote wanted PDF annotation that would work across platforms. One of the killer Evernote Premium features is priority OCR, which, while useful for the occasional JPEG and photograph of a bookshelf, really gets most of its use in PDFs. So, something like this script might be a natural feature for them to add. So, I don't blame you for wanting to warn Evernote off of yet-more PDF features in lieu of at least the dozen things we've both pointed out or read about recently. That said, it really is kinda difficult to merge PDFs that are embedded in Evernote notes without something like this.
×
×
  • Create New...