Skip to content

Commit c7a47d0

Browse files
committed
aggiornamento
1 parent 991c138 commit c7a47d0

2 files changed

Lines changed: 166 additions & 31 deletions

File tree

Eurostat/PIL_previsioni.ipynb

Lines changed: 80 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -898,10 +898,87 @@
898898
},
899899
{
900900
"cell_type": "code",
901-
"execution_count": null,
901+
"execution_count": 6,
902902
"metadata": {},
903-
"outputs": [],
904-
"source": []
903+
"outputs": [
904+
{
905+
"name": "stdout",
906+
"output_type": "stream",
907+
"text": [
908+
"📁 Notebook copiato in: D:\\paolovolterra.github.io\\Eurostat\\PIL_previsioni.ipynb\n",
909+
"🌀 Converto in HTML con codice…\n",
910+
"✅ HTML esportato in: D:\\paolovolterra.github.io\\Eurostat\\docs\\PIL_previsioni.html\n"
911+
]
912+
}
913+
],
914+
"source": [
915+
"from pathlib import Path\n",
916+
"from shutil import copyfile\n",
917+
"import nbformat\n",
918+
"from nbconvert import HTMLExporter\n",
919+
"\n",
920+
"# === CONFIGURAZIONE ===\n",
921+
"nb_name = \"PIL_previsioni\" # <-- senza estensione\n",
922+
"src_ipynb = Path(f\"{nb_name}.ipynb\")\n",
923+
"dst_ipynb = Path(f\"D:/paolovolterra.github.io/Eurostat/{src_ipynb.name}\")\n",
924+
"dst_html = Path(f\"D:/paolovolterra.github.io/Eurostat/docs/{nb_name}.html\")\n",
925+
"\n",
926+
"# === CREA CARTELLE SE NECESSARIO ===\n",
927+
"dst_ipynb.parent.mkdir(parents=True, exist_ok=True)\n",
928+
"dst_html.parent.mkdir(parents=True, exist_ok=True)\n",
929+
"\n",
930+
"# === 1. COPIA NOTEBOOK ORIGINALE ===\n",
931+
"copyfile(src_ipynb, dst_ipynb)\n",
932+
"print(f\"📁 Notebook copiato in: {dst_ipynb.resolve()}\")\n",
933+
"\n",
934+
"# === 2. CONVERSIONE IN HTML (CON CODICE) ===\n",
935+
"print(\"🌀 Converto in HTML con codice…\")\n",
936+
"with src_ipynb.open(\"r\", encoding=\"utf-8\") as f:\n",
937+
" nb_node = nbformat.read(f, as_version=4)\n",
938+
"\n",
939+
"html_exporter = HTMLExporter()\n",
940+
"html_exporter.exclude_input = False # Mostra codice\n",
941+
"html_exporter.exclude_output_prompt = True\n",
942+
"html_exporter.exclude_input_prompt = True\n",
943+
"html_exporter.template_name = \"classic\"\n",
944+
"\n",
945+
"# === STILE CSS PERSONALIZZATO (opzionale) ===\n",
946+
"custom_css = \"\"\"\n",
947+
"<style>\n",
948+
"body {\n",
949+
" font-family: 'Segoe UI', sans-serif;\n",
950+
" margin: 40px;\n",
951+
" line-height: 1.6;\n",
952+
" color: #333;\n",
953+
"}\n",
954+
"h1, h2, h3 {\n",
955+
" color: #007a53;\n",
956+
" border-bottom: 1px solid #ddd;\n",
957+
" padding-bottom: 0.3em;\n",
958+
"}\n",
959+
"code {\n",
960+
" background-color: #f8f8f8;\n",
961+
" padding: 0.2em 0.4em;\n",
962+
" border-radius: 4px;\n",
963+
" font-size: 90%;\n",
964+
"}\n",
965+
"pre {\n",
966+
" background-color: #f4f4f4;\n",
967+
" padding: 1em;\n",
968+
" border-radius: 6px;\n",
969+
" overflow-x: auto;\n",
970+
"}\n",
971+
"</style>\n",
972+
"\"\"\"\n",
973+
"\n",
974+
"# === GENERA HTML ===\n",
975+
"body, _ = html_exporter.from_notebook_node(nb_node)\n",
976+
"body = body.replace(\"</head>\", f\"{custom_css}\\n</head>\")\n",
977+
"\n",
978+
"# === SALVA HTML ===\n",
979+
"dst_html.write_text(body, encoding=\"utf-8\")\n",
980+
"print(f\"✅ HTML esportato in: {dst_html.resolve()}\")\n"
981+
]
905982
}
906983
],
907984
"metadata": {

Eurostat/docs/PIL_previsioni.html

Lines changed: 86 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7507,33 +7507,12 @@
75077507
white-space: normal;
75087508
}
75097509
</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; }
75357515
</style>
7536-
75377516
</head>
75387517
<body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
75397518
<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>
85578536
</div>
85588537
</div>
85598538
</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">
85618540
<div class="jp-Cell-inputWrapper" tabindex="0">
85628541
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
85638542
</div>
85648543
<div class="jp-InputArea jp-Cell-inputArea">
85658544
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
85668545
<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"># &lt;-- 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">&lt;style&gt;</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">&lt;/style&gt;</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">"&lt;/head&gt;"</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">&lt;/head&gt;"</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>
85688612
</pre></div>
85698613
</div>
85708614
</div>
85718615
</div>
85728616
</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>
85738631
</div>
85748632
</main>
85758633
</body>

0 commit comments

Comments
 (0)