devo aggiungere una sottocategoria al file che ti scrivo piu avanti, voglio che la sezione Luogo abbia 3 opzioni, bianco per lasciarev la riga vuota, Dentro e Fuori, ognuna delle quali abbianata alla sottocategoria che devi creare, dove inseriro i vari luoghi all'interno o allesterno. QWuesto è il file, non modificare altro, inserisci solo le sottocategorie richieste:     <!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Generatore di Prompt Interattivo</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        .select-container {
            display: flex;
            align-items: center;
            margin-bottom: 10px;
        }
        .select-label {
            width: 150px;
            text-align: right;
            margin-right: 10px;
        }
        select, button {
            margin: 5px 0;
            padding: 5px;
        }
        select {
            flex-grow: 1;
        }
        button {
            width: 100%;
        }
        #output {
            margin-top: 20px;
            border: 1px solid #ccc;
            padding: 10px;
            min-height: 100px;
        }
        .main-container {
            display: flex;
            justify-content: space-between;
        }
        .left-container {
            width: 70%;
        }
        .right-container {
            width: 28%;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
        }
        #generaPromptButton {
            font-size: 1.2em;
            padding: 10px;
            margin-top: 20px;
            height: 100px;
        }
    </style>
</head>
<body>
    <h1>Generatore di Prompt Interattivo</h1>
    
    <div class="main-container">
        <div class="left-container">
            <div class="select-container">
                <label class="select-label" for="nomi">Nome:</label>
                <select id="nomi"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="categoria-prompt">Categoria Prompt:</label>
                <select id="categoria-prompt"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="sottocategoria-prompt">Sottocategoria Prompt:</label>
                <select id="sottocategoria-prompt"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="luoghi">Luogo:</label>
                <select id="luoghi"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="azioni">Azione:</label>
                <select id="azioni"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="ausiliare">Ausiliare 1:</label>
                <select id="ausiliare"></select>
            </div>
            <div class="select-container">
                <label class="select-label" for="ausiliare2">Ausiliare 2:</label>
                <select id="ausiliare2"></select>
            </div>
            
            <button onclick="aggiungiOpzione('nomi')">Aggiungi Nome</button>
            <button onclick="aggiungiCategoria()">Aggiungi Categoria Prompt</button>
            <button onclick="aggiungiSottocategoria()">Aggiungi Sottocategoria Prompt</button>
            <button onclick="aggiungiOpzione('luoghi')">Aggiungi Luogo</button>
            <button onclick="aggiungiOpzione('azioni')">Aggiungi Azione</button>
            <button onclick="aggiungiOpzione('ausiliare')">Aggiungi Ausiliare 1</button>
            <button onclick="aggiungiOpzione('ausiliare2')">Aggiungi Ausiliare 2</button>
            
            <button onclick="modificaOpzione()">Modifica Opzione</button>
            <button onclick="eliminaOpzione()">Elimina Opzione</button>
            <button onclick="importaLista()">Importa Lista</button>
            
            <button onclick="esportaDati()">Esporta Dati</button>
            <button onclick="importaDati()">Importa Dati</button>
        </div>
        <div class="right-container">
            <button id="generaPromptButton" onclick="generaPrompt()">Genera Prompt</button>
        </div>
    </div>
    
    <div id="output"></div>

    <script>
        const selectIds = ['nomi', 'categoria-prompt', 'sottocategoria-prompt', 'luoghi', 'azioni', 'ausiliare', 'ausiliare2'];
        const selectIdsWithBlank = ['luoghi', 'azioni', 'ausiliare', 'ausiliare2'];
        let promptCategorie = {};

        function salvaOpzioni() {
            selectIds.forEach(id => {
                if (id !== 'sottocategoria-prompt') {
                    const opzioni = Array.from(document.getElementById(id).options).map(opt => opt.value).filter(opt => opt !== '');
                    localStorage.setItem(id, JSON.stringify(opzioni));
                }
            });
            localStorage.setItem('promptCategorie', JSON.stringify(promptCategorie));
        }

        function caricaOpzioni() {
            selectIds.forEach(id => {
                if (id !== 'sottocategoria-prompt') {
                    const opzioni = JSON.parse(localStorage.getItem(id) || '[]');
                    popolaSelect(id, opzioni.sort());
                }
            });
            promptCategorie = JSON.parse(localStorage.getItem('promptCategorie') || '{}');
            aggiornaCategorieSottocategorie();
        }

        function popolaSelect(id, opzioni) {
            const select = document.getElementById(id);
            select.innerHTML = '';
            if (selectIdsWithBlank.includes(id)) {
                const blankOption = document.createElement('option');
                blankOption.text = '(vuoto)';
                blankOption.value = '';
                select.add(blankOption);
            }
            opzioni.forEach(opt => {
                const option = document.createElement('option');
                option.text = opt;
                select.add(option);
            });
        }

        function aggiungiOpzione(selectId) {
            const nuovaOpzione = prompt(`Inserisci una nuova opzione per ${selectId}:`);
            if (nuovaOpzione) {
                const select = document.getElementById(selectId);
                const opzioni = Array.from(select.options).map(opt => opt.value).filter(opt => opt !== '');
                opzioni.push(nuovaOpzione);
                popolaSelect(selectId, opzioni.sort());
                salvaOpzioni();
            }
        }

        function aggiungiCategoria() {
            const nuovaCategoria = prompt("Inserisci una nuova categoria di prompt:");
            if (nuovaCategoria) {
                promptCategorie[nuovaCategoria] = [];
                aggiornaCategorieSottocategorie();
                salvaOpzioni();
            }
        }

        function aggiungiSottocategoria() {
            const categoriaSelect = document.getElementById('categoria-prompt');
            const categoriaSelezionata = categoriaSelect.value;
            if (categoriaSelezionata) {
                const nuovaSottocategoria = prompt(`Inserisci una nuova sottocategoria per ${categoriaSelezionata}:`);
                if (nuovaSottocategoria) {
                    promptCategorie[categoriaSelezionata].push(nuovaSottocategoria);
                    promptCategorie[categoriaSelezionata].sort();
                    aggiornaCategorieSottocategorie();
                    salvaOpzioni();
                }
            } else {
                alert("Seleziona prima una categoria.");
            }
        }

        function aggiornaCategorieSottocategorie() {
            const categoriaSelect = document.getElementById('categoria-prompt');
            const sottocategoriaSelect = document.getElementById('sottocategoria-prompt');
            
            popolaSelect('categoria-prompt', Object.keys(promptCategorie).sort());
            
            categoriaSelect.onchange = function() {
                const categoriaSelezionata = this.value;
                popolaSelect('sottocategoria-prompt', (promptCategorie[categoriaSelezionata] || []).sort());
            }
            
            categoriaSelect.onchange();
        }

        function modificaOpzione() {
            const selectId = prompt("Quale menu vuoi modificare? (nomi, categoria-prompt, sottocategoria-prompt, luoghi, azioni, ausiliare, ausiliare2)");
            if (selectIds.includes(selectId)) {
                const select = document.getElementById(selectId);
                const opzioneVecchia = select.value;
                const opzioneNuova = prompt(`Modifica l'opzione "${opzioneVecchia}" in:`);
                if (opzioneNuova) {
                    if (selectId === 'categoria-prompt') {
                        promptCategorie[opzioneNuova] = promptCategorie[opzioneVecchia];
                        delete promptCategorie[opzioneVecchia];
                        aggiornaCategorieSottocategorie();
                    } else if (selectId === 'sottocategoria-prompt') {
                        const categoria = document.getElementById('categoria-prompt').value;
                        const index = promptCategorie[categoria].indexOf(opzioneVecchia);
                        if (index !== -1) {
                            promptCategorie[categoria][index] = opzioneNuova;
                            promptCategorie[categoria].sort();
                            aggiornaCategorieSottocategorie();
                        }
                    } else {
                        const opzioni = Array.from(select.options).map(opt => opt.text).filter(opt => opt !== '');
                        const index = opzioni.indexOf(opzioneVecchia);
                        if (index !== -1) {
                            opzioni[index] = opzioneNuova;
                            popolaSelect(selectId, opzioni.sort());
                        }
                    }
                    salvaOpzioni();
                }
            } else {
                alert("Menu non valido.");
            }
        }

        function eliminaOpzione() {
            const selectId = prompt("Da quale menu vuoi eliminare? (nomi, categoria-prompt, sottocategoria-prompt, luoghi, azioni, ausiliare, ausiliare2)");
            if (selectIds.includes(selectId)) {
                const select = document.getElementById(selectId);
                const opzioneDaEliminare = select.value;
                if (confirm(`Sei sicuro di voler eliminare "${opzioneDaEliminare}"?`)) {
                    if (selectId === 'categoria-prompt') {
                        delete promptCategorie[opzioneDaEliminare];
                        aggiornaCategorieSottocategorie();
                    } else if (selectId === 'sottocategoria-prompt') {
                        const categoria = document.getElementById('categoria-prompt').value;
                        const index = promptCategorie[categoria].indexOf(opzioneDaEliminare);
                        if (index !== -1) {
                            promptCategorie[categoria].splice(index, 1);
                            aggiornaCategorieSottocategorie();
                        }
                    } else {
                        const opzioni = Array.from(select.options).map(opt => opt.text).filter(opt => opt !== '' && opt !== opzioneDaEliminare);
                        popolaSelect(selectId, opzioni);
                    }
                    salvaOpzioni();
                }
            } else {
                alert("Menu non valido.");
            }
        }

        function generaPrompt() {
            const nome = document.getElementById('nomi').value;
            const categoria = document.getElementById('categoria-prompt').value;
            const sottocategoria = document.getElementById('sottocategoria-prompt').value;
            const luogo = document.getElementById('luoghi').value;
            const azione = document.getElementById('azioni').value;
            const ausiliare = document.getElementById('ausiliare').value;
            const ausiliare2 = document.getElementById('ausiliare2').value;

            const promptGenerato = [nome, categoria, sottocategoria, luogo, azione, ausiliare, ausiliare2]
                .filter(item => item !== '')
                .join(' ');
            document.getElementById('output').innerText = promptGenerato;
        }

        function esportaDati() {
            const dati = {
                promptCategorie: promptCategorie
            };
            selectIds.forEach(id => {
                if (id !== 'sottocategoria-prompt') {
                    dati[id] = JSON.parse(localStorage.getItem(id) || '[]');
                }
            });
            const datiBlobTxt = JSON.stringify(dati, null, 2);
            const dateNow = new Date();
            const filename = 'promptGenerator_dati_' + dateNow.toISOString().split('T')[0] + '.txt';
            
            const dataUrl = `data:text/plain;charset=utf-8,${encodeURIComponent(datiBlobTxt)}`;
            const link = document.createElement('a');
            link.href = dataUrl;
            link.download = filename;
            link.click();
        }

        function importaDati() {
            const input = document.createElement('input');
            input.type = 'file';
            input.accept = '.txt';
            input.onchange = function(event) {
                const file = event.target.files[0];
                const reader = new FileReader();
                reader.onload = function(e) {
                    const contenuto = e.target.result;
                    try {
                        const dati = JSON.parse(contenuto);
                        promptCategorie = dati.promptCategorie;
                        selectIds.forEach(id => {
                            if (id !== 'sottocategoria-prompt' && dati[id]) {
                                localStorage.setItem(id, JSON.stringify(dati[id]));
                            }
                        });
                        localStorage.setItem('promptCategorie', JSON.stringify(promptCategorie));
                        caricaOpzioni();
                        alert('Dati importati con successo!');
                    } catch (error) {
                        alert('Errore durante l\'importazione dei dati. Assicurati che il file sia nel formato corretto.');
                    }
                };
                reader.readAsText(file);
            };
            input.click();
        }

        function importaLista() {
            const selectId = prompt("In quale menu vuoi importare la lista? (nomi, luoghi, azioni, ausiliare, ausiliare2, categoria-prompt)");
            if (selectIds.includes(selectId) && selectId !== 'sottocategoria-prompt') {
                if (selectId === 'categoria-prompt') {
                    const lista = prompt("Incolla la tua lista di categorie e sottocategorie nel formato 'Categoria: Sottocategoria1, Sottocategoria2, ...' una categoria per riga:");
                    if (lista) {
                        const righe = lista.split('\n');
                        righe.forEach(riga => {
                            const [categoria, sottocategorie] = riga.split(':').map(item => item.trim());
                            if (categoria && sottocategorie) {
                                if (!promptCategorie[categoria]) {
                                    promptCategorie[categoria] = [];
                                }
                                const nuoveSottocategorie = sottocategorie.split(',').map(item => item.trim());
                                promptCategorie[categoria] = [...new Set([...promptCategorie[categoria], ...nuoveSottocategorie])].sort();
                            }});
                        aggiornaCategorieSottocategorie();
                        salvaOpzioni();
                        alert('Categorie e sottocategorie importate con successo.');
                    }
                } else {
                    const lista = prompt("Incolla la tua lista di opzioni, una per riga:");
                    if (lista) {
                        const opzioni = lista.split('\n').map(item => item.trim()).filter(item => item !== '');
                        const select = document.getElementById(selectId);
                        const opzioniEsistenti = Array.from(select.options).map(opt => opt.value).filter(opt => opt !== '');
                        const nuoveOpzioni = [...new Set([...opzioniEsistenti, ...opzioni])].sort();
                        popolaSelect(selectId, nuoveOpzioni);
                        salvaOpzioni();
                        alert(`Importate ${opzioni.length} nuove opzioni nel menu ${selectId}.`);
                    }
                }
            } else {
                alert("Menu non valido o non supportato per l'importazione di liste.");
            }
        }

        // Carica le opzioni salvate al caricamento della pagina
        window.onload = caricaOpzioni;
    </script>
</body>
</html>