From c9b6ef8011a285712935d2b3f9ffbf493356a64c Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sun, 18 Aug 2024 17:34:17 +0200 Subject: [PATCH] feat: :sparkles: Add Share extension --- app/extensions/share/page.mdx | 48 +++++++++++++++++++++++++++++++++++ components/Navigation.tsx | 1 + 2 files changed, 49 insertions(+) create mode 100644 app/extensions/share/page.mdx diff --git a/app/extensions/share/page.mdx b/app/extensions/share/page.mdx new file mode 100644 index 0000000..003d7f3 --- /dev/null +++ b/app/extensions/share/page.mdx @@ -0,0 +1,48 @@ +export const metadata = { + title: "Share Extension", + description: "Share Extension lets users share notes they like with others.", +} + +# Share Extension + +The Share Extension lets users share notes they like with others. This is the same as Twitter's "retweet" and Mastodon's "boost". {{ className: 'lead' }} + +## Behaviour + +When a user shares a note, the note's original author **must** receive the entity alongside the user's followers. In clients, `Shares` should be rendered in a way that makes it clear that the shared note was originally authored by someone else than the user who shared it. + +`Shares` can be undone ("unboosting") with a [Delete](/entities/delete) entity. + +## Entity Definition + + + + + + Must be `pub.versia:share/Share`. + + + Creator of the Share. + + + URI of the note being shared. Must link to a [Note](/entities/note). + + + + + + + ```jsonc {{ 'title': 'Example Share' }} + { + "id": "3e7e4750-afd4-4d99-a256-02f0710a0520", + "type": "Extension", + "extension_type": "pub.versia:share/Share", + "created_at": "2021-01-01T00:00:00.000Z", + "author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe", + "uri": "https://example.com/shares/3e7e4750-afd4-4d99-a256-02f0710a0520", + "shared": "https://otherexample.org/notes/fmKZ763jzIU8" + } + ``` + + + \ No newline at end of file diff --git a/components/Navigation.tsx b/components/Navigation.tsx index 46cbd65..a9d00c9 100644 --- a/components/Navigation.tsx +++ b/components/Navigation.tsx @@ -289,6 +289,7 @@ export const navigation: NavGroup[] = [ links: [ { title: "Custom Emojis", href: "/extensions/custom-emojis" }, { title: "Likes", href: "/extensions/likes" }, + { title: "Share", href: "/extensions/share" }, { title: "Vanity", href: "/extensions/vanity" }, { title: "WebSockets", href: "/extensions/websockets" }, ],