Compare commits

...

14 Commits
0.0.6 ... 0.1.7

Author SHA1 Message Date
vorotamoroz
ccbf1b2ffe fix some,
- Add Utility functions.
- Database reset opeartion and corrupt preventions.
- Fixing file deleting.
- Tidy up setting dialog.
- Add notice about the file that having platform dependant name.
- Add webclip on readme
2021-10-26 18:08:01 +09:00
vorotamoroz
a01079d4b1 add the information of Test Server and WebClipper 2021-10-25 11:37:51 +09:00
vorotamoroz
1d71870fa3 Add 1 Feature and Refactored some
- Add Remote Database version check.
- Removed Depencency from Database Class.
2021-10-21 18:48:42 +09:00
vorotamoroz
0587a52d22 bumped. 2021-10-20 23:04:04 +09:00
vorotamoroz
6c37f7bb05 Fix careless mistake 2021-10-20 23:03:07 +09:00
vorotamoroz
d746c1cb52 Fixed parameter mistake.
Getting ready for webclip
2021-10-20 18:43:53 +09:00
vorotamoroz
39e2eab023 Fixing issues and tidy up the setting dialog.
Fixed timing problem of synchronization note and contents.
Tidy up the setting dialog.
Add Escape hatch
2021-10-19 17:53:54 +09:00
vrtmrz
20bdf057fe add very very important notice.
and digging weeds.
2021-10-18 16:18:55 +09:00
vrtmrz
531fb97cd9 fixed some sync, merging errors and speed up. 2021-10-18 15:07:44 +09:00
vrtmrz
518ae46cf9 chunk splitting method changed
less change sensitivity
2021-10-17 22:10:03 +09:00
vrtmrz
57187a0926 fixed some base on awsome advices.
- do not show too frequent message.
- fixing code mistake
2021-10-17 11:06:25 +09:00
vrtmrz
f3f0639d95 database dedup implemented. 2021-10-15 17:58:42 +09:00
vorotamoroz
531cf0d8a4 add 2021-10-15 12:42:25 +09:00
vrtmrz
e4f62cefb9 first replication error fixed and minor some fixed 2021-10-15 12:30:06 +09:00
9 changed files with 1444 additions and 3738 deletions

13
.gitignore vendored
View File

@@ -1 +1,14 @@
# Intellij
*.iml
.idea
# npm
node_modules
package-lock.json
# build
main.js
*.js.map
# obsidian
data.json

View File

@@ -1,31 +1,62 @@
# obsidian-livesync
This is the obsidian plugin that enables livesync between multi terminals.
This is the obsidian plugin that enables livesync between multi-devices.
Runs in Mac, Android, Windows, and iOS.
<!-- <div><video controls src="https://user-images.githubusercontent.com/45774780/137352386-a274736d-a38b-4069-ac41-759c73e36a23.mp4" muted="false"></video></div> -->
![obsidian_live_sync_demo](https://user-images.githubusercontent.com/45774780/137355323-f57a8b09-abf2-4501-836c-8cb7d2ff24a3.gif)
**It's beta. Please make sure to back your vault up!**
**It's beta. Please make sure back your vault up!**
Limitations: File deletion handling is not completed.
Limitations: Folder deletion handling is not completed.
## This plugin enables..
- Live sync
- Live Sync
- Self-Hosted data synchronization with conflict detection and resolving in Obsidian.
- Off-line sync is also available.
- Receive WebClip from [obsidian-livesync-webclip](https://chrome.google.com/webstore/detail/obsidian-livesync-webclip/jfpaflmpckblieefkegjncjoceapakdf)
## How to use the beta build
## IMPORTANT NOTICE
1. download this repo and expand `[your-vault]/.obsidian/plugins/` (PC, Mac and Android will work)
1. enable obsidian livesync in the settings dialog.
1. If you use your self-hosted CouchDB, set your server's info.
1. or Use [IBM Cloudant](https://www.ibm.com/cloud/cloudant), take an account and enable **Cloudant** in [Catalog](https://cloud.ibm.com/catalog#services)
Note please choose "IAM and legacy credentials" for the Authentication method
Setup details are in Couldant Setup Section.
1. Setup LiveSync or SyncOnSave or SyncOnStart as you like.
**Please make sure to disable other synchronize solutions to avoid content corruption or duplication.**
If you want to synchronize to both backend, sync one by one, please.
## How to use
1. Install from Obsidian, or clone this repo and run `npm run build` ,copy `main.js`, `styles.css` and `manifest.json` into `[your-vault]/.obsidian/plugins/` (PC, Mac and Android will work)
2. Enable obsidian livesync in the settings dialog.
3. If you use your self-hosted CouchDB, set your server's info.
4. or Use [IBM Cloudant](https://www.ibm.com/cloud/cloudant), take an account and enable **Cloudant** in [Catalog](https://cloud.ibm.com/catalog#services)
Note please choose "IAM and legacy credentials" for the Authentication method
Setup details are in Couldant Setup Section.
5. Setup LiveSync or SyncOnSave or SyncOnStart as you like.
## Test Server
Setting up an instance of Cloudant or local CouchDB is a little complicated, so I made the [Tasting server of obsidian-livesync](https://olstaste.vrtmrz.net/) up. Try free!
Note: Please read "Limitations" carefully. Do not send your private vault.
## WebClipper is also available.
Available from on Chrome Web Store:[obsidian-livesync-webclip](https://chrome.google.com/webstore/detail/obsidian-livesync-webclip/jfpaflmpckblieefkegjncjoceapakdf)
Repo is here: [obsidian-livesync-webclip](https://github.com/vrtmrz/obsidian-livesync-webclip). (Docs are work in progress.)
## When your database looks corrupted
obsidian-livesync changes data treatment of markdown files since 0.1.0
When you are troubled with synchronization, **Please reset local and remote databases**.
_Note: Without synchronization, your files won't be deleted._
1. Disable any synchronizations on all devices.
2. From the most reliable device<sup>(_The device_)</sup>, back your vault up.
3. Click "Reset local database" on all devices.
4. From _The device_ click "Reset remote database".
5. From _The device_ click "Init Database again".
6. Enable any sync or Hit the Replication button.
And wait for a minute. your data will be uploaded and synchronized with all devices again.
## Cloudant Setup
@@ -37,7 +68,7 @@ Limitations: File deletion handling is not completed.
1. In IBM Cloud Catalog, search "Cloudant".
![step 2](instruction_images/cloudant_2.png)
1. You can choise "Lite plan" in free.
1. You can choose "Lite plan" for free.
![step 3](instruction_images/cloudant_3.png)
Select Multitenant(it's the default) and the region as you like.
@@ -106,4 +137,5 @@ example values.
| CouchDB Password | (\*4) | c2c11651d75497fa3d3c486e4c8bdf27 |
# License
The source code is licensed MIT.
The source code is licensed MIT.

3430
main.js

File diff suppressed because one or more lines are too long

1635
main.ts

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
{
"id": "obsidian-livesync",
"name": "Obsidian Live sync",
"version": "0.0.6",
"version": "0.1.7",
"minAppVersion": "0.9.12",
"description": "obsidian Live synchronization plugin.",
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"author": "vorotamoroz",
"authorUrl": "https://github.com/vrtmrz",
"isDesktopOnly": false

21
package-lock.json generated
View File

@@ -1,15 +1,16 @@
{
"name": "obsidian-pouch",
"version": "0.12.0",
"name": "obsidian-livesync",
"version": "0.1.7",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "obsidian-pouch",
"version": "0.12.0",
"name": "obsidian-livesync",
"version": "0.1.7",
"license": "MIT",
"dependencies": {
"diff-match-patch": "^1.0.5"
"diff-match-patch": "^1.0.5",
"xxhash-wasm": "^0.4.2"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^18.0.0",
@@ -539,6 +540,11 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"node_modules/xxhash-wasm": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA=="
}
},
"dependencies": {
@@ -975,6 +981,11 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"xxhash-wasm": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-0.4.2.tgz",
"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA=="
}
}
}

View File

@@ -1,7 +1,7 @@
{
"name": "obsidian-livesync",
"version": "0.0.6",
"description": "obsidian Live synchronization plugin.",
"version": "0.1.7",
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"main": "main.js",
"scripts": {
"dev": "rollup --config rollup.config.js -w",
@@ -22,6 +22,7 @@
"typescript": "^4.2.4"
},
"dependencies": {
"diff-match-patch": "^1.0.5"
"diff-match-patch": "^1.0.5",
"xxhash-wasm": "^0.4.2"
}
}

View File

@@ -20,7 +20,6 @@ export default {
exports: "default",
banner,
},
// treeshake: "safest",
external: ["obsidian"],
plugins: [
typescript({ exclude: ["pouchdb-browser.js", "pouchdb-browser-webpack"] }),
@@ -28,9 +27,5 @@ export default {
browser: true,
}),
commonjs(),
// nodePolyfills(
// // // {crypto:true}
// { include: "pouchdb-browser" }
// ),
],
};

View File

@@ -18,3 +18,8 @@
.op-pre {
white-space: pre-wrap;
}
.op-warn {
border:1px solid salmon;
padding:2px;
border-radius: 4px;
}