this repo has no description
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

Document Standard.site publishing and ignore local artifacts

+86 -3
+12 -1
.gitignore
··· 1 - node_modules 1 + node_modules/ 2 2 dist/ 3 + .DS_Store 4 + *.log 5 + npm-debug.log* 6 + yarn-debug.log* 7 + pnpm-debug.log* 8 + *.tsbuildinfo 9 + coverage/ 10 + .env 11 + .env.* 12 + .vscode/ 13 + .idea/
+72
README.md
··· 1 + # ATProto Publisher for Obsidian 2 + 3 + Publish Obsidian notes to AT Protocol records, including the Standard.site long-form lexicon. 4 + 5 + ## Features 6 + 7 + - Publish a single note or all notes marked as published. 8 + - Supports Standard.site `site.standard.document` records. 9 + - Auto-creates a `site.standard.publication` record when needed. 10 + - Writes back ATProto metadata to frontmatter for future updates. 11 + 12 + ## Setup 13 + 14 + 1. Install the plugin in your vault. 15 + 2. Open Obsidian settings and configure **ATProto Publisher**: 16 + - Identifier (handle or email) 17 + - App password 18 + - Service URL (PDS) 19 + - Collection NSID 20 + - Publication URL or AT-URI (for Standard.site) 21 + 22 + ## Usage 23 + 24 + - Command palette: 25 + - **Publish current note to ATProto** 26 + - **Publish all notes marked as published** 27 + 28 + ### Frontmatter keys 29 + 30 + Default keys used by the plugin (customizable in settings): 31 + 32 + ```yaml 33 + published: true 34 + slug: my-article 35 + title: My Article 36 + summary: A short summary. 37 + tags: [writing, obsidian] 38 + ``` 39 + 40 + Metadata written back after publishing: 41 + 42 + ```yaml 43 + atprotoUri: at://did:plc.../site.standard.document/... 44 + atprotoCid: ... 45 + atprotoCollection: site.standard.document 46 + atprotoRkey: ... 47 + atprotoPublishedAt: 2026-01-24T10:20:30.000Z 48 + atprotoUpdatedAt: 2026-01-24T10:20:30.000Z 49 + ``` 50 + 51 + ## Standard.site mode 52 + 53 + To publish Standard.site documents: 54 + 55 + 1. Set **Collection NSID** to `site.standard.document`. 56 + 2. Set **Publication URL or AT-URI** to your site URL (e.g. `https://example.com`). 57 + 3. Optionally set **Publication name** and **Publication description**. 58 + 59 + On first publish the plugin will look for a matching publication record in your repo. If it does not exist, it will create one and store its AT-URI in settings. 60 + 61 + ## Development 62 + 63 + ```bash 64 + npm install 65 + npm run build 66 + ``` 67 + 68 + To create a distributable folder: 69 + 70 + ```bash 71 + npm run package 72 + ```
+2 -2
src/main.ts
··· 119 119 120 120 this.addCommand({ 121 121 id: "publish-all-notes-atproto", 122 - name: "Publish all notes marked published", 122 + name: "Publish all notes marked as published", 123 123 callback: () => { 124 124 void this.publishAllPublished(); 125 125 } ··· 151 151 for (const file of publishedFiles) { 152 152 await this.publishFile(file, true); 153 153 } 154 - new Notice("ATProto publish finished."); 154 + new Notice("ATProto publish complete."); 155 155 } 156 156 157 157 private async publishFile(file: TFile, suppressNotices = false) {