@@ -8461,6 +8461,116 @@ <h3 id="%F0%9F%93%8C-Conclusione">📌 Conclusione<a class="anchor-link" href="#
84618461</div>
84628462</div>
84638463</div>
8464+ <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
8465+ <div class="jp-Cell-inputWrapper" tabindex="0">
8466+ <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
8467+ </div>
8468+ <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
8469+ <h1 id="Backup">Backup<a class="anchor-link" href="#Backup">¶</a></h1>
8470+ </div>
8471+ </div>
8472+ </div>
8473+ </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell">
8474+ <div class="jp-Cell-inputWrapper" tabindex="0">
8475+ <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
8476+ </div>
8477+ <div class="jp-InputArea jp-Cell-inputArea">
8478+ <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
8479+ <div class="cm-editor cm-s-jupyter">
8480+ <div class="highlight hl-python"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">nbformat</span>
8481+ <span class="kn">from</span><span class="w"> </span><span class="nn">nbconvert</span><span class="w"> </span><span class="kn">import</span> <span class="n">HTMLExporter</span>
8482+ <span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
8483+
8484+ <span class="c1"># === CONFIGURAZIONE ===</span>
8485+ <span class="n">nb_name</span> <span class="o">=</span> <span class="s2">"PIL_previsioni"</span> <span class="c1"># <-- senza estensione</span>
8486+ <span class="n">input_path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">nb_name</span><span class="si">}</span><span class="s2">.ipynb"</span><span class="p">)</span>
8487+ <span class="n">output_path</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="sa">f</span><span class="s2">"D:/paolovolterra.github.io/Eurostat/docs/</span><span class="si">{</span><span class="n">nb_name</span><span class="si">}</span><span class="s2">.html"</span><span class="p">)</span>
8488+
8489+ <span class="c1"># === CREA CARTELLA DI OUTPUT SE NECESSARIA ===</span>
8490+ <span class="n">output_path</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">parents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
8491+
8492+ <span class="c1"># === CARICA NOTEBOOK ===</span>
8493+ <span class="nb">print</span><span class="p">(</span><span class="s2">"📖 Carico il notebook…"</span><span class="p">)</span>
8494+ <span class="k">with</span> <span class="n">input_path</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s2">"r"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
8495+ <span class="n">nb_node</span> <span class="o">=</span> <span class="n">nbformat</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">as_version</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
8496+
8497+ <span class="c1"># === CONVERSIONE IN HTML ===</span>
8498+ <span class="nb">print</span><span class="p">(</span><span class="s2">"🌀 Converto in HTML…"</span><span class="p">)</span>
8499+ <span class="n">exporter</span> <span class="o">=</span> <span class="n">HTMLExporter</span><span class="p">()</span>
8500+ <span class="n">exporter</span><span class="o">.</span><span class="n">exclude_input_prompt</span> <span class="o">=</span> <span class="kc">True</span>
8501+ <span class="n">exporter</span><span class="o">.</span><span class="n">exclude_output_prompt</span> <span class="o">=</span> <span class="kc">True</span>
8502+ <span class="n">exporter</span><span class="o">.</span><span class="n">template_name</span> <span class="o">=</span> <span class="s2">"classic"</span>
8503+
8504+ <span class="c1"># === CSS PERSONALIZZATO (opzionale) ===</span>
8505+ <span class="n">custom_css</span> <span class="o">=</span> <span class="s2">"""</span>
8506+ <span class="s2"><style></span>
8507+ <span class="s2">body {</span>
8508+ <span class="s2"> font-family: 'Segoe UI', sans-serif;</span>
8509+ <span class="s2"> margin: 40px;</span>
8510+ <span class="s2"> line-height: 1.6;</span>
8511+ <span class="s2"> color: #333;</span>
8512+ <span class="s2">}</span>
8513+ <span class="s2">h1, h2, h3 {</span>
8514+ <span class="s2"> color: #007a53;</span>
8515+ <span class="s2"> border-bottom: 1px solid #ddd;</span>
8516+ <span class="s2"> padding-bottom: 0.3em;</span>
8517+ <span class="s2">}</span>
8518+ <span class="s2">code {</span>
8519+ <span class="s2"> background-color: #f8f8f8;</span>
8520+ <span class="s2"> padding: 0.2em 0.4em;</span>
8521+ <span class="s2"> border-radius: 4px;</span>
8522+ <span class="s2"> font-size: 90%;</span>
8523+ <span class="s2">}</span>
8524+ <span class="s2">pre {</span>
8525+ <span class="s2"> background-color: #f4f4f4;</span>
8526+ <span class="s2"> padding: 1em;</span>
8527+ <span class="s2"> border-radius: 6px;</span>
8528+ <span class="s2"> overflow-x: auto;</span>
8529+ <span class="s2">}</span>
8530+ <span class="s2"></style></span>
8531+ <span class="s2">"""</span>
8532+
8533+ <span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">resources</span><span class="p">)</span> <span class="o">=</span> <span class="n">exporter</span><span class="o">.</span><span class="n">from_notebook_node</span><span class="p">(</span><span class="n">nb_node</span><span class="p">)</span>
8534+
8535+ <span class="c1"># Inserisce CSS nell'head</span>
8536+ <span class="n">body</span> <span class="o">=</span> <span class="n">body</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</head>"</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">custom_css</span><span class="si">}</span><span class="se">\n</span><span class="s2"></head>"</span><span class="p">)</span>
8537+
8538+ <span class="c1"># === SALVA HTML ===</span>
8539+ <span class="n">output_path</span><span class="o">.</span><span class="n">write_text</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span>
8540+ <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"✅ Salvato in: </span><span class="si">{</span><span class="n">output_path</span><span class="o">.</span><span class="n">resolve</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
8541+ </pre></div>
8542+ </div>
8543+ </div>
8544+ </div>
8545+ </div>
8546+ <div class="jp-Cell-outputWrapper">
8547+ <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
8548+ </div>
8549+ <div class="jp-OutputArea jp-Cell-outputArea">
8550+ <div class="jp-OutputArea-child">
8551+ <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0">
8552+ <pre>📖 Carico il notebook…
8553+ 🌀 Converto in HTML…
8554+ ✅ Salvato in: D:\paolovolterra.github.io\Eurostat\docs\PIL_previsioni.html
8555+ </pre>
8556+ </div>
8557+ </div>
8558+ </div>
8559+ </div>
8560+ </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs">
8561+ <div class="jp-Cell-inputWrapper" tabindex="0">
8562+ <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
8563+ </div>
8564+ <div class="jp-InputArea jp-Cell-inputArea">
8565+ <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
8566+ <div class="cm-editor cm-s-jupyter">
8567+ <div class="highlight hl-python"><pre><span></span>
8568+ </pre></div>
8569+ </div>
8570+ </div>
8571+ </div>
8572+ </div>
8573+ </div>
84648574</main>
84658575</body>
84668576</html>
0 commit comments