mirror of
https://github.com/versia-pub/docs.git
synced 2025-12-06 06:18:19 +01:00
Begin work on new Microblogging extension
This commit is contained in:
parent
18e76da5b3
commit
64400c3faf
66
docs/extensions/microblogging.md
Normal file
66
docs/extensions/microblogging.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Microblogging
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Before Lysand 3.0, microblogging was directly integrated into the core spec. As of Lysand 3.0, microblogging has been moved to an extension, as part of a larger effort to modularization. This document describes the new microblogging extension.
|
||||
|
||||
The Microblogging extension allows users to perform certain tasks related to microblogging, such as "boosting" (reposting) posts.
|
||||
|
||||
## Announce
|
||||
|
||||
The `Announce` action signifies a user's intent to broadcast or share an object with their followers. This action is analogous to the "retweet" function on Twitter.
|
||||
|
||||
|
||||
`Announce`s can of course be deleted ("unboosting") with a classic [Undo](../objects/undo) object.
|
||||
|
||||
Here's an example of an `Announce` action:
|
||||
|
||||
```json5
|
||||
{
|
||||
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||
"type": "Extension",
|
||||
"extension_type": "org.lysand:microblogging/Announce",
|
||||
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
|
||||
"uri": "https://example.com/actions/3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||
"created_at": "2021-01-01T00:00:00.000Z",
|
||||
"object": "https://example.com/publications/f08a124e-fe90-439e-8be4-15a428a72a19"
|
||||
}
|
||||
```
|
||||
|
||||
### Fields
|
||||
|
||||
#### Author
|
||||
|
||||
| Name | Type | Required |
|
||||
| :----- | :----- | :------- |
|
||||
| author | String | Yes |
|
||||
|
||||
URI of the [Actor](../objects/actors) who initiated the action.
|
||||
|
||||
#### Object
|
||||
|
||||
| Name | Type | Required |
|
||||
| :----- | :----- | :------- |
|
||||
| object | String | Yes |
|
||||
|
||||
URI of the object being announced. Must be of type [Note](../objects/note)
|
||||
|
||||
### Implementation
|
||||
|
||||
When a [Note](../objects/note) object is announced, the client **SHOULD** display the original note with an indicator that it has been announced. The client **SHOULD** also display the number of times the note has been announced, such as a number next to a small icon like such on [Mastodon](https://joinmastodon.org/):
|
||||
|
||||

|
||||
|
||||
Furthermore, users should be notified when their notes are announced by other users.
|
||||
|
||||
|
||||
## Types
|
||||
|
||||
```typescript
|
||||
interface Announce extends Entity {
|
||||
type: "Announce";
|
||||
author: string;
|
||||
object: string;
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -1,44 +1 @@
|
|||
# Announce
|
||||
|
||||
The `Announce` action signifies a user's intent to broadcast or share an object with their followers. This action is analogous to the "retweet" function on Twitter.
|
||||
|
||||
Here's an example of an `Announce` action:
|
||||
|
||||
```json5
|
||||
{
|
||||
"type": "Announce",
|
||||
"id": "3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||
"author": "https://example.com/users/6e0204a2-746c-4972-8602-c4f37fc63bbe",
|
||||
"uri": "https://example.com/actions/3e7e4750-afd4-4d99-a256-02f0710a0520",
|
||||
"created_at": "2021-01-01T00:00:00.000Z",
|
||||
"object": "https://example.com/publications/f08a124e-fe90-439e-8be4-15a428a72a19"
|
||||
}
|
||||
```
|
||||
|
||||
## Fields
|
||||
|
||||
### Author
|
||||
|
||||
| Name | Type | Required |
|
||||
| :----- | :----- | :------- |
|
||||
| author | String | Yes |
|
||||
|
||||
URI of the [Actor](./actors) who initiated the action.
|
||||
|
||||
### Object
|
||||
|
||||
| Name | Type | Required |
|
||||
| :----- | :----- | :------- |
|
||||
| object | String | Yes |
|
||||
|
||||
URI of the object being announced. Must be of type [Note](./note)
|
||||
|
||||
## Types
|
||||
|
||||
```typescript
|
||||
interface Announce extends Entity {
|
||||
type: "Announce";
|
||||
author: string;
|
||||
object: string;
|
||||
}
|
||||
```
|
||||
This page has been moved to the [Microblogging Extension](../extensions/microblogging#announce).
|
||||
BIN
docs/public/assets/boosting.png
Normal file
BIN
docs/public/assets/boosting.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
|
|
@ -1,7 +1,11 @@
|
|||
# Introduction
|
||||
|
||||
> [!NOTE]
|
||||
> You are looking at the documentation for `Lysand 2.0`, released in March 2024 after revision of the original `Lysand 1.0` specification published in September 2023.
|
||||
> You are looking at the documentation for `Lysand 3.0`, currently in development.
|
||||
>
|
||||
> Previous versions:
|
||||
> - `Lysand 2.0`, released in March 2024.
|
||||
> - `Lysand 1.0`, published in September 2023.
|
||||
|
||||
The Lysand Protocol is designed as a communication medium for federated applications, leveraging the HTTP stack. Its simplicity ensures ease of implementation and comprehension.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue