Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

De Quaestor wiki heeft een aantal onderdelen waarbij sommige stukken tekst steeds terug komen, zoals de Quick Links onderaan een beschrijving van een attribute. Aangezien er 258 attributen en dus 258 artikelen staan waarin deze links moeten komen is dit een hoop werk om handmatig te doen. Ook komt het de precisie niet ten goede als dit met de hand wordt gedaan en moet de tekst mogelijk later weer aangepast worden. Bij dit soort situaties is de maker van de documentatie (en eigenlijk ook de gebruikers) gebaat bij een tool die dit middels een script in een keer kan doen. Confluence CLI lijkt deze mogelijkheid, en nog veel meer, te bieden

Werking

De CLI wordt geleverd met een aardig uitgebreide documentatie. Naast deze documentatie beschrijft deze blog hoe de installatie van CLI moet gebeuren. Hieronder in een notendop wat er moet gebeuren om de CLI werkend te krijgen.

...

Ik heb ergens het idee dat er een soort reporting moet zijn (als een actie mislukt bijvoorbeeld) maar dat heb ik niet. Mogelijk vanwege mijn aangepaste batch. 

Voorbeelden

Find en Replace

Zelf heb ik deze veelvuldig gebruikt, erg handig als je een groot aantal pagina's hebt waarvoor hetzelfde stuk tekst moet vervangen voor iets anders (of verwijderen). Dit kan op 2 manieren. 

...

Ik heb manier 2 een aantal keer gebruikt om de functie en attribute beschrijvingen (80% van de wiki) van quick link bars te voorzien. In een bestand genaamd 'qlb_findReplaceQuickLink.txt' staat het volgende script: 

-a modifyPage --space "@space@" --title "@title@" --content "" --findReplaceRegex "(Quick).*?(links).*?(Function overview).*?(Attribute overview).*?(Constants overview).*?(Dimensions overview): " --noConvert
-a modifyPage --space "@space@" --title "@title@" --content "" --content2 "<links>" --noConvert

"@space@" en ''@title@" worden later vervangen door een space en title. De eerste regel verwijderd alle bestaande quick link bars. Dit was een noodzakelijke actie omdat bij het kopiëren van de artikels naar MODS de quick link bars mee werden gekopieerd, maar dan zonder hyperlinks (dus als platte tekst). Deze moesten eerst worden verwijderd voordat de quick link bar met de juiste hyperlinks kon worden toegevoegd aan het artikel.  

De actie findReplaceRegex in deze regel bepaald dus wat er verwijderd moet worden en wat niet. Deze regex zoekt naar alles wat de strings tussen haken bevat en vervangt het met een lege string. De --noConvert is trouwens een hele belangrijke flag die je moet setten, dit zorgt ervoor dat de HTML in de content wordt gezien als HTML en niet als platte tekst. Als je dit weglaat krijg je een hoop HTML tags als platte tekst, en dat is waarschijnlijk niet de bedoeling. 

Dit script wordt in CMD dan als volgt aangeroepen:

confluence --action runFromPageList --space "QUAESTOR" --title "Functions" --children --file qlb_findReplaceQuickLink

De strings ingevuld bij --space en --title vervangen dus "@space@" en ''@title@" in qlb_findReplaceQuickLink.txt. De actie runFromPageList zorgt ervoor dat dit script voor alle childpages van het artikel waarop je het aanroept wordt uitgevoerd, in dit geval dus alles wat onder "Functions" staat.

Dit script is te gebruiken voor vergelijkbare acties, alleen de title, space en regex moeten veranderd worden. Gebruik deze gigantisch handige webtool als je, net als ik, geen held  bent met regex! Dit genereerd een regex die een opgegeven string matched. 

Extern script uitvoeren

In het voorbeeld hierboven wordt er al een voorbeeld van gegeven; het uitvoeren van een extern script middels de run actie. Als je meer dan 1 actie achter elkaar wilt uitvoeren moet je dit doen, want in de CMD kan je maar 1 actie tegelijk uitvoeren, hoogst onhandig in de meeste gevallen natuurlijk. 

Er veranderd wel iets aan de werkwijze, normaal gesproken gebruik je --action om een actie aan te duiden. Met een extern script gebruik je niet --action maar --a.  Voorbeeld: