Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

di il
5 risposte

Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

C'è un sistema per indentare il codice html oppure il codice java in modo che scompaia quando pubblico la webapp oppure il sorgente su una data piattaforma?
Nel caso non fosse possibile c'è un sistema per rimuovere tutto con l'IDE (uso IntelliJ) in modo automatico?
grazie

5 Risposte

  • Re: Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

    iBaffiPro ha scritto:


    C'è un sistema per indentare il codice html oppure il codice java in modo che scompaia quando pubblico la webapp oppure il sorgente su una data piattaforma?
    La domanda forse è posta un po' male ..... che intendi?
    E poi, il codice Java cosa c'entra? Il sorgente Java DEVE essere (ben!) indentato .. altrimenti si capirebbe poco/niente.

    Riguardo il HTML se intendi dire che: tu scrivi il template BEN indentato e spaziato (per ovvia facilità di sviluppo) ma poi vuoi che a runtime le spaziature superflue (e eventualmente le righe vuote) vengano eliminate prima che la pagina venga emessa nella response ... allora sì, ci potrebbero essere delle soluzioni.
    Non so dire esattamente se Thymeleaf ha già questa feature di serie. Ad occhio direi di no perché non mi pare di letto qualcosa a riguardo. Thymeleaf dalla 3.x comunque supporta il concetto dei post-processor, che sono in grado di elaborare la pagina dopo che Thymeleaf ha già applicato tutta la sua logica. Quindi tecnicamente/teoricamente si potrebbe fare con un post-processor apposito. Ed è possibile che qualcuno ci abbia già pensato ....

    iBaffiPro ha scritto:


    Nel caso non fosse possibile c'è un sistema per rimuovere tutto con l'IDE (uso IntelliJ) in modo automatico?
    Ti direi: non perdere tempo a rimuovere indentazioni e spazi "a mano" (e nemmeno con un ide). Come ho già detto, per il codice Java è bene che sia ben indentato e spaziato. Quello che invece sarebbe bene fare è rimuovere tutti i trailing-whitespace (spazi a fine riga) e tra l'altro un IDE come Eclipse lo può fare in automatico ad ogni save (e per IntelliJ IDEA immagino ci sia l'equivalente).

    E per il codice HTML al limite si può usare la indentazione a 1 spazio (o 2), che è un buon compromesso tra leggibilità e occupazione di spazio (a meno che hai una struttura megagalattica con 45 livelli di annidamento .... ).
  • Re: Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

    Scusa ho sbagliato termine... quello che ho scritto è incomprensibile... scusami tanto...
    Mi riferivo ai commenti tipo questo:
    
    <!-- Si usa "th:utext="${x}" quando si vuole aggiungere alla variabile x anche del codice html. -->
    <!-- Si usa "th:text="${x}" quando non si vuole aggiungere alla variabile x anche del codice html. -->
    <!-- Se si scrive <span th:utext="${x}">insalata</span> il testo "insalata" viene sostituito dal contenuto della
    variabile x. Con <span th:text="${x}">insalata</span> accade lo stesso comportamento. -->
    
    che fanno un po' ridere e che non vorrei fossero leggibili nella webapp finale e che servono a me per ricordarmi alcune cose che mi sono appuntato mentre scrivevo/copiavo il codice.
    Stessa cosa per il codice java, in pratica il testo dopo le due slash //.
    // Metodo usato per definire, ecc...
  • Re: Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

    iBaffiPro ha scritto:


    Mi riferivo ai commenti tipo questo:
    
    <!-- Si usa "th:utext="${x}" quando si vuole aggiungere alla variabile x anche del codice html. -->
    <!-- Si usa "th:text="${x}" quando non si vuole aggiungere alla variabile x anche del codice html. -->
    <!-- Se si scrive <span th:utext="${x}">insalata</span> il testo "insalata" viene sostituito dal contenuto della
    variabile x. Con <span th:text="${x}">insalata</span> accade lo stesso comportamento. -->
    
    Con Thymeleaf ci sono 3 forme possibili di "commenti".

    Commenti standard di HTML/XML:
    La forma <!-- ....... --> è quella standard di HTML/XML. Questa NON viene interpretata da Thymeleaf e viene emessa direttamente in response. Quindi questi commenti sono comunque visibili a chi guarda la response in qualche modo (usando un tool tipo curl, Postman o aprendo il sorgente della pagina da un browser).

    Commenti "parser-level":
    La forma <!--/* ....... */--> viene interpretata da Thymeleaf e NON viene emessa in response. Questa forma si può sfruttare anche per far vedere del codice HTML quando il template viene aperto staticamente come "prototipo" (cioè aperto direttamente da un browser) ma poi quel codice viene appunto rimosso a runtime e non emesso in response.

    Commenti "prototype-only":
    La forma <!--/*/ ...... /*/--> diventa un "commento" (quindi trattato come commento HTML/XML) quando il template è aperto staticamente come "prototipo" ma poi a runtime Thymeleaf rimuove solo i marcatori inizio-fine del commento e il contenuto viene emesso in response.
  • Re: Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

    Perfetto, grazie mille, a me interessa il secondo.
    Non capisco quale sia l'utilità del terzo tipo di commento ma buono a sapersi.
    Per quanto riguarda i commenti delle classi java invece immagino che non esista nulla di analogo, giusto?
    Forse l'IDE ha qualche funzionalità... conoscerò l'1% dei comandi di questo programma...
  • Re: Indentare il codice html/java di un'applicazione Spring Boot con Thymeleaf

    iBaffiPro ha scritto:


    Non capisco quale sia l'utilità del terzo tipo di commento ma buono a sapersi.
    (ho eliminato la mia precedente risposta perché mi sono accorto che per svista avevo descritto un caso d'uso del secondo tipo di commento ...)

    Il terzo tipo di commento è invece più particolare e meno usato. Permette di "commentare" (nascondere, disabilitare) delle parti della pagina quando il template è aperto come "prototipo" mentre invece le rende visibili in response a runtime. I casi d'uso non sono tantissimi ma ad esempio può aver senso nascondere del codice Javascript quando si usa il template come prototipo ma che poi ovviamente è invece necessario a runtime.

    iBaffiPro ha scritto:


    Per quanto riguarda i commenti delle classi java invece immagino che non esista nulla di analogo, giusto?
    No infatti. Se pubblichi i sorgenti da qualche parte, i commenti ovviamente si vedono. Quindi occhio a cosa scrivi ...
Devi accedere o registrarti per scrivere nel forum
5 risposte