Compare commits

...

6 Commits
0.0.6 ... 0.1.1

Author SHA1 Message Date
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 812 additions and 3670 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

@@ -7,7 +7,6 @@ Runs in Mac, Android, Windows, and iOS.
![obsidian_live_sync_demo](https://user-images.githubusercontent.com/45774780/137355323-f57a8b09-abf2-4501-836c-8cb7d2ff24a3.gif)
**It's beta. Please make sure back your vault up!**
Limitations: File deletion handling is not completed.
@@ -16,16 +15,32 @@ Limitations: File deletion handling is not completed.
- Live sync
- Self-Hosted data synchronization with conflict detection and resolving in Obsidian.
- Off line sync is also available.
## How to use the beta build
## How to use
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.
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.
## 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 Replication button.
And wait for a minute. your data will be uploaded and synchronized with all devices again.
## Cloudant Setup
@@ -106,4 +121,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

965
main.ts

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-livesync",
"name": "Obsidian Live sync",
"version": "0.0.6",
"version": "0.1.1",
"minAppVersion": "0.9.12",
"description": "obsidian Live synchronization plugin.",
"author": "vorotamoroz",

21
package-lock.json generated
View File

@@ -1,15 +1,16 @@
{
"name": "obsidian-pouch",
"version": "0.12.0",
"name": "obsidian-livesync",
"version": "0.0.8",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "obsidian-pouch",
"version": "0.12.0",
"name": "obsidian-livesync",
"version": "0.0.8",
"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,6 +1,6 @@
{
"name": "obsidian-livesync",
"version": "0.0.6",
"version": "0.1.1",
"description": "obsidian Live synchronization plugin.",
"main": "main.js",
"scripts": {
@@ -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;
}