83 lines
2.5 KiB
Markdown
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.
|