Skip to content
This repository has been archived by the owner on Jan 12, 2023. It is now read-only.
/ atom-notes Public archive

Embedded Notational Velocity-like features for Atom

License

Notifications You must be signed in to change notification settings

lexicalunit/atom-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

๐Ÿ›

Shin

๐Ÿ›

Benjamin Melanรงon

๐Ÿ›

Orlando Schwery

๐Ÿ›

aubreyz

๐Ÿ’ฌ

Ashley

๐Ÿ›

anthrolisp

๐Ÿค”

LJ Sinclair

๐Ÿค”

John Kamenik

๐Ÿค”

Aaron S. Wolf

๐Ÿ›

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