Pls split modules to dependency npm packages

  • JoplinStorage(abstract)
  • JoplinSync(abstract)
  • JoplinServer(abstract)

It makes more sense to separate them from Joplin.

Such as, I do prefer to use file system instead of the database to store markdown
which means more readable, clearer file structure to maintain. I can use the smart slug of title as the file name. and put attachments of the file in the same folder. I can even use front-matter to save tag and category etc information in the markdown file. The only data left in the database is the index, file size, and hash value of the accelerated operation which could be rebuild from the files.

JoplinSync could be many implementations too. Such as use the git as the sync way. It can split the sync to pull(download) and push(upload). Most import thing it should can diff the files really and report conflicts accurately.