wikijs-metabot/README.md

83 lines
2.5 KiB
Markdown

# WikiJs Metabot
Ein Skript was die Page-Listings auf [https://wiki.ctdo.de](https://wiki.ctdo.de)
automatisch befüllt.
Das Repo enthält außerdem die Konfiguration für ein kleines Topictreff-Form mit dem man neue Tops
anlegen kann.
## Verwendung
Um auf einer Wiki-Seite ein Page-Listing hinzuzufügen muss in den Metadaten der Seite der Inhalt von
`metapage.js.html` als Skript gesetzt werden.
Dann können im Dokument die beiden folgenden HTML-Elemente benutzt werden:
### Gefilterte Liste mit Seiten aus dem ganzen Wiki
```html
<ul class="pagelist" data-query="QUERY"></ul>
```
Dabei muss `QUERY` eine Parameterliste für die `PageQuery::list`-Methode der WikiJs-GraphQL-API
sein. Folgende Parameter werden unterstützt:
```text
limit: Int
orderBy: Enum CREATED | ID | PATH | TITLE | UPDATED
orderByDirection: Enum ASC | DESC
tags: [String]
locale: String
creatorId: Int
authorId: Int
```
#### Details
- Mehrere Parameter müssen mit einem Komma getrennt werden
- Mehrere Tags im `tags`-Parameter müssen ebenfalls mit Komma getrennt werden
- Parameter vom Typ `String` müssen in einfache Anführungszeichen `'` eingeschlossen werden
- Parameter vom Typ `Int` und vom Typ `Enum` müssen ohne Anführungszeichen angegeben werden
### Liste mit allen Unterseiten von einer Seite
```html
<ul class="subpagelist" data-page-id="ID"></ul>
```
Dabei muss `ID` die interne ID von der Seite sein, deren Unterseiten aufgelistet werden sollen. Die
ID der Seite herauszufinden ist etwas nervig, es ist nicht die ID welche man im Admin-Interface
findet, man muss über die [GraphQL](https://wiki.ctdo.de/graphql) `tree` API die ID herausfinden.
## Beispiele
Liste aller Seiten die mit den Tags `top` und `new` versehen sind:
```html
<ul class="pagelist" data-query="tags: ['top', 'new']"></ul>
```
Liste der 10 zuletzt bearbeiteten Seiten:
```html
<ul
class="pagelist"
data-query="orderBy: UPDATED, orderByDirection: DESC, limit: 10"
></ul>
```
Liste der Unterseiten von der Events-Seite:
```html
<ul class="subpagelist" data-page-id="61"></ul>
```
## Features und Einschränkungen
Seiten deren Pfad mit einem Unterstrich `_` beginnt werden als versteckt interpretiert und nicht in
Page-Listings angezeigt.
Das wird beispielsweise auf der Topictreff-Seite verwendet damit das Topic-Template nicht unter den
neuen Topics aufgelistet wird.
Bei gesetzten Limits kommt es vor, dass weniger Seiten als angegeben aufgelistet werden.
Das scheint ein Bug im WikiJs zu sein wodurch manche Seiten nicht in dem Ergebnis zurückgegeben aber
trotzdem gezählt werden.