On PC: Unzip the file localnotes_win.zip. Put the application file localnotes.exe anywhere you like, but C:\Users\username\localnotes is strongly suggested. You might like to create a Shortcut to this file and place it either on your Desktop or the Windows Taskbar.
On Mac: Unzip the file localnotes_mac.zip. Drag the application file localnotes.app to your Applications folder.
It is recommended to start the Localnotes program upon starting the computer. Consult your specific system's documentation for guidance.
Upon running the application (localnotes.exe on PC, localnotes.app on Mac), the application icon will appear in the task tray (lower right PC, upper right Mac). Right clicking the icon opens a menu with two options, Open and Close.
"Open" will open the application in either a new or existing browser window. You might want to set this as your browser home page, or create a link in your bookmarks bar.
"Close" will exit the application. To continue using Localnotes, you will need to re-run the application.
You can open Localnotes using either the "Open" menu option on the Task Tray or you can navigate to it in your browser. Go to http://localhost:8000.
Note that, even though the application runs in your web browser, it is not on the web; the entire Localnotes software runs on your own computer. If you're not familiar with it, the name "localhost" refers to your own computer -- and is the inspiration behind the name of the software.
By default, Localnotes runs on port 8000. You can change this in the config.
The Localnotes screen contains several areas of interest:
DEFAULT_NN item in the config), and the list can be sorted ascending or descending by creation time (default), last edit time, or (if searching) relevance.Clicking the "New Note" link in the dark header will create a new note. See Editing Notes.
The editor is just one big simple text box.
There are a few important links and buttons above/below the text box:
At the top of the note itself, there is a section for adding tags and attendees (so named as this is a good place to put the names of people attending a meeting) that looks like <!-- tags: --> and <!-- attendees: -->. See Tagging Notes and People for more on how to use these sections, but they should not be removed.
There is also a title -- on a new note it says # (untitled). The pound sign and space must be the first two characters of that line (it is a Markdown top-level heading, and the first such heading in the document is the one Localnotes uses as the note's title). For example, for a note entitled, "My Important Note" the line should look like: # My Important Note.
Markdown is a popular, lightweight markup language (syntax) for formatting documents. It supports *bold* and _italic_ text, urls, tables, lists, and more, yet remains easy to read in its raw format.
There are several guides to writing Markdown, including its Wikipedia entry and this authoritative guide on commonmark.org. Localnotes aims to support all of these capabilities, but as Markdown implementations vary, it might not be perfect beyond the basics.
Localnotes supports a few things that are not part of Markdown. This includes inserting tags (e.g. #tag), linking to people (e.g. @john_doe), linking to other notes by ID (e.g. note:1234567), and embedding images by number (e.g. <1>). See the following sections for details.
Tags are a great way to organize and categorize your notes. Adding a #hashtag (with a #) or a @people_tag (with a @) to a note, you'll be able to filter your notes by that tag on that main/list view (see Layout). This is useful for organizing notes by topic, project, or who is involved or attended a meeting, if you're taking meeting notes. For example, if you were taking notes in a meeting about "foo" and John Doe attended, you might include the following at the top of your note:
<!-- tags: #foo -->
<!-- attendees: @john_doe -->
Tags and people tags can occur either in this header or anywhere in the note, and are mostly treated the same for filtering and navigational purposes, except for a few special cases (see Exclusive Filters and Taglines).
Typing @ in the edit window will bring up the name search panel above the edit window. You can choose from an existing people tag in the dropdown, or enter a new one.
All hashtags must start with # and all people tags must start with @. They can contain any character except whitespace and the # or @ characters.
Linking notes to one another is another useful way of keeping track of multiple notes related to the same topic, idea, project, etc. They work just like links between web pages.
The syntax for linking notes is not part of Markdown, but rather is a special syntax for Localnotes. To embed a link to another note, you need the ID of that note (which can be found in the URL for that note). To link to another note with ID 123456, write note:123456. In reading mode, this will render as a hyperlink to that note, with the title of the note as the link text.
ctrl+. (control and period) while the cursor is in the editing window. The note search pane will appear to the right, and enables searching by title only. Click on a title to add a link to that note to the current note.
When a note is linked to by another note, the link back will be shown when reading that note, in the "What Links Here" column to the right of the note. In this way, note links can be traversed in both directions.
Conventional Markdown hyperlinks are supported too, like: [Example](http://www.example.com). But this is not only not necessary for linking from one note to another, but also would not include a backlink.
Localnotes supports uploading images (png only) and embedding them in notes. Above the editing window are links to show (and hide) the image pane. This brings up the upload interface.
Images uploaded to a note do not need to be embedded in the document. Any images uploaded to a note will be shown in reading mode in the "Images" column to the right of the note body.
Embedding images in Localnotes works a bit differently than conventionally embedding external images in Markdown (though that is supported too). To embed an image in a note, include the image's number in angle brackets. For example, to embed image 1 in the note, add: <1>. Then the image will render at that position in the document, as well as in the "Images" column to the right. Click on an image thumbnail to open it full-size in another tab.
By default, when editing notes, they will auto-save every 15 seconds.
Both whether or not autosave is on, and the time interval, are configurable:
"AUTOSAVE": false or "AUTOSAVE": true."AUTOSAVE_SECONDS": 15.As a reminder, it's a good practice to back up your config file before making changes to it.
Autosave can be turned on or off while editing a note by toggling the checkbox above the editing window.
As described above (see Organizing Your Notes with Hashtags and People Tags), tagging is a useful tool for organizing your notes. A filter string like #foo #bar @moe_howard will return all notes with the tags #foo and #bar and the people tag @moe_howard
Filters are a logical AND. That is, if two tags are in the filter string, only notes containing both of those tags will be returned. The more items in the filter string, the more restrictive that filter is.
When filtering by tag, the filter @moe_howard will return all notes where Moe Howard is an attendee, even if Larry Fine and Curly Howard were in attendance too. So it would match the document with a header like <!-- attendees: @moe_howard @curly_howard @larry_fine -->.
However, consider the situation where you want the notes where only Moe was in attendance, and nobody else. In this case, add a plus sign before the people tag in the filter, like this: +@moe_howard. Then the filter result will not include the example above where Moe, Larry and Curly were in attendance.
Similarly, if you wanted the notes where Moe and Larry were present but not Curly, then filter for +@moe_howard +@larry_fine.
This is one case in which header tags and body tags work differently. An exclusive filter will not match a document where a tag is in the body, only in the header.
Exclusive filters work the same way for #hashtags. Exclusive filters for people tags and regular tags work independently and do not affect one another.
The search box on the main/list page supports full-text, case-insensitive, keyword search. Search results are ranked by relevance.
Searching and filtering can be used at the same time. The search results will only include those items that also match the filter.
Taglines are a navigational method unique to Localnotes, and are another way tags in the note header are treated differently from tags in the note body.
The taglines for a given tag are all the lines of text in each note where that tag appears.
Among the potential use cases for this capability is tracking to-dos. For example, one note might say:
Send @bob_smith the revised document #todo
And another note might say:
* #todo pay the electric bill
The taglines page for the tag #todo would show both of those lines.
To get to a tag's taglines page from the main/list page, mouse over a tag in the "All Tags" list and the TL link will appear. Clicking that link will bring you to the taglines for that tag.
Click the "Config" link on the right side of the top navigation bar to see your current configuration.
In addition to the current configuration, it will show the location of the config file, which can be edited to change those settings, and the current version of Localnotes you are running.
You should never need to do this, but rare cases the index can become corrupted (possibly when writing to a shared drive or Dropbox on a poor internet connection). In such a circumstance, the main/list screen may erroneously show your project as containing 0 notes.
Should this happen, there is no risk of data loss. As noted in the FAQ, there is no information in the index that isn't derived from the notes themselves.
Click the "Reindex" link and the index will be rebuilt, returning the application to a functioning state.
On the main/list page, there is a link that says "export this result set" which will export to a plain html file all the notes currently listed (e.g. as the result of a search/filter operation).
The html file will be written to your project directory with a filename containing the current timestamp, and a message will show the number of notes written, and the full path to the file, e.g. 5 notes written to C:\Users\username\notes\all_notes\notes_export_20240120162442.html
Creating multiple projects is not supported in the UI, and is not something most people are likely to do. One use case for having multiple projects is if some collection of notes needs to be private to the individual user, and another collection of notes needs to be shared with other people (via the Dropbox method, a shared drive, etc.).
If one does have multiple projects, then the dropdown menu on the right side of the top navigation bar will enable switching between them.
To create multiple projects, you need to edit the config file. In the section called "PROJECT_LIST", add a new item that looks like this:
{"PROJECT_NAME": "my_notes", "PROJECT_PATH": "C:\\Users\\username\\localnotes\\my_notes"}
replacing the project name with a unique name, and the project path with the appropriate path. Note that the entry needs to be enclosed in {} as shown here, and needs to be in a comma-separated list with any other project entries within the square brackets []. As always, make a backup of your config file before editing it.
Please report bugs and issues to localnotes at redlog dot net, or on the Discord.