Permalink
Fetching contributors…
Cannot retrieve contributors at this time
139 lines (99 sloc) 4.83 KB

Notable

Go Report Card GitHub release Build Status License codecov

A very simple note taking application. It has no dependencies and ships as a static binary.

You can view recent changes in the changelog.

Features

  • Secure: Everything is local to your computer
  • Private: Each note can be encrypted
  • Search as you type (tag, tag prefix, and full text index)
  • Standalone: You can use it on an airplane
  • Keyboard friendly
  • Cross platform:
    • Linux (amd64, arm6, arm7)
    • MacOS
    • FreeBSD
    • Windows (experimental)
  • Distributed writes (experimental)
  • Autosave (note specific)

Installation

Linux, FreeBSD, MacOS, Windows

Download and extract the latest release version. The zip file contains an executable named notable. The MacOS version also includes an app bundle.

Compile from source (using latest dependencies)

go get -u github.com/jmcfarlane/notable
notable

Understanding the build

Notable uses GNU Make and shell scripts for it's build. You can get some detail on what the build supports by it's help target:

make help

Compile from source (using known good dependencies)

go get -u -d github.com/jmcfarlane/notable
cd $GOPATH/github.com/jmcfarlane/notable
make test vet
make
./notable

Run via a rkt container

Download the latest .aci from the release page. Then run it:

sudo rkt run --insecure-options=image --net=host --volume data,kind=host,source=$HOME/.notable \
    --mount volume=data,target=/root/.notable notable-v0.0.7.linux-amd64.aci

Run via a Docker container

docker run -p 8080:8080 -d -v ~/.notable:/root/.notable jmcfarlane/notable:latest

Build the Docker container and run it locally (ephemeral notes)

make docker-runnable
make docker-run

Screenshots

Keyboard shortcuts

Help can be invoked by the ? key (when the note content is not focused).

Notes can be encrypted individually

Search via tag, tag prefix, and full text index

Visual indication of unsaved changes

Edit content

Open multiple notes via tabs

Third party software

Project Reason for use
Ace Editor
Backbone.js Javascript framework
Bleve Full text search
BoltDB Datastore
Bootstrap User interface
errors Golang error primatives
go-homedir Home directory detection
Golang Business logic
httprouter Mux
jQuery Dom manipulation
logrus Golang logging
Mousetrap Keyboard bindings
Require.js Dependency management
text plugin Text templates
Underscore.js Client side templating
uuid UUID implementation