Skip to content

Commit 644fa8f

Browse files
committed
Add documentation
1 parent 431cdbc commit 644fa8f

File tree

2 files changed

+146
-0
lines changed

2 files changed

+146
-0
lines changed

docs/fr/activitypub.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# Activer la compatibilité ActivityPub
2+
3+
Les fiches Bazar étant structurées, il est possible de les rendre compatible ActivityPub. Chaque formulaire devient un acteur ActivityPub que l'on peut suivre, et qui envoie des activités `Create`, `Update` et `Delete`. Le formulaire lui-même peut suivre d'autres acteurs, et les fiches qu'il reçoit vont être ajoutées automatiquement dans la liste.
4+
5+
Cela peut permettre de synchroniser deux instances YesWiki, ou alors de permettre à n'importe quel utilisateur Mastodon d'être averti lorsqu'il y a des nouveaux éléments qui sont postés. D'autres usages seront possible dans le futur.
6+
7+
## Activer ActivityPub sur un formulaire Bazar
8+
9+
- Editer le formulaire et cliquez sur le bouton "Configuration avancée" tout en bas.
10+
- Cochez la case "Activer ActivityPub pour ce formulaire"
11+
- Entrez un nom pour d'utilisateur ActivityPub (par exemple "agenda" ou "blog")
12+
- Entrez une template sémantique (utilisée pour convertir les données YesWiki en données ActivityPub - voir ci-dessous)
13+
- Entrez une template sémantique inverse (utilisée pour convertir les données ActivityPub en YesWiki - voir ci-dessous)
14+
15+
Après avoir validé la modification, il devrait y avoir deux nouveaux éléments dans la liste des formulaires:
16+
17+
- Dans la colonne "Format de données", un bouton "AP" qui renvoie vers l'acteur ActivityPub du formulaire
18+
- Dans les actions, un bouton "Gestion des abonnements"
19+
20+
Depuis la page "Gestion des abonnements", plusieurs choses sont possibles:
21+
22+
- S'abonner à un nouvel acteur en entrant son identifiant
23+
- Suivre en retour un acteur qui nous suit déjà
24+
- Synchroniser toutes les données d'un acteur auquel on est abonné
25+
- Effacer un abonnement ou un abonné
26+
27+
## Exemples de templates
28+
29+
Voilà ci-dessous deux exemples de template. A noter que, si l'on veut que ActivityPub soit utilisé pour synchroniser deux instances YesWiki, il est important que tous les champs soient inclus, sinon des données seront perdues.
30+
31+
### Agenda
32+
33+
Note: Avec la template ci-dessous, Mastodon affiche le nom de l'événement, l'image et un lien vers la page. La compatibilité Mobilizon n'est pas encore possible car Mobilizon attend deux activités (`Announce` et `Create`) - cela devrait être réglé dans une future version.
34+
35+
#### Template
36+
37+
```
38+
{
39+
"@context": "https://www.w3.org/ns/activitystreams",
40+
"type": "Event",
41+
"name": {{ bf_titre | json_encode }},
42+
"content": {{ bf_description | default("") | json_encode }},
43+
"startTime": {{ bf_date_debut_evenement | json_encode }},
44+
"endTime": {{ bf_date_fin_evenement | default("") | json_encode }},
45+
"url": {{ bf_site_internet | json_encode }},
46+
"published": {{ date_creation_fiche | replace({" ": "T"}) | json_encode }},
47+
"updated": {{ date_maj_fiche | replace({" ": "T"}) | json_encode }},
48+
{% if bf_adresse and bf_ville and bf_code_postal %}
49+
"location": {
50+
"type": "Place",
51+
"name": {{ [bf_adresse, bf_ville] | join(", ") | trim(", ") | json_encode }},
52+
"latitude": {{ geolocation.bf_latitude | json_encode }},
53+
"longitude": {{ geolocation.bf_longitude | json_encode }},
54+
"address": {
55+
"type": "PostalAddress",
56+
"streetAddress": {{ bf_adresse | default("") | json_encode }},
57+
"postalCode": {{ bf_code_postal | default("") | json_encode }},
58+
"addressLocality": {{ bf_ville | default("") | json_encode }}
59+
}
60+
},
61+
{% endif %}
62+
"attachment": [
63+
{% if imagebf_image %}
64+
{
65+
"type": "Image",
66+
"url": {{ fileUrl(imagebf_image) | json_encode }}
67+
}
68+
{% endif %}
69+
]
70+
}
71+
```
72+
73+
#### Template inverse
74+
75+
```
76+
{
77+
"bf_titre": {{ name | json_encode }},
78+
"bf_description": {{ content | default("") | json_encode }},
79+
"bf_date_debut_evenement": {{ startTime | json_encode }},
80+
"bf_date_fin_evenement": {{ endTime | default("") | json_encode }},
81+
"bf_adresse": {{ location.address.streetAddress | default("") | json_encode }},
82+
"bf_code_postal": {{ location.address.postalCode | default("") | json_encode }},
83+
"bf_ville": {{ location.address.addressLocality | default("") | json_encode }},
84+
"bf_site_internet": {{ url | default("") | json_encode }},
85+
"imagebf_image": {{ (attachment | first).url | default("") | json_encode }},
86+
"geolocation": {
87+
"bf_latitude": {{ location.latitude | default("") | json_encode }},
88+
"bf_longitude": {{ location.longitude | default("") | json_encode }}
89+
}
90+
}
91+
```
92+
93+
### Blog
94+
95+
Note: Nous n'utilisons pas la propriété `summary` car Mastodon l'interprête comme s'il fallait cacher le contenu du texte. Le titre n'est pas afficher par Mastodon. Il serait possible d'améliorer ça en agrégeant le titre, le chapeau et le contenu dans la propriété `content`, mais il faudrait prévoir de les séparer dans la template inverse (ce qui est possible avec Twig, mais peut demander un peu de travail)
96+
97+
#### Template
98+
99+
```
100+
{
101+
"@context": "https://www.w3.org/ns/activitystreams",
102+
"type": "Note",
103+
"name": {{ bf_titre | json_encode }},
104+
"preview": {{ bf_chapeau | default("") | json_encode }},
105+
"content": {{ bf_description | default("") | json_encode }},
106+
"published": {{ date_creation_fiche | replace({" ": "T"}) | json_encode }},
107+
"updated": {{ date_maj_fiche | replace({" ": "T"}) | json_encode }},
108+
"attachment": [
109+
{% if imagebf_image %}
110+
{
111+
"type": "Image",
112+
"url": {{ fileUrl(imagebf_image) | json_encode }}
113+
}
114+
{% endif %}
115+
]
116+
}
117+
```
118+
119+
### Template inverse
120+
121+
```
122+
{
123+
"bf_titre": {{ name | json_encode }},
124+
"bf_chapeau": {{ preview | default("") | json_encode }},
125+
"bf_description": {{ content | default("") | json_encode }},
126+
"imagebf_image": {{ (attachment | first).url | default("") | json_encode }}
127+
}
128+
```
129+
130+
## Actions
131+
132+
### `bazarfollow`
133+
134+
Si vous avez activés ActivityPub pour un formulaire Bazar, vous pouvez utiliser cette action pour permettre à n'importe qui de suivre l'acteur avec un compte ActivityPub (par exemple Mastodon).
135+
136+
Elle prend comme unique paramètre l'ID du formulaire:
137+
138+
```
139+
{{bazarfollow id="3"}}
140+
```
141+
142+
Cela affiche un champ comme ça:
143+
144+
![](images/follow-actor.png)
145+
146+
Lorsque l'utilisateur entre son identifiant ActivityPub, cela le redirige vers la page de l'acteur formulaire sur sa propre instance.

docs/fr/images/follow-actor.png

23.1 KB
Loading

0 commit comments

Comments
 (0)