wikijs-metabot/README.md

83 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2022-09-23 10:05:34 +00:00
# WikiJs Metabot
Ein Skript was die Page-Listings auf [https://wiki.ctdo.de](https://wiki.ctdo.de)
2022-10-11 10:30:29 +00:00
automatisch befüllt.
Das Repo enthält außerdem die Konfiguration für ein kleines Topictreff-Form mit dem man neue Tops
anlegen kann.
2022-09-23 10:05:34 +00:00
## Verwendung
2022-09-23 15:44:23 +00:00
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
2022-09-23 10:05:34 +00:00
2022-09-23 15:44:23 +00:00
```html
<ul class="pagelist" data-query="QUERY"></ul>
2022-09-23 10:05:34 +00:00
```
2022-09-23 15:44:23 +00:00
Dabei muss `QUERY` eine Parameterliste für die `PageQuery::list`-Methode der WikiJs-GraphQL-API
sein. Folgende Parameter werden unterstützt:
2022-09-23 10:05:34 +00:00
```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
2022-09-23 10:05:34 +00:00
Liste aller Seiten die mit den Tags `top` und `new` versehen sind:
2022-09-23 15:44:23 +00:00
```html
<ul class="pagelist" data-query="tags: ['top', 'new']"></ul>
2022-09-23 10:05:34 +00:00
```
Liste der 10 zuletzt bearbeiteten Seiten:
2022-09-23 15:44:23 +00:00
```html
<ul
class="pagelist"
data-query="orderBy: UPDATED, orderByDirection: DESC, limit: 10"
></ul>
2022-09-23 10:05:34 +00:00
```
Liste der Unterseiten von der Events-Seite:
2022-09-23 10:05:34 +00:00
```html
<ul class="subpagelist" data-page-id="61"></ul>
```
## Features und Einschränkungen
2022-09-23 10:21:02 +00:00
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.
2022-09-23 10:21:02 +00:00
Bei gesetzten Limits kommt es vor, dass weniger Seiten als angegeben aufgelistet werden.
2022-09-23 15:44:23 +00:00
Das scheint ein Bug im WikiJs zu sein wodurch manche Seiten nicht in dem Ergebnis zurückgegeben aber
trotzdem gezählt werden.