Panoramica
Durante la migrazione dalla vecchia interfaccia utente alla nuova interfaccia utente di AEM Guides, gli aggiornamenti a ui_config devono essere convertiti in configurazioni dell'interfaccia utente più flessibili e modulari. Questo framework consente di adottare le modifiche direttamente nella editor_toolbar e in altre barre degli strumenti. Il processo supporta anche la modifica di altre viste e widget nell'applicazione.
Modifica di JSON per schermate diverse
I file JSON possono essere aggiunti alla sezione Configurazione dell’interfaccia utente dell’editor XML per diverse schermate e widget. Di seguito è riportato un elenco dei widget di largo utilizzo e dei relativi ID:
-
editor_toolbar: barra degli strumenti di Webeditor costituita da azioni di file e contenuto.
-
editor_tab_bar: visualizzazione a schede dei file aperti in webeditor, include azioni eseguibili sui file aperti.
-
file_mode_switcher: consente di passare da una modalità disponibile all'altra (autore, origine, anteprima) per i file aperti in webeditor.
-
map_console_navigation_bar: è la barra delle informazioni per la mappa aperta nella console delle mappe. Consente di modificare la mappa e di accedere alle impostazioni.
-
map_console_action_bar: questa è la barra delle azioni per gli elementi della console delle mappe come Predefinito di output, Baseline, Traduzione e Rapporti che fornisce informazioni rilevanti insieme ai rispettivi pulsanti di azione.
-
home_navigation_bar: barra di intestazione della home page delle guide in cui viene visualizzato il messaggio di benvenuto insieme al profilo della cartella selezionata.
Struttura generale di ciascun JSON
Ogni JSON segue una struttura coerente:
-
id
: specifica il widget in cui il componente viene personalizzato. -
targetEditor
: definisce quando visualizzare o nascondere un pulsante utilizzando le proprietà dell'editor e della modalità:Le opzioni seguenti sono supportate in
targetEditor
:mode
displayMode
editor
documentType
documentSubType
flag
Per i dettagli, visualizzare Informazioni sulle proprietà di targetEditor
note note NOTE La versione 2506 di Experience Manager Guides introduce nuove proprietà: displayMode
,documentType
,documentSubType
eflag
. Queste proprietà sono supportate solo a partire dalla versione 2506. Analogamente, la modifica datoc
alayout
nella proprietà mode si applica anche a partire da questa versione.È ora disponibile un nuovo campo, documentType
, insieme al campoeditor
esistente. Entrambi i campi sono supportati e possono essere utilizzati in base alle esigenze. Tuttavia, si consiglia di utilizzaredocumentType
per garantire la coerenza tra le implementazioni, in particolare quando si lavora con la proprietàdocumentSubType
. Il campoeditor
rimane valido per supportare la compatibilità con le versioni precedenti e le integrazioni esistenti. -
target
: specifica dove verrà aggiunto il nuovo componente. Questo utilizza coppie o indici chiave-valore per l’identificazione univoca. Gli stati di visualizzazione includono:-
aggiungi: aggiungi alla fine.
-
aggiungi: aggiungi all'inizio.
-
replace: Sostituisci un componente esistente.
-
Esempio di struttura JSON:
{
"id" : "editor_toolbar",
"view": {
"items": [
{
...,
"targetEditor": {
"mode": [
"preview"
],
"editor": [
"xml"
]
},
"target": {
"key": "label",
"value": "Table",
"viewState": "prepend"
},
...
},
]
}
}
Informazioni sulle proprietà di targetEditor
Di seguito è riportato un raggruppamento di ogni proprietà, del suo scopo e dei valori supportati.
mode
Definisce la modalità operativa dell’editor.
Valori supportati: author
, source
, preview
, layout
(in precedenza toc
), split
displayMode
(facoltativo)
Controlla la visibilità o l’interattività dei componenti dell’interfaccia utente. Il valore predefinito è impostato su show
se non specificato.
Valori supportati: show
, hide
, enabled
, disabled
Esempio:
{
"icon": "textBulleted",
"title": "Custom Insert Bulleted",
"on-click": "$$AUTHOR_INSERT_REMOVE_BULLETED_LIST",
"key": "$$AUTHOR_INSERT_REMOVE_BULLETED_LIST",
"targetEditor": {
"documentType": [
"ditamap"
],
"mode": [
"author"
],
"displayMode": "hide"
}
},
editor
Specifica il tipo di documento principale nell'editor.
Valori supportati: ditamap
, bookmap
, subjectScheme
, xml
, css
, translation
, preset
, pdf_preset
documentType
Indica il tipo di documento principale.
Valori supportati: dita
, ditamap
, bookmap
, subjectScheme
, css
, preset
, ditaval
, reports
, baseline
, translation
, html
, markdown
, conditionPresets
Valori aggiuntivi possono essere supportati per casi d’uso specifici.
Esempio:
{
"icon": "textNumbered",
"title": "Custom Numbered List",
"on-click": "$$AUTHOR_INSERT_REMOVE_NUMBERED_LIST",
"key": "$$AUTHOR_INSERT_REMOVE_NUMBERED_LIST",
"targetEditor": {
"documentType": [
"dita",
"ditamap"
],
"mode": [
"author",
"source"
]
}
},
documentSubType
Classifica ulteriormente il documento in base a documentType
.
- Per
preset
:pdf
,html5
,aemsite
,nativePDF
,json
,custom
,kb
- Per
dita
:topic
,reference
,concept
,glossary
,task
,troubleshooting
Valori aggiuntivi possono essere supportati per casi d’uso specifici.
Esempio:
{
"icon": "rename",
"title": "Custom Rename",
"on-click": "$$PUBLISH_PRESETS_RENAME",
"label": "Custom Rename",
"key": "$$PUBLISH_PRESETS_RENAME",
"targetEditor": {
"documentType": [
"preset"
],
"documentSubType": [
"nativePDF",
"aemsite",
"json"
]
}
},
flag
Indicatori booleani per lo stato del documento o le funzionalità.
Valori supportati: isOutputGenerated
, isTemporaryFileDownloadable
, isPDFDownloadable
, isLocked
, isUnlocked
, isDocumentOpen
È inoltre possibile creare un contrassegno personalizzato all'interno di extensionMap
utilizzato come contrassegno in targetEditor
. extensionMap
è una variabile globale utilizzata per aggiungere chiavi personalizzate o valori osservabili.
Esempio:
{
"icon": "filePDF",
"title": "Custom Export pdf",
"on-click": "$$DOWNLOAD_TOPIC_PDF",
"key": "$$DOWNLOAD_TOPIC_PDF",
"targetEditor": {
"documentType": [
"markdown"
],
"mode": [
"preview"
],
"flag": ["isPDFDownloadable"]
}
},
Esempi
Di seguito è riportato un esempio di come aggiungere, eliminare o sostituire un pulsante nella barra degli strumenti dell’editor.
Aggiunta di un pulsante
Aggiunta di un nuovo pulsante Inserisci tabella personalizzata in editor_toolbar per aggiungere una tabella semplice visibile solo in modalità anteprima.
{
"id": "editor_toolbar",
"view": {
"items": [
{
"icon": "table",
"title": "Insert Custom Table",
"on-click": {
"name": "$$AUTHOR_INSERT_ELEMENT",
"args": [
"simpletable",
"table",
"choicetable"
]
},
"key": "$$AUTHOR_INSERT_ELEMENT",
"targetEditor": {
"mode": [
"preview"
],
},
"target": {
"key": "label",
"value": "Table",
"viewState": "prepend"
}
}
]
}
}
Eliminazione di un pulsante
Eliminazione di un pulsante dalla barra degli strumenti. Rimuove il pulsante Aggiungi immagine dalla barra degli strumenti dell’editor.
{
"id": "editor_toolbar",
"view": {
"items": [
{
"hide": true,
"target": {
"key": "label",
"value": "Image",
"viewState": "replace"
}
}
]
}
}
Sostituzione di un pulsante
Sostituzione del pulsante Multimedia nella barra degli strumenti con il pulsante di inserimento del collegamento YouTube visibile solo in modalità di creazione.
{
"id": "editor_toolbar",
"view": {
"items": [
{
"icon": "s2youtube",
"title": "Youtube",
"on-click": {
"name": "$$AUTHOR_INSERT_ELEMENT",
"args": "<object data='http://youtube.com'></object>"
},
"targetEditor": {
"mode": [
"author"
]
},
"target": {
"key": "elementId",
"value": "toolbar-multimedia",
"viewState": "replace"
}
}
]
}
}
Aggiunta di un pulsante in modalità anteprima
In base alla progettazione, la visibilità dei pulsanti viene gestita separatamente per le modalità bloccate e sbloccate (sola lettura) per garantire un'esperienza utente chiara e controllata. Per impostazione predefinita, qualsiasi pulsante appena aggiunto è nascosto quando l’interfaccia è in modalità di sola lettura.
Per rendere visibile un pulsante in modalità sola lettura, è necessario specificare una destinazione che lo collochi in una sottosezione della barra degli strumenti che rimanga accessibile anche quando l'interfaccia è bloccata.
Ad esempio, specificando la destinazione come Scarica come PDF, puoi verificare che il pulsante venga visualizzato nella stessa sezione di un pulsante visibile esistente, rendendolo accessibile in modalità sbloccata.
"target": {
"key": "label",
"value": "Download as PDF",
"viewState": "prepend"
}
Aggiunta di un pulsante Esporta come PDF in modalità Anteprima che sarà visibile sia in modalità blocco che in modalità sblocco.
{
"id": "editor_toolbar",
"view": {
"items": [
{
"icon": "filePDF",
"title": "Export as PDF",
"on-click": "$$DOWNLOAD_TOPIC_PDF",
"key": "$$DOWNLOAD_TOPIC_PDF",
"targetEditor": {
"editor": [
"ditamap",
"xml"
],
"mode": [
"preview"
]
},
"target": {
"key": "label",
"value": "Download as PDF",
"viewState": "prepend"
}
},
{
"icon": "filePDF",
"title": "Export as PDF",
"on-click": "$$DOWNLOAD_TOPIC_PDF",
"key": "$$DOWNLOAD_TOPIC_PDF",
"targetEditor": {
"editor": [
"ditamap",
"xml"
],
"mode": [
"preview"
]
}
}
]
}
}
Lo snippet seguente mostra il pulsante Esporta come PDF con uno scenario di blocco.
Inoltre, il pulsante Esporta come PDF con lo scenario di sblocco è visibile nello snippet seguente.
Personalizzare le opzioni visualizzate nel menu a discesa della barra degli strumenti dell’editor
Puoi aggiungere, nascondere, sostituire e aggiungere opzioni personalizzate nel menu a discesa utilizzando gli esempi seguenti.
Aggiunta
Aggiunta di un’opzione nel menu a discesa Menu. Qui aggiungiamo Pulsante Menu personalizzato nelle opzioni Menu
{
"icon": "specialCharacter",
"title": "Custom menu button",
"on-click": "$$AUTHOR_INSERT_SYMBOL",
"targetEditor": {
"editor": [
"ditamap"
],
"mode": [
"author"
]
},
"target": {
"key": "label",
"value": "Version label",
"viewState": "append"
}
}
Sostituzione
Sostituzione di un'opzione visualizzata nel menu a discesa Menu. Stiamo sostituendo Crea attività di revisione con Pulsante del menu personalizzato 3.
{
"icon": "specialCharacter",
"title": "Custom menu button 3",
"on-click": "$$AUTHOR_INSERT_SYMBOL",
"target": {
"key": "label",
"value": "Create review task",
"viewState": "replace"
}
}
Nascondi
Nasconde un’opzione visualizzata nel menu a discesa Menu. Stiamo nascondendo l'opzione Trova e sostituisci dal menu.
{
"hide": true,
"target": {
"key": "label",
"value": "Find and replace",
"viewState": "replace"
}
}
Aggiunta di un’opzione personalizzata nel sottomenu
Aggiunta di un'opzione nel sottomenu nel menu a discesa Menu.
{
"icon": "viewAllTags",
"title": "Toggle Tags View Goziamasu",
"key": "AUTHOR_TOGGLE_TAG_VIEW",
"target": {
"key": "label",
"value": "Track changes",
"viewState": "replace"
},
"targetEditor": {
"documentType": [
"dita"
],
"mode": [
"author"
]
}
}
Come caricare JSON personalizzati
-
Nella scheda Configurazione editor XML fare clic su Modifica nella barra superiore.
-
Ora nella sezione secondaria Configurazione dell'interfaccia utente dell'editor XML puoi visualizzare un pulsante carica.
-
Puoi fare clic su e caricare il codice JSON modificato. Il json da caricare deve avere lo stesso nome dell’ID del widget da personalizzare.
-
Una volta caricato, premi Salva nella barra superiore.
Per ogni file caricato puoi anche eliminare il JSON per rimuoverne la personalizzazione dall'interfaccia utente o scaricare per visualizzarlo o modificarlo nuovamente.
Come caricare file CSS personalizzati
Puoi anche aggiungere CSS per personalizzare l’aspetto dei pulsanti aggiunti personalizzati o dei widget o pulsanti già esistenti nell’interfaccia utente.
Per un pulsante personalizzato appena aggiunto, aggiungi extraclass al pulsante o al componente personalizzato nel JSON.
Per una vecchia classe, puoi ispezionare l’elemento e modificare anche le classi esistenti.
{
"icon": "table",
"title": "Insert Custom Table",
"extraclass": "custom-css",
"key": "$$AUTHOR_INSERT_ELEMENT",
"targetEditor": {
"mode": [
"preview"
],
},
"target": {
"key": "label",
"value": "Table",
"viewState": "prepend"
}
}
-
Nella scheda Configurazione editor XML fare clic su Modifica nella barra superiore.
-
Ora nella sezione secondaria Layout pagina editor XML puoi visualizzare un pulsante carica.
-
Puoi fare clic su e caricare il file CSS modificato. (Sono supportati solo i file css)
-
Una volta caricato, premi Salva nella barra superiore.
Per ogni file caricato puoi anche eliminare il file CSS per rimuoverne la personalizzazione dall'interfaccia utente o scaricare per visualizzarlo o modificarlo nuovamente.
Esempio di personalizzazione dei css dei pulsanti
In questo caso viene aggiunto un nuovo pulsante Inserisci tabella personalizzata in editor_toolbar per aggiungere una tabella semplice visibile solo in modalità anteprima e applicare un CSS personalizzato.
Questo CSS modifica lo sfondo del pulsante e la dimensione font del titolo.
#editor_toolbar {
.custom-css {
background-color: burlywood;
font-size: 2rem;
}
}
{
"id": "editor_toolbar",
"view": {
"items": [
{
"icon": "table",
"title": "Insert Custom Table",
"extraclass": "custom-css",
...
}
]
}
}
Passaggi per convertire la configurazione UI in Json modulari
-
Dalla schermata Navigazione, fai clic sull'icona Strumenti.
-
Seleziona Guide nel pannello a sinistra.
-
Fare clic sul riquadro Profili cartella.
-
Seleziona un profilo cartella.
-
Fare clic sulla scheda Configurazione editor XML.
-
Puoi fare clic sul pulsante Converti configurazione interfaccia utente in JSON. Verranno generati il json editor_toolbar e map_console_action_bar che contiene le modifiche apportate in ui_config.
-
Puoi estrarre i json generati di esempio per la barra degli strumenti dell'editor e la barra delle azioni della console Mappa