@mostajs/collab-ui
v0.1.0
Published
Widget HTML (zéro build) du fil de collaboration @mostajs/collab : commentaires Markdown, réactions, resolve, réponses, mentions, + fil d'activité. Compose markdown-html (rendu) et markdown-editor (saisie).
Maintainers
Readme
@mostajs/collab-ui
Auteur : Dr Hamid MADANI [email protected] · AGPL-3.0-or-later
Widget HTML zéro build du fil de collaboration @mostajs/collab :
commentaires Markdown, réactions, resolve, réponses (composer natif <details>, zéro JS),
mentions, et un fil d'activité (Activity Streams 2.0). Compose @mostajs/markdown-html (rendu,
échappé) et @mostajs/markdown-editor (saisie + aperçu live). Rendu serveur ; les actions sont des <form> POST.
Installer
npm i @mostajs/collab-uiUtiliser (exemple node:http + @mostajs/collab)
import { collabThread, collabActivity, renderPreview } from '@mostajs/collab-ui';
// Page : le fil d'une entité
const subject = { subjectType: 'QaSpec', subjectId: id };
const thread = await collab.thread(subject);
const html = collabThread({ subject, thread, base: '/collab', users, canResolve, canComment });
// Routes POST attendues par le widget :
// /collab/comment { subjectType, subjectId, authorId(app), body, parentId? } -> collab.comment(...)
// /collab/react { commentId, emoji, userId(app) } -> collab.react(...)
// /collab/resolve { commentId, userId(app) } -> collab.resolve(...)
// /collab/preview (text/plain body) -> res.end(renderPreview(body))API
| Export | Rôle |
|---|---|
| collabThread({ subject, thread, base, previewUrl, users, reactions, canResolve, canComment, title }) | HTML du fil (arbre + composer) |
| collabActivity(events, { users, title }) | frise d'activité (AS2) |
| renderPreview(md) | ré-export markdown-editor (câble /preview) |
| COLLAB_CSS | styles (variables --brand/--line/--surface… avec fallbacks) |
Le corps est rendu via markdown-html (échappé) ; collabThread ne construit jamais de HTML brut à partir du texte utilisateur.
