• Announcements

    • gbarry

      Reach out to Evernote support on Twitter @EvernoteHelps   09/20/2016

      We've been leveling up our support across all channels. If you're active on Twitter, try your hand with our @evernotehelps feed. It's helmed by a crack team out of Austin, TX who are here to answer your questions. They're generally active from 7am-4pm CST.  https://twitter.com/evernotehelps  
  • 1
CoreParadox

Create jump links in your notes with ELIN!

Idea

I created a simple java app elegantly named Evernote Link In Note aka ELIN. It is free and open source, you can check it out here.



This is just a simple app to easily genereate a jump for evernote notes, easily copy and paste into your note and style them how you please, and they should work. For example, if you have a rather large note and wanted to link the word "conclusion" to the bottom of your page where you have a header that said "conclusion" this app generates html that you can easily copy and paste into your note. Then you simply click the link and it will automatically scroll to the destination that the app generated!


Current Release: v1.1 - 4/25/15 

2 people like this

Share this post


Link to post

46 replies to this idea

"Initial release, basic functionality, text is blurry and Icon is subpar."  ??

Share this post


Link to post

"Initial release, basic functionality, text is blurry and Icon is subpar." ??

that is for my app. the text and links it creates will show up in evernote just fine. It has to do with the web rendering that the text isnt anti aliased. As for the icon Im just not good at creating icons. However this only affects the icon on the program and will not appear in your notes

Share this post


Link to post

I created a simple java app elegantly named Evernote Link In Note aka ELIN. It is free and open source, you can check it out here.

Current Release: v1.1 - 4/25/15 

 

Can you provide a description/demo of your product?

What does it do?

How do your use it?

Why would I want it?

Share this post


Link to post

 

I created a simple java app elegantly named Evernote Link In Note aka ELIN. It is free and open source, you can check it out here.

Current Release: v1.1 - 4/25/15 

 

Can you provide a description/demo of your product?

What does it do?

How do your use it?

Why would I want it?

 

Oh wow! I can't believe I missed that! Alright, here goes.

This is just a simple app to easily genereate a jump for evernote notes, easily copy and paste into your note and style them how you please, and they should work. For example, if you have a rather large note and wanted to link the word "conclusion" to the bottom of your page where you have a header that said "conclusion" this app generates html that you can easily copy and paste into your note. Then you simply click the link and it will automatically scroll to the destination that the app generated!

I'll edit this into the main post. The description of the app is on the readme of the repository, but I forgot that users unfamiliar with github may not know to look there.

Share this post


Link to post

@CoreParadox:

 

Thanks for the description.  It sounds potentially useful.

 

But it is still not obvious to me how to use your tool.

It would be very helpful if you could provide step-by-step instructions, and a good clear example.

1 person likes this

Share this post


Link to post

@CoreParadox:

 

Thanks for the description.  It sounds potentially useful.

 

But it is still not obvious to me how to use your tool.

It would be very helpful if you could provide step-by-step instructions, and a good clear example.

 

directions.png

 

 

Basically, from top to bottom, you can see the document is rather long, so I want to make the text "info section" link to the header "Info section"

so for the jump name you can specify anything as long as there are no jumps with that name in your document, in this case I used "infolink"

the link text is what you want to click on to bring you to the jump

the Destination Text is what you want to link to

after that you click generate it will create a link and the jump location in that order respectively.

 

as you can see in the fourth picture I pasted the link into the document and it links "file:///#infolink"

Then later in the document I pasted the second text which has the html of  <a name="#infolink">Info Section</a>

So when I click the link it automatically scrolls down to the bottom where I put the Header

Sorry, I guess I'm not too great at explaining things!

1 person likes this

Share this post


Link to post

@CoreParadox:

 

So, it looks like your tool is a Windows application, right?

If so, could you create a Mac app (AppleScript?), or maybe better, a web app?

 

I can see how this would be really useful for EN Mac implemented as an AppleScript, invoked by a shortcut key.

Here's how I would see it being used via AppleScript:

  1. Assume that you have a EN Note long enough to create "jumps", or what HTML calls "bookmarks"
  2. Select the text to be used as the link
  3. Press the key to run the AppleScript
  4. AppleScript prompts for the BM name, and adds the link to the selected text
  5. It then prompts the user to select the text for the BM, and press "Continue"
  6. It then generates the HTML for the BM and replaces the selected text

This would allow the user to always remain in Evernote while creating the link and BM.

 

What do you think?

Share this post


Link to post

 

 

So, it looks like your tool is a Windows application, right?

If so, could you create a Mac app (AppleScript?), or maybe better, a web app?

 

well, it's written in java, so the ".jar" executable will run on windows, mac, or linux, and could be easily ported to android! However, I am not familiar with applescript, but the project is open source, so if you are familiar with it and can loosely read java it probably wouldn't be too hard to port!

I'll work on a web app version of it soon, like within the next 2 days :)

1 person likes this

Share this post


Link to post

@CoreParadox:

 

So, it looks like your tool is a Windows application, right?

If so, could you create a Mac app (AppleScript?), or maybe better, a web app?

 

I can see how this would be really useful for EN Mac implemented as an AppleScript, invoked by a shortcut key.

Here's how I would see it being used via AppleScript:

  1. Assume that you have a EN Note long enough to create "jumps", or what HTML calls "bookmarks"
  2. Select the text to be used as the link
  3. Press the key to run the AppleScript
  4. AppleScript prompts for the BM name, and adds the link to the selected text
  5. It then prompts the user to select the text for the BM, and press "Continue"
  6. It then generates the HTML for the BM and replaces the selected text

This would allow the user to always remain in Evernote while creating the link and BM.

 

What do you think?

 

I already had something very similar, so I put together this OSX workflow/service (link to GIST repo with code and docs) and it works basically like how you described it (except that in step 3, instead of "pressing a key", you would right click and select "Services -> Create Cross Reference" -- and of course you can always assign a keyboard shortcut to the service... so yeah). Hope this helps!

 

Here's a demo...

 

create-cross-ref-screenshot.gif

Edited by frogwell
1 person likes this

Share this post


Link to post

 

after that you click generate it will create a link and the jump location in that order respectively.

 

as you can see in the fourth picture I pasted the link into the document and it links "file:///#infolink"

Then later in the document I pasted the second text which has the html of  <a name="#infolink">Info Section</a>

So when I click the link it automatically scrolls down to the bottom where I put the Header

Sorry, I guess I'm not too great at explaining things!

 

 

@CoreParadox:

 

May I ask why the link would start with "file:///"? I actually haven't got time to run your program yet, but I seem to remember that in the Evernote OSX client, a link of this form would take you to the "Finder".

Share this post


Link to post

 

 

after that you click generate it will create a link and the jump location in that order respectively.

 

as you can see in the fourth picture I pasted the link into the document and it links "file:///#infolink"

Then later in the document I pasted the second text which has the html of  <a name="#infolink">Info Section</a>

So when I click the link it automatically scrolls down to the bottom where I put the Header

Sorry, I guess I'm not too great at explaining things!

 

 

@CoreParadox:

 

May I ask why the link would start with "file:///"? I actually haven't got time to run your program yet, but I seem to remember that in the Evernote OSX client, a link of this form would take you to the "Finder".

 

Good question, that's just the way I was able to get it to work, How do your links work?

Share this post


Link to post

@CoreParadox:

 

I just use a link that starts with "#" (without the "file:///"), as in the usual HTML in-page linking technique: create a pair of <a> elements (the link and the anchor) and assign a label, and it would go like this:

 

<a href="#a-label">This would be the link!</a>

 

and

 

<a name="a-label">This would be the destination!</a>

Edited by frogwell

Share this post


Link to post

@CoreParadox:

 

I just use a link that starts with "#" (without the "file:///"), as in the usual HTML in-page linking technique: create a pair of <a> elements (the link and the anchor) and assign a label, and it would go like this:

 

<a href="#a-label">This would be the link!</a>

 

and

 

<a name="a-label'>This would be the destination!</a>

Hmm, interesting! I tried that method first and it was unsuccessful, could've been a quirk with windows, or something else! I'll revisit it when I have more time :)

Share this post


Link to post

I already had something very similar, so I put together this OSX workflow/service (link to GIST repo with code and docs) and it works basically like how you described it (except that in step 3, instead of "pressing a key", you would right click and select "Services -> Create Cross Reference"). Hope this helps!

 

@frogwell:

 

Many thanks.   You solution looks excellent!  I will test and evaluate and report back here.

Share this post


Link to post

I already had something very similar, so I put together this OSX workflow/service (link to GIST repo with code and docs) and it works basically like how you described it (except that in step 3, instead of "pressing a key", you would right click and select "Services -> Create Cross Reference"). Hope this helps!

 

@frogwell:

 

I need help installing your workflow and supporting libraries.

 

Specifically, how do I install pasteboard?

 

I have never used Ruby or gem.

I downloaded the pasteboard-master.zip from https://github.com/drbrain/pasteboard.

I unzipped it.

But when I run "gem install password", I get this error:

 

 

Fetching: pasteboard-1.0.gem (100%)

ERROR:  While executing gem ... (Gem::FilePermissionError)

    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

 

Perhaps I need to move the pasteboard-master folder somewhere special?  If so, where?

Do I need to run the "gem" command from a specific folder?

 

If you can, please provide specific, step-by-step instructions.  I suspect others (non-programmers) will need this as well.

 

Thanks.

Share this post


Link to post

 

I already had something very similar, so I put together this OSX workflow/service (link to GIST repo with code and docs) and it works basically like how you described it (except that in step 3, instead of "pressing a key", you would right click and select "Services -> Create Cross Reference"). Hope this helps!

 

@frogwell:

 

I need help installing your workflow and supporting libraries.

 

Specifically, how do I install pasteboard?

 

I have never used Ruby or gem.

I downloaded the pasteboard-master.zip from https://github.com/drbrain/pasteboard.

I unzipped it.

But when I run "gem install password", I get this error:

 

 

Fetching: pasteboard-1.0.gem (100%)

ERROR:  While executing gem ... (Gem::FilePermissionError)

    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

 

Perhaps I need to move the pasteboard-master folder somewhere special?  If so, where?

Do I need to run the "gem" command from a specific folder?

 

If you can, please provide specific, step-by-step instructions.  I suspect others (non-programmers) will need this as well.

 

Thanks.

 

Ah sorry that the doc isn't very clear... In this case, you can run

 

> sudo gem install pasteboard

 

and then enter your password and hit enter. "sudo" means "super do", which requires you have the superuser/administrator privileges to run commands. It's similar to the pop up dialog you get when installing some softwares that would ask you for confirmation and password.

 

P.S. I assume by "gem install password" you mean "gem install pasteboard"?

Share this post


Link to post

@frogwell:

 

Thanks.  Yes, I meant "pasteboard".

 

So I tried "sudo..." but got another error after I entered my password:

 

sudo gem install pasteboard

Password:

Fetching: pasteboard-1.0.gem (100%)

Building native extensions.  This could take a while...

ERROR:  Error installing pasteboard:

ERROR: Failed to build gem native extension.

 

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

 

 

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/pasteboard-1.0 for inspection.

Results logged to /Library/Ruby/Gems/2.0.0/gems/pasteboard-1.0/ext/pasteboard/gem_make.out

 

What do I do now?

 

Thanks for your help.

Share this post


Link to post

@frogwell:

 

Thanks.  Yes, I meant "pasteboard".

 

So I tried "sudo..." but got another error after I entered my password:

 

sudo gem install pasteboard

Password:

Fetching: pasteboard-1.0.gem (100%)

Building native extensions.  This could take a while...

ERROR:  Error installing pasteboard:

ERROR: Failed to build gem native extension.

 

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h

 

 

Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/pasteboard-1.0 for inspection.

Results logged to /Library/Ruby/Gems/2.0.0/gems/pasteboard-1.0/ext/pasteboard/gem_make.out

 

What do I do now?

 

Thanks for your help.

 

Well apparently I did not take into consideration that most people would not have xcode and other dev dependencies installed, my apologies... So I made an alternate version that does not require any ruby gem... Would you mind giving it a try? It's not quite as smooth as the original one (you won't be able to easily undo the operation, etc.) but the basic functionalities are the same.

Share this post


Link to post

Well apparently I did not take into consideration that most people would not have xcode and other dev dependencies installed, my apologies... So I made an alternate version that does not require any ruby gem... Would you mind giving it a try? It's not quite as smooth as the original one (you won't be able to easily undo the operation, etc.) but the basic functionalities are the same.

 

Thanks for the fix.  Before I try it, I had an idea I want to ask you about.

 

I read in your ReadMe that "Since the Evernote client will automatically add evernote-html-snippet:// to links with href starting with #, use applescript to scan the whole note and get rid of all these redundant strings".

 

What do you think about using "file:///" prefix? 

So, the link would be:  <a href="file:///#label-text">Link text</a>

 

Would that prevent the EN client from adding the "...snippet://" prefix?

Share this post


Link to post

 

Well apparently I did not take into consideration that most people would not have xcode and other dev dependencies installed, my apologies... So I made an alternate version that does not require any ruby gem... Would you mind giving it a try? It's not quite as smooth as the original one (you won't be able to easily undo the operation, etc.) but the basic functionalities are the same.

 

Thanks for the fix.  Before I try it, I had an idea I want to ask you about.

 

I read in your ReadMe that "Since the Evernote client will automatically add evernote-html-snippet:// to links with href starting with #, use applescript to scan the whole note and get rid of all these redundant strings".

 

What do you think about using "file:///" prefix? 

So, the link would be:  <a href="file:///#label-text">Link text</a>

 

Would that prevent the EN client from adding the "...snippet://" prefix?

 

Well, yes, it would indeed prevent EN client from adding "evernote-html-snippet://", but it still wouldn't work. Because then Evernote removes the link all together (assuming we are using the general clipboard/pasteboard). Or, even if we successfully insert the link with "file:///#label-tet" (using the `pasteboard` ruby gem to specifically formulate data in pasteboard), clicking on the link will take you to Finder and will try to locate a file on your system. This is because links starting with "file:///" is supposed to point to a local file (wiki), and in OSX the default handler application for "file:///" is the Finder. Theoretically it's possible to change the handler, but I don't think that is easy or makes sense.

Share this post


Link to post

Well apparently I did not take into consideration that most people would not have xcode and other dev dependencies installed, my apologies... So I made an alternate version that does not require any ruby gem... Would you mind giving it a try? It's not quite as smooth as the original one (you won't be able to easily undo the operation, etc.) but the basic functionalities are the same.

 

 

This workflow just doesn't seem to want to work for me.

Your alternate version (no ruby) doesn't work either.  It fails with a Javascript error.

Apparently the Automator "Run Javascript" is a new Action added in Yosemite.  I'm running Mavericks.

 

Here's the Automator error msg:

 

Mac-Automator-No-Javascript.gif

 

Sorry to be so much trouble.

 

Any suggestions on what to do next?

Share this post


Link to post

 

Well apparently I did not take into consideration that most people would not have xcode and other dev dependencies installed, my apologies... So I made an alternate version that does not require any ruby gem... Would you mind giving it a try? It's not quite as smooth as the original one (you won't be able to easily undo the operation, etc.) but the basic functionalities are the same.

 

 

This workflow just doesn't seem to want to work for me.

Your alternate version (no ruby) doesn't work either.  It fails with a Javascript error.

Apparently the Automator "Run Javascript" is a new Action added in Yosemite.  I'm running Mavericks.

 

Here's the Automator error msg:

 

Mac-Automator-No-Javascript.gif

 

Sorry to be so much trouble.

 

Any suggestions on what to do next?

 

My bad again, totally didn't think of compatibility issues. I re-wrote the workflow in AppleScript which should be supported in Mavericks (I think? I don't have access to a Mavericks machine at this moment so I cannot verify) and updated the gist. Would you be interested in trying it out?

1 person likes this

Share this post


Link to post

My bad again, totally didn't think of compatibility issues. I re-wrote the workflow in AppleScript which should be supported in Mavericks (I think? I don't have access to a Mavericks machine at this moment so I cannot verify) and updated the gist. Would you be interested in trying it out?

 

Fantastic!  It works very well in Mavericks (10.9.5) with EN Mac 6.0.7.

 

Thank you so much for all your patience and quick responses to my posts.

 

May I make one suggestion?  Instead of pasting the link, how about just leaving it on the clipboard and displaying a popup dialog to that effect?  Then the user to go to the desired location and paste it, rather than having to cut and paste.

 

Thanks again.  This is a huge addon feature for EN Mac.

 

May I request another addon?

 

Often this need for an internal link/bookmark comes up because it was originally setup as part of a real web page.

Would it be possible to select a group of lines (like you would have in an internal TOC for a web page), and then convert them to the proper links needed to goto the anchors/bookmarks that, hopefully, already exist in the EN Note?

 

Here is an example web page that contains a TOC at the top, with links to lots of anchors/bookmarks below:

https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html#//apple_ref/doc/uid/TP40000983-CH218-SW2

 

Maybe you could do a EN web clip of this page, and then convert the TOC links?

Share this post


Link to post

@frogwell:

 

Well the saga continues.  It appears that EN Mac 6.0.10 broke your cross link code.

 

It seems to still work on some Notes created prior to Ver 6.0.10, but does not work on any new Notes.

The link still has the "snippet" prefix:  href="evernote-html-snippet://#anchor-en773"

Share this post


Link to post

@frogwell:

 

Well the saga continues.  It appears that EN Mac 6.0.10 broke your cross link code.

 

It seems to still work on some Notes created prior to Ver 6.0.10, but does not work on any new Notes.

The link still has the "snippet" prefix:  href="evernote-html-snippet://#anchor-en773"

I don't think it's the EN 6.0.10, it's probably due to the funkyness of the workflow itself (the implementation is far from ideal).

 

A few things to check:

1. Is the note you are editing opened in a separate window?

2. If not, is the note shown as the first item in the note list in the main window?

 

The awkwardness comes from the fact that I don't see a easy and definite way to get "the current note in the main window" via applescript. The workflow sort of assumes that use is editing the note in a separate window, or the note list in the main window is sorted by "updated time".  I've updated the workflow (gist) to include a dialog asking user to confirm that the script has the right idea about which note is being editing currently.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now