mirror of
https://github.com/pageden/pageden-obsidian.git
synced 2026-07-22 07:46:21 +00:00
Release Pageden Obsidian plugin 0.1.0
This commit is contained in:
commit
25f80a1a9f
7 changed files with 44263 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.DS_Store
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2026 PageDen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
87
README.md
Normal file
87
README.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Pageden for Obsidian
|
||||
|
||||
Connect an Obsidian vault to Pageden, a server-owned Markdown workspace for teams and AI agents.
|
||||
Use it to browse remote documents, download folders into your vault, sync local edits back to
|
||||
Pageden, and import an existing vault into a workspace.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Obsidian 1.5.0 or newer.
|
||||
- A Pageden workspace. The hosted server defaults to `https://go.pageden.app`.
|
||||
- Network access to your Pageden server.
|
||||
|
||||
## Commands
|
||||
|
||||
- `Pageden: Validate connection`
|
||||
- `Pageden: Browse remote documents`
|
||||
- `Pageden: Search remote documents`
|
||||
- `Pageden: Open live document`
|
||||
- `Pageden: Push active document`
|
||||
- `Pageden: Sync now`
|
||||
- `Pageden: Download a Pageden folder`
|
||||
- `Pageden: Download all Pageden documents`
|
||||
- `Pageden: Import this vault to Pageden`
|
||||
- `Pageden: Resolve conflict for this note`
|
||||
- `Pageden: Log in with device code`
|
||||
|
||||
## Setup
|
||||
|
||||
1. Open Obsidian settings.
|
||||
2. Go to **Community plugins** and enable Pageden.
|
||||
3. Open **Pageden** settings.
|
||||
4. Keep the default server URL, or enter your self-hosted Pageden server.
|
||||
5. Click **Connect to Pageden** and approve the login in your browser.
|
||||
6. Pick the workspace to sync with this vault.
|
||||
|
||||
## Settings Reference
|
||||
|
||||
- Server URL, default `https://go.pageden.app`
|
||||
- Personal access token from the web app's Obsidian token screen, or a token from device-code login
|
||||
- Workspace ID
|
||||
- Local folder, default `Remote Docs`
|
||||
- Background sync toggle
|
||||
- Sync interval in minutes
|
||||
|
||||
Downloaded files are written under the local folder. Sync metadata is stored in
|
||||
`.server-meta.json` next to the plugin files and is keyed by `documentId`.
|
||||
|
||||
## Sync Behavior
|
||||
|
||||
Pushes send the recorded `baseVersion`, LF-canonicalized content, and checksum. On a conflict,
|
||||
the local file is left untouched and the server copy is written as `*.conflict.md`.
|
||||
|
||||
New local Markdown notes can also be created in Pageden. Put the note inside the configured
|
||||
local folder, for example `Remote Docs/team/plan.md`, then run `Pageden: Push active document`.
|
||||
The plugin creates any missing remote folders, creates the document, and records sync metadata
|
||||
so later edits use normal push/pull conflict checks. Background sync also auto-creates new
|
||||
unlinked notes that are saved under the configured local folder.
|
||||
|
||||
Remote search uses the server's permission-filtered `GET /search` endpoint and can download a
|
||||
matching document into the configured local folder.
|
||||
|
||||
## Live Documents
|
||||
|
||||
Live document mode opens a custom Pageden editor pane inside Obsidian instead of editing a
|
||||
downloaded Markdown file. It joins the same Yjs/WebSocket room as the web app's Live mode, merges
|
||||
simultaneous edits, and autosaves the merged Markdown through the normal revision API. Use this
|
||||
when you want Google Docs-style co-editing; use downloaded files + background sync when you want
|
||||
the native Obsidian vault/file workflow.
|
||||
|
||||
## Attachments
|
||||
|
||||
Attachment sync follows Markdown links such as `` and Obsidian embeds
|
||||
such as `![[diagram.png]]`. Downloading or pulling a document writes server attachments beside
|
||||
the local Markdown file. Pushing a document uploads changed referenced local attachments and
|
||||
deletes remote attachments only when a previously tracked local attachment file was removed.
|
||||
|
||||
## Privacy And Network Access
|
||||
|
||||
Pageden for Obsidian communicates with the Pageden server configured in settings. Document
|
||||
content, metadata, attachment files, and sync state are sent to that server when you download,
|
||||
push, import, or use live editing. The plugin does not send data to unrelated third-party
|
||||
services.
|
||||
|
||||
## Source
|
||||
|
||||
The plugin is developed in the main PageDen repository and published here as a standalone
|
||||
community plugin package.
|
||||
44064
main.js
Normal file
44064
main.js
Normal file
File diff suppressed because one or more lines are too long
9
manifest.json
Normal file
9
manifest.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"id": "pageden",
|
||||
"name": "Pageden",
|
||||
"version": "0.1.0",
|
||||
"minAppVersion": "1.5.0",
|
||||
"description": "Edit your team's server-owned Markdown documents from Obsidian.",
|
||||
"author": "ccfiel",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
78
styles.css
Normal file
78
styles.css
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
.pageden-live-view {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.pageden-live-header {
|
||||
align-items: flex-start;
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
justify-content: space-between;
|
||||
padding: 14px 18px 10px;
|
||||
}
|
||||
|
||||
.pageden-live-header h2 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pageden-live-header p {
|
||||
color: var(--text-muted);
|
||||
margin: 4px 0 0;
|
||||
}
|
||||
|
||||
.pageden-live-status {
|
||||
background: var(--background-modifier-border);
|
||||
border-radius: 999px;
|
||||
color: var(--text-muted);
|
||||
font-size: 12px;
|
||||
padding: 4px 9px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pageden-live-toolbar {
|
||||
align-items: center;
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
padding: 8px 18px;
|
||||
}
|
||||
|
||||
.pageden-live-button {
|
||||
background: var(--background-secondary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 6px;
|
||||
color: var(--text-normal);
|
||||
font-size: 13px;
|
||||
min-height: 30px;
|
||||
padding: 4px 9px;
|
||||
}
|
||||
|
||||
.pageden-live-button:hover {
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.pageden-live-editor {
|
||||
flex: 1;
|
||||
overflow: auto;
|
||||
padding: 18px;
|
||||
}
|
||||
|
||||
.pageden-live-prosemirror {
|
||||
margin: 0 auto;
|
||||
max-width: 760px;
|
||||
min-height: 100%;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.pageden-live-prosemirror p {
|
||||
margin: 0.35rem 0;
|
||||
}
|
||||
|
||||
.pageden-live-prosemirror h1,
|
||||
.pageden-live-prosemirror h2,
|
||||
.pageden-live-prosemirror h3 {
|
||||
margin: 1rem 0 0.45rem;
|
||||
}
|
||||
3
versions.json
Normal file
3
versions.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"0.1.0": "1.5.0"
|
||||
}
|
||||
Loading…
Reference in a new issue