Kaldenhoven Wiki

Tips en trucs voor het gebruik van WikiJS. (Het systeem waar deze Wiki ook op draait)

Markup tips en trucs

Tabellen voor gelijkmatig verdelen content

Normaal gesproken kan je een tabel maken middels pipes, Enige is dat de content wordt verdeeld op basis van de cel die de meeste tekst erin heeft staan. Als je dus een cel hebt met tekst en de andere met een plaatje, dan wordt het plaatje heel klein.

|Gebruik een anti-aanbak bakvorm om de cake in te bakken. Goed voor ongeveer 1 grote cake. Optioneel nog variatie tips voor smaken en bijvoorbeeld marmercake. (Zie rechts)|![cake.png](/Recepten/cake.png)|
|:-|-:|

Dit geeft het volgende:

tabel-standaard.png

Middels een stukje css kan je dit aanpassen. Voor deze wiki is dat in het thema opgenomen, maar je kan het ook per pagina opnemen bij de pagina instellingen onder stijlen.

table {
  width: 95%;
  table-layout: fixed
}

Dan geeft het volgende stukje code wat nog steeds hetzelfde is als bovenaan.

|Gebruik een anti-aanbak bakvorm om de cake in te bakken. Goed voor ongeveer 1 grote cake. Optioneel nog variatie tips voor smaken en bijvoorbeeld marmercake. (Zie rechts)|![cake.png](/Recepten/cake.png)|
|:-|-:|

Dit als resultaat.

tabel-met-css.png

Externe links naar externe sites wil je misschien liever in een nieuw tabblad openen. Normaal met target="_blank". Dit werkt niet precies hetzelfde in markdown. Om dit te realiseren moet je de link als volgt vormgeven.

[linktekst](http://www.google.nl){target=_"blank"}

Dit geeft dan het volgende linktekst effect.

Naar header linken

Om een link binnen dezelfde pagina naar een andere header te maken gebruik je het # en daarachter de header. Spaties vervang je door streepjes -. De volgende code gebruik je hiervoor.

[Link naar grote diagrammen](#grote-diagrammen-maken)

Link naar grote diagrammen

Linken naar een header op een andere pagina (binnen de eigen wiki) gaat als volgt.

[Link naar header 'Repository toevoegen' op andere pagina](#repository-toevoegen)

Link naar header 'Repository toevoegen' op andere pagina

Grote diagrammen maken

Grote diagrammen importeren of maken in de editor gaat nog wel. Echter daarna de pagina opslaan lukt dan vaak niet meer, want de gegenereerde code is te groot om op te slaan. Althans er wordt een limit geraakt. Standaard gebruikt WikiJS de limiet van 1mb voor JSON berichten. Deze kan je verhogen naar 100mb zonder problemen. Ja het opslaan duurt iets langer, maar het werkt wel.
De andere limiet waar je rekening mee moet houden is de max_allowed_packet grootte van MySQL.

master.js aanpassen

In de file /wiki/server/master.js staat de sectie voor GrapQL

// ----------------------------------------
  // GraphQL Server
  // ----------------------------------------

  app.use(bodyParser.json({ limit: '1mb' }))
  await WIKI.servers.startGraphQL()

Pas hierin de waarde van 1mb aan naar 100mb bijvoorbeeld of nog hoger. Eventueel gelijk aan de max_allowed_packet.

// ----------------------------------------
  // GraphQL Server
  // ----------------------------------------

  app.use(bodyParser.json({ limit: '100mb' }))
  await WIKI.servers.startGraphQL()

WikiJS onder docker

Als je WikiJS vanuit een docker container runt dan moet je de file in de docker container aanpassen. Het is helaas geen variabele of anderszins een optie die bij start van de container kan meegeven. Bij upgrades of opnieuw aanmaken container moet de handeling dus opnieuw worden uitgevoerd.
Aanpassen van de file gaat als volgt. Naam van de container is wiki

docker exec -it wiki /bin/bash
vi /wiki/server/master.js

max_allowed_packet aanpassen

MySQL heeft ook een limiet voor de maximale grootte van contents die in een tabel gepost kan worden. Aangezien WikiJS alles in DB opslaat, ook bestanden als BLOB, moet MySQL grote bestanden dus wel kunnen accepteren.
Zoek je MySQL config bestand op. Voor mij onder Ubuntu 18.04.5 is dit

/etc/mysql/mysql.conf.d/mysqld.cnf

Zoek in dit bestand naar max_allowed_packet (hieronder op regel 10) en vergroot deze naar een waarde die je redelijk acht. Ik heb zelf 256M en heb daar nog geen problemen van ondervonden.

#
# * Fine Tuning
#
innodb_buffer_pool_instances = 2
innodb_thread_concurrency = 0
innodb_read_io_threads    = 8
innodb_write_io_threads   = 8

key_buffer_size         = 16M
max_allowed_packet      = 256M
thread_stack            = 192K
thread_cache_size       = 8