Using VSCode + Joplin as a note taking tool

Tags: tooling
Published: 2021-01-10 12:17:24

> [joplin](https://joplinapp.org/), [joplin-vscode-plugin](https://marketplace.visualstudio.com/items?itemName=rxliuli.joplin- vscode-plugin)

## Why I use Joplin

> Note: Open source, platform independent and markdown based easy to migrate this is an important point because no one knows which note taking tool is the ultimate winner, if not the right one, then at least easy to migrate.

I have used some note-taking tools, including Impression, OneNote, Notion, but eventually gave up.
The key is that some of my core needs are not met:

1. the search should be fast
2. the editor experience should be good
3. data should be able to export all
4. based on the standard md, can be directly copied to other platforms
5. can be based on it for secondary development
6. not dead yet

Let's take a closer look at the features of the above tools

Impression Notes

Well, there is an international/domestic version of Impression Notes, but the domestic version is obviously a typical example of receiving money for not doing the right thing, and nothing has changed for a long time. Also, markdown support is not official, but requires a third-party plugin (it seems to be supported after the late 18 update). And recently [Impression Notes also grabbed the domestic notion's image trademark](https://www.zhihu.com/question/343856067), really can be said to be a unique domestic **spectacle** up.

OneNote

Honestly, if you're used to using Office to organize documents, OneNote is still very good, the editing experience is consistent with Word, and the search is extremely fast. But unfortunately, I am a firm **everything is markdown based** person, so I don't like OneNote.

Notion

Notion is one of the more satisfying note taking tools I've encountered so far, but there are 3 main things I'm not too happy about.

1. the editor is rather stuck
2. the search is very slow
3. can't export all data

> Specific reference: [Notion experience](https://blog.rxliuli.com/p/fecb9995/)

Joplin, on the other hand, is a note taking tool that I can solve the above problems of notion, while open source and free, allowing me to participate in it.

Main advantages.

1. search is fast, very fast
2. can be opened using an external editor
3. data are in their own hands , providing a one-time export of all the functions
4. using the standard md, can be copied directly to other platforms
5. can be based on it for secondary development

Main disadvantages.

1. ui/ux is a bit rudimentary
2. no vsc plug-in makes it not very convenient to use external editors

## Why I have to write this plug-in for vscode

1. as a professional editor in the editing function vscode is unmatched by the notes tool. For example, shortcut key support
2. vscode is not only an editor, but also has a very large ecosystem of plugins, so in markdown formatting, linter verification, pdf export and other features have long been implemented, no need to repeat the wheel in the notes tool to build -- and may be the square wheel
In fact, I've been using vscode for markdown editing, and git + vscode for storing company-related documents. I've also been using joplin to store my personal notes, but I've realized over time that what I need is vscode's editing + joplin's sync/search functionality.

So I wrote this plugin for people who have the same needs as me.

> Reference: [Future of Joplin](https://discourse.joplinapp.org/t/future-of-joplin/11306)

## Introduction

Integrate joplin in VSCode and implement the common features of Joplin.

! [Preview image](https://cdn.jsdelivr.net/gh/rxliuli/img-bed/20200623085740.png)

## Plugins

First a short list of my note taking related plugins, they all implement a specific feature and can be combined.

- [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one): Markdown language support
- [markdown lint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint): Markdown linter tool
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode): multi-language formatting tool, very good support for markdown
- [PicGo](https://marketplace.visualstudio.com/items?itemName=Spades.vs-picgo): image upload (this is a third-party program)
- [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf): Markdown export PDF
- [Draw.io Integration](https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio): draw.io Flowchart Integration
  - [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid): mermaid flowchart support DSL, but draw.io is better
- [vscode-mindmap](https://marketplace.visualstudio.com/items?itemName=eightHundreds.vscode-mindmap): mind map integration (this is the fork version, but it's much better)
- [Local History](https://marketplace.visualstudio.com/items?itemName=xyz.local-history): local history
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker): Word spell checker
- [joplin-vscode-plugin](https://marketplace.visualstudio.com/items?itemName=rxliuli.joplin-vscode-plugin): joplin notes integration

> You may notice that some of these plugins have nothing to do with markdown, but they are still important for editing, for example the spell checking feature only recently (v1.4.\*) implemented in Joplin already exists in existing VSCode plugins.

These plugins solve the problems my generation also submitted in [joplin vs. vscode-like editors differences](https://discourse.joplinapp.org/t/future-of-joplin/11306/45?u=rxliuli), so I won't go into them here.

## Problems solved

I've briefly browsed the last two weeks of Joplin posts, and the following problems seem to have been solved/implemented in VSCode

- [Please add an easy to access markdowns](https://discourse.joplinapp.org/t/please-add-an-easy-to-access-markdowns/12688): Quickly add lists
- [Markdown keyboard shortcuts](https://discourse.joplinapp.org/t/markdown-keyboard-shortcuts/12668): markdown shortcut support
- [Duplicate line command](https://discourse.joplinapp.org/t/duplicate-line-command/12650): Copy and paste to the next line
- [Please auto replace to Bullet/Number/Checkbox list](https://discourse.joplinapp.org/t/please-auto-replace-to-bullet-number- checkbox-list/12319): Again, add the list quickly
- [Auto attach images as resources after external editor](https://discourse.joplinapp.org/t/auto-attach-images-as-resources-after- external-editor/3121): Paste images after external editor supports Joplin
- [Integration of PlantUML](https://discourse.joplinapp.org/t/integration-of-plantuml/11029): PlantUML integration
- [Find and Replace](https://discourse.joplinapp.org/t/find-and-replace/7283): Find and Replace support
- [Making Joplin recognise YAML front matter](https://discourse.joplinapp.org/t/making-joplin-recognise-yaml-front-matter/12868): markdown yaml metadata support
- [Plugin: Note Tabs](https://discourse.joplinapp.org/t/plugin-note-tabs/12752): Multi-tab support
- [Option to show line numbers in editor](https://discourse.joplinapp.org/t/option-to-show-line-numbers-in-editor/8313): Show line numbers
- [Incomplete TOC sidebar](https://discourse.joplinapp.org/t/incomplete-toc-sidebar/10458): outline support
- [Feature request: Folding sections of text](https://discourse.joplinapp.org/t/feature-request-folding-sections-of-text/5752): code Block Folding

## Effects

Finally, the configured VSCode editor edits Markdown as follows

![Edit effect](https://img.rxliuli.com/20181201165338.png)