You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Shared posts on Bluesky now keep your site's publication details up to date automatically when you publish, so Standard.site readers always see current information.
Copy file name to clipboardExpand all lines: docs/developer-docs.md
+71Lines changed: 71 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,11 +35,17 @@ ATmosphere exposes a small set of filters and actions for plugins to extend beha
35
35
|------|------|-----|
36
36
|`atmosphere_content_parser`| filter | Deprecated parser hook; use `Content_Parser\Registry::register()` instead. |
37
37
|`atmosphere_document_content`| filter | Last-chance modification of the parsed content object. |
38
+
|`atmosphere_document_links`| filter | Add a typed `links` union to `site.standard.document` records. |
39
+
|`atmosphere_document_labels`| filter | Add standard self-labels to `site.standard.document` records. |
40
+
|`atmosphere_document_contributors`| filter | Add contributor metadata to `site.standard.document` records. |
41
+
|`atmosphere_publication_labels`| filter | Add standard self-labels to `site.standard.publication` records. |
42
+
|`atmosphere_publication_show_in_discover`| filter | Override `preferences.showInDiscover` (defaults to the site's `blog_public` option) for `site.standard.publication` records. |
38
43
|`atmosphere_syncable_post_types`| filter | Add or remove post types eligible for cross-posting. |
39
44
|`atmosphere_should_publish_comment`| filter | Customise which approved comments are mirrored as Bluesky replies. |
40
45
|`atmosphere_should_sync_reply`| filter | Customise which inbound Bluesky replies become WordPress comments. |
41
46
|`atmosphere_transform_bsky_post`| filter | Mutate the Bluesky post record before write. |
42
47
|`atmosphere_transform_document`| filter | Mutate the document record before write. |
48
+
|`atmosphere_transform_publication`| filter | Mutate the publication record before write. |
43
49
|`atmosphere_appview_host`| filter | Point Bluesky web links at an alternative AT Protocol appview (host or subpath). |
44
50
|`atmosphere_appview_url`| filter | Rewrite the whole assembled appview link, including its route. |
45
51
|`atmosphere_publish_post_result`| action | React to a post-publish outcome (success or `WP_Error`). |
@@ -102,6 +108,71 @@ add_filter(
102
108
103
109
Of note: links rendered on the fly (facet mentions, hashtags, and the "View on Bluesky" link) pick up the filters on every render, so changing them updates immediately. The author and source links stored on synced reaction comments are resolved once at sync time, so they keep whichever host was in effect when the comment was synced.
104
110
111
+
### Extending Standard.site metadata
112
+
113
+
ATmosphere emits the core `site.standard.publication` and `site.standard.document` fields from WordPress data. Optional Standard.site fields that do not have a native WordPress source are extension points.
The field-specific filters run before `atmosphere_transform_document` and `atmosphere_transform_publication`, so a final record-level filter can still inspect or override the complete record.
173
+
174
+
ATmosphere models one root publication per WordPress site. It verifies that publication at `/.well-known/site.standard.publication` and does not currently implement Standard.site's non-root publication verification path (`/.well-known/site.standard.publication/path/to/publication`). Social Standard.site lexicons such as `site.standard.graph.subscription` and `site.standard.graph.recommend` are also out of scope for the plugin's publishing flow; ATmosphere requests explicit `repo:` scopes only for `app.bsky.feed.post`, `site.standard.document`, and `site.standard.publication`, and intentionally keeps the documented `include:site.standard.authFull` permission set for Standard.site compatibility even though it does not publish or manage social records itself.
175
+
105
176
## Extending Content Formats
106
177
107
178
The `site.standard.document` record's `content` field is a singular open union of typed content objects (see [`docs/content-formats.md`](content-formats.md)). ATmosphere ships built-in parsers for HTML, Markpub, Leaflet, and pckt formats, and integrations can register additional parsers.
0 commit comments