Spellbook

FAQs

NOTE: The latest Spellbook release is supported in ALL JetBrains IDE build versions 202.7660 or higher
  1. Go to Gumroad and purchase a license for Spellbook.
  2. Once purchased, you will receive a license key and a link to download the plugin distribution zip file.
  3. Download the plugin distribution zip file.
  4. Install the plugin distribution zip file to any JetBrains IDE using the 'Install Plugin from Disk...' option in the 'Preferences/Settings' section of the IDE.
  5. Once installed, restart your IDE, open the Spellbook tool window and input your license key into the license key dialog in Spellbook to activate your license.

(NOTE: You can also search for and install Spellbook from the IDE 'Plugins' section just as you would any other IDE plugin.)

[Spellbook Add Evernote Account] Spellbook uses an OAuth implementation to request access to your Evernote account. When you click the green link to 'Generate an account token for your Evernote account', a browser window will open the Evernote website. Once you sign in to your account, you can give consent to allow the Spellbook plugin access to the account. You can also specify the duration or 'life-to-live' time of the access token. After you give consent, you will be redirected to the Spellbook website where you can copy your token and provide it to Spellbook in your IDE.

If for some reason you don't want to use OAuth you can always contact Evernote support and request a developer token for your account. Spellbook can work with developer access tokens too 😊.

You can search your Evernote account using Spellbook's search filter. The available search filters are described below.

AND / OR Filter:
The AND/OR search selector works just like and/or operators in any programming language. The selector will filter the results of your search as follows:
  • AND: will search for notes that match ALL of the specified search parameters. Only notes that match ALL of the specified search parameters will be returned in the results. For example - "Find notes that contain the keyword 'static' AND whose title contains the word implementation AND are tagged with 'Java'."
  • OR: will search for notes that match ANY of the specified search parameters. Notes that match ANY of the specified search parameters will be returned in the search results. For example - "Find notes that include the keyword text 'Linked List' OR are tagged with 'JavaScript Snippets'."
NOTE: if you are only planning to search by notebook ALWAYS use the 'AND' selector. Choosing the 'OR' selector in this scenario may give you weird results.

By Content Keyword:
The content keyword search parameter will filter your search by specific words or phrases. Your Evernote account will be searched for notes that contain the specified words or phrases. To search for a specific word, just type the word. To search for a specific phrase wrap the phrase in quotation marks. To search for multiple keywords or phrases, separate each word or phrase with a space. You can also use wildcards (*) at the beginning and ending of words and phrases to match notes that start or end with the word or phrase.
Example:
  • fetchtype "many to many" cascade*
    • Will match notes whose content contains the word 'fetchtype' AND/OR the phrase'many to many' AND/OR a word that begins with 'cascade'.
By Notebook:
The notebook search parameter will filter your search by notebook. Only notes that are contained within the specified notebook will be returned in the results. The notebook search parameter drop down list is populated with the list of notebooks associated with this account.
NOTE: if you only want to search by notebook ALWAYS use the ''AND' selector. Choosing the 'OR' selector in this scenario may give you weird results.

By Note Title: The note title search parameter will filter your search by specific words or phrases in a note's title. Your Evernote account will be searched for notes that contain the specified words or phrases in their title. To search for a specific word, just type the word. To search for a specific phrase wrap the phrase in quotation marks. To search for multiple keywords or phrases, separate each word or phrase with a space. You can also use wildcards (*) at the beginning and ending of words and phrases to match notes that start or end with the word or phrase.
Example:
  • fetchtype "many to many" cascade*
    • Will match notes that whose title contains the word 'fetchtype' AND/OR the phrase'many to many' AND/OR a word that begins with 'cascade
By Tags: The tags search parameter will filter your search by tag. Only notes that are tagged with the selected tag(s) will be returned in the results. The tags search parameter selection list is populated with the list of ALL tags associated with this account.

If you get a 'NOT FOUND' error when trying to access a notebook or note with Spellbook, it usually means that the notebook or note you were trying to access was removed/deleted from your Evernote account outside of Spellbook (i.e. the notebook or note was deleted using the Evernote web client, or mobile app, etc.). The notebook tree for your Evernote account in Spellbook's UI IS NOT 'auto-synced' with the Evernote service. Manual 'sync' is required. Simply refresh the notebook tree or the notebook node to sync it with what data is currently in your account.

NOTE: this also applies to notebooks or notes that are created or updated outside of Spellbook.

The Evernote SDK/API used by Spellbook for integration with the Evernote web service implements a rate limit on third party apps and services to ensure optimal performance. Rate limits are applied against the API on a per user basis, meaning Spellbook usage by other users DOES NOT affect your specific account rate limit. The Spellbook codebase is written in such a way as to limit the amount of calls to Evernote's API as much as possible. If you do encounter this error, typically you just have to wait until the rate limit duration expires before attempting to execute another request against the API. Your wait time (rate limit duration) can be found in the rate limit error details.

Just generate a new access token for your Evernote account using our OAuth implementation and provide it to Spellbook.

OF COURSE NOT! When you add your Evernote account to Spellbook, the access token and unique account name you specified are stored in a local persistent storage associated with the JetBrains IDE you are using. You can quickly reload a previously added account from persistent storage by using the 'Load Account' action, (the folder icon) in the Spellbook tool window toolbar. If you no longer want the account in persistent storage, use the 'Remove Account' action, (the minus icon), in the Spellbook tool window toolbar.
Keep in mind, this storage is LOCAL, so the accounts stored on one computer will not be available across different computers. But you can create as many access tokens for the same Evernote account as needed for each computer you use if you'd like or you could always just copy the access token from one machine to the next...

There are 2 ways to close an open Evernote account tab in Spellbook:
  1. Right click the account tab and select 'Close Tab'. This is the most convenient way to close the account tab as it will close the open tab, BUT will keep the account info (i.e. the Evernote account access token and account name you originally specified) in a local persistent storage associated with the JetBrains IDE you are using. This allows you to easily re-open the account tab, using the 'Load Account' action (the folder icon) in the Spellbook tool window toolbar, without having to re-specify the Evernote account access token.
  2. Click the 'Remove Account' action, (the minus icon) in the Spellbook tool window toolbar and select the name of the open account tab that you wish to close. Closing the account tab in this manner will close the tab, BUT ALSO remove the account info (i.e. the Evernote access token and account name you originally specified) from the IDE's local persistent storage. If you want to re-open another tab containing this account data, you will need to specify the Evernote account access token again.

Spellbook Basic is the free, feature gated version of the Spellbook plugin. Although Spellbook Basic is free, it only offers a small subset of the complete functionality offered in the paid version of the Spellbook plugin. The main differences between Spellbook and Spellbook Basic are listed below:

Spellbook allows you to add new content and update existing content in your Evernote - Spellbook Basic DOES NOT...

If you'd like to be able add new notes/notebooks, or update existing notes/notebooks in your Evernote account(s) from your IDE, then buy Spellbook. When you buy Spellbook you'll be able to add new notebooks, update notebook names, add new notes (using Markdown or the built in Spellbook editor), update existing notes (using Markdown), and tag notes right from your IDE. Spellbook Basic only allows you to VIEW content in your Evernote account. You will not be able to add new notes or notebooks, tag notes, or update existing content in your Evernote account.


Spellbook provides advanced search filters for searching your Evernote - Spellbook Basic DOES NOT...

If you have lots of note content and need to be able to quickly find the notes you need, then buy Spellbook. When you buy Spellbook you'll be able to use advanced search filters, including the use of wildcards and phrases as well as full text search on note titles and note content. These advanced filters let you perform more complex searches on your accounts to narrow the search space and easily find the exact content you want when you need it.


Spellbook allows you to access multiple Evernote accounts simultaneously - Spellbook Basic DOES NOT...

If you have multiple Evernote accounts to stay organized, then buy Spellbook. When you buy Spellbook you'll be able to access ALL of your accounts simultaneously, even from multiple IDE instances! Spellbook Basic only allows you to access ONE Evernote account at any one time.

There is actually! Since your notes render in Spellbook as HTML, it is possible to customize the styling of how your notes appear when displayed in Spellbook's note viewer. You can modify the background colors, text colors, and fonts for the text elements in your notes. You can also choose a theme to use for syntax highlighting of code blocks. This feature can be useful for making your note content more easily readable, enabling dark mode for your note content, or simply just to add some flair to how your notes look in Spellbook!

To access Spellbook's UI settings go to: 'Preferences' -> 'Appearance & Behavior' -> 'Spellbook UI Settings'

You can select one of the 3 default options ('Spellbook Light', 'Spellbook Blue', or 'Spellbook Dark') or use the default options as a starter for your own customization. There are several options available for you to customize to your liking. The styling data is saved to local storage, so you don't have to worry about losing your custom settings unless you change them!

Clicking the 'Reset' button (top right corner after you've made a change to a UI setting), will reset the styles back to what they were before you made a settings change. To apply your changes simply click 'Apply' or 'OK' to see your selected styles rendered in the note viewer.

Spellbook allows you to create note content in multiple ways. One of those ways is by using Spellbook's built-in custom text editor. The built-in editor is useful for quickly jotting down plain text notes that don't require the complexities of Markdown syntax. It's also useful for quickly saving code snippets. The text editor provides bracket/parenthesis matching, code folding, and syntax highlighting for 40+ programming languages!

To begin, make sure to give your note a title and then click the 'Add Content Block' button. This will add a new text section to your note. The default selected section type is 'Plain Text'. Plain text sections are useful for adding context to your notes. You can also embed links in your notes using plain text sections by right clicking anywhere in the plain text section and choosing 'Insert Link'. This will allow you to specify the link URL as well as the link text that should display. Spellbook will add a custom 'link' tag to the note content for your link that will look something like this <link href="https://www.google.com"link>Google<link>. I know it looks weird, but it's best not to alter the basic structure of this tag otherwise your link may not save to Evernote properly. Changing the link URL or the link text in this tag is fine of course.

If you'd like to create a code block for your note, simply select the language for your code block from the language selection drop down. Once selected, you can add code to the code block. These code block sections feature syntax highlighting, code folding, and bracket/parenthesis matching to make adding code to these sections easier for you.

You can add as many content blocks as you'd like to your note. If you'd like to remove a content block, just click the 'Remove' button in the content block to delete that block from your draft note. Once you are finished adding content to your note, click the 'Create Note' button to save your new note to your Evernote!

Easy! Either right click a notebook and select the 'Create Note with Markdown' option from the context menu, or right click one of your notes and select the 'Update Note with Markdown' option from the context menu. When you select one of these options a Markdown file will open in the editor and will either contain the contents of an existing note (in the case of an update) or be a blank template for you to add your note content to (in the case of a create). Don't worry, the Markdown file is 'in-memory' only and will not affect your current project whatsoever. The toolbar at the top of the file editor contains all the normal buttons you'd expect for editing Markdown files in your IDE. The last button on the left side toolbar is the 'Save Note to Evernote' button, which will save your Markdown as a note in Evernote.

Spellbook supports basic Markdown syntax and some Github flavored Markdown as well. You can embed inline images and links, and add block quotes, lists, code blocks, task lists, tables and other rich content to your notes using simple Markdown syntax. Not all Github flavored Markdown syntax has been tested in Spellbook, so you may encounter issues when using advanced Github flavored Markdown syntax. If you'd like Spellbook to support something specific that isn't currently supported properly, feel free to create an issue and I'll look into adding it 😉!

Creating new notes using Markdown:
When you create a new note with Markdown, a new empty Markdown file will open in the editor for you to add your note content to. The empty Markdown file will contain a YAML front matter block that SHOULD NOT BE REMOVED. This block allows you to enter a title for your note and also allows you to specify tags for your note. You don't have to add any tags to your note if you don't want to, but you definitely will need to give your note a title in order to save it to Evernote. The tags block is a simple YAML list of strings, so to add a tag to your note, just add your tag name after the '-' character. Additional tags can be added by adding another '-' character on a new line after the last '-' character and then add your tag name to it.

Updating existing notes using Markdown:
When you update an existing note with Markdown, a new Markdown file will open in the editor and will contain the contents of the existing note for you to edit. The image media attached to your notes may look a little strange, but just know that Spellbook is keeping track of the media attachments of your note. So if you remove an image or add a new image to your note, Spellbook will be able to handle it appropriately. You can read more about why image media attached to your note looks like a link here.

[Spellbook Markdown Plugin] Spellbook relies on the Markdown plugin developed by JetBrains to provide the capability to create or update notes with Markdown. The Markdown plugin is typically pre-installed and bundled in your IDE and enabled by default when you install your IDE. But there are other Markdown plugins that can be installed and used to provide Markdown capabilities in JetBrains IDEs (Markdown Navigator, etc.). Unfortunately, currently Spellbook is only configured to work with the bundled Markdown plugin developed by JetBrains.

When you right click a notebook in Spellbook, you should see the option - 'Create Note with Markdown' - in the context menu. You should also see the option - 'Update Note with Markdown' - when you right click a note in Spellbook. If you don't see these options, it means that you do not have the Markdown plugin that was developed by JetBrains installed and/or enabled in your IDE. You can fix this by installing and/or enabling the Markdown plugin in your IDE.

[Spellbook Markdown Image Link] When you create a note using Markdown and include images in the note (either from your local computer or a remote image), the included media gets saved as media resources on Evernote's servers. When Spellbook fetches your note from Evernote to open it in the Markdown editor for editing, those media resources need to be converted into a form that can be properly displayed as Markdown syntax. Unfortunately, typical Markdown inline image syntax does not work properly, as Evernote requires login in order to view the media attached to your notes using the media attachment URL that is included in the fetched note. The best workaround that gives the most flexibility for proper display in the Markdown editor is to use standard Markdown links that reference the media attachment URL. Spellbook uses custom logic against these links to manage image media attachments in your note.

When you are updating a note using the Markdown editor, if you would like to remove an image attachment from your note, just delete the link to the media attachment from your note in the editor and click the 'Save to Evernote' button. Spellbook will recognize that the link has been removed and will do the work using the Evernote API to remove the attachment from your note.

To add new image attachments to your note, just use the standard Markdown inline image syntax to add the image attachment and click the 'Save to Evernote' button in the Markdown editor toolbar.

Currently the only types of media that Spellbook can truly embed in your notes with Markdown are image media types (png, jpg, jpeg, gif, etc.). You can of course link to any other type of media attachment and the link will translate to your note without issue. For example, you can use standard Markdown syntax for a URL link to create a link to a PDF document in your note.

Spellbook's note viewer uses the Java Chromium Embedded Framework (JCEF) to render notes as HTML. JCEF provides many advantages over the standard Java Swing based components used in older versions of Spellbook to render notes including the ability to render modern HTML and CSS.

JetBrains IDE build versions 202.* and greater use a JetBrains runtime that includes JCEF by default. Typically JCEF is also enabled by default, but if Spellbook detects that it is not enabled, when you try to open a note you will receive an error stating that JCEF needs to be enabled.

To enable JCEF in your IDE so that Spellbook can render your notes:
  1. Click 'Tools' in the menu bar
  2. Click 'Internal Actions'
  3. Click 'Registry...'
  4. Click the checkbox next to 'ide.browser.jcef.enabled' to enable JCEF
  5. Restart your IDE to accept the registry change
Spellbook's JCEF based note viewer provides a much more pleasant experience for viewing your notes, but if for some reason you don't want to enable JCEF in your IDE, you can use an older version of Spellbook. Spellbook versions 2020.3.1 and older do not require JCEF to be enabled. So you can download one of the older versions from here and install it in your IDE if JCEF isn't your thing....but I think you should use it 😉!

[Spellbook User Settings] Yep! There are a few user settings that Spellbook provides that allow you to specify how Spellbook works for you! For example, you can specify whether or not Spellbook automatically scales down large image attachments for display in notes.

To get to Spellbook's user settings: click Preferences -> Tools -> Spellbook User Settings.

[Spellbook User Settings] There are 2 ways that you can open one of your notes in Evernote's web application if you so desire:
  1. Simply right click one of your notes in the note tree and you should see an option in the context menu to open the selected note in the browser. Clicking the 'Open Note in Browser' option should popup a browser window and navigate to your note in Evernote's web application.
  2. You can also enable the option to open a note in the browser if you double click the note in the note tree. This option can be specified in Spellbook's user settings. Once enabled, simply double clicking a note in the note tree will be enough to popup your note in Evernote's web application.
NOTE: You may need to login to Evernote before you can view the note in the web application.