|
7507 | 7507 | white-space: normal; |
7508 | 7508 | } |
7509 | 7509 | </style> |
7510 | | -<!-- End of mermaid configuration --> |
7511 | | -<style> |
7512 | | -body { |
7513 | | - font-family: 'Segoe UI', sans-serif; |
7514 | | - margin: 40px; |
7515 | | - line-height: 1.6; |
7516 | | - color: #333; |
7517 | | -} |
7518 | | -h1, h2, h3 { |
7519 | | - color: #007a53; |
7520 | | - border-bottom: 1px solid #ddd; |
7521 | | - padding-bottom: 0.3em; |
7522 | | -} |
7523 | | -code { |
7524 | | - background-color: #f8f8f8; |
7525 | | - padding: 0.2em 0.4em; |
7526 | | - border-radius: 4px; |
7527 | | - font-size: 90%; |
7528 | | -} |
7529 | | -pre { |
7530 | | - background-color: #f4f4f4; |
7531 | | - padding: 1em; |
7532 | | - border-radius: 6px; |
7533 | | - overflow-x: auto; |
7534 | | -} |
| 7510 | +<!-- End of mermaid configuration --><style> |
| 7511 | +body { font-family: 'Segoe UI', sans-serif; margin: 40px; line-height: 1.6; color: #333; } |
| 7512 | +h1, h2, h3 { color: #007a53; border-bottom: 1px solid #ddd; padding-bottom: 0.3em; } |
| 7513 | +code { background: #f8f8f8; padding: 0.2em 0.4em; border-radius: 4px; } |
| 7514 | +pre { background: #f4f4f4; padding: 1em; border-radius: 6px; overflow-x: auto; } |
7535 | 7515 | </style> |
7536 | | - |
7537 | 7516 | </head> |
7538 | 7517 | <body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light"> |
7539 | 7518 | <main><div class="jp-Cell jp-CodeCell jp-Notebook-cell"> |
@@ -8557,19 +8536,98 @@ <h1 id="Backup">Backup<a class="anchor-link" href="#Backup">¶</a></h1> |
8557 | 8536 | </div> |
8558 | 8537 | </div> |
8559 | 8538 | </div> |
8560 | | -</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs"> |
| 8539 | +</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell"> |
8561 | 8540 | <div class="jp-Cell-inputWrapper" tabindex="0"> |
8562 | 8541 | <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> |
8563 | 8542 | </div> |
8564 | 8543 | <div class="jp-InputArea jp-Cell-inputArea"> |
8565 | 8544 | <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> |
8566 | 8545 | <div class="cm-editor cm-s-jupyter"> |
8567 | | -<div class="highlight hl-python"><pre><span></span> |
| 8546 | +<div class="highlight hl-python"><pre><span></span><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> |
| 8547 | +<span class="kn">from</span><span class="w"> </span><span class="nn">shutil</span><span class="w"> </span><span class="kn">import</span> <span class="n">copyfile</span> |
| 8548 | +<span class="kn">import</span><span class="w"> </span><span class="nn">nbformat</span> |
| 8549 | +<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> |
| 8550 | + |
| 8551 | +<span class="c1"># === CONFIGURAZIONE ===</span> |
| 8552 | +<span class="n">nb_name</span> <span class="o">=</span> <span class="s2">"PIL_previsioni"</span> <span class="c1"># <-- senza estensione</span> |
| 8553 | +<span class="n">src_ipynb</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> |
| 8554 | +<span class="n">dst_ipynb</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/</span><span class="si">{</span><span class="n">src_ipynb</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> |
| 8555 | +<span class="n">dst_html</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> |
| 8556 | + |
| 8557 | +<span class="c1"># === CREA CARTELLE SE NECESSARIO ===</span> |
| 8558 | +<span class="n">dst_ipynb</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> |
| 8559 | +<span class="n">dst_html</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> |
| 8560 | + |
| 8561 | +<span class="c1"># === 1. COPIA NOTEBOOK ORIGINALE ===</span> |
| 8562 | +<span class="n">copyfile</span><span class="p">(</span><span class="n">src_ipynb</span><span class="p">,</span> <span class="n">dst_ipynb</span><span class="p">)</span> |
| 8563 | +<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"📁 Notebook copiato in: </span><span class="si">{</span><span class="n">dst_ipynb</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> |
| 8564 | + |
| 8565 | +<span class="c1"># === 2. CONVERSIONE IN HTML (CON CODICE) ===</span> |
| 8566 | +<span class="nb">print</span><span class="p">(</span><span class="s2">"🌀 Converto in HTML con codice…"</span><span class="p">)</span> |
| 8567 | +<span class="k">with</span> <span class="n">src_ipynb</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> |
| 8568 | + <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> |
| 8569 | + |
| 8570 | +<span class="n">html_exporter</span> <span class="o">=</span> <span class="n">HTMLExporter</span><span class="p">()</span> |
| 8571 | +<span class="n">html_exporter</span><span class="o">.</span><span class="n">exclude_input</span> <span class="o">=</span> <span class="kc">False</span> <span class="c1"># Mostra codice</span> |
| 8572 | +<span class="n">html_exporter</span><span class="o">.</span><span class="n">exclude_output_prompt</span> <span class="o">=</span> <span class="kc">True</span> |
| 8573 | +<span class="n">html_exporter</span><span class="o">.</span><span class="n">exclude_input_prompt</span> <span class="o">=</span> <span class="kc">True</span> |
| 8574 | +<span class="n">html_exporter</span><span class="o">.</span><span class="n">template_name</span> <span class="o">=</span> <span class="s2">"classic"</span> |
| 8575 | + |
| 8576 | +<span class="c1"># === STILE CSS PERSONALIZZATO (opzionale) ===</span> |
| 8577 | +<span class="n">custom_css</span> <span class="o">=</span> <span class="s2">"""</span> |
| 8578 | +<span class="s2"><style></span> |
| 8579 | +<span class="s2">body {</span> |
| 8580 | +<span class="s2"> font-family: 'Segoe UI', sans-serif;</span> |
| 8581 | +<span class="s2"> margin: 40px;</span> |
| 8582 | +<span class="s2"> line-height: 1.6;</span> |
| 8583 | +<span class="s2"> color: #333;</span> |
| 8584 | +<span class="s2">}</span> |
| 8585 | +<span class="s2">h1, h2, h3 {</span> |
| 8586 | +<span class="s2"> color: #007a53;</span> |
| 8587 | +<span class="s2"> border-bottom: 1px solid #ddd;</span> |
| 8588 | +<span class="s2"> padding-bottom: 0.3em;</span> |
| 8589 | +<span class="s2">}</span> |
| 8590 | +<span class="s2">code {</span> |
| 8591 | +<span class="s2"> background-color: #f8f8f8;</span> |
| 8592 | +<span class="s2"> padding: 0.2em 0.4em;</span> |
| 8593 | +<span class="s2"> border-radius: 4px;</span> |
| 8594 | +<span class="s2"> font-size: 90%;</span> |
| 8595 | +<span class="s2">}</span> |
| 8596 | +<span class="s2">pre {</span> |
| 8597 | +<span class="s2"> background-color: #f4f4f4;</span> |
| 8598 | +<span class="s2"> padding: 1em;</span> |
| 8599 | +<span class="s2"> border-radius: 6px;</span> |
| 8600 | +<span class="s2"> overflow-x: auto;</span> |
| 8601 | +<span class="s2">}</span> |
| 8602 | +<span class="s2"></style></span> |
| 8603 | +<span class="s2">"""</span> |
| 8604 | + |
| 8605 | +<span class="c1"># === GENERA HTML ===</span> |
| 8606 | +<span class="n">body</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">html_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> |
| 8607 | +<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> |
| 8608 | + |
| 8609 | +<span class="c1"># === SALVA HTML ===</span> |
| 8610 | +<span class="n">dst_html</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> |
| 8611 | +<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"✅ HTML esportato in: </span><span class="si">{</span><span class="n">dst_html</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> |
8568 | 8612 | </pre></div> |
8569 | 8613 | </div> |
8570 | 8614 | </div> |
8571 | 8615 | </div> |
8572 | 8616 | </div> |
| 8617 | +<div class="jp-Cell-outputWrapper"> |
| 8618 | +<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> |
| 8619 | +</div> |
| 8620 | +<div class="jp-OutputArea jp-Cell-outputArea"> |
| 8621 | +<div class="jp-OutputArea-child"> |
| 8622 | +<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0"> |
| 8623 | +<pre>📁 Notebook copiato in: D:\paolovolterra.github.io\Eurostat\PIL_previsioni.ipynb |
| 8624 | +🌀 Converto in HTML con codice… |
| 8625 | +✅ HTML esportato in: D:\paolovolterra.github.io\Eurostat\docs\PIL_previsioni.html |
| 8626 | +</pre> |
| 8627 | +</div> |
| 8628 | +</div> |
| 8629 | +</div> |
| 8630 | +</div> |
8573 | 8631 | </div> |
8574 | 8632 | </main> |
8575 | 8633 | </body> |
|
0 commit comments