65 lines
2.0 KiB
Markdown
65 lines
2.0 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 kann an der gewünschten Stelle ein HTML-Element folgender Form eingefügt werden:
|
|
|
|
```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
|
|
```
|
|
|
|
### 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>
|
|
```
|
|
|
|
### 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
|
|
|
|
## 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.
|