Use Joplin's Web Clipper API to view multiple notes at once
Go to file
John Bintz a6be8d9bc0 update changelog 2022-02-22 21:54:56 -05:00
client update changelog 2022-02-22 21:54:56 -05:00
server Syntax highlighting, reload all notes at once 2022-02-22 21:53:52 -05:00
.gitignore Syntax highlighting, reload all notes at once 2022-02-22 21:53:52 -05:00
CHANGELOG update changelog 2022-02-22 21:54:56 -05:00
LICENSE initial commit 2022-02-21 13:04:18 -05:00
README.md Syntax highlighting, reload all notes at once 2022-02-22 21:53:52 -05:00
VERSION initial commit 2022-02-21 13:04:18 -05:00
build.sh initial commit 2022-02-21 13:04:18 -05:00
config.yml.example initial commit 2022-02-21 13:04:18 -05:00
dev-setup.sh initial commit 2022-02-21 13:04:18 -05:00

README.md

Joplin Multi-Note Viewer

Use Joplin's Data API to view and browse multiple notes at once. Supports title and body search and internal links, as well as dragging and dropping notes to rearrange them in your view.

Visible note IDs are put into the URL as you go, so if you want to return to a particular note set, bookmark the generated URL.

Installing

  • Enable the Web Clipper service in Joplin (Tools > Options > Web Clipper > Enable the clipper service).
  • Download the latest release binary for your platform.
  • Download the sample config.yml file from Releases. Then edit it and fill in the following information:
joplin:
  api_key: <the authorization token from Tools > Options > Web Clipper > Advanced Options>
  url: http://localhost:41184

Running

Using

  • The search box can be refocused and brought into view by hitting s.
  • You can use the up and down arrow keys to navigate autocomplete results, and [Enter] to open a result.
  • Open notes can be rearranged by dragging and dropping.
  • Close a note with the Close button.
  • Notes will reload every few seconds so if you make changes in Joplin, they'll be reflected in the viewer.

Contributing

This is a hobby project for me to learn Vue 3 and Go and to be able to use my interlinked notes better, so if I fix a bug, it'll either be because it's directly affecting me, it's easy to fix, or it's interesting. Pull requests are preferred over issues if you have the skill, but even if you don't, someone else might!

Developing

I built this using Go 1.18 and Node 16.

  • Run dev-setup.sh. This will make a build of the Vue app and put its dist folder into server. This is so go:embed works.
  • Start the server with go run ..
  • Start the client with npm run dev. It will proxy API requests to a locally running server so the embedded client files will be overridden by the files Vite produces.

Add tests if you want. I may get around to it eventually.

Building & Releasing

  • Bump the version. This project uses semantic versioning as best as possible.
  • Update the changelog with details on the changes. It uses the Keep a Changelog format.
  • Run build.sh. It will create the different platform binaries in build as well as a config.yml sample.

Other stuff

This app uses a custom build of Prism for syntax highlighting. It includes every language that Prism supports as of Feb 2022.

License

MIT License