Zum Hauptinhalt springen

Kommentare

Sollen Lernende die Gelegenheit erhalten, Kommentare zu Webseiteninhalten hinzuzufügen, so ist das MdxComment-Plugin genau das richtige.

Es ermöglicht angemeldeten Usern, dynamisch Kommentare hinzuzufügen, zu bearbeiten und farblich zu kennzeichnen.

Kommentare Hinzufügen​

Befindet sich die Maus über einem Abschnitt, so wird auf der rechten Seite ein Icon zum Hinzufügen eines Kommentars angezeigt.

Kommentar hinzufügen
Kommentar hinzufügen

Vorhandene Kommentare​

Kommentare werden nach dem laden dort angezeigt, wo sie hinzugefpgt wurden. Kommentare können entweder geöffnet oder geschlossen sein.

Offene Kommentare​

Geöffnete Kommentare
Geöffnete Kommentare

Geschlossene Komentare​

Bei den geschlossenen Kommentaren wird nur ein kleiner Indikator rechts neben dem Abschnitt angezeigt.

Geschlossene Kommentare
Geschlossene Kommentare

Optionen​

Die kommentaroptionen können bei einem geöffneten Kommentar durch Positionieren des Mauszeigers über dem Kommentar angezeigt werden.

Optionen Öffnen: Mit dem Mauszeiger über den Kommentar fahren
Optionen Öffnen: Mit dem Mauszeiger über den Kommentar fahren
Optionen
Optionen

Dokument nicht kommentierbar machen​

Ein Dokument kann als "nicht kommentierbar" markiert werden, indem im Frontmatter die Option no_comments: true gesetzt wird.

---
no_comments: true
page_id: 694583bd-784f-4db9-99c4-491d6e373b88
---
# Ein Dokument ohne Kommentare

Installation​

Voraussetzung

Damit die Kommentarfunktion gebraucht werden kann, braucht es das Plugin 👉 remark-page.

Code Kopieren
  • src/components/documents/MdxComment
  • src/models/documents/MdxComment.ts
  • src/plugins/remark-comments
Models
src/api/document.ts

export enum DocumentType {
/* ... */
MdxComment = 'mdx_comment'
}

export interface MdxCommentData {
type: string;
nr: number;
commentNr: number;
isOpen: boolean;
color: Color;
}
export interface TypeDataMapping {
/* ... */
[DocumentType.MdxComment]: MdxCommentData;
}

export interface TypeModelMapping {
/* ... */
[DocumentType.MdxComment]: MdxComment;
}

export type DocumentTypes =
/* ... */
| MdxComment;
Stores
src/stores/DocumentStore.ts
export function CreateDocumentModel(data: DocumentProps<DocumentType>, store: DocumentStore): DocumentTypes {
switch (data.type) {
/* ... */
case DocumentType.MdxComment:
return new MdxComment(data as DocumentProps<DocumentType.MdxComment>, store);
}
}
src/stores/SocketDataStore.ts
/**
* Records that should be created when a IoEvent.NEW_RECORD event is received.
*/
const RecordsToCreate = new Set<DocumentType>([DocumentType.MdxComment, /* ... */]);
/* ... */
Remark-Plugins
src/plugins/remark-comments/plugin.ts
Das Plugin `remark-comments` kann für die Bedürfnisse der Seite konfiguriert werden - für die Teaching-Dev Seite ist es wie folgt konfiguriert:
```ts title="docusaurus.config.ts"
import commentPlugin from './src/plugins/remark-comments/plugin';
/* ... */

const REMARK_PLUGINS = [
/* ... */
[
commentPlugin,
{
commentableJsxFlowElements: ['dd', 'DefHeading', 'figcaption'],
ignoreJsxFlowElements: ['summary', 'dt'],
ignoreCodeBlocksWithMeta: /live_py/
}
]
];