Embedded Notational Velocity-like features for Atom
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci
lib
menus
notebook
spec
styles
.all-contributorsrc
.eslintrc.js
.gitignore
.nvatom-all-contributorsrc
.travis.yml
LICENSE.md
README.md
appveyor.yml
package-lock.json
package.json

README.md

Atom Notes

apm package mit code-style
travis-ci appveyor circle-ci david
download All Contributors nvatom Contributors

This package is a fork and rewrite of the now unpublished package nvatom. The general idea behind this package is to provide an embedded Notational Velocity-like note-taking feature for Atom users. This package is NOT affiliated with Notational Velocity.

screencast

🗒️ Features

Notational Velocity is an application that stores and retrieves notes. This package provides some similar features embedded directly in your Atom editor.

Note: For interlink syntax highlighting, please install language-atom-notes.

Embedding these features in Atom provides the following advantages.

  • Use Atom's Features - Such as Syntax Highlighting and Tree View.
  • Use Other Packages - Such as Markdown Preview and Minimap.
  • Multi-OS - You can use it in macOS, Linux, and Windows.

With no new updates to Notational Velocity in years, some users are searching for alternatives with more features. For example Evernote. We do not believe Evernote is a good alternative to Notational Velocity. Advantages over Evernote are:

  • Open Source - Uses the MIT license.
  • No Rich Text - Instead, you get to use Markdown!
  • Sync Wherever You Want - You can save notes locally, in Dropbox, or in Google Drive.

Other solutions such as nvALT are stand-alone applications which don't have the same synergy with Atom as Atom Notes provides.

☁️ Synchronization / Cloud Storage

Most users prefer to have access to their notes from multiple computers. This is not a feature of Atom Notes per se. Instead, please use your favorite synchronization and/or cloud storage solution in conjunction with Atom Notes. For example, if you store your notes in a directory managed by Dropbox, then you will have all your notes available to you on any machine you wish 🎉

⌨️ Keybindings

This package does not by default provide any keyboard command shortcuts. There's no way to know what keyboard shortcuts are even available on your machine. For example, on my machine I could map the Toggle command to shift-cmd-j. However if you have the popular atom-script package installed on your machine, then there would be a conflict because that package also wants to use that same keyboard shortcut. However, all is not lost!

Atom itself already provides you with everything you need to create your own custom keymaps. For example, the following keymap.cson would add a shortcut for the atom-notes Toggle command:

'atom-text-editor':
  'shift-cmd-j': 'atom-notes:toggle'

Provided Commands

Map any of the following commands to your own keyboard shortcuts as described above.

  • atom-notes:toggle: Toggle the search box.
  • atom-notes:toggle-preview: Toggle the search box, and automatically open Markdown files in preview.
  • atom-notes:interlink: Jumps to referred note when the cursor is on an [[interlink]].

💥 Triggering from outside Atom

To add Atom Notes to the Apple Services menu and set a keyboard shortcut for use outside Atom use this Apple service. Then use your configured shortcut — see the section on Keybindings, above, for details on configuring a shortcut inside Atom — from inside or outside Atom to toggle the notes view.

Alternatively in macOS and Windows the URL atom://atom-notes/toggle will toggle the notes view. The command will operate in the front-most or most recently active window or open a new one. It will start Atom if necessary. There are many ways to automate this. For example, in macOS:

⚠️ Incompatible Package Error

In versions prior to 1.16.0, a dependency of Atom Notes used a native module that required compilation for each specific version of Atom. This would cause errors whenever Atom updated from one version to the next. You'd know this had occurred when:

  1. Atom Notes stopped working!
  2. You saw a small icon of a red bug in your status bar: bug-icon

If you're on an old version, and see that, click on it and it will take you to the Incompatible Packages settings in Atom. You can also bring it up by running the command Incompatible Packages: View from your Atom Command Palette. You will see something like the following, depending on your current Atom themes.

Incompatible Packages

All you need to do is click the Rebuild Packages button. If that doesn't work, please report the issue so I can investigate.

🔮 Future Work

This package is in active development and I'm willing to review your pull requests and triage any issues you're having. Please report your issues!

If you'd like to take a stab at improving this package, please check out the following list of possible improvements.

  • Fix broken spec tests that fail because the test runner can't do async.
  • Build a notes server to offload processing from the Atom editor.
  • A better screencast animated gif.
  • Any improvements to package activation time are welcome.
  • Speed and usability improvements are also always welcome.
  • Write more spec tests!
  • Does it make sense to utilize etch somehow?
  • Replace chokidar usage with Atom's new File Watch API.
  • Rip out DocQuery and use search-index directly.
  • When DocQuery match returns nothing, fallback to fuzzaldrin-plus.
  • Use async to ensure the notes directory exists in the background.
  • Start loading documents in background at package activation time.
  • Refactor autocomplete to be less hacky — add support to atom-select-list?

💖 Contributors

Thanks goes to these wonderful people (emoji key):


Amy Troschinetz

💻 📖 🐛

Seongjae Lee

💻 📖 🐛

Jonathan Hoyt

🐛 💻

Philip Hodder

🐛

A. Lloyd Flanagan

🐛

webdev-skynet

🐛

lakonis

🐛

Mike Clark

🐛

Sebastian Daza

🐛

Alejandro Avilés

🐛

Max Shenfield

🐛

Rob

🐛

Niels-Oliver Walkowski

🐛

Peter

💻

Yaniv Gilad

🐛

jmroland

🐛

jonszcz

🐛

Matt Petty

💻

Rob Walton

💻 🐛 📖

tthkbw

🐛

Samuel Boczek

💻

Richard

🐛

MaxPower9

🐛

Gabriel Birke

🐛

raysewell

🐛

memeplex

🐛

Jason West

🐛

Phil

🐛

Contributors to nvatom


Seongjae Lee

💻 📖 🐛

Jonathan Hoyt

🐛 💻

Deleted user

🐛 💻 📖

Denys Buzhor

💻

Nikita Litvin

💻

Amy Troschinetz

💻 📖 🐛

Max Brunsfeld

🐛

Zachary Schneirov

🐛

ChangZhuo Chen (陳昌倬)

🐛

MaxPower9

🐛

ashcomco

🐛

Tim Wisniewski

🐛

sseth

🐛

johjeff

🐛

kafkapre

🐛

taw00

🐛

Mason

🐛

lakonis

🐛

artyhedgehog

🐛

Nabil Kashyap

🐛

Jonathan Reeve

🐛

Christian Tietze

🐛

benoitdepaire

🐛

mo-tom

🐛

Jesse J. Anderson

🐛

Garth Kidd

📖 🐛

PixelT

🐛

Kris

🐛

John Kamenik

🐛

Rob

🐛

Hendrik Buschmeier

🐛

Alexandre Viau

🐛

brook shelley

🐛

Daniel Iwan

🐛

Christopher Jones

🐛

Xiaoxing Hu

🐛

Aaron Strick

🐛

OrcsBR

🐛

Zettt

🐛

Jason Rudolph

🐛

Ben Guo

🐛

zettler

🐛

Richard Shaw

🐛

Aleksandar Kovač

🐛

Ben Balter

🐛

marek95

🐛

Andrew Ewing

🐛

juranta

🐛

wolfromm

🐛

Brandon Horst

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!


MIT © lexicalunit, seongjaelee et al