Approfondiamo l’argomento
In questo post andremo ad approfondire quanto già trattato nei seguenti post in materia di User Macro
Vediamo cosa possiamo fare
Nei precedenti post, abbiamo visto il classico esempio Hello World, croce e delizia di tutti gli sviluppatori. Questo per cercare di capire che cosa possiamo realizzare. Cerchiamo di entrare nel dettaglio.
Parametri
Possiamo gestire dei parametri nelle User Macro? La risposta è si :-). Si tratta dei parametri, cui siamo oramai abituati, che normalmente vengono chiesti quando andiamo ad eseguire l’editing della macro stessa.
Possiamo definirli come:
## @param MYNAME:title=MY TITLE|type=MY TYPE|desc=MY DESCRIPTION|required=true|multiple=true|default=MY DEFAULT VALUE
ovvero come:
- ## – Serve per identificare questa sezione di definizione di parametri e di caratteristiche della User Macro.
- @param<nome> – Definisce il parametro. Utilizzando il prefisso @param, tutto ciò che si trova subito dopo sarà considerato come il nome del patametr
- attributi – possiamo definire una serie di attributi, quali:
- Titolo
- Tipo del parametro, che può assumere un valore tra i seguenti:
- boolean (Booleano)
- enum (per definire degli insiemi di possibili valori)
- string (Stringa generica)
- confluence-content (per consentire di poter referenziare dei contenuti di Confluence stesso, quali blog post o pagine)
- username (per consentire di poter selezionare degli utenti)
- spacekey (per consentire di poter selezionare degli space)
- date (data)
- int (numerico)
- percentage (trattato come una stringa. Sembra sia utilizzato per definire delle percentuali di utilizzo o per indicare tipo, ad esempio, quanti post blog visualizzare)
La User Macro può anche non presentare dei parametri. Basta, semplicemente, indicarlo come segue:
## @noparams
Oggetti disponibili
Vediamo quali oggetti abbiamo a disposizione per poter eseguire le nostre elaborazioni.
- $body – il corpo della macro, come indicato nei post precedenti.
- $param<nome> – il parametro definito.
- $config – Si tratta dell’oggetto bootstrapManager di Confluence, che restituisce diverse proprietà di Confluence che possiamo utilizzare.
- $space – oggetto Space, dove viene richiamata la Macro. Tramite questo oggetto possiamo richiamare diverse informazioni, quali pagine, blog post, etc.
- $renderContext – Si tratta delle informazioni restituite dall’oggetto PageContext.
- $content – Si tratta delle informazioni restituite dall’oggetto ContentEntity.
Maggiori ragguagli sono disponibili nella sezione developer della Atlassian.
Prossimi passi?
Nei prossimi passi, andremo ad approfondire un altro esempio
Reference