{"id":3667,"date":"2025-10-27T00:02:25","date_gmt":"2025-10-26T22:02:25","guid":{"rendered":"https:\/\/it.davidka.net\/it\/?p=3667"},"modified":"2025-10-27T00:02:44","modified_gmt":"2025-10-26T22:02:44","slug":"evidenziazione-del-codice-in-wordpress-con-gutenberg-e-prism-js","status":"publish","type":"post","link":"https:\/\/it.davidka.net\/it\/itevidenziazione-del-codice-in-wordpress-con-gutenberg-e-prismjs\/","title":{"rendered":"Evidenziazione del codice in WordPress con Gutenberg e Prism.js"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Quando si crea contenuto in WordPress, di solito si utilizza l\u2019editor <strong>Gutenberg<\/strong>.<br>\u00c8 stato introdotto con <strong>WordPress 5.0<\/strong> (dicembre 2018) e ha sostituito il vecchio editor di testo <strong>TinyMCE<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TinyMCE<\/strong> era un editor semplice dell\u2019era del <strong>Web 1.0<\/strong> \u2014 un campo <code class=\"\" data-line=\"\">&lt;textarea&gt;<\/code> con pulsanti come \u201cgrassetto\u201d, \u201ccorsivo\u201d e \u201clink\u201d.<br>Tutto il testo veniva salvato come un unico flusso di codice HTML, rendendo difficile spostare blocchi o inserire qualcosa nel mezzo.<br>Inoltre, TinyMCE <strong>non supportava la griglia adattiva a 12 colonne<\/strong>, diventata lo standard de facto durante l\u2019era del <strong>Web 2.0<\/strong>.<br>Per questo motivo, i layout complessi dovevano essere costruiti manualmente con HTML e CSS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"rtoc-mokuji-wrapper\" class=\"rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default\" data-id=\"3667\" data-theme=\"Neve - Davidka\">\n\t\t\t<div id=\"rtoc-mokuji-title\" class=\"rtoc_btn_none rtoc_left\">\n\t\t\t\n\t\t\t<span>In Questo Articolo<\/span>\n\t\t\t<\/div><ol class=\"rtoc-mokuji decimal_ol level-1\"><li class=\"rtoc-item\"><a href=\"#rtoc-1\">Gutenberg \u2014 un editor di nuova generazione<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-2\">Come Gutenberg gestisce la griglia<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-3\">Il problema del blocco codice standard<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-4\">Cos\u2019\u00e8 Prism.js<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-5\">Lavorare con un tema figlio<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-6\">Come usare il sito Prism.js<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-7\">Configurazione consigliata<\/a><\/li><\/ul><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-8\">Collegare Prism.js a WordPress<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-9\">Numerazione automatica delle righe<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-10\">Escape dei caratteri HTML<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-11\">Stili per i blocchi di codice<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-12\">Funzionalit\u00e0 aggiuntive di Prism.js<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-13\">Prima e dopo Prism.js<\/a><ul class=\"rtoc-mokuji mokuji_ul level-2\"><li class=\"rtoc-item\"><a href=\"#rtoc-14\">Prima<\/a><\/li><li class=\"rtoc-item\"><a href=\"#rtoc-15\">Dopo<\/a><\/li><\/ul><\/li><\/ol><\/div><h2 id=\"rtoc-1\"  class=\"wp-block-heading\">Gutenberg \u2014 un editor di nuova generazione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019editor <strong>Gutenberg<\/strong> ha risolto questi problemi.<br>Ora ogni parte della pagina esiste come <strong>blocco<\/strong> \u2014 titolo, paragrafo, citazione, immagine, tabella o frammento di codice \u2014<br>rendendo l\u2019editing molto pi\u00f9 semplice e le pagine flessibili e reattive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il contenuto deve essere leggibile su qualsiasi dispositivo, dallo smartphone ai grandi monitor.<br>Quando un sito non \u00e8 reattivo, il testo \u201csi sposta\u201d, le immagini vengono tagliate e le tabelle escono dal contenitore.<br>Questo viene risolto grazie a un <strong>layout adattivo<\/strong>, che si adatta automaticamente alle dimensioni dello schermo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alla base di questo layout c\u2019\u00e8 una <strong>griglia a 12 colonne<\/strong>, resa popolare da framework come <strong>Bootstrap<\/strong> e <strong>Foundation<\/strong>.<br>La larghezza del contenitore viene divisa in 12 parti uguali (8,33% ciascuna), permettendo di creare praticamente qualsiasi tipo di composizione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">1 colonna  \u2192 &#091;\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588] 100%\n2 colonne \u2192 &#091;\u2588\u2588\u2588\u2588\u2588\u2588]&#091;\u2588\u2588\u2588\u2588\u2588\u2588] 6\/6\n3 colonne \u2192 &#091;\u2588\u2588\u2588\u2588]&#091;\u2588\u2588\u2588\u2588]&#091;\u2588\u2588\u2588\u2588] 4\/4\/4\n4 colonne \u2192 &#091;\u2588\u2588\u2588]&#091;\u2588\u2588\u2588]&#091;\u2588\u2588\u2588]&#091;\u2588\u2588\u2588] 3\/3\/3\/3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sui dispositivi mobili, le colonne si dispongono automaticamente in verticale,<br>mantenendo il contenuto leggibile e ben ordinato.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-2\"  class=\"wp-block-heading\">Come Gutenberg gestisce la griglia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In Gutenberg, la griglia a 12 colonne \u00e8 implementata tramite il <strong>blocco Colonne<\/strong>,<br>che adatta automaticamente la disposizione degli elementi in base alla larghezza dello schermo.<br>In HTML, si tratta di contenitori con le classi <code class=\"\" data-line=\"\">wp-block-columns<\/code> e <code class=\"\" data-line=\"\">wp-block-column<\/code>,<br>mentre in CSS viene utilizzato <strong>Flexbox<\/strong>, che gestisce l\u2019allineamento e il comportamento delle colonne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;div class=&quot;wp-block-columns&quot;&gt;\n  &lt;div class=&quot;wp-block-column&quot;&gt;\n    &lt;p&gt;Prima colonna&lt;\/p&gt;\n  &lt;\/div&gt;\n  &lt;div class=&quot;wp-block-column&quot;&gt;\n    &lt;p&gt;Seconda colonna&lt;\/p&gt;\n  &lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CSS:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">.wp-block-columns {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 2em;\n}\n.wp-block-column {\n  flex-grow: 1;\n  flex-basis: 0;\n}\n@media (max-width: 600px) {\n  .wp-block-columns {\n    flex-direction: column;\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Questa struttura rende Gutenberg flessibile e garantisce un design coerente su tutti i dispositivi.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-3\"  class=\"wp-block-heading\">Il problema del blocco codice standard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tra tutti i blocchi di Gutenberg, il <strong>blocco Codice<\/strong> merita un\u2019attenzione particolare.<br>Serve per mostrare esempi di programmi, script o configurazioni.<br>Tecnicamente, \u00e8 un semplice contenitore HTML:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;pre&gt; ... &lt;\/pre&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gutenberg e TinyMCE lo visualizzano allo stesso modo \u2014 come <strong>testo in font monospaziato<\/strong><br>(di solito <code class=\"\" data-line=\"\">Consolas<\/code>, <code class=\"\" data-line=\"\">Courier New<\/code> o <code class=\"\" data-line=\"\">Monaco<\/code>)<br>senza evidenziazione della sintassi o numerazione delle righe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Va bene per l\u2019uso base, ma negli articoli tecnici o nei tutorial il codice senza colori \u00e8 difficile da leggere.<br>La soluzione pi\u00f9 semplice \u00e8 utilizzare <strong>Prism.js<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-4\"  class=\"wp-block-heading\">Cos\u2019\u00e8 Prism.js<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prism.js<\/strong> \u00e8 una libreria JavaScript leggera per l\u2019evidenziazione della sintassi direttamente nel browser.<br>Non richiede moduli lato server: lo script analizza il contenuto delle etichette <code class=\"\" data-line=\"\">&lt;pre&gt;&lt;code&gt;...&lt;\/code&gt;&lt;\/pre&gt;<\/code><br>e il file di stile <code class=\"\" data-line=\"\">prism.css<\/code> colora parole chiave, stringhe, numeri e commenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Supporta decine di linguaggi di programmazione \u2014 da HTML e JavaScript a Python e Go \u2014<br>e offre numerosi plugin: numerazione delle righe, pulsante di copia, nome del linguaggio, temi chiaro e scuro, ecc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esempio:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;\nfunction hello(name) {\n  return `Hello, ${name}!`;\n}\n&lt;\/code&gt;&lt;\/pre&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver aggiunto Prism.js, il codice verr\u00e0 evidenziato automaticamente nel browser.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-5\"  class=\"wp-block-heading\">Lavorare con un tema figlio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di aggiungere Prism.js, \u00e8 importante non modificare direttamente il tema principale.<br>Tutte le personalizzazioni in WordPress devono essere fatte tramite un <strong>tema figlio<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un tema WordPress controlla l\u2019aspetto del sito \u2014 modelli, stili, menu, intestazioni e pi\u00e8 di pagina.<br>Se si modifica il tema attivo, il prossimo aggiornamento eliminer\u00e0 le modifiche.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un tema figlio evita questo problema: eredita dal tema principale ma conserva le personalizzazioni separatamente,<br>proteggendo il codice durante gli aggiornamenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crea una cartella:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">\/wp-content\/themes\/il-mio-tema-figlio\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aggiungi un file <code class=\"\" data-line=\"\">style.css<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">\/*\n Theme Name:   Il mio tema figlio\n Template:     il-mio-tema\n Version:      1.0\n*\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il campo <code class=\"\" data-line=\"\">Template<\/code> deve corrispondere al nome della cartella del tema principale.<br>Poi crea <code class=\"\" data-line=\"\">functions.php<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;?php\nadd_action(&#039;wp_enqueue_scripts&#039;, &#039;child_enqueue_styles&#039;);\nfunction child_enqueue_styles() {\n    wp_enqueue_style(&#039;parent-style&#039;, get_template_directory_uri() . &#039;\/style.css&#039;);\n    wp_enqueue_style(&#039;child-style&#039;,\n        get_stylesheet_directory_uri() . &#039;\/style.css&#039;,\n        array(&#039;parent-style&#039;)\n    );\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Attiva il tema figlio in <strong>Aspetto \u2192 Temi<\/strong><br>e lavora all\u2019interno di esso per aggiungere le modifiche.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-6\"  class=\"wp-block-heading\">Come usare il sito Prism.js<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta pronto il tema figlio, visita il sito ufficiale di Prism.js:<br>\ud83d\udc49 <a href=\"https:\/\/prismjs.com\/\">https:\/\/prismjs.com<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apri la scheda <strong>Download<\/strong> per creare la tua versione personalizzata della libreria.<\/p>\n\n\n\n<h3 id=\"rtoc-7\"  class=\"wp-block-heading\">Configurazione consigliata<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Compression level:<\/strong> <code class=\"\" data-line=\"\">Minified<\/code><\/li>\n\n\n\n<li><strong>Languages:<\/strong> HTML, CSS, JavaScript, PHP, Python, JSON<\/li>\n\n\n\n<li><strong>Plugins:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Line Numbers<\/li>\n\n\n\n<li>Toolbar<\/li>\n\n\n\n<li>Copy to Clipboard Button<\/li>\n\n\n\n<li>(opzionale) Show Language<\/li>\n\n\n\n<li>(opzionale) Highlight Lines<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Scarica:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DOWNLOAD JS<\/strong> \u2192 <code class=\"\" data-line=\"\">prism.js<\/code><\/li>\n\n\n\n<li><strong>DOWNLOAD CSS<\/strong> \u2192 <code class=\"\" data-line=\"\">prism.css<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Posiziona entrambi i file nella cartella del tema figlio:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">\/wp-content\/themes\/il-mio-tema-figlio\/\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-8\"  class=\"wp-block-heading\">Collegare Prism.js a WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apri <code class=\"\" data-line=\"\">functions.php<\/code> e aggiungi:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">add_action(&#039;wp_enqueue_scripts&#039;, &#039;theme_enqueue_prism_assets&#039;);\nfunction theme_enqueue_prism_assets() {\n    $version = &#039;1.29.0&#039;;\n    wp_enqueue_style(&#039;prism-css&#039;,\n        get_stylesheet_directory_uri() . &#039;\/prism.css&#039;, &#091;], $version);\n    wp_enqueue_script(&#039;prism-js&#039;,\n        get_stylesheet_directory_uri() . &#039;\/prism.js&#039;, &#091;], $version, true);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ora Prism.js evidenzier\u00e0 automaticamente tutto il codice contenuto tra<br><code class=\"\" data-line=\"\">&lt;pre&gt;&lt;code&gt;...&lt;\/code&gt;&lt;\/pre&gt;<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-9\"  class=\"wp-block-heading\">Numerazione automatica delle righe<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Puoi aggiungere un filtro WordPress per numerare automaticamente le righe:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">add_filter(&#039;render_block_core\/code&#039;, &#039;theme_add_prism_line_numbers&#039;, 10, 2);\nfunction theme_add_prism_line_numbers($content, $block) {\n    return str_replace(\n        &#039;&lt;pre class=&quot;wp-block-code&quot;&gt;&#039;,\n        &#039;&lt;pre class=&quot;wp-block-code line-numbers&quot;&gt;&#039;,\n        $content\n    );\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-10\"  class=\"wp-block-heading\">Escape dei caratteri HTML<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se il tuo codice contiene i simboli <code class=\"\" data-line=\"\">&lt;<\/code> o <code class=\"\" data-line=\"\">&gt;<\/code>, il browser potrebbe interpretarli come tag HTML.<br>Per evitarlo, aggiungi un filtro che li converta automaticamente quando salvi il post:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">add_filter(&#039;content_save_pre&#039;, &#039;theme_escape_code_on_save&#039;);\nfunction theme_escape_code_on_save($content) {\n    return preg_replace_callback(\n        &#039;\/&lt;code(&#091;^&gt;]*)&gt;(.*?)&lt;\\\/code&gt;\/is&#039;,\n        function ($m) {\n            $attrs = $m&#091;1];\n            $code  = htmlspecialchars($m&#091;2], ENT_NOQUOTES, &#039;UTF-8&#039;);\n            return &quot;&lt;code{$attrs}&gt;{$code}&lt;\/code&gt;&quot;;\n        },\n        $content\n    );\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-11\"  class=\"wp-block-heading\">Stili per i blocchi di codice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aggiungi questi stili nel file <code class=\"\" data-line=\"\">style.css<\/code> del tema figlio:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">pre&#091;class*=&quot;language-&quot;] {\n  border-radius: 6px;\n  border: 1px solid #ddd;\n  padding: 1em;\n  background: #f6f8fa;\n  font-family: &#039;Fira Code&#039;, Consolas, monospace;\n  font-size: 14px;\n  line-height: 1.6;\n  overflow: auto;\n}\npre&#091;class*=&quot;language-&quot;].line-numbers {\n  padding-left: 3.8em;\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-12\"  class=\"wp-block-heading\">Funzionalit\u00e0 aggiuntive di Prism.js<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udd22 <strong>Numerazione delle righe<\/strong> \u2014 aggiunge numeri come negli IDE.<\/li>\n\n\n\n<li>\ud83e\udde0 <strong>Evidenziazione di righe specifiche<\/strong> \u2014 usa <code class=\"\" data-line=\"\">data-line=&quot;2,4-5&quot;<\/code> per mettere in risalto alcune righe.<\/li>\n\n\n\n<li>\ud83d\udccb <strong>Pulsante Copia<\/strong> \u2014 copia il codice con un clic.<\/li>\n\n\n\n<li>\ud83d\udca1 <strong>Nome del linguaggio<\/strong> \u2014 mostra il linguaggio sopra il blocco.<\/li>\n\n\n\n<li>\ud83c\udf17 <strong>Tema chiaro e scuro<\/strong> \u2014 commutazione automatica:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">@media (prefers-color-scheme: dark) {\n  body { background: #1e1e1e; color: #d4d4d4; }\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83c\udfa8 <strong>Personalizzazione<\/strong> \u2014 puoi modificare i colori dei token nel tuo <code class=\"\" data-line=\"\">style.css<\/code>:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">.token.keyword { color: #d73a49; font-weight: 600; }\n.token.string  { color: #032f62; }\n.token.comment { color: #6a737d; font-style: italic; }\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"rtoc-13\"  class=\"wp-block-heading\">Prima e dopo Prism.js<\/h2>\n\n\n\n<h3 id=\"rtoc-14\"  class=\"wp-block-heading\">Prima<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;pre&gt;&lt;code&gt;\nfunction greet(name) {\n  return `Hello, ${name}`;\n}\n&lt;\/code&gt;&lt;\/pre&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Risultato:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">function greet(name) {\n  return `Hello, ${name}`;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Testo monospaziato, senza colori n\u00e9 numerazione.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"rtoc-15\"  class=\"wp-block-heading\">Dopo<\/h3>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">&lt;pre class=&quot;line-numbers&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;\nfunction greet(name) {\n  return `Hello, ${name}`;\n}\n&lt;\/code&gt;&lt;\/pre&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Risultato:<\/p>\n\n\n\n<pre class=\"wp-block-code line-numbers\"><code class=\" language-python\" data-line=\"\">1 function greet(name) {\n2   return `Hello, ${name}`;\n3 }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni riga ha un numero, il codice \u00e8 colorato<br>e compare un pulsante <strong>Copy<\/strong> per copiare il contenuto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prism.js<\/strong> rende i frammenti di codice pi\u00f9 chiari e leggibili.<br>Funziona interamente nel browser, senza plugin aggiuntivi,<br>e non influisce sulle prestazioni.<br>Una volta configurato, il codice apparir\u00e0 ordinato, coerente e piacevole da leggere.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si crea contenuto in WordPress, di solito si utilizza l\u2019editor Gutenberg.\u00c8 stato introdotto con WordPress 5.0 (dicembre 2018) e ha sostituito il vecchio editor di testo TinyMCE. TinyMCE era un editor semplice dell\u2019era del Web 1.0 \u2014 un campo &lt;textarea&gt; con pulsanti come \u201cgrassetto\u201d, \u201ccorsivo\u201d e \u201clink\u201d.Tutto il testo veniva salvato come un unico&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":3668,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/comments?post=3667"}],"version-history":[{"count":0,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/posts\/3667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media\/3668"}],"wp:attachment":[{"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/media?parent=3667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/categories?post=3667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it.davidka.net\/it\/wp-json\/wp\/v2\/tags?post=3667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}