From b78f79e12e3199594bd4ae609dcbc2e43c8dc9a2 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:28:25 +0200 Subject: [PATCH 01/24] docs: move legacy docs to legacy_docs/ Assisted-by: Delta:zai-glm-5.3 --- .nojekyll => legacy_docs/.nojekyll | 0 CNAME => legacy_docs/CNAME | 0 {Embed => legacy_docs/Embed}/README.md | 0 {Embed => legacy_docs/Embed}/STM32/README.md | 0 {Embed => legacy_docs/Embed}/nRF/README.md | 0 .../Embed}/nRF/development_environment.md | 0 .../Embed}/nRF/medias/GDB_settings.png | Bin {HES-SO => legacy_docs/HES-SO}/OneDrive.md | 0 {HES-SO => legacy_docs/HES-SO}/README.md | 0 {HES-SO => legacy_docs/HES-SO}/Teams.md | 0 .../HES-SO}/medias/microsoft_graph-result_id.png | Bin .../medias/microsoft_graph-result_research.png | Bin .../HES-SO}/medias/microsoft_graph-search_bar.png | Bin .../medias/microsoft_graph-search_site_id.png | Bin {MSE => legacy_docs/MSE}/README.md | 0 {MSE => legacy_docs/MSE}/SRE/README.md | 0 {MSE => legacy_docs/MSE}/SRE/tools.md | 0 {MSE => legacy_docs/MSE}/_navbar.md | 0 {Security => legacy_docs/Security}/README.md | 0 {Security => legacy_docs/Security}/SSH/README.md | 0 _glossary.md => legacy_docs/_glossary.md | 0 _navbar.md => legacy_docs/_navbar.md | 0 {divers => legacy_docs/divers}/README.md | 0 {divers => legacy_docs/divers}/example4_v3.png | Bin {divers => legacy_docs/divers}/excalidraw.json | 0 {divers => legacy_docs/divers}/panel.md | 0 index.html => legacy_docs/index.html | 0 {infotro => legacy_docs/infotro}/Eln/ADDA.md | 0 {infotro => legacy_docs/infotro}/Eln/Filtres.md | 0 {infotro => legacy_docs/infotro}/Eln/README.md | 0 {infotro => legacy_docs/infotro}/Eln/RF.md | 0 .../infotro}/Eln/SignauxEtEchantillonnage.md | 0 {infotro => legacy_docs/infotro}/Eln/Ztransform.md | 0 .../infotro}/Eln/labs/06-filters/README.md | 0 .../Eln/labs/06-filters/bode_design_filter.svg | 0 .../infotro}/Eln/labs/06-filters/direct_form_1.svg | 0 .../infotro}/Eln/labs/06-filters/direct_form_2.svg | 0 .../infotro}/Eln/labs/06-filters/iir_filter.svg | 0 .../infotro}/Eln/labs/_navbar.md | 0 .../infotro}/Eln/medias/add_line_on_smith_chart.png | Bin .../infotro}/Eln/medias/comptage-graph.png | Bin .../infotro}/Eln/medias/comptage.png | Bin .../infotro}/Eln/medias/filters-h0.png | Bin .../infotro}/Eln/medias/filters-h1.png | Bin .../infotro}/Eln/medias/filters-h2.png | Bin .../infotro}/Eln/medias/filters-h3.png | Bin .../infotro}/Eln/medias/filters-h4.png | Bin .../infotro}/Eln/medias/filters-h5-h6.png | Bin .../infotro}/Eln/medias/filters-orther.png | Bin .../infotro}/Eln/medias/filters-summary.png | Bin .../medias/filtre_numerique_passe_bas_2-bode.png | Bin .../medias/filtre_numerique_passe_bas_2-reponse.png | Bin .../infotro}/Eln/medias/fourier_cerlce_unitaire.svg | 0 .../infotro}/Eln/medias/impedance_matching.png | Bin .../infotro}/Eln/medias/lit_recusrive_example.png | Bin .../infotro}/Eln/medias/parallele.png | Bin .../infotro}/Eln/medias/pesee.png | Bin .../reponse_impulsionelle-continue_discret.png | Bin .../infotro}/Eln/medias/rf-capacitor-graph.png | Bin .../infotro}/Eln/medias/rf-capacitor.png | Bin .../infotro}/Eln/medias/rf-filter_components.png | Bin .../infotro}/Eln/medias/rf-filters_prototype.png | Bin .../infotro}/Eln/medias/rf-inductor-graph.png | Bin .../infotro}/Eln/medias/rf-inductor.png | Bin .../infotro}/Eln/medias/rf-kuroda_identities.png | Bin .../medias/rf-normalized_value-butterworth_1_10.png | Bin .../rf-normalized_value_chebyshev_ripple_0_5.png | Bin .../rf-normalized_value_chebyshev_ripple_3.png | Bin .../infotro}/Eln/medias/rf-resistor.png | Bin .../infotro}/Eln/medias/schema_bloc_fir.svg | 0 .../infotro}/Eln/medias/sigma-delta.drawio | 0 .../infotro}/Eln/medias/snr_by_osr.png | Bin .../infotro}/Eln/medias/specification_de_filtre.svg | 0 {infotro => legacy_docs/infotro}/Eln/ztabelle01.png | Bin {infotro => legacy_docs/infotro}/Eln/ztabelle02.png | Bin {infotro => legacy_docs/infotro}/Eln/ztabelle03.png | Bin {infotro => legacy_docs/infotro}/PTR/PCO.md | 0 {infotro => legacy_docs/infotro}/PTR/README.md | 0 {infotro => legacy_docs/infotro}/PTR/RealTime.md | 0 {infotro => legacy_docs/infotro}/PTR/SYS.md | 0 {infotro => legacy_docs/infotro}/PTR/UML.md | 0 {infotro => legacy_docs/infotro}/PTR/XF.md | 0 {infotro => legacy_docs/infotro}/PTR/img.png | Bin {infotro => legacy_docs/infotro}/PTR/img_1.png | Bin .../infotro}/PTR/medias/algo_banquier1.png | Bin .../infotro}/PTR/medias/algo_banquier2.png | Bin .../infotro}/PTR/medias/interblocage.png | Bin .../infotro}/PTR/medias/interruptions.png | Bin .../infotro}/PTR/medias/multiprogramming.png | Bin .../infotro}/PTR/medias/operating_system.png | Bin .../infotro}/PTR/medias/ordonnanceur.png | Bin .../infotro}/PTR/medias/spooling.png | Bin .../PTR/medias/synthese_diagram_queue_process.png | Bin .../infotro}/PTR/medias/system_asynchron.png | Bin .../infotro}/PTR/medias/system_synchron.png | Bin .../infotro}/PTR/medias/time-sharing.png | Bin {infotro => legacy_docs/infotro}/README.md | 0 {infotro => legacy_docs/infotro}/SDi/README.md | 0 {infotro => legacy_docs/infotro}/SDi/bluetooth.md | 0 .../infotro}/SDi/cipher_modes.png | Bin {infotro => legacy_docs/infotro}/SDi/database.md | 0 .../infotro}/SDi/iot_technologies.md | 0 .../infotro}/SDi/labs/SSL/README.md | 0 .../infotro}/SDi/labs/database/README.md | 0 .../infotro}/SDi/labs/database/relations.png | Bin .../infotro}/SDi/labs/database/sdi04.sql | 0 .../infotro}/SDi/medias/TuxPenguinModes.jpeg | Bin .../infotro}/SDi/medias/bluetooth_cccd.png | Bin .../SDi/medias/bluetooth_client_serveur.png | Bin .../infotro}/SDi/medias/bluetooth_connection.png | Bin .../infotro}/SDi/medias/bluetooth_gatt_att.png | Bin .../infotro}/SDi/medias/bluetooth_stack.png | Bin .../infotro}/SDi/medias/coap_example.png | Bin .../infotro}/SDi/medias/coap_overview.png | Bin .../infotro}/SDi/medias/database-1_null.png | Bin .../infotro}/SDi/medias/database-2_object.png | Bin .../infotro}/SDi/medias/database-3_relation.png | Bin .../infotro}/SDi/medias/dataflow_in_layer_model.png | Bin .../infotro}/SDi/medias/density_graph.png | Bin .../infotro}/SDi/medias/example_SAP.png | Bin .../infotro}/SDi/medias/http_notifications.png | Bin .../infotro}/SDi/medias/http_reminder.png | Bin .../infotro}/SDi/medias/json_syntaxe.png | Bin .../infotro}/SDi/medias/layers_protocols.png | Bin .../infotro}/SDi/medias/osi_model.png | Bin .../SDi/medias/overview_protocol_example.png | Bin .../SDi/medias/protocole_exercice_class.uxf | 0 .../infotro}/SDi/medias/qos_mqtt.png | Bin .../infotro}/SDi/medias/security-cbc.png | Bin .../infotro}/SDi/medias/security-diffie_hellman.png | Bin .../SDi/medias/security-diffie_hellman_color.png | Bin .../infotro}/SDi/medias/security-ecb.png | Bin .../infotro}/SDi/medias/strategie_3layers.png | Bin .../infotro}/SDi/medias/strategie_decouplage.png | Bin .../infotro}/SDi/medias/strategie_memory.png | Bin .../infotro}/SDi/medias/strategie_rx_tx.png | Bin .../infotro}/SDi/medias/strategie_sap.png | Bin .../transmission_process-codage_physique-bpsk.png | Bin .../transmission_process-codage_physique-qpsk.png | Bin .../transmission_process-controle_erreur-arq.png | Bin .../transmission_process-controle_erreur-fec.png | Bin .../transmission_process-digitalisation_signal.png | Bin .../transmission_process-matlab-codage_canal.png | Bin .../transmission_process-matlab-decodage_canal.png | Bin ...transmission_process-matlab-dequantification.png | Bin ...ssion_process-matlab-dequantification_params.png | Bin .../transmission_process-matlab-echantiollnage.png | Bin .../transmission_process-matlab-quantification.png | Bin ...mission_process-matlab-quantification_params.png | Bin .../transmission_process-matlab-reconstruction.png | Bin .../transmission_process-transmission_radio-am.png | Bin .../transmission_process-transmission_radio-fm.png | Bin .../transmission_process-transmission_radio-pm.png | Bin .../infotro}/SDi/medias/xml_example.png | Bin .../infotro}/SDi/protocol_development.md | 0 {infotro => legacy_docs/infotro}/SDi/security.md | 0 .../infotro}/SDi/transmission_process.md | 0 {infotro => legacy_docs/infotro}/SEm/ASM.md | 0 {infotro => legacy_docs/infotro}/SEm/INT.md | 0 {infotro => legacy_docs/infotro}/SEm/PLA.md | 0 {infotro => legacy_docs/infotro}/SEm/README.md | 0 {infotro => legacy_docs/infotro}/SEm/SPR.md | 0 {infotro => legacy_docs/infotro}/SEm/SoC.md | 0 .../SEm/medias/Pasted image 20231116153738.png | Bin .../SEm/medias/Pasted image 20231116154303.png | Bin .../SEm/medias/Pasted image 20231116154853.png | Bin .../SEm/medias/Pasted image 20231116155200.png | Bin .../infotro}/SEm/medias/cpsr.json | 0 .../infotro}/SEm/medias/cpsr.png | Bin .../infotro}/SEm/medias/mecanisme_interruption.png | Bin .../infotro}/SEm/medias/mosfet.png | Bin .../infotro}/SEm/medias/process_bloc.png | Bin .../infotro}/SEm/medias/process_seq.png | Bin .../infotro}/SEm/medias/process_seq_time.png | Bin .../infotro}/SEm/medias/registers.png | Bin {infotro => legacy_docs/infotro}/_navbar.md | 0 {scripts => legacy_docs/scripts}/drawio.js | 0 {scripts => legacy_docs/scripts}/sw.js | 0 {scripts => legacy_docs/scripts}/viewer.min.js | 0 {style => legacy_docs/style}/_coverpage.md | 0 {style => legacy_docs/style}/yggdrasil.ico | Bin {style => legacy_docs/style}/yggdrasil.svg | 0 182 files changed, 0 insertions(+), 0 deletions(-) rename .nojekyll => legacy_docs/.nojekyll (100%) rename CNAME => legacy_docs/CNAME (100%) rename {Embed => legacy_docs/Embed}/README.md (100%) rename {Embed => legacy_docs/Embed}/STM32/README.md (100%) rename {Embed => legacy_docs/Embed}/nRF/README.md (100%) rename {Embed => legacy_docs/Embed}/nRF/development_environment.md (100%) rename {Embed => legacy_docs/Embed}/nRF/medias/GDB_settings.png (100%) rename {HES-SO => legacy_docs/HES-SO}/OneDrive.md (100%) rename {HES-SO => legacy_docs/HES-SO}/README.md (100%) rename {HES-SO => legacy_docs/HES-SO}/Teams.md (100%) rename {HES-SO => legacy_docs/HES-SO}/medias/microsoft_graph-result_id.png (100%) rename {HES-SO => legacy_docs/HES-SO}/medias/microsoft_graph-result_research.png (100%) rename {HES-SO => legacy_docs/HES-SO}/medias/microsoft_graph-search_bar.png (100%) rename {HES-SO => legacy_docs/HES-SO}/medias/microsoft_graph-search_site_id.png (100%) rename {MSE => legacy_docs/MSE}/README.md (100%) rename {MSE => legacy_docs/MSE}/SRE/README.md (100%) rename {MSE => legacy_docs/MSE}/SRE/tools.md (100%) rename {MSE => legacy_docs/MSE}/_navbar.md (100%) rename {Security => legacy_docs/Security}/README.md (100%) rename {Security => legacy_docs/Security}/SSH/README.md (100%) rename _glossary.md => legacy_docs/_glossary.md (100%) rename _navbar.md => legacy_docs/_navbar.md (100%) rename {divers => legacy_docs/divers}/README.md (100%) rename {divers => legacy_docs/divers}/example4_v3.png (100%) rename {divers => legacy_docs/divers}/excalidraw.json (100%) rename {divers => legacy_docs/divers}/panel.md (100%) rename index.html => legacy_docs/index.html (100%) rename {infotro => legacy_docs/infotro}/Eln/ADDA.md (100%) rename {infotro => legacy_docs/infotro}/Eln/Filtres.md (100%) rename {infotro => legacy_docs/infotro}/Eln/README.md (100%) rename {infotro => legacy_docs/infotro}/Eln/RF.md (100%) rename {infotro => legacy_docs/infotro}/Eln/SignauxEtEchantillonnage.md (100%) rename {infotro => legacy_docs/infotro}/Eln/Ztransform.md (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/06-filters/README.md (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/06-filters/bode_design_filter.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/06-filters/direct_form_1.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/06-filters/direct_form_2.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/06-filters/iir_filter.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/labs/_navbar.md (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/add_line_on_smith_chart.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/comptage-graph.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/comptage.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h0.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h1.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h2.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h3.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h4.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-h5-h6.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-orther.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filters-summary.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filtre_numerique_passe_bas_2-bode.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/filtre_numerique_passe_bas_2-reponse.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/fourier_cerlce_unitaire.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/impedance_matching.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/lit_recusrive_example.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/parallele.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/pesee.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/reponse_impulsionelle-continue_discret.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-capacitor-graph.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-capacitor.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-filter_components.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-filters_prototype.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-inductor-graph.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-inductor.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-kuroda_identities.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-normalized_value-butterworth_1_10.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-normalized_value_chebyshev_ripple_0_5.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-normalized_value_chebyshev_ripple_3.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/rf-resistor.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/schema_bloc_fir.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/sigma-delta.drawio (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/snr_by_osr.png (100%) rename {infotro => legacy_docs/infotro}/Eln/medias/specification_de_filtre.svg (100%) rename {infotro => legacy_docs/infotro}/Eln/ztabelle01.png (100%) rename {infotro => legacy_docs/infotro}/Eln/ztabelle02.png (100%) rename {infotro => legacy_docs/infotro}/Eln/ztabelle03.png (100%) rename {infotro => legacy_docs/infotro}/PTR/PCO.md (100%) rename {infotro => legacy_docs/infotro}/PTR/README.md (100%) rename {infotro => legacy_docs/infotro}/PTR/RealTime.md (100%) rename {infotro => legacy_docs/infotro}/PTR/SYS.md (100%) rename {infotro => legacy_docs/infotro}/PTR/UML.md (100%) rename {infotro => legacy_docs/infotro}/PTR/XF.md (100%) rename {infotro => legacy_docs/infotro}/PTR/img.png (100%) rename {infotro => legacy_docs/infotro}/PTR/img_1.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/algo_banquier1.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/algo_banquier2.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/interblocage.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/interruptions.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/multiprogramming.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/operating_system.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/ordonnanceur.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/spooling.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/synthese_diagram_queue_process.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/system_asynchron.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/system_synchron.png (100%) rename {infotro => legacy_docs/infotro}/PTR/medias/time-sharing.png (100%) rename {infotro => legacy_docs/infotro}/README.md (100%) rename {infotro => legacy_docs/infotro}/SDi/README.md (100%) rename {infotro => legacy_docs/infotro}/SDi/bluetooth.md (100%) rename {infotro => legacy_docs/infotro}/SDi/cipher_modes.png (100%) rename {infotro => legacy_docs/infotro}/SDi/database.md (100%) rename {infotro => legacy_docs/infotro}/SDi/iot_technologies.md (100%) rename {infotro => legacy_docs/infotro}/SDi/labs/SSL/README.md (100%) rename {infotro => legacy_docs/infotro}/SDi/labs/database/README.md (100%) rename {infotro => legacy_docs/infotro}/SDi/labs/database/relations.png (100%) rename {infotro => legacy_docs/infotro}/SDi/labs/database/sdi04.sql (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/TuxPenguinModes.jpeg (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/bluetooth_cccd.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/bluetooth_client_serveur.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/bluetooth_connection.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/bluetooth_gatt_att.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/bluetooth_stack.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/coap_example.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/coap_overview.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/database-1_null.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/database-2_object.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/database-3_relation.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/dataflow_in_layer_model.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/density_graph.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/example_SAP.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/http_notifications.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/http_reminder.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/json_syntaxe.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/layers_protocols.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/osi_model.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/overview_protocol_example.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/protocole_exercice_class.uxf (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/qos_mqtt.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/security-cbc.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/security-diffie_hellman.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/security-diffie_hellman_color.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/security-ecb.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/strategie_3layers.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/strategie_decouplage.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/strategie_memory.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/strategie_rx_tx.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/strategie_sap.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-codage_physique-bpsk.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-codage_physique-qpsk.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-controle_erreur-arq.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-controle_erreur-fec.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-digitalisation_signal.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-codage_canal.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-decodage_canal.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-dequantification.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-dequantification_params.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-echantiollnage.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-quantification.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-quantification_params.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-matlab-reconstruction.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-transmission_radio-am.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-transmission_radio-fm.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/transmission_process-transmission_radio-pm.png (100%) rename {infotro => legacy_docs/infotro}/SDi/medias/xml_example.png (100%) rename {infotro => legacy_docs/infotro}/SDi/protocol_development.md (100%) rename {infotro => legacy_docs/infotro}/SDi/security.md (100%) rename {infotro => legacy_docs/infotro}/SDi/transmission_process.md (100%) rename {infotro => legacy_docs/infotro}/SEm/ASM.md (100%) rename {infotro => legacy_docs/infotro}/SEm/INT.md (100%) rename {infotro => legacy_docs/infotro}/SEm/PLA.md (100%) rename {infotro => legacy_docs/infotro}/SEm/README.md (100%) rename {infotro => legacy_docs/infotro}/SEm/SPR.md (100%) rename {infotro => legacy_docs/infotro}/SEm/SoC.md (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/Pasted image 20231116153738.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/Pasted image 20231116154303.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/Pasted image 20231116154853.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/Pasted image 20231116155200.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/cpsr.json (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/cpsr.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/mecanisme_interruption.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/mosfet.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/process_bloc.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/process_seq.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/process_seq_time.png (100%) rename {infotro => legacy_docs/infotro}/SEm/medias/registers.png (100%) rename {infotro => legacy_docs/infotro}/_navbar.md (100%) rename {scripts => legacy_docs/scripts}/drawio.js (100%) rename {scripts => legacy_docs/scripts}/sw.js (100%) rename {scripts => legacy_docs/scripts}/viewer.min.js (100%) rename {style => legacy_docs/style}/_coverpage.md (100%) rename {style => legacy_docs/style}/yggdrasil.ico (100%) rename {style => legacy_docs/style}/yggdrasil.svg (100%) diff --git a/.nojekyll b/legacy_docs/.nojekyll similarity index 100% rename from .nojekyll rename to legacy_docs/.nojekyll diff --git a/CNAME b/legacy_docs/CNAME similarity index 100% rename from CNAME rename to legacy_docs/CNAME diff --git a/Embed/README.md b/legacy_docs/Embed/README.md similarity index 100% rename from Embed/README.md rename to legacy_docs/Embed/README.md diff --git a/Embed/STM32/README.md b/legacy_docs/Embed/STM32/README.md similarity index 100% rename from Embed/STM32/README.md rename to legacy_docs/Embed/STM32/README.md diff --git a/Embed/nRF/README.md b/legacy_docs/Embed/nRF/README.md similarity index 100% rename from Embed/nRF/README.md rename to legacy_docs/Embed/nRF/README.md diff --git a/Embed/nRF/development_environment.md b/legacy_docs/Embed/nRF/development_environment.md similarity index 100% rename from Embed/nRF/development_environment.md rename to legacy_docs/Embed/nRF/development_environment.md diff --git a/Embed/nRF/medias/GDB_settings.png b/legacy_docs/Embed/nRF/medias/GDB_settings.png similarity index 100% rename from Embed/nRF/medias/GDB_settings.png rename to legacy_docs/Embed/nRF/medias/GDB_settings.png diff --git a/HES-SO/OneDrive.md b/legacy_docs/HES-SO/OneDrive.md similarity index 100% rename from HES-SO/OneDrive.md rename to legacy_docs/HES-SO/OneDrive.md diff --git a/HES-SO/README.md b/legacy_docs/HES-SO/README.md similarity index 100% rename from HES-SO/README.md rename to legacy_docs/HES-SO/README.md diff --git a/HES-SO/Teams.md b/legacy_docs/HES-SO/Teams.md similarity index 100% rename from HES-SO/Teams.md rename to legacy_docs/HES-SO/Teams.md diff --git a/HES-SO/medias/microsoft_graph-result_id.png b/legacy_docs/HES-SO/medias/microsoft_graph-result_id.png similarity index 100% rename from HES-SO/medias/microsoft_graph-result_id.png rename to legacy_docs/HES-SO/medias/microsoft_graph-result_id.png diff --git a/HES-SO/medias/microsoft_graph-result_research.png b/legacy_docs/HES-SO/medias/microsoft_graph-result_research.png similarity index 100% rename from HES-SO/medias/microsoft_graph-result_research.png rename to legacy_docs/HES-SO/medias/microsoft_graph-result_research.png diff --git a/HES-SO/medias/microsoft_graph-search_bar.png b/legacy_docs/HES-SO/medias/microsoft_graph-search_bar.png similarity index 100% rename from HES-SO/medias/microsoft_graph-search_bar.png rename to legacy_docs/HES-SO/medias/microsoft_graph-search_bar.png diff --git a/HES-SO/medias/microsoft_graph-search_site_id.png b/legacy_docs/HES-SO/medias/microsoft_graph-search_site_id.png similarity index 100% rename from HES-SO/medias/microsoft_graph-search_site_id.png rename to legacy_docs/HES-SO/medias/microsoft_graph-search_site_id.png diff --git a/MSE/README.md b/legacy_docs/MSE/README.md similarity index 100% rename from MSE/README.md rename to legacy_docs/MSE/README.md diff --git a/MSE/SRE/README.md b/legacy_docs/MSE/SRE/README.md similarity index 100% rename from MSE/SRE/README.md rename to legacy_docs/MSE/SRE/README.md diff --git a/MSE/SRE/tools.md b/legacy_docs/MSE/SRE/tools.md similarity index 100% rename from MSE/SRE/tools.md rename to legacy_docs/MSE/SRE/tools.md diff --git a/MSE/_navbar.md b/legacy_docs/MSE/_navbar.md similarity index 100% rename from MSE/_navbar.md rename to legacy_docs/MSE/_navbar.md diff --git a/Security/README.md b/legacy_docs/Security/README.md similarity index 100% rename from Security/README.md rename to legacy_docs/Security/README.md diff --git a/Security/SSH/README.md b/legacy_docs/Security/SSH/README.md similarity index 100% rename from Security/SSH/README.md rename to legacy_docs/Security/SSH/README.md diff --git a/_glossary.md b/legacy_docs/_glossary.md similarity index 100% rename from _glossary.md rename to legacy_docs/_glossary.md diff --git a/_navbar.md b/legacy_docs/_navbar.md similarity index 100% rename from _navbar.md rename to legacy_docs/_navbar.md diff --git a/divers/README.md b/legacy_docs/divers/README.md similarity index 100% rename from divers/README.md rename to legacy_docs/divers/README.md diff --git a/divers/example4_v3.png b/legacy_docs/divers/example4_v3.png similarity index 100% rename from divers/example4_v3.png rename to legacy_docs/divers/example4_v3.png diff --git a/divers/excalidraw.json b/legacy_docs/divers/excalidraw.json similarity index 100% rename from divers/excalidraw.json rename to legacy_docs/divers/excalidraw.json diff --git a/divers/panel.md b/legacy_docs/divers/panel.md similarity index 100% rename from divers/panel.md rename to legacy_docs/divers/panel.md diff --git a/index.html b/legacy_docs/index.html similarity index 100% rename from index.html rename to legacy_docs/index.html diff --git a/infotro/Eln/ADDA.md b/legacy_docs/infotro/Eln/ADDA.md similarity index 100% rename from infotro/Eln/ADDA.md rename to legacy_docs/infotro/Eln/ADDA.md diff --git a/infotro/Eln/Filtres.md b/legacy_docs/infotro/Eln/Filtres.md similarity index 100% rename from infotro/Eln/Filtres.md rename to legacy_docs/infotro/Eln/Filtres.md diff --git a/infotro/Eln/README.md b/legacy_docs/infotro/Eln/README.md similarity index 100% rename from infotro/Eln/README.md rename to legacy_docs/infotro/Eln/README.md diff --git a/infotro/Eln/RF.md b/legacy_docs/infotro/Eln/RF.md similarity index 100% rename from infotro/Eln/RF.md rename to legacy_docs/infotro/Eln/RF.md diff --git a/infotro/Eln/SignauxEtEchantillonnage.md b/legacy_docs/infotro/Eln/SignauxEtEchantillonnage.md similarity index 100% rename from infotro/Eln/SignauxEtEchantillonnage.md rename to legacy_docs/infotro/Eln/SignauxEtEchantillonnage.md diff --git a/infotro/Eln/Ztransform.md b/legacy_docs/infotro/Eln/Ztransform.md similarity index 100% rename from infotro/Eln/Ztransform.md rename to legacy_docs/infotro/Eln/Ztransform.md diff --git a/infotro/Eln/labs/06-filters/README.md b/legacy_docs/infotro/Eln/labs/06-filters/README.md similarity index 100% rename from infotro/Eln/labs/06-filters/README.md rename to legacy_docs/infotro/Eln/labs/06-filters/README.md diff --git a/infotro/Eln/labs/06-filters/bode_design_filter.svg b/legacy_docs/infotro/Eln/labs/06-filters/bode_design_filter.svg similarity index 100% rename from infotro/Eln/labs/06-filters/bode_design_filter.svg rename to legacy_docs/infotro/Eln/labs/06-filters/bode_design_filter.svg diff --git a/infotro/Eln/labs/06-filters/direct_form_1.svg b/legacy_docs/infotro/Eln/labs/06-filters/direct_form_1.svg similarity index 100% rename from infotro/Eln/labs/06-filters/direct_form_1.svg rename to legacy_docs/infotro/Eln/labs/06-filters/direct_form_1.svg diff --git a/infotro/Eln/labs/06-filters/direct_form_2.svg b/legacy_docs/infotro/Eln/labs/06-filters/direct_form_2.svg similarity index 100% rename from infotro/Eln/labs/06-filters/direct_form_2.svg rename to legacy_docs/infotro/Eln/labs/06-filters/direct_form_2.svg diff --git a/infotro/Eln/labs/06-filters/iir_filter.svg b/legacy_docs/infotro/Eln/labs/06-filters/iir_filter.svg similarity index 100% rename from infotro/Eln/labs/06-filters/iir_filter.svg rename to legacy_docs/infotro/Eln/labs/06-filters/iir_filter.svg diff --git a/infotro/Eln/labs/_navbar.md b/legacy_docs/infotro/Eln/labs/_navbar.md similarity index 100% rename from infotro/Eln/labs/_navbar.md rename to legacy_docs/infotro/Eln/labs/_navbar.md diff --git a/infotro/Eln/medias/add_line_on_smith_chart.png b/legacy_docs/infotro/Eln/medias/add_line_on_smith_chart.png similarity index 100% rename from infotro/Eln/medias/add_line_on_smith_chart.png rename to legacy_docs/infotro/Eln/medias/add_line_on_smith_chart.png diff --git a/infotro/Eln/medias/comptage-graph.png b/legacy_docs/infotro/Eln/medias/comptage-graph.png similarity index 100% rename from infotro/Eln/medias/comptage-graph.png rename to legacy_docs/infotro/Eln/medias/comptage-graph.png diff --git a/infotro/Eln/medias/comptage.png b/legacy_docs/infotro/Eln/medias/comptage.png similarity index 100% rename from infotro/Eln/medias/comptage.png rename to legacy_docs/infotro/Eln/medias/comptage.png diff --git a/infotro/Eln/medias/filters-h0.png b/legacy_docs/infotro/Eln/medias/filters-h0.png similarity index 100% rename from infotro/Eln/medias/filters-h0.png rename to legacy_docs/infotro/Eln/medias/filters-h0.png diff --git a/infotro/Eln/medias/filters-h1.png b/legacy_docs/infotro/Eln/medias/filters-h1.png similarity index 100% rename from infotro/Eln/medias/filters-h1.png rename to legacy_docs/infotro/Eln/medias/filters-h1.png diff --git a/infotro/Eln/medias/filters-h2.png b/legacy_docs/infotro/Eln/medias/filters-h2.png similarity index 100% rename from infotro/Eln/medias/filters-h2.png rename to legacy_docs/infotro/Eln/medias/filters-h2.png diff --git a/infotro/Eln/medias/filters-h3.png b/legacy_docs/infotro/Eln/medias/filters-h3.png similarity index 100% rename from infotro/Eln/medias/filters-h3.png rename to legacy_docs/infotro/Eln/medias/filters-h3.png diff --git a/infotro/Eln/medias/filters-h4.png b/legacy_docs/infotro/Eln/medias/filters-h4.png similarity index 100% rename from infotro/Eln/medias/filters-h4.png rename to legacy_docs/infotro/Eln/medias/filters-h4.png diff --git a/infotro/Eln/medias/filters-h5-h6.png b/legacy_docs/infotro/Eln/medias/filters-h5-h6.png similarity index 100% rename from infotro/Eln/medias/filters-h5-h6.png rename to legacy_docs/infotro/Eln/medias/filters-h5-h6.png diff --git a/infotro/Eln/medias/filters-orther.png b/legacy_docs/infotro/Eln/medias/filters-orther.png similarity index 100% rename from infotro/Eln/medias/filters-orther.png rename to legacy_docs/infotro/Eln/medias/filters-orther.png diff --git a/infotro/Eln/medias/filters-summary.png b/legacy_docs/infotro/Eln/medias/filters-summary.png similarity index 100% rename from infotro/Eln/medias/filters-summary.png rename to legacy_docs/infotro/Eln/medias/filters-summary.png diff --git a/infotro/Eln/medias/filtre_numerique_passe_bas_2-bode.png b/legacy_docs/infotro/Eln/medias/filtre_numerique_passe_bas_2-bode.png similarity index 100% rename from infotro/Eln/medias/filtre_numerique_passe_bas_2-bode.png rename to legacy_docs/infotro/Eln/medias/filtre_numerique_passe_bas_2-bode.png diff --git a/infotro/Eln/medias/filtre_numerique_passe_bas_2-reponse.png b/legacy_docs/infotro/Eln/medias/filtre_numerique_passe_bas_2-reponse.png similarity index 100% rename from infotro/Eln/medias/filtre_numerique_passe_bas_2-reponse.png rename to legacy_docs/infotro/Eln/medias/filtre_numerique_passe_bas_2-reponse.png diff --git a/infotro/Eln/medias/fourier_cerlce_unitaire.svg b/legacy_docs/infotro/Eln/medias/fourier_cerlce_unitaire.svg similarity index 100% rename from infotro/Eln/medias/fourier_cerlce_unitaire.svg rename to legacy_docs/infotro/Eln/medias/fourier_cerlce_unitaire.svg diff --git a/infotro/Eln/medias/impedance_matching.png b/legacy_docs/infotro/Eln/medias/impedance_matching.png similarity index 100% rename from infotro/Eln/medias/impedance_matching.png rename to legacy_docs/infotro/Eln/medias/impedance_matching.png diff --git a/infotro/Eln/medias/lit_recusrive_example.png b/legacy_docs/infotro/Eln/medias/lit_recusrive_example.png similarity index 100% rename from infotro/Eln/medias/lit_recusrive_example.png rename to legacy_docs/infotro/Eln/medias/lit_recusrive_example.png diff --git a/infotro/Eln/medias/parallele.png b/legacy_docs/infotro/Eln/medias/parallele.png similarity index 100% rename from infotro/Eln/medias/parallele.png rename to legacy_docs/infotro/Eln/medias/parallele.png diff --git a/infotro/Eln/medias/pesee.png b/legacy_docs/infotro/Eln/medias/pesee.png similarity index 100% rename from infotro/Eln/medias/pesee.png rename to legacy_docs/infotro/Eln/medias/pesee.png diff --git a/infotro/Eln/medias/reponse_impulsionelle-continue_discret.png b/legacy_docs/infotro/Eln/medias/reponse_impulsionelle-continue_discret.png similarity index 100% rename from infotro/Eln/medias/reponse_impulsionelle-continue_discret.png rename to legacy_docs/infotro/Eln/medias/reponse_impulsionelle-continue_discret.png diff --git a/infotro/Eln/medias/rf-capacitor-graph.png b/legacy_docs/infotro/Eln/medias/rf-capacitor-graph.png similarity index 100% rename from infotro/Eln/medias/rf-capacitor-graph.png rename to legacy_docs/infotro/Eln/medias/rf-capacitor-graph.png diff --git a/infotro/Eln/medias/rf-capacitor.png b/legacy_docs/infotro/Eln/medias/rf-capacitor.png similarity index 100% rename from infotro/Eln/medias/rf-capacitor.png rename to legacy_docs/infotro/Eln/medias/rf-capacitor.png diff --git a/infotro/Eln/medias/rf-filter_components.png b/legacy_docs/infotro/Eln/medias/rf-filter_components.png similarity index 100% rename from infotro/Eln/medias/rf-filter_components.png rename to legacy_docs/infotro/Eln/medias/rf-filter_components.png diff --git a/infotro/Eln/medias/rf-filters_prototype.png b/legacy_docs/infotro/Eln/medias/rf-filters_prototype.png similarity index 100% rename from infotro/Eln/medias/rf-filters_prototype.png rename to legacy_docs/infotro/Eln/medias/rf-filters_prototype.png diff --git a/infotro/Eln/medias/rf-inductor-graph.png b/legacy_docs/infotro/Eln/medias/rf-inductor-graph.png similarity index 100% rename from infotro/Eln/medias/rf-inductor-graph.png rename to legacy_docs/infotro/Eln/medias/rf-inductor-graph.png diff --git a/infotro/Eln/medias/rf-inductor.png b/legacy_docs/infotro/Eln/medias/rf-inductor.png similarity index 100% rename from infotro/Eln/medias/rf-inductor.png rename to legacy_docs/infotro/Eln/medias/rf-inductor.png diff --git a/infotro/Eln/medias/rf-kuroda_identities.png b/legacy_docs/infotro/Eln/medias/rf-kuroda_identities.png similarity index 100% rename from infotro/Eln/medias/rf-kuroda_identities.png rename to legacy_docs/infotro/Eln/medias/rf-kuroda_identities.png diff --git a/infotro/Eln/medias/rf-normalized_value-butterworth_1_10.png b/legacy_docs/infotro/Eln/medias/rf-normalized_value-butterworth_1_10.png similarity index 100% rename from infotro/Eln/medias/rf-normalized_value-butterworth_1_10.png rename to legacy_docs/infotro/Eln/medias/rf-normalized_value-butterworth_1_10.png diff --git a/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_0_5.png b/legacy_docs/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_0_5.png similarity index 100% rename from infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_0_5.png rename to legacy_docs/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_0_5.png diff --git a/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_3.png b/legacy_docs/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_3.png similarity index 100% rename from infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_3.png rename to legacy_docs/infotro/Eln/medias/rf-normalized_value_chebyshev_ripple_3.png diff --git a/infotro/Eln/medias/rf-resistor.png b/legacy_docs/infotro/Eln/medias/rf-resistor.png similarity index 100% rename from infotro/Eln/medias/rf-resistor.png rename to legacy_docs/infotro/Eln/medias/rf-resistor.png diff --git a/infotro/Eln/medias/schema_bloc_fir.svg b/legacy_docs/infotro/Eln/medias/schema_bloc_fir.svg similarity index 100% rename from infotro/Eln/medias/schema_bloc_fir.svg rename to legacy_docs/infotro/Eln/medias/schema_bloc_fir.svg diff --git a/infotro/Eln/medias/sigma-delta.drawio b/legacy_docs/infotro/Eln/medias/sigma-delta.drawio similarity index 100% rename from infotro/Eln/medias/sigma-delta.drawio rename to legacy_docs/infotro/Eln/medias/sigma-delta.drawio diff --git a/infotro/Eln/medias/snr_by_osr.png b/legacy_docs/infotro/Eln/medias/snr_by_osr.png similarity index 100% rename from infotro/Eln/medias/snr_by_osr.png rename to legacy_docs/infotro/Eln/medias/snr_by_osr.png diff --git a/infotro/Eln/medias/specification_de_filtre.svg b/legacy_docs/infotro/Eln/medias/specification_de_filtre.svg similarity index 100% rename from infotro/Eln/medias/specification_de_filtre.svg rename to legacy_docs/infotro/Eln/medias/specification_de_filtre.svg diff --git a/infotro/Eln/ztabelle01.png b/legacy_docs/infotro/Eln/ztabelle01.png similarity index 100% rename from infotro/Eln/ztabelle01.png rename to legacy_docs/infotro/Eln/ztabelle01.png diff --git a/infotro/Eln/ztabelle02.png b/legacy_docs/infotro/Eln/ztabelle02.png similarity index 100% rename from infotro/Eln/ztabelle02.png rename to legacy_docs/infotro/Eln/ztabelle02.png diff --git a/infotro/Eln/ztabelle03.png b/legacy_docs/infotro/Eln/ztabelle03.png similarity index 100% rename from infotro/Eln/ztabelle03.png rename to legacy_docs/infotro/Eln/ztabelle03.png diff --git a/infotro/PTR/PCO.md b/legacy_docs/infotro/PTR/PCO.md similarity index 100% rename from infotro/PTR/PCO.md rename to legacy_docs/infotro/PTR/PCO.md diff --git a/infotro/PTR/README.md b/legacy_docs/infotro/PTR/README.md similarity index 100% rename from infotro/PTR/README.md rename to legacy_docs/infotro/PTR/README.md diff --git a/infotro/PTR/RealTime.md b/legacy_docs/infotro/PTR/RealTime.md similarity index 100% rename from infotro/PTR/RealTime.md rename to legacy_docs/infotro/PTR/RealTime.md diff --git a/infotro/PTR/SYS.md b/legacy_docs/infotro/PTR/SYS.md similarity index 100% rename from infotro/PTR/SYS.md rename to legacy_docs/infotro/PTR/SYS.md diff --git a/infotro/PTR/UML.md b/legacy_docs/infotro/PTR/UML.md similarity index 100% rename from infotro/PTR/UML.md rename to legacy_docs/infotro/PTR/UML.md diff --git a/infotro/PTR/XF.md b/legacy_docs/infotro/PTR/XF.md similarity index 100% rename from infotro/PTR/XF.md rename to legacy_docs/infotro/PTR/XF.md diff --git a/infotro/PTR/img.png b/legacy_docs/infotro/PTR/img.png similarity index 100% rename from infotro/PTR/img.png rename to legacy_docs/infotro/PTR/img.png diff --git a/infotro/PTR/img_1.png b/legacy_docs/infotro/PTR/img_1.png similarity index 100% rename from infotro/PTR/img_1.png rename to legacy_docs/infotro/PTR/img_1.png diff --git a/infotro/PTR/medias/algo_banquier1.png b/legacy_docs/infotro/PTR/medias/algo_banquier1.png similarity index 100% rename from infotro/PTR/medias/algo_banquier1.png rename to legacy_docs/infotro/PTR/medias/algo_banquier1.png diff --git a/infotro/PTR/medias/algo_banquier2.png b/legacy_docs/infotro/PTR/medias/algo_banquier2.png similarity index 100% rename from infotro/PTR/medias/algo_banquier2.png rename to legacy_docs/infotro/PTR/medias/algo_banquier2.png diff --git a/infotro/PTR/medias/interblocage.png b/legacy_docs/infotro/PTR/medias/interblocage.png similarity index 100% rename from infotro/PTR/medias/interblocage.png rename to legacy_docs/infotro/PTR/medias/interblocage.png diff --git a/infotro/PTR/medias/interruptions.png b/legacy_docs/infotro/PTR/medias/interruptions.png similarity index 100% rename from infotro/PTR/medias/interruptions.png rename to legacy_docs/infotro/PTR/medias/interruptions.png diff --git a/infotro/PTR/medias/multiprogramming.png b/legacy_docs/infotro/PTR/medias/multiprogramming.png similarity index 100% rename from infotro/PTR/medias/multiprogramming.png rename to legacy_docs/infotro/PTR/medias/multiprogramming.png diff --git a/infotro/PTR/medias/operating_system.png b/legacy_docs/infotro/PTR/medias/operating_system.png similarity index 100% rename from infotro/PTR/medias/operating_system.png rename to legacy_docs/infotro/PTR/medias/operating_system.png diff --git a/infotro/PTR/medias/ordonnanceur.png b/legacy_docs/infotro/PTR/medias/ordonnanceur.png similarity index 100% rename from infotro/PTR/medias/ordonnanceur.png rename to legacy_docs/infotro/PTR/medias/ordonnanceur.png diff --git a/infotro/PTR/medias/spooling.png b/legacy_docs/infotro/PTR/medias/spooling.png similarity index 100% rename from infotro/PTR/medias/spooling.png rename to legacy_docs/infotro/PTR/medias/spooling.png diff --git a/infotro/PTR/medias/synthese_diagram_queue_process.png b/legacy_docs/infotro/PTR/medias/synthese_diagram_queue_process.png similarity index 100% rename from infotro/PTR/medias/synthese_diagram_queue_process.png rename to legacy_docs/infotro/PTR/medias/synthese_diagram_queue_process.png diff --git a/infotro/PTR/medias/system_asynchron.png b/legacy_docs/infotro/PTR/medias/system_asynchron.png similarity index 100% rename from infotro/PTR/medias/system_asynchron.png rename to legacy_docs/infotro/PTR/medias/system_asynchron.png diff --git a/infotro/PTR/medias/system_synchron.png b/legacy_docs/infotro/PTR/medias/system_synchron.png similarity index 100% rename from infotro/PTR/medias/system_synchron.png rename to legacy_docs/infotro/PTR/medias/system_synchron.png diff --git a/infotro/PTR/medias/time-sharing.png b/legacy_docs/infotro/PTR/medias/time-sharing.png similarity index 100% rename from infotro/PTR/medias/time-sharing.png rename to legacy_docs/infotro/PTR/medias/time-sharing.png diff --git a/infotro/README.md b/legacy_docs/infotro/README.md similarity index 100% rename from infotro/README.md rename to legacy_docs/infotro/README.md diff --git a/infotro/SDi/README.md b/legacy_docs/infotro/SDi/README.md similarity index 100% rename from infotro/SDi/README.md rename to legacy_docs/infotro/SDi/README.md diff --git a/infotro/SDi/bluetooth.md b/legacy_docs/infotro/SDi/bluetooth.md similarity index 100% rename from infotro/SDi/bluetooth.md rename to legacy_docs/infotro/SDi/bluetooth.md diff --git a/infotro/SDi/cipher_modes.png b/legacy_docs/infotro/SDi/cipher_modes.png similarity index 100% rename from infotro/SDi/cipher_modes.png rename to legacy_docs/infotro/SDi/cipher_modes.png diff --git a/infotro/SDi/database.md b/legacy_docs/infotro/SDi/database.md similarity index 100% rename from infotro/SDi/database.md rename to legacy_docs/infotro/SDi/database.md diff --git a/infotro/SDi/iot_technologies.md b/legacy_docs/infotro/SDi/iot_technologies.md similarity index 100% rename from infotro/SDi/iot_technologies.md rename to legacy_docs/infotro/SDi/iot_technologies.md diff --git a/infotro/SDi/labs/SSL/README.md b/legacy_docs/infotro/SDi/labs/SSL/README.md similarity index 100% rename from infotro/SDi/labs/SSL/README.md rename to legacy_docs/infotro/SDi/labs/SSL/README.md diff --git a/infotro/SDi/labs/database/README.md b/legacy_docs/infotro/SDi/labs/database/README.md similarity index 100% rename from infotro/SDi/labs/database/README.md rename to legacy_docs/infotro/SDi/labs/database/README.md diff --git a/infotro/SDi/labs/database/relations.png b/legacy_docs/infotro/SDi/labs/database/relations.png similarity index 100% rename from infotro/SDi/labs/database/relations.png rename to legacy_docs/infotro/SDi/labs/database/relations.png diff --git a/infotro/SDi/labs/database/sdi04.sql b/legacy_docs/infotro/SDi/labs/database/sdi04.sql similarity index 100% rename from infotro/SDi/labs/database/sdi04.sql rename to legacy_docs/infotro/SDi/labs/database/sdi04.sql diff --git a/infotro/SDi/medias/TuxPenguinModes.jpeg b/legacy_docs/infotro/SDi/medias/TuxPenguinModes.jpeg similarity index 100% rename from infotro/SDi/medias/TuxPenguinModes.jpeg rename to legacy_docs/infotro/SDi/medias/TuxPenguinModes.jpeg diff --git a/infotro/SDi/medias/bluetooth_cccd.png b/legacy_docs/infotro/SDi/medias/bluetooth_cccd.png similarity index 100% rename from infotro/SDi/medias/bluetooth_cccd.png rename to legacy_docs/infotro/SDi/medias/bluetooth_cccd.png diff --git a/infotro/SDi/medias/bluetooth_client_serveur.png b/legacy_docs/infotro/SDi/medias/bluetooth_client_serveur.png similarity index 100% rename from infotro/SDi/medias/bluetooth_client_serveur.png rename to legacy_docs/infotro/SDi/medias/bluetooth_client_serveur.png diff --git a/infotro/SDi/medias/bluetooth_connection.png b/legacy_docs/infotro/SDi/medias/bluetooth_connection.png similarity index 100% rename from infotro/SDi/medias/bluetooth_connection.png rename to legacy_docs/infotro/SDi/medias/bluetooth_connection.png diff --git a/infotro/SDi/medias/bluetooth_gatt_att.png b/legacy_docs/infotro/SDi/medias/bluetooth_gatt_att.png similarity index 100% rename from infotro/SDi/medias/bluetooth_gatt_att.png rename to legacy_docs/infotro/SDi/medias/bluetooth_gatt_att.png diff --git a/infotro/SDi/medias/bluetooth_stack.png b/legacy_docs/infotro/SDi/medias/bluetooth_stack.png similarity index 100% rename from infotro/SDi/medias/bluetooth_stack.png rename to legacy_docs/infotro/SDi/medias/bluetooth_stack.png diff --git a/infotro/SDi/medias/coap_example.png b/legacy_docs/infotro/SDi/medias/coap_example.png similarity index 100% rename from infotro/SDi/medias/coap_example.png rename to legacy_docs/infotro/SDi/medias/coap_example.png diff --git a/infotro/SDi/medias/coap_overview.png b/legacy_docs/infotro/SDi/medias/coap_overview.png similarity index 100% rename from infotro/SDi/medias/coap_overview.png rename to legacy_docs/infotro/SDi/medias/coap_overview.png diff --git a/infotro/SDi/medias/database-1_null.png b/legacy_docs/infotro/SDi/medias/database-1_null.png similarity index 100% rename from infotro/SDi/medias/database-1_null.png rename to legacy_docs/infotro/SDi/medias/database-1_null.png diff --git a/infotro/SDi/medias/database-2_object.png b/legacy_docs/infotro/SDi/medias/database-2_object.png similarity index 100% rename from infotro/SDi/medias/database-2_object.png rename to legacy_docs/infotro/SDi/medias/database-2_object.png diff --git a/infotro/SDi/medias/database-3_relation.png b/legacy_docs/infotro/SDi/medias/database-3_relation.png similarity index 100% rename from infotro/SDi/medias/database-3_relation.png rename to legacy_docs/infotro/SDi/medias/database-3_relation.png diff --git a/infotro/SDi/medias/dataflow_in_layer_model.png b/legacy_docs/infotro/SDi/medias/dataflow_in_layer_model.png similarity index 100% rename from infotro/SDi/medias/dataflow_in_layer_model.png rename to legacy_docs/infotro/SDi/medias/dataflow_in_layer_model.png diff --git a/infotro/SDi/medias/density_graph.png b/legacy_docs/infotro/SDi/medias/density_graph.png similarity index 100% rename from infotro/SDi/medias/density_graph.png rename to legacy_docs/infotro/SDi/medias/density_graph.png diff --git a/infotro/SDi/medias/example_SAP.png b/legacy_docs/infotro/SDi/medias/example_SAP.png similarity index 100% rename from infotro/SDi/medias/example_SAP.png rename to legacy_docs/infotro/SDi/medias/example_SAP.png diff --git a/infotro/SDi/medias/http_notifications.png b/legacy_docs/infotro/SDi/medias/http_notifications.png similarity index 100% rename from infotro/SDi/medias/http_notifications.png rename to legacy_docs/infotro/SDi/medias/http_notifications.png diff --git a/infotro/SDi/medias/http_reminder.png b/legacy_docs/infotro/SDi/medias/http_reminder.png similarity index 100% rename from infotro/SDi/medias/http_reminder.png rename to legacy_docs/infotro/SDi/medias/http_reminder.png diff --git a/infotro/SDi/medias/json_syntaxe.png b/legacy_docs/infotro/SDi/medias/json_syntaxe.png similarity index 100% rename from infotro/SDi/medias/json_syntaxe.png rename to legacy_docs/infotro/SDi/medias/json_syntaxe.png diff --git a/infotro/SDi/medias/layers_protocols.png b/legacy_docs/infotro/SDi/medias/layers_protocols.png similarity index 100% rename from infotro/SDi/medias/layers_protocols.png rename to legacy_docs/infotro/SDi/medias/layers_protocols.png diff --git a/infotro/SDi/medias/osi_model.png b/legacy_docs/infotro/SDi/medias/osi_model.png similarity index 100% rename from infotro/SDi/medias/osi_model.png rename to legacy_docs/infotro/SDi/medias/osi_model.png diff --git a/infotro/SDi/medias/overview_protocol_example.png b/legacy_docs/infotro/SDi/medias/overview_protocol_example.png similarity index 100% rename from infotro/SDi/medias/overview_protocol_example.png rename to legacy_docs/infotro/SDi/medias/overview_protocol_example.png diff --git a/infotro/SDi/medias/protocole_exercice_class.uxf b/legacy_docs/infotro/SDi/medias/protocole_exercice_class.uxf similarity index 100% rename from infotro/SDi/medias/protocole_exercice_class.uxf rename to legacy_docs/infotro/SDi/medias/protocole_exercice_class.uxf diff --git a/infotro/SDi/medias/qos_mqtt.png b/legacy_docs/infotro/SDi/medias/qos_mqtt.png similarity index 100% rename from infotro/SDi/medias/qos_mqtt.png rename to legacy_docs/infotro/SDi/medias/qos_mqtt.png diff --git a/infotro/SDi/medias/security-cbc.png b/legacy_docs/infotro/SDi/medias/security-cbc.png similarity index 100% rename from infotro/SDi/medias/security-cbc.png rename to legacy_docs/infotro/SDi/medias/security-cbc.png diff --git a/infotro/SDi/medias/security-diffie_hellman.png b/legacy_docs/infotro/SDi/medias/security-diffie_hellman.png similarity index 100% rename from infotro/SDi/medias/security-diffie_hellman.png rename to legacy_docs/infotro/SDi/medias/security-diffie_hellman.png diff --git a/infotro/SDi/medias/security-diffie_hellman_color.png b/legacy_docs/infotro/SDi/medias/security-diffie_hellman_color.png similarity index 100% rename from infotro/SDi/medias/security-diffie_hellman_color.png rename to legacy_docs/infotro/SDi/medias/security-diffie_hellman_color.png diff --git a/infotro/SDi/medias/security-ecb.png b/legacy_docs/infotro/SDi/medias/security-ecb.png similarity index 100% rename from infotro/SDi/medias/security-ecb.png rename to legacy_docs/infotro/SDi/medias/security-ecb.png diff --git a/infotro/SDi/medias/strategie_3layers.png b/legacy_docs/infotro/SDi/medias/strategie_3layers.png similarity index 100% rename from infotro/SDi/medias/strategie_3layers.png rename to legacy_docs/infotro/SDi/medias/strategie_3layers.png diff --git a/infotro/SDi/medias/strategie_decouplage.png b/legacy_docs/infotro/SDi/medias/strategie_decouplage.png similarity index 100% rename from infotro/SDi/medias/strategie_decouplage.png rename to legacy_docs/infotro/SDi/medias/strategie_decouplage.png diff --git a/infotro/SDi/medias/strategie_memory.png b/legacy_docs/infotro/SDi/medias/strategie_memory.png similarity index 100% rename from infotro/SDi/medias/strategie_memory.png rename to legacy_docs/infotro/SDi/medias/strategie_memory.png diff --git a/infotro/SDi/medias/strategie_rx_tx.png b/legacy_docs/infotro/SDi/medias/strategie_rx_tx.png similarity index 100% rename from infotro/SDi/medias/strategie_rx_tx.png rename to legacy_docs/infotro/SDi/medias/strategie_rx_tx.png diff --git a/infotro/SDi/medias/strategie_sap.png b/legacy_docs/infotro/SDi/medias/strategie_sap.png similarity index 100% rename from infotro/SDi/medias/strategie_sap.png rename to legacy_docs/infotro/SDi/medias/strategie_sap.png diff --git a/infotro/SDi/medias/transmission_process-codage_physique-bpsk.png b/legacy_docs/infotro/SDi/medias/transmission_process-codage_physique-bpsk.png similarity index 100% rename from infotro/SDi/medias/transmission_process-codage_physique-bpsk.png rename to legacy_docs/infotro/SDi/medias/transmission_process-codage_physique-bpsk.png diff --git a/infotro/SDi/medias/transmission_process-codage_physique-qpsk.png b/legacy_docs/infotro/SDi/medias/transmission_process-codage_physique-qpsk.png similarity index 100% rename from infotro/SDi/medias/transmission_process-codage_physique-qpsk.png rename to legacy_docs/infotro/SDi/medias/transmission_process-codage_physique-qpsk.png diff --git a/infotro/SDi/medias/transmission_process-controle_erreur-arq.png b/legacy_docs/infotro/SDi/medias/transmission_process-controle_erreur-arq.png similarity index 100% rename from infotro/SDi/medias/transmission_process-controle_erreur-arq.png rename to legacy_docs/infotro/SDi/medias/transmission_process-controle_erreur-arq.png diff --git a/infotro/SDi/medias/transmission_process-controle_erreur-fec.png b/legacy_docs/infotro/SDi/medias/transmission_process-controle_erreur-fec.png similarity index 100% rename from infotro/SDi/medias/transmission_process-controle_erreur-fec.png rename to legacy_docs/infotro/SDi/medias/transmission_process-controle_erreur-fec.png diff --git a/infotro/SDi/medias/transmission_process-digitalisation_signal.png b/legacy_docs/infotro/SDi/medias/transmission_process-digitalisation_signal.png similarity index 100% rename from infotro/SDi/medias/transmission_process-digitalisation_signal.png rename to legacy_docs/infotro/SDi/medias/transmission_process-digitalisation_signal.png diff --git a/infotro/SDi/medias/transmission_process-matlab-codage_canal.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-codage_canal.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-codage_canal.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-codage_canal.png diff --git a/infotro/SDi/medias/transmission_process-matlab-decodage_canal.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-decodage_canal.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-decodage_canal.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-decodage_canal.png diff --git a/infotro/SDi/medias/transmission_process-matlab-dequantification.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-dequantification.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-dequantification.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-dequantification.png diff --git a/infotro/SDi/medias/transmission_process-matlab-dequantification_params.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-dequantification_params.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-dequantification_params.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-dequantification_params.png diff --git a/infotro/SDi/medias/transmission_process-matlab-echantiollnage.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-echantiollnage.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-echantiollnage.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-echantiollnage.png diff --git a/infotro/SDi/medias/transmission_process-matlab-quantification.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-quantification.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-quantification.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-quantification.png diff --git a/infotro/SDi/medias/transmission_process-matlab-quantification_params.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-quantification_params.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-quantification_params.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-quantification_params.png diff --git a/infotro/SDi/medias/transmission_process-matlab-reconstruction.png b/legacy_docs/infotro/SDi/medias/transmission_process-matlab-reconstruction.png similarity index 100% rename from infotro/SDi/medias/transmission_process-matlab-reconstruction.png rename to legacy_docs/infotro/SDi/medias/transmission_process-matlab-reconstruction.png diff --git a/infotro/SDi/medias/transmission_process-transmission_radio-am.png b/legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-am.png similarity index 100% rename from infotro/SDi/medias/transmission_process-transmission_radio-am.png rename to legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-am.png diff --git a/infotro/SDi/medias/transmission_process-transmission_radio-fm.png b/legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-fm.png similarity index 100% rename from infotro/SDi/medias/transmission_process-transmission_radio-fm.png rename to legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-fm.png diff --git a/infotro/SDi/medias/transmission_process-transmission_radio-pm.png b/legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-pm.png similarity index 100% rename from infotro/SDi/medias/transmission_process-transmission_radio-pm.png rename to legacy_docs/infotro/SDi/medias/transmission_process-transmission_radio-pm.png diff --git a/infotro/SDi/medias/xml_example.png b/legacy_docs/infotro/SDi/medias/xml_example.png similarity index 100% rename from infotro/SDi/medias/xml_example.png rename to legacy_docs/infotro/SDi/medias/xml_example.png diff --git a/infotro/SDi/protocol_development.md b/legacy_docs/infotro/SDi/protocol_development.md similarity index 100% rename from infotro/SDi/protocol_development.md rename to legacy_docs/infotro/SDi/protocol_development.md diff --git a/infotro/SDi/security.md b/legacy_docs/infotro/SDi/security.md similarity index 100% rename from infotro/SDi/security.md rename to legacy_docs/infotro/SDi/security.md diff --git a/infotro/SDi/transmission_process.md b/legacy_docs/infotro/SDi/transmission_process.md similarity index 100% rename from infotro/SDi/transmission_process.md rename to legacy_docs/infotro/SDi/transmission_process.md diff --git a/infotro/SEm/ASM.md b/legacy_docs/infotro/SEm/ASM.md similarity index 100% rename from infotro/SEm/ASM.md rename to legacy_docs/infotro/SEm/ASM.md diff --git a/infotro/SEm/INT.md b/legacy_docs/infotro/SEm/INT.md similarity index 100% rename from infotro/SEm/INT.md rename to legacy_docs/infotro/SEm/INT.md diff --git a/infotro/SEm/PLA.md b/legacy_docs/infotro/SEm/PLA.md similarity index 100% rename from infotro/SEm/PLA.md rename to legacy_docs/infotro/SEm/PLA.md diff --git a/infotro/SEm/README.md b/legacy_docs/infotro/SEm/README.md similarity index 100% rename from infotro/SEm/README.md rename to legacy_docs/infotro/SEm/README.md diff --git a/infotro/SEm/SPR.md b/legacy_docs/infotro/SEm/SPR.md similarity index 100% rename from infotro/SEm/SPR.md rename to legacy_docs/infotro/SEm/SPR.md diff --git a/infotro/SEm/SoC.md b/legacy_docs/infotro/SEm/SoC.md similarity index 100% rename from infotro/SEm/SoC.md rename to legacy_docs/infotro/SEm/SoC.md diff --git a/infotro/SEm/medias/Pasted image 20231116153738.png b/legacy_docs/infotro/SEm/medias/Pasted image 20231116153738.png similarity index 100% rename from infotro/SEm/medias/Pasted image 20231116153738.png rename to legacy_docs/infotro/SEm/medias/Pasted image 20231116153738.png diff --git a/infotro/SEm/medias/Pasted image 20231116154303.png b/legacy_docs/infotro/SEm/medias/Pasted image 20231116154303.png similarity index 100% rename from infotro/SEm/medias/Pasted image 20231116154303.png rename to legacy_docs/infotro/SEm/medias/Pasted image 20231116154303.png diff --git a/infotro/SEm/medias/Pasted image 20231116154853.png b/legacy_docs/infotro/SEm/medias/Pasted image 20231116154853.png similarity index 100% rename from infotro/SEm/medias/Pasted image 20231116154853.png rename to legacy_docs/infotro/SEm/medias/Pasted image 20231116154853.png diff --git a/infotro/SEm/medias/Pasted image 20231116155200.png b/legacy_docs/infotro/SEm/medias/Pasted image 20231116155200.png similarity index 100% rename from infotro/SEm/medias/Pasted image 20231116155200.png rename to legacy_docs/infotro/SEm/medias/Pasted image 20231116155200.png diff --git a/infotro/SEm/medias/cpsr.json b/legacy_docs/infotro/SEm/medias/cpsr.json similarity index 100% rename from infotro/SEm/medias/cpsr.json rename to legacy_docs/infotro/SEm/medias/cpsr.json diff --git a/infotro/SEm/medias/cpsr.png b/legacy_docs/infotro/SEm/medias/cpsr.png similarity index 100% rename from infotro/SEm/medias/cpsr.png rename to legacy_docs/infotro/SEm/medias/cpsr.png diff --git a/infotro/SEm/medias/mecanisme_interruption.png b/legacy_docs/infotro/SEm/medias/mecanisme_interruption.png similarity index 100% rename from infotro/SEm/medias/mecanisme_interruption.png rename to legacy_docs/infotro/SEm/medias/mecanisme_interruption.png diff --git a/infotro/SEm/medias/mosfet.png b/legacy_docs/infotro/SEm/medias/mosfet.png similarity index 100% rename from infotro/SEm/medias/mosfet.png rename to legacy_docs/infotro/SEm/medias/mosfet.png diff --git a/infotro/SEm/medias/process_bloc.png b/legacy_docs/infotro/SEm/medias/process_bloc.png similarity index 100% rename from infotro/SEm/medias/process_bloc.png rename to legacy_docs/infotro/SEm/medias/process_bloc.png diff --git a/infotro/SEm/medias/process_seq.png b/legacy_docs/infotro/SEm/medias/process_seq.png similarity index 100% rename from infotro/SEm/medias/process_seq.png rename to legacy_docs/infotro/SEm/medias/process_seq.png diff --git a/infotro/SEm/medias/process_seq_time.png b/legacy_docs/infotro/SEm/medias/process_seq_time.png similarity index 100% rename from infotro/SEm/medias/process_seq_time.png rename to legacy_docs/infotro/SEm/medias/process_seq_time.png diff --git a/infotro/SEm/medias/registers.png b/legacy_docs/infotro/SEm/medias/registers.png similarity index 100% rename from infotro/SEm/medias/registers.png rename to legacy_docs/infotro/SEm/medias/registers.png diff --git a/infotro/_navbar.md b/legacy_docs/infotro/_navbar.md similarity index 100% rename from infotro/_navbar.md rename to legacy_docs/infotro/_navbar.md diff --git a/scripts/drawio.js b/legacy_docs/scripts/drawio.js similarity index 100% rename from scripts/drawio.js rename to legacy_docs/scripts/drawio.js diff --git a/scripts/sw.js b/legacy_docs/scripts/sw.js similarity index 100% rename from scripts/sw.js rename to legacy_docs/scripts/sw.js diff --git a/scripts/viewer.min.js b/legacy_docs/scripts/viewer.min.js similarity index 100% rename from scripts/viewer.min.js rename to legacy_docs/scripts/viewer.min.js diff --git a/style/_coverpage.md b/legacy_docs/style/_coverpage.md similarity index 100% rename from style/_coverpage.md rename to legacy_docs/style/_coverpage.md diff --git a/style/yggdrasil.ico b/legacy_docs/style/yggdrasil.ico similarity index 100% rename from style/yggdrasil.ico rename to legacy_docs/style/yggdrasil.ico diff --git a/style/yggdrasil.svg b/legacy_docs/style/yggdrasil.svg similarity index 100% rename from style/yggdrasil.svg rename to legacy_docs/style/yggdrasil.svg -- 2.54.0 From f047389da98868f05baaec877c4ac269212e4fbd Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:29:36 +0200 Subject: [PATCH 02/24] chore: bootstrap pinned toolchain Assisted-by: Delta:zai-glm-5.3 --- Justfile | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Justfile diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..b79526a --- /dev/null +++ b/Justfile @@ -0,0 +1,41 @@ +calepin-version := "0.0.61" +typst-version := "0.15.1" + +# Print available recipes +default: + @just --list + +# Download and verify the pinned toolchain +tools: + mkdir -p tools + cd tools && \ + if [ ! -f calepin ]; then \ + curl -sL "https://github.com/vincentarelbundock/calepin/releases/download/v{{calepin-version}}/calepin-x86_64-unknown-linux-gnu.tar.xz" -o calepin-x86_64-unknown-linux-gnu.tar.xz; \ + curl -sL "https://github.com/vincentarelbundock/calepin/releases/download/v{{calepin-version}}/calepin-x86_64-unknown-linux-gnu.tar.xz.sha256" -o calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ + sha256sum -c calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ + tar -xf calepin-x86_64-unknown-linux-gnu.tar.xz --strip-components=1 calepin-x86_64-unknown-linux-gnu/calepin; \ + rm calepin-x86_64-unknown-linux-gnu.tar.xz calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ + fi + cd tools && \ + if [ ! -f typst ]; then \ + curl -sL "https://github.com/typst/typst/releases/download/v{{typst-version}}/typst-x86_64-unknown-linux-musl.tar.xz" -o typst.tar.xz; \ + tar -xf typst.tar.xz --strip-components=1 typst-x86_64-unknown-linux-musl/typst; \ + rm typst.tar.xz; \ + fi + +# Build the site +build: + PATH="$$PWD/tools:$$PATH" calepin build + +# Preview the site locally +preview: + PATH="$$PWD/tools:$$PATH" calepin serve + +# Watch for changes and preview +watch: + PATH="$$PWD/tools:$$PATH" calepin watch --serve + +# Clean the output directory +clean: + rm -rf public tools + -- 2.54.0 From a5f95bb6d730f195f34c7316ced201dc81a2d3e6 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:29:53 +0200 Subject: [PATCH 03/24] feat: scaffold calepin website Assisted-by: Delta:zai-glm-5.3 --- site/404.typ | 7 +++++++ site/calepin.toml | 17 +++++++++++++++++ site/index.typ | 7 +++++++ 3 files changed, 31 insertions(+) create mode 100644 site/404.typ create mode 100644 site/calepin.toml create mode 100644 site/index.typ diff --git a/site/404.typ b/site/404.typ new file mode 100644 index 0000000..c53cded --- /dev/null +++ b/site/404.typ @@ -0,0 +1,7 @@ +#import "@preview/calepin:0.1.7": * + +#show: page-layout.with(title: "Not Found") + += 404 + +Page not found. diff --git a/site/calepin.toml b/site/calepin.toml new file mode 100644 index 0000000..61e5329 --- /dev/null +++ b/site/calepin.toml @@ -0,0 +1,17 @@ +title = "Yggdrasil" +description = "Knowledge Base" +theme = "calepin" + +pdf = false + +[static] +include = ["assets/**"] + +[sidebar] +fold = false + +[[sidebar.section]] +title = "Start" + [[sidebar.section.item]] + target = "index.typ" + diff --git a/site/index.typ b/site/index.typ new file mode 100644 index 0000000..9780d06 --- /dev/null +++ b/site/index.typ @@ -0,0 +1,7 @@ +#import "@preview/calepin:0.1.7": * + +#show: page-layout.with(title: "Yggdrasil") + += Yggdrasil + +Welcome to Yggdrasil, the central knowledge base. -- 2.54.0 From 7a0df30ca10948729d20601aab61aee376271a91 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:30:00 +0200 Subject: [PATCH 04/24] docs: add example categories Assisted-by: Delta:zai-glm-5.3 --- site/calepin.toml | 8 ++++++++ site/homelab/index.typ | 4 ++++ site/security/index.typ | 4 ++++ site/thermo/index.typ | 4 ++++ 4 files changed, 20 insertions(+) create mode 100644 site/homelab/index.typ create mode 100644 site/security/index.typ create mode 100644 site/thermo/index.typ diff --git a/site/calepin.toml b/site/calepin.toml index 61e5329..189de85 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -15,3 +15,11 @@ title = "Start" [[sidebar.section.item]] target = "index.typ" +[[sidebar.section]] +title = "Categories" + [[sidebar.section.item]] + target = "thermo/index.typ" + [[sidebar.section.item]] + target = "security/index.typ" + [[sidebar.section.item]] + target = "homelab/index.typ" diff --git a/site/homelab/index.typ b/site/homelab/index.typ new file mode 100644 index 0000000..c166549 --- /dev/null +++ b/site/homelab/index.typ @@ -0,0 +1,4 @@ +#import "@preview/calepin:0.1.7": * +#show: page-layout.with(title: "Homelab") + += Homelab diff --git a/site/security/index.typ b/site/security/index.typ new file mode 100644 index 0000000..e1f0b39 --- /dev/null +++ b/site/security/index.typ @@ -0,0 +1,4 @@ +#import "@preview/calepin:0.1.7": * +#show: page-layout.with(title: "Security") + += Security diff --git a/site/thermo/index.typ b/site/thermo/index.typ new file mode 100644 index 0000000..7796d82 --- /dev/null +++ b/site/thermo/index.typ @@ -0,0 +1,4 @@ +#import "@preview/calepin:0.1.7": * +#show: page-layout.with(title: "Thermodynamics") + += Thermodynamics -- 2.54.0 From 909ea17f2f9ee0a047551847a86646e3022cf605 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:30:08 +0200 Subject: [PATCH 05/24] ci: add Gitea Actions workflow Assisted-by: Delta:zai-glm-5.3 --- .gitea/workflows/build.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..b015641 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,36 @@ +name: Build Site +on: + push: + branches: + - calepin-migration + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install just + run: | + wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null + echo "deb [arch=amd64 signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list + sudo apt update + sudo apt install just + # Alternative, as `just` might not be needed for simple CI if we run scripts directly, but we want to test the workflow + # Actually a simpler way to install just: curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin + + - name: Install just (simple) + run: curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin + + - name: Install toolchain + run: just tools + + - name: Build site + run: just build + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: site-public + path: public/ -- 2.54.0 From 446c156338dbfccb991d35b121208a2ffe940fa1 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:30:15 +0200 Subject: [PATCH 06/24] docs: write README and AGENT.md Assisted-by: Delta:zai-glm-5.3 --- AGENT.md | 5 +++++ README.md | 39 +++++++++++++-------------------------- 2 files changed, 18 insertions(+), 26 deletions(-) create mode 100644 AGENT.md diff --git a/AGENT.md b/AGENT.md new file mode 100644 index 0000000..7f83047 --- /dev/null +++ b/AGENT.md @@ -0,0 +1,5 @@ +# Agent Rules for Yggdrasil Migration + +* **Commit Policy**: Small conventional commits. One logical change per commit. Must be committed only once that step is verified and working. Append `Assisted-by: Delta:gemini-3.1-pro` to the footer. +* **Toolchain**: Pinned versions of `calepin` (0.0.61) and `typst` (0.15.1) are downloaded locally into `tools/`. Global installs must not be used by the build process. +* **Verification**: Ensure all builds pass locally (`just clean`, `just tools`, `just build`) before committing changes to track files correctly. Do not alter legacy documentation in `legacy_docs/`. diff --git a/README.md b/README.md index 2cb0d9f..632815c 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,20 @@ -
-

Yggdrasil

-
-Yggdrasil is a collections of notes around IT, OT and other geeks stuff -
-
-
+# Yggdrasil -# [Bachelor in embedded system](/infotro/) -Here notes I take during my bachelor in embedded systems +A knowledge base migrated to [Calepin](https://vincentarelbundock.github.io/calepin/), a Typst-based static site generator. -Mainly some topics: -- [PTR - Programmation Temps Réel](/infotro/PTR/) -- [SDi - Système Distribué](/infotro/SDi/) -- [Eln - Électronique](/infotro/Eln/) -- [SEm - Systèmes Embarqué](/infotro/SEm/) +## Quick Start -# [Master of science in engineering in embedded system](/MSE/) -Here note I take during my Master of science un engineering with embedded system as orientation +1. **Dependencies**: You need the `just` command runner. +2. **Bootstrap Toolchain**: Run `just tools`. This downloads pinned versions of `calepin` and `typst` into the `tools/` directory. No global installation is required. +3. **Build**: Run `just build` to generate the static site in the `public/` directory. +4. **Preview**: Run `just preview` or `just watch` to view the site locally. -Mainly some topics: -- [SRE - Software Reverse Engineering](/MSE/SRE/) +## Adding Content -# [Embedded Systems](/Embed/) -Here some note specific about some Embedded System -- [STM32](/Embed/STM32/) -- [nRF](/Embed/nRF/) +* Source files are located in `site/`. +* To add a page, create a `.typ` file and link it in the `site/calepin.toml` configuration under `[sidebar]` or `[pages]`. +* Categories are structured as subdirectories (e.g., `site/thermo/`) with their own `index.typ`. -# [Working environment at HES-SO](/HES-SO/) -Here some note about the working environment at HES-SO +## Deployment -- [OneDrive - Linux](/HES-SO/OneDrive.md) -- [Teams - Linux](/HES-SO/Teams.md) +The site is built as a set of static files in the `public/` folder. A Gitea Actions workflow `.gitea/workflows/build.yml` runs on push to build and upload these files as an artifact. They can be deployed to any static host. -- 2.54.0 From 11bf721f217223ab00438803a8e266e12b69570a Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:39:46 +0200 Subject: [PATCH 07/24] fix: adjust Justfile and typst templates for calepin 0.0.61 Assisted-by: Delta:zai-glm-5.3 --- Justfile | 8 ++++---- site/404.typ | 2 -- site/homelab/index.typ | 1 - site/index.typ | 2 -- site/security/index.typ | 1 - site/thermo/index.typ | 1 - 6 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Justfile b/Justfile index b79526a..249c73f 100644 --- a/Justfile +++ b/Justfile @@ -25,17 +25,17 @@ tools: # Build the site build: - PATH="$$PWD/tools:$$PATH" calepin build + PATH="$PWD/tools:$PATH" calepin compile site public # Preview the site locally preview: - PATH="$$PWD/tools:$$PATH" calepin serve + PATH="$PWD/tools:$PATH" calepin serve public # Watch for changes and preview watch: - PATH="$$PWD/tools:$$PATH" calepin watch --serve + PATH="$PWD/tools:$PATH" calepin watch site public --serve # Clean the output directory clean: - rm -rf public tools + rm -rf public diff --git a/site/404.typ b/site/404.typ index c53cded..347e278 100644 --- a/site/404.typ +++ b/site/404.typ @@ -1,7 +1,5 @@ #import "@preview/calepin:0.1.7": * -#show: page-layout.with(title: "Not Found") - = 404 Page not found. diff --git a/site/homelab/index.typ b/site/homelab/index.typ index c166549..c22d75e 100644 --- a/site/homelab/index.typ +++ b/site/homelab/index.typ @@ -1,4 +1,3 @@ #import "@preview/calepin:0.1.7": * -#show: page-layout.with(title: "Homelab") = Homelab diff --git a/site/index.typ b/site/index.typ index 9780d06..860c9e6 100644 --- a/site/index.typ +++ b/site/index.typ @@ -1,7 +1,5 @@ #import "@preview/calepin:0.1.7": * -#show: page-layout.with(title: "Yggdrasil") - = Yggdrasil Welcome to Yggdrasil, the central knowledge base. diff --git a/site/security/index.typ b/site/security/index.typ index e1f0b39..d9703ba 100644 --- a/site/security/index.typ +++ b/site/security/index.typ @@ -1,4 +1,3 @@ #import "@preview/calepin:0.1.7": * -#show: page-layout.with(title: "Security") = Security diff --git a/site/thermo/index.typ b/site/thermo/index.typ index 7796d82..90f7e92 100644 --- a/site/thermo/index.typ +++ b/site/thermo/index.typ @@ -1,4 +1,3 @@ #import "@preview/calepin:0.1.7": * -#show: page-layout.with(title: "Thermodynamics") = Thermodynamics -- 2.54.0 From 7217702068fc5929055c7702ead34d3f2a275686 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 20:39:55 +0200 Subject: [PATCH 08/24] chore: ignore generated outputs and IDE files Assisted-by: Delta:zai-glm-5.3 --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0663bc0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +public/ +tools/ +.calepin/ +**/.calepin/ +.idea/ -- 2.54.0 From 99ceb89e484b4b375081cc035a72ef186cce5b82 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 21:01:20 +0200 Subject: [PATCH 09/24] refactor: move toolchain logic into scripts/ Assisted-by: Delta:zai-glm-5.3 --- .gitignore | 7 ++++++- Justfile | 48 ++++++++++++++------------------------------ scripts/bootstrap.sh | 43 +++++++++++++++++++++++++++++++++++++++ scripts/calepin.sh | 12 +++++++++++ scripts/clean.sh | 9 +++++++++ 5 files changed, 85 insertions(+), 34 deletions(-) create mode 100755 scripts/bootstrap.sh create mode 100755 scripts/calepin.sh create mode 100755 scripts/clean.sh diff --git a/.gitignore b/.gitignore index 0663bc0..0b71b18 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,10 @@ +# Generated site and pinned toolchain public/ tools/ + +# Calepin build artifacts .calepin/ -**/.calepin/ +.calepin-entry.* + +# IDE .idea/ diff --git a/Justfile b/Justfile index 249c73f..9b8b42d 100644 --- a/Justfile +++ b/Justfile @@ -1,41 +1,23 @@ -calepin-version := "0.0.61" -typst-version := "0.15.1" - -# Print available recipes +# Show the available recipes default: - @just --list + @just --list -# Download and verify the pinned toolchain +# Bootstrap the pinned calepin + typst binaries into tools/ tools: - mkdir -p tools - cd tools && \ - if [ ! -f calepin ]; then \ - curl -sL "https://github.com/vincentarelbundock/calepin/releases/download/v{{calepin-version}}/calepin-x86_64-unknown-linux-gnu.tar.xz" -o calepin-x86_64-unknown-linux-gnu.tar.xz; \ - curl -sL "https://github.com/vincentarelbundock/calepin/releases/download/v{{calepin-version}}/calepin-x86_64-unknown-linux-gnu.tar.xz.sha256" -o calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ - sha256sum -c calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ - tar -xf calepin-x86_64-unknown-linux-gnu.tar.xz --strip-components=1 calepin-x86_64-unknown-linux-gnu/calepin; \ - rm calepin-x86_64-unknown-linux-gnu.tar.xz calepin-x86_64-unknown-linux-gnu.tar.xz.sha256; \ - fi - cd tools && \ - if [ ! -f typst ]; then \ - curl -sL "https://github.com/typst/typst/releases/download/v{{typst-version}}/typst-x86_64-unknown-linux-musl.tar.xz" -o typst.tar.xz; \ - tar -xf typst.tar.xz --strip-components=1 typst-x86_64-unknown-linux-musl/typst; \ - rm typst.tar.xz; \ - fi + ./scripts/bootstrap.sh -# Build the site -build: - PATH="$PWD/tools:$PATH" calepin compile site public +# Compile the site into public/ +build: tools + ./scripts/calepin.sh compile site public -# Preview the site locally -preview: - PATH="$PWD/tools:$PATH" calepin serve public +# Build, then serve the site locally +preview: build + ./scripts/calepin.sh serve public -# Watch for changes and preview -watch: - PATH="$PWD/tools:$PATH" calepin watch site public --serve +# Rebuild on change and serve the result +watch: tools + ./scripts/calepin.sh watch site public --serve -# Clean the output directory +# Remove generated output and build caches clean: - rm -rf public - + ./scripts/clean.sh diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh new file mode 100755 index 0000000..363725c --- /dev/null +++ b/scripts/bootstrap.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Bootstrap the pinned toolchain (Calepin + Typst) into tools/. +# Idempotent: skips downloads when the binaries are already in place. +set -euo pipefail + +# Pinned toolchain -- bump both binaries together and re-verify checksums. +calepin_version="0.0.61" +typst_version="0.15.1" +# Typst publishes no .sha256 assets; this digest comes from the official +# release metadata (GitHub asset digest of typst-x86_64-unknown-linux-musl.tar.xz). +typst_sha256="a6d077d0a95eed5a2eba715b2dae06be954f624ccbf85758a03f389ded33118c" + +root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +tools="$root/tools" + +if [ "$(uname -m)" != "x86_64" ]; then + echo "error: unsupported architecture $(uname -m), pinned binaries are x86_64" >&2 + exit 1 +fi + +mkdir -p "$tools" + +if [ ! -x "$tools/calepin" ]; then + name="calepin-x86_64-unknown-linux-gnu.tar.xz" + base="https://github.com/vincentarelbundock/calepin/releases/download/v$calepin_version" + curl -fsSLo "$tools/$name" "$base/$name" + curl -fsSLo "$tools/$name.sha256" "$base/$name.sha256" + (cd "$tools" && sha256sum -c "$name.sha256") + tar -xJf "$tools/$name" -C "$tools" --strip-components=1 "calepin-x86_64-unknown-linux-gnu/calepin" + rm "$tools/$name" "$tools/$name.sha256" +fi + +if [ ! -x "$tools/typst" ]; then + name="typst-x86_64-unknown-linux-musl.tar.xz" + curl -fsSLo "$tools/$name" "https://github.com/typst/typst/releases/download/v$typst_version/$name" + echo "$typst_sha256 $name" > "$tools/$name.sha256" + (cd "$tools" && sha256sum -c "$name.sha256") + tar -xJf "$tools/$name" -C "$tools" --strip-components=1 "typst-x86_64-unknown-linux-musl/typst" + rm "$tools/$name" "$tools/$name.sha256" +fi + +"$tools/calepin" --version +"$tools/typst" --version diff --git a/scripts/calepin.sh b/scripts/calepin.sh new file mode 100755 index 0000000..b8ca051 --- /dev/null +++ b/scripts/calepin.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# Run the pinned Calepin CLI from tools/, bootstrapping the toolchain on demand. +set -euo pipefail + +root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +if [ ! -x "$root/tools/calepin" ]; then + "$root/scripts/bootstrap.sh" +fi + +export PATH="$root/tools:$PATH" +exec "$root/tools/calepin" "$@" diff --git a/scripts/clean.sh b/scripts/clean.sh new file mode 100755 index 0000000..f51527e --- /dev/null +++ b/scripts/clean.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# Remove generated site output and build caches. Never touches tracked files. +set -euo pipefail + +root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +rm -rf "$root/public" +find "$root/site" -name '.calepin' -prune -exec rm -rf {} + +find "$root/site" -type f -name '.calepin-entry.*' -delete -- 2.54.0 From f7beeb5e158e00db87d5962ed8637ea4615655ed Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 21:02:20 +0200 Subject: [PATCH 10/24] fix: align site scaffold with calepin conventions Assisted-by: Delta:zai-glm-5.3 --- site/404.typ | 6 +++--- site/calepin.toml | 16 +++++++++++++--- site/homelab/index.typ | 8 ++++++-- site/index.typ | 12 +++++++++--- site/security/index.typ | 8 ++++++-- site/thermo/index.typ | 8 ++++++-- 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/site/404.typ b/site/404.typ index 347e278..1f94c8c 100644 --- a/site/404.typ +++ b/site/404.typ @@ -1,5 +1,5 @@ -#import "@preview/calepin:0.1.7": * +#set document(title: [Not found]) -= 404 +#title() -Page not found. +The requested page does not exist. diff --git a/site/calepin.toml b/site/calepin.toml index 189de85..877b2f7 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -1,7 +1,7 @@ title = "Yggdrasil" -description = "Knowledge Base" +description = "Personal knowledge base." +base-url = "https://yggdrasil.kb28.ch" theme = "calepin" - pdf = false [static] @@ -12,14 +12,24 @@ fold = false [[sidebar.section]] title = "Start" + [[sidebar.section.item]] target = "index.typ" [[sidebar.section]] -title = "Categories" +title = "Thermodynamics" + [[sidebar.section.item]] target = "thermo/index.typ" + +[[sidebar.section]] +title = "Security" + [[sidebar.section.item]] target = "security/index.typ" + +[[sidebar.section]] +title = "Homelab" + [[sidebar.section.item]] target = "homelab/index.typ" diff --git a/site/homelab/index.typ b/site/homelab/index.typ index c22d75e..14a7241 100644 --- a/site/homelab/index.typ +++ b/site/homelab/index.typ @@ -1,3 +1,7 @@ -#import "@preview/calepin:0.1.7": * +#set document(title: [Homelab]) +#metadata((title: "Overview", translation_key: "homelab")) -= Homelab +#title() + +Placeholder page for the homelab category. +The real content comes later. diff --git a/site/index.typ b/site/index.typ index 860c9e6..f8f22e7 100644 --- a/site/index.typ +++ b/site/index.typ @@ -1,5 +1,11 @@ -#import "@preview/calepin:0.1.7": * +#set document(title: [Yggdrasil]) +#metadata((title: "Home", translation_key: "home")) -= Yggdrasil +#title() -Welcome to Yggdrasil, the central knowledge base. +Welcome to Yggdrasil, my personal knowledge base. +Pick a category from the sidebar to start reading: + +- Thermodynamics — heat, energy, and friends +- Security — hardening, cryptography, and operations +- Homelab — self-hosted services and infrastructure diff --git a/site/security/index.typ b/site/security/index.typ index d9703ba..0d70aa4 100644 --- a/site/security/index.typ +++ b/site/security/index.typ @@ -1,3 +1,7 @@ -#import "@preview/calepin:0.1.7": * +#set document(title: [Security]) +#metadata((title: "Overview", translation_key: "security")) -= Security +#title() + +Placeholder page for the security category. +The real content comes later. diff --git a/site/thermo/index.typ b/site/thermo/index.typ index 90f7e92..60c3f02 100644 --- a/site/thermo/index.typ +++ b/site/thermo/index.typ @@ -1,3 +1,7 @@ -#import "@preview/calepin:0.1.7": * +#set document(title: [Thermodynamics]) +#metadata((title: "Overview", translation_key: "thermo")) -= Thermodynamics +#title() + +Placeholder page for the thermodynamics category. +The real content comes later. -- 2.54.0 From 62c4619c5e8bad03725dec15af09fe8d936eea82 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 21:02:41 +0200 Subject: [PATCH 11/24] docs: add example sub-pages Assisted-by: Delta:zai-glm-5.3 --- site/calepin.toml | 9 +++++++++ site/homelab/self-hosting.typ | 6 ++++++ site/security/ssh.typ | 6 ++++++ site/thermo/heat-transfer.typ | 6 ++++++ 4 files changed, 27 insertions(+) create mode 100644 site/homelab/self-hosting.typ create mode 100644 site/security/ssh.typ create mode 100644 site/thermo/heat-transfer.typ diff --git a/site/calepin.toml b/site/calepin.toml index 877b2f7..db9a016 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -22,14 +22,23 @@ title = "Thermodynamics" [[sidebar.section.item]] target = "thermo/index.typ" + [[sidebar.section.item]] + target = "thermo/heat-transfer.typ" + [[sidebar.section]] title = "Security" [[sidebar.section.item]] target = "security/index.typ" + [[sidebar.section.item]] + target = "security/ssh.typ" + [[sidebar.section]] title = "Homelab" [[sidebar.section.item]] target = "homelab/index.typ" + + [[sidebar.section.item]] + target = "homelab/self-hosting.typ" diff --git a/site/homelab/self-hosting.typ b/site/homelab/self-hosting.typ new file mode 100644 index 0000000..36a94da --- /dev/null +++ b/site/homelab/self-hosting.typ @@ -0,0 +1,6 @@ +#set document(title: [Self-hosting]) +#metadata((title: "Self-hosting", translation_key: "homelab-self-hosting")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/security/ssh.typ b/site/security/ssh.typ new file mode 100644 index 0000000..6ca0c38 --- /dev/null +++ b/site/security/ssh.typ @@ -0,0 +1,6 @@ +#set document(title: [SSH]) +#metadata((title: "SSH", translation_key: "security-ssh")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/thermo/heat-transfer.typ b/site/thermo/heat-transfer.typ new file mode 100644 index 0000000..01d7439 --- /dev/null +++ b/site/thermo/heat-transfer.typ @@ -0,0 +1,6 @@ +#set document(title: [Heat transfer]) +#metadata((title: "Heat transfer", translation_key: "thermo-heat-transfer")) + +#title() + +Placeholder page — the real content comes later. -- 2.54.0 From 36b2fc41889d9b5557911ade0cd0adb73fdec4f3 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 21:02:41 +0200 Subject: [PATCH 12/24] ci: build site via the toolchain scripts Assisted-by: Delta:zai-glm-5.3 --- .gitea/workflows/build.yml | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index b015641..74b754e 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,36 +1,23 @@ -name: Build Site -on: - push: - branches: - - calepin-migration +name: Build site + +on: push jobs: build: + # NOTE: must match your act_runner labels (e.g. ubuntu-latest, ubuntu-24.04). runs-on: ubuntu-latest steps: - - name: Checkout code + - name: Checkout uses: actions/checkout@v4 - - name: Install just - run: | - wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list - sudo apt update - sudo apt install just - # Alternative, as `just` might not be needed for simple CI if we run scripts directly, but we want to test the workflow - # Actually a simpler way to install just: curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - - - name: Install just (simple) - run: curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin - - - name: Install toolchain - run: just tools + - name: Bootstrap pinned toolchain + run: ./scripts/bootstrap.sh - name: Build site - run: just build + run: ./scripts/calepin.sh compile site public - - name: Upload artifact + - name: Upload site artifact uses: actions/upload-artifact@v4 with: - name: site-public + name: public path: public/ -- 2.54.0 From 7207cfdbd08225536aeb73b4d4971f570cd3df70 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 21:02:59 +0200 Subject: [PATCH 13/24] docs: update README and AGENT.md for the scripts layout Assisted-by: Delta:zai-glm-5.3 --- AGENT.md | 21 +++++++++++++++--- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 73 insertions(+), 14 deletions(-) diff --git a/AGENT.md b/AGENT.md index 7f83047..eefbc8e 100644 --- a/AGENT.md +++ b/AGENT.md @@ -1,5 +1,20 @@ # Agent Rules for Yggdrasil Migration -* **Commit Policy**: Small conventional commits. One logical change per commit. Must be committed only once that step is verified and working. Append `Assisted-by: Delta:gemini-3.1-pro` to the footer. -* **Toolchain**: Pinned versions of `calepin` (0.0.61) and `typst` (0.15.1) are downloaded locally into `tools/`. Global installs must not be used by the build process. -* **Verification**: Ensure all builds pass locally (`just clean`, `just tools`, `just build`) before committing changes to track files correctly. Do not alter legacy documentation in `legacy_docs/`. +* **Commit Policy**: Small conventional commits. One logical change per + commit, committed only once that step is verified and working. End every + commit message with a blank line followed by an + `Assisted-by: Delta:zai-glm-5.3` footer. +* **Layout**: Sources live in `site/` (`calepin.toml` + `.typ` pages), + generated output in `public/` (gitignored), pinned binaries in `tools/` + (gitignored), helper scripts in `scripts/`, and the old Docsify + documentation stays untouched in `legacy_docs/`. +* **Toolchain**: `calepin` (0.0.61) and `typst` (0.15.1) are pinned in + `scripts/bootstrap.sh` and downloaded into `tools/` with checksum + verification. The build must never depend on global installs. CI installs + the same pinned versions by calling the same scripts. +* **Verification**: Before committing, run a fresh cycle: `rm -rf tools`, + then `just clean`, then `just build` — the build must succeed with no + calepin on `PATH`. Verify the served site (`just preview`): home 200, + category page 200, sub-page 200, missing page shows the 404 page, + `sitemap.xml` present. After every test/clean cycle `git status` must stay + clean. diff --git a/README.md b/README.md index 632815c..c087d34 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,64 @@ # Yggdrasil -A knowledge base migrated to [Calepin](https://vincentarelbundock.github.io/calepin/), a Typst-based static site generator. +Personal knowledge base built as a static website with +[Calepin](https://vincentarelbundock.github.io/calepin/), a Typst-based static +site generator. -## Quick Start +## Layout -1. **Dependencies**: You need the `just` command runner. -2. **Bootstrap Toolchain**: Run `just tools`. This downloads pinned versions of `calepin` and `typst` into the `tools/` directory. No global installation is required. -3. **Build**: Run `just build` to generate the static site in the `public/` directory. -4. **Preview**: Run `just preview` or `just watch` to view the site locally. +- `site/` — website sources: `calepin.toml` + `.typ` pages +- `public/` — generated site (gitignored) +- `tools/` — pinned `calepin` and `typst` binaries (gitignored, downloaded on demand) +- `scripts/` — helper scripts used by the Justfile and CI +- `legacy_docs/` — the old Docsify documentation, kept unmodified for reference -## Adding Content +## Quick start -* Source files are located in `site/`. -* To add a page, create a `.typ` file and link it in the `site/calepin.toml` configuration under `[sidebar]` or `[pages]`. -* Categories are structured as subdirectories (e.g., `site/thermo/`) with their own `index.typ`. +`just` is the only prerequisite — the toolchain is downloaded and +checksum-verified into `tools/` on first use (no global installs, no cargo): + + just # list recipes + just tools # download the pinned toolchain into tools/ + just build # compile site/ into public/ + just preview # build, then serve the site locally + just watch # rebuild on change and serve + just clean # remove public/ and build caches + +## Adding a page + +Create `site//.typ`: + +```typst +#set document(title: [Page title]) +#metadata((title: "Page title", translation_key: "category-page")) + +#title() + += Page title + +Content… +``` + +and reference it in `site/calepin.toml`: + +```toml +[[sidebar.section.item]] +target = "/.typ" +``` + +Sidebar labels come from the page's `#metadata(...)` line, not from the config. + +## Adding a category + +1. Create `site//` with an `index.typ`, using + `#metadata((title: "Overview", ...))` for its sidebar label. +2. Add a `[[sidebar.section]]` named after the category in `calepin.toml`, + listing the index page and its sub-pages. ## Deployment -The site is built as a set of static files in the `public/` folder. A Gitea Actions workflow `.gitea/workflows/build.yml` runs on push to build and upload these files as an artifact. They can be deployed to any static host. +`just build` produces a fully static site in `public/`: HTML pages plus +`sitemap.xml`, `robots.txt`, and `llms.txt`. The Gitea Actions workflow in +`.gitea/workflows/build.yml` builds the site on every push with the same +pinned toolchain and uploads `public/` as an artifact for deployment to any +static host. -- 2.54.0 From eb995c7b690d1795ce413c86555bb076ecea0b21 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 22:04:31 +0200 Subject: [PATCH 14/24] feat: restructure content into master categories Assisted-by: Delta:zai-glm-5.3 --- site/calepin.toml | 36 ++++++++++++++++++++++++++--------- site/home/cooking.typ | 6 ++++++ site/home/gardening.typ | 6 ++++++ site/home/index.typ | 7 +++++++ site/home/washing-clothes.typ | 6 ++++++ site/homelab/index.typ | 7 ------- site/homelab/self-hosting.typ | 6 ------ site/index.typ | 10 ++++++---- site/it/index.typ | 7 +++++++ site/medias/books.typ | 6 ++++++ site/medias/films.typ | 6 ++++++ site/medias/index.typ | 7 +++++++ site/medias/series.typ | 6 ++++++ site/ot/index.typ | 7 +++++++ site/thermo/heat-transfer.typ | 6 ------ site/thermo/index.typ | 7 ------- 16 files changed, 97 insertions(+), 39 deletions(-) create mode 100644 site/home/cooking.typ create mode 100644 site/home/gardening.typ create mode 100644 site/home/index.typ create mode 100644 site/home/washing-clothes.typ delete mode 100644 site/homelab/index.typ delete mode 100644 site/homelab/self-hosting.typ create mode 100644 site/it/index.typ create mode 100644 site/medias/books.typ create mode 100644 site/medias/films.typ create mode 100644 site/medias/index.typ create mode 100644 site/medias/series.typ create mode 100644 site/ot/index.typ delete mode 100644 site/thermo/heat-transfer.typ delete mode 100644 site/thermo/index.typ diff --git a/site/calepin.toml b/site/calepin.toml index db9a016..b10f00d 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -8,22 +8,34 @@ pdf = false include = ["assets/**"] [sidebar] -fold = false +fold = true [[sidebar.section]] -title = "Start" +title = "Home" [[sidebar.section.item]] - target = "index.typ" + target = "home/index.typ" + + [[sidebar.section.item]] + target = "home/cooking.typ" + + [[sidebar.section.item]] + target = "home/washing-clothes.typ" + + [[sidebar.section.item]] + target = "home/gardening.typ" [[sidebar.section]] -title = "Thermodynamics" +title = "IT" [[sidebar.section.item]] - target = "thermo/index.typ" + target = "it/index.typ" + +[[sidebar.section]] +title = "OT" [[sidebar.section.item]] - target = "thermo/heat-transfer.typ" + target = "ot/index.typ" [[sidebar.section]] title = "Security" @@ -35,10 +47,16 @@ title = "Security" target = "security/ssh.typ" [[sidebar.section]] -title = "Homelab" +title = "Medias" [[sidebar.section.item]] - target = "homelab/index.typ" + target = "medias/index.typ" [[sidebar.section.item]] - target = "homelab/self-hosting.typ" + target = "medias/films.typ" + + [[sidebar.section.item]] + target = "medias/series.typ" + + [[sidebar.section.item]] + target = "medias/books.typ" diff --git a/site/home/cooking.typ b/site/home/cooking.typ new file mode 100644 index 0000000..c526776 --- /dev/null +++ b/site/home/cooking.typ @@ -0,0 +1,6 @@ +#set document(title: [Cooking]) +#metadata((title: "Cooking", translation_key: "home-cooking")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/home/gardening.typ b/site/home/gardening.typ new file mode 100644 index 0000000..f3da685 --- /dev/null +++ b/site/home/gardening.typ @@ -0,0 +1,6 @@ +#set document(title: [Gardening]) +#metadata((title: "Gardening", translation_key: "home-gardening")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/home/index.typ b/site/home/index.typ new file mode 100644 index 0000000..caa2739 --- /dev/null +++ b/site/home/index.typ @@ -0,0 +1,7 @@ +#set document(title: [Home]) +#metadata((title: "Overview", translation_key: "home-index")) + +#title() + +Placeholder page for the home category: cooking, washing clothes, gardening. +The real content comes later. diff --git a/site/home/washing-clothes.typ b/site/home/washing-clothes.typ new file mode 100644 index 0000000..c4b4a0a --- /dev/null +++ b/site/home/washing-clothes.typ @@ -0,0 +1,6 @@ +#set document(title: [Washing clothes]) +#metadata((title: "Washing clothes", translation_key: "home-washing-clothes")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/homelab/index.typ b/site/homelab/index.typ deleted file mode 100644 index 14a7241..0000000 --- a/site/homelab/index.typ +++ /dev/null @@ -1,7 +0,0 @@ -#set document(title: [Homelab]) -#metadata((title: "Overview", translation_key: "homelab")) - -#title() - -Placeholder page for the homelab category. -The real content comes later. diff --git a/site/homelab/self-hosting.typ b/site/homelab/self-hosting.typ deleted file mode 100644 index 36a94da..0000000 --- a/site/homelab/self-hosting.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Self-hosting]) -#metadata((title: "Self-hosting", translation_key: "homelab-self-hosting")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/index.typ b/site/index.typ index f8f22e7..b3d1065 100644 --- a/site/index.typ +++ b/site/index.typ @@ -4,8 +4,10 @@ #title() Welcome to Yggdrasil, my personal knowledge base. -Pick a category from the sidebar to start reading: +Pick a master category from the menu: -- Thermodynamics — heat, energy, and friends -- Security — hardening, cryptography, and operations -- Homelab — self-hosted services and infrastructure +- Home — cooking, washing clothes, gardening +- IT — computers, networks, development +- OT — electronics, embedded and industrial systems +- Security — hardening, cryptography, operations +- Medias — films, series, books diff --git a/site/it/index.typ b/site/it/index.typ new file mode 100644 index 0000000..4faf389 --- /dev/null +++ b/site/it/index.typ @@ -0,0 +1,7 @@ +#set document(title: [IT]) +#metadata((title: "Overview", translation_key: "it-index")) + +#title() + +Placeholder page for the IT category. +The real content comes later. diff --git a/site/medias/books.typ b/site/medias/books.typ new file mode 100644 index 0000000..0b798e5 --- /dev/null +++ b/site/medias/books.typ @@ -0,0 +1,6 @@ +#set document(title: [Books]) +#metadata((title: "Books", translation_key: "medias-books")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/medias/films.typ b/site/medias/films.typ new file mode 100644 index 0000000..a124b6d --- /dev/null +++ b/site/medias/films.typ @@ -0,0 +1,6 @@ +#set document(title: [Films]) +#metadata((title: "Films", translation_key: "medias-films")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/medias/index.typ b/site/medias/index.typ new file mode 100644 index 0000000..29f2c7c --- /dev/null +++ b/site/medias/index.typ @@ -0,0 +1,7 @@ +#set document(title: [Medias]) +#metadata((title: "Overview", translation_key: "medias-index")) + +#title() + +Placeholder page for the medias category: films, series, books. +The real content comes later. diff --git a/site/medias/series.typ b/site/medias/series.typ new file mode 100644 index 0000000..e673963 --- /dev/null +++ b/site/medias/series.typ @@ -0,0 +1,6 @@ +#set document(title: [Series]) +#metadata((title: "Series", translation_key: "medias-series")) + +#title() + +Placeholder page — the real content comes later. diff --git a/site/ot/index.typ b/site/ot/index.typ new file mode 100644 index 0000000..cb87941 --- /dev/null +++ b/site/ot/index.typ @@ -0,0 +1,7 @@ +#set document(title: [OT]) +#metadata((title: "Overview", translation_key: "ot-index")) + +#title() + +Placeholder page for the OT category. +The real content comes later. diff --git a/site/thermo/heat-transfer.typ b/site/thermo/heat-transfer.typ deleted file mode 100644 index 01d7439..0000000 --- a/site/thermo/heat-transfer.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Heat transfer]) -#metadata((title: "Heat transfer", translation_key: "thermo-heat-transfer")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/thermo/index.typ b/site/thermo/index.typ deleted file mode 100644 index 60c3f02..0000000 --- a/site/thermo/index.typ +++ /dev/null @@ -1,7 +0,0 @@ -#set document(title: [Thermodynamics]) -#metadata((title: "Overview", translation_key: "thermo")) - -#title() - -Placeholder page for the thermodynamics category. -The real content comes later. -- 2.54.0 From 64787419509209064df8ad1111a42339d11b2fc9 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 22:05:08 +0200 Subject: [PATCH 15/24] feat: add master categories to the site menu Assisted-by: Delta:zai-glm-5.3 --- site/calepin.toml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/site/calepin.toml b/site/calepin.toml index b10f00d..80c3fcb 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -7,6 +7,26 @@ pdf = false [static] include = ["assets/**"] +[[menus.main]] +target = "home/index.typ" +label = "Home" + +[[menus.main]] +target = "it/index.typ" +label = "IT" + +[[menus.main]] +target = "ot/index.typ" +label = "OT" + +[[menus.main]] +target = "security/index.typ" +label = "Security" + +[[menus.main]] +target = "medias/index.typ" +label = "Medias" + [sidebar] fold = true -- 2.54.0 From 096026a96476d4b434fb9af08ac41648b70950cd Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 22:05:21 +0200 Subject: [PATCH 16/24] docs: describe the site menu in README Assisted-by: Delta:zai-glm-5.3 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c087d34..32ebe07 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,10 @@ Sidebar labels come from the page's `#metadata(...)` line, not from the config. `#metadata((title: "Overview", ...))` for its sidebar label. 2. Add a `[[sidebar.section]]` named after the category in `calepin.toml`, listing the index page and its sub-pages. +3. Add a `[[menus.main]]` entry with the category's `index.typ` as `target` + and the category name as `label` (e.g. `Home`, `IT`), so it appears in the + top navigation bar. The `label` is required here because the index page's + metadata title is `Overview`. ## Deployment -- 2.54.0 From ab802968caf6d2de9c2e2981bdd3791a2057885d Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 23:51:22 +0200 Subject: [PATCH 17/24] chore: add custom placeholder and fine tune calepin-toml --- {legacy_docs => site}/CNAME | 0 site/assets/yggdrasil.ico | Bin 0 -> 14242 bytes site/assets/yggdrasil.svg | 43 ++++++++++ site/calepin.toml | 115 ++++++++++++++------------ site/medias/books.typ | 6 -- site/medias/books/le_grand_cahier.typ | 11 +++ site/medias/films.typ | 6 -- site/medias/films/h2g2.typ | 10 +++ site/medias/index.typ | 40 ++++++++- site/medias/plex.typ | 12 +++ site/medias/series.typ | 6 -- site/medias/series/the_expanse.typ | 17 ++++ site/tags.typ | 23 ++++++ 13 files changed, 216 insertions(+), 73 deletions(-) rename {legacy_docs => site}/CNAME (100%) create mode 100644 site/assets/yggdrasil.ico create mode 100644 site/assets/yggdrasil.svg delete mode 100644 site/medias/books.typ create mode 100644 site/medias/books/le_grand_cahier.typ delete mode 100644 site/medias/films.typ create mode 100644 site/medias/films/h2g2.typ create mode 100644 site/medias/plex.typ delete mode 100644 site/medias/series.typ create mode 100644 site/medias/series/the_expanse.typ create mode 100644 site/tags.typ diff --git a/legacy_docs/CNAME b/site/CNAME similarity index 100% rename from legacy_docs/CNAME rename to site/CNAME diff --git a/site/assets/yggdrasil.ico b/site/assets/yggdrasil.ico new file mode 100644 index 0000000000000000000000000000000000000000..6c33aea5ee7222b62dc981b7a95819e43ea5b035 GIT binary patch literal 14242 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 + + + diff --git a/site/calepin.toml b/site/calepin.toml index 80c3fcb..15a4265 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -3,80 +3,89 @@ description = "Personal knowledge base." base-url = "https://yggdrasil.kb28.ch" theme = "calepin" pdf = false +minify = true +search = "pagefind" +logo = "assets/yggdrasil.svg" +favicon = "assets/yggdrasil.ico" + +[robots] +enabled = false + +[pages] +include = ["tags.typ"] +exclude = ["drafts/**"] [static] -include = ["assets/**"] +include = [ + "assets/**", + "CNAME" +] +exclude = ["drafts/**"] -[[menus.main]] -target = "home/index.typ" -label = "Home" +[menus] +main = [ + { label = "Home", target = "home/index.typ" }, + { label = "IT", target = "it/index.typ" }, + { label = "OT", target = "ot/index.typ" }, + { label = "Security", target = "security/index.typ" }, + { label = "Medias", target = "medias/index.typ" }, +] +social = [ + { label = "{icon:simple-icons:gitea}", target = "https://git.kb28.ch/Klagarge/Yggdrasil", aria-label = "Gitea" }, +] -[[menus.main]] -target = "it/index.typ" -label = "IT" -[[menus.main]] -target = "ot/index.typ" -label = "OT" - -[[menus.main]] -target = "security/index.typ" -label = "Security" - -[[menus.main]] -target = "medias/index.typ" -label = "Medias" +[footer] +item = [ + { label = "© 2026" }, + { label = "@Klagarge", target = "https://git.kb28.ch/Klagarge" }, + { label = "@Fastium", target = "https://github.com/Fastium" }, +] [sidebar] fold = true [[sidebar.section]] title = "Home" +item = [ + { target = "home/index.typ" }, + { glob = "home/*" } +] - [[sidebar.section.item]] - target = "home/index.typ" - - [[sidebar.section.item]] - target = "home/cooking.typ" - - [[sidebar.section.item]] - target = "home/washing-clothes.typ" - - [[sidebar.section.item]] - target = "home/gardening.typ" [[sidebar.section]] title = "IT" - - [[sidebar.section.item]] - target = "it/index.typ" +item = [ + { target = "it/index.typ" }, + { glob = "it/*" } +] [[sidebar.section]] title = "OT" - - [[sidebar.section.item]] - target = "ot/index.typ" +item = [ + { target = "ot/index.typ" }, + { glob = "ot/*" } +] [[sidebar.section]] title = "Security" - - [[sidebar.section.item]] - target = "security/index.typ" - - [[sidebar.section.item]] - target = "security/ssh.typ" +item = [ + { target = "security/index.typ" }, + { glob = "security/*" } +] [[sidebar.section]] title = "Medias" - - [[sidebar.section.item]] - target = "medias/index.typ" - - [[sidebar.section.item]] - target = "medias/films.typ" - - [[sidebar.section.item]] - target = "medias/series.typ" - - [[sidebar.section.item]] - target = "medias/books.typ" +target = "medias/index.typ" +item = [ + # { glob = "medias/films/*.typ" }, + # { glob = "medias/series/*.typ" }, + # { glob = "medias/books/*.typ" }, + { target = "medias/index.typ" }, + { glob = "medias/*.typ" }, +] +section = [ + { title = "Films", item = [{ glob = "medias/films/*.typ" }] }, + { title = "Series", item = [{ glob = "medias/series/*.typ" }] }, + { title = "Books", item = [{ glob = "medias/books/*.typ" }] }, +] diff --git a/site/medias/books.typ b/site/medias/books.typ deleted file mode 100644 index 0b798e5..0000000 --- a/site/medias/books.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Books]) -#metadata((title: "Books", translation_key: "medias-books")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/books/le_grand_cahier.typ b/site/medias/books/le_grand_cahier.typ new file mode 100644 index 0000000..82dd99f --- /dev/null +++ b/site/medias/books/le_grand_cahier.typ @@ -0,0 +1,11 @@ +#set document(title: [Le Grand Cahier]) +#metadata(( + translation_key: "le_grand_cahier", + date: "2026-10-10", + author: "Rémi Heredero", + pdf: true +)) + +#title() + +This book is awesome! diff --git a/site/medias/films.typ b/site/medias/films.typ deleted file mode 100644 index a124b6d..0000000 --- a/site/medias/films.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Films]) -#metadata((title: "Films", translation_key: "medias-films")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/films/h2g2.typ b/site/medias/films/h2g2.typ new file mode 100644 index 0000000..1d5e06d --- /dev/null +++ b/site/medias/films/h2g2.typ @@ -0,0 +1,10 @@ +#set document(title: [H2G2]) +#metadata(( + translation_key: "h2g2", + date: "2026-10-10", + author: "Rémi Heredero", + pdf: true +)) + +#title() +One of my favourites films! diff --git a/site/medias/index.typ b/site/medias/index.typ index 29f2c7c..7a28e38 100644 --- a/site/medias/index.typ +++ b/site/medias/index.typ @@ -1,7 +1,43 @@ #set document(title: [Medias]) -#metadata((title: "Overview", translation_key: "medias-index")) +#metadata(( + title: "Overview", + translation_key: "medias-overview", + date: "2026-10-10", + tags: ("medias", "films", "series", "books"), + author: "Rémi Heredero", + summary: "My very opinionned ideas about somes films, series and books", + draft: false, + pdf: false +)) #title() -Placeholder page for the medias category: films, series, books. +Placeholder page for the medias category. The real content comes later. + +#import "@preview/calepin:0.1.0" as calepin +#show: calepin.document + +== Films +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/films/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] + +== Series +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/series/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] + +== Books +#let posts = calepin.pages().filter(p => p.path.starts-with("medias/books/")).filter(p => not p.meta.at("draft", default: false)).sorted(key: p => p.meta.at("date", default: "")).rev() + +#for post in posts [ + - #link(post.href)[#post.title] \ + #post.meta.at("summary", default: []) +] diff --git a/site/medias/plex.typ b/site/medias/plex.typ new file mode 100644 index 0000000..a21479c --- /dev/null +++ b/site/medias/plex.typ @@ -0,0 +1,12 @@ +#set document(title: [Plex]) +#metadata(( + translation_key: "plex", + date: "2026-10-10", + author: "Rémi Heredero", + summary: "Plex is a media server", + pdf: true +)) + +#title() + +I think I'll switch to Jellyfin not in so long time diff --git a/site/medias/series.typ b/site/medias/series.typ deleted file mode 100644 index e673963..0000000 --- a/site/medias/series.typ +++ /dev/null @@ -1,6 +0,0 @@ -#set document(title: [Series]) -#metadata((title: "Series", translation_key: "medias-series")) - -#title() - -Placeholder page — the real content comes later. diff --git a/site/medias/series/the_expanse.typ b/site/medias/series/the_expanse.typ new file mode 100644 index 0000000..140cb33 --- /dev/null +++ b/site/medias/series/the_expanse.typ @@ -0,0 +1,17 @@ +#set document(title: [The Expanse]) +#metadata(( + translation_key: "the_expanse", + date: "2026-10-10", + author: "Rémi Heredero", + summary: " - S01: 9/10 + - S02: 9/10 + - S03: 8/10 + - S04: 8/10 + - S05: 8/10 + - S06: 8/10", + pdf: true +)) + +#title() + +I love hard science! diff --git a/site/tags.typ b/site/tags.typ new file mode 100644 index 0000000..26d2015 --- /dev/null +++ b/site/tags.typ @@ -0,0 +1,23 @@ +#import "/.calepin/calepin.typ" as calepin +#show: calepin.document + +#let taxonomy(field) = { + let pages = calepin.pages() + .filter(page => page.meta.at(field, default: ()) != ()) + let terms = pages + .map(page => page.meta.at(field)) + .flatten() + .dedup() + .sorted(key: term => lower(term)) + + for term in terms { + heading(term, level: 2) + for page in pages.filter( + page => term in page.meta.at(field) + ) [ + - #link(page.href)[#page.title] + ] + } +} + +#taxonomy("tags") -- 2.54.0 From 3361c9ee3debdd9761921641acd00796e111ca0c Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sat, 10 Oct 2026 23:53:55 +0200 Subject: [PATCH 18/24] feat: scope the sidebar to the current category Assisted-by: Delta:zai-glm-5.3 --- README.md | 7 +++ site/calepin.toml | 2 +- .../yggdrasil/partials/site-nav-sidebar.html | 47 +++++++++++++++++++ site/themes/yggdrasil/theme.toml | 1 + 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 site/themes/yggdrasil/partials/site-nav-sidebar.html create mode 100644 site/themes/yggdrasil/theme.toml diff --git a/README.md b/README.md index 32ebe07..70096b3 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ site generator. ## Layout - `site/` — website sources: `calepin.toml` + `.typ` pages +- `site/themes/yggdrasil/` — local theme extending the bundled `calepin` theme - `public/` — generated site (gitignored) - `tools/` — pinned `calepin` and `typst` binaries (gitignored, downloaded on demand) - `scripts/` — helper scripts used by the Justfile and CI @@ -59,6 +60,12 @@ Sidebar labels come from the page's `#metadata(...)` line, not from the config. top navigation bar. The `label` is required here because the index page's metadata title is `Overview`. +Pages inside a category show only that category's sidebar section — the +local theme (`site/themes/yggdrasil/partials/site-nav-sidebar.html`) filters +the sidebar to the section containing the current page. Pages outside every +category (landing page, `404`, standalone pages) fall back to the full +sidebar. + ## Deployment `just build` produces a fully static site in `public/`: HTML pages plus diff --git a/site/calepin.toml b/site/calepin.toml index 15a4265..fade09e 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -1,7 +1,7 @@ title = "Yggdrasil" description = "Personal knowledge base." base-url = "https://yggdrasil.kb28.ch" -theme = "calepin" +theme = "themes/yggdrasil" pdf = false minify = true search = "pagefind" diff --git a/site/themes/yggdrasil/partials/site-nav-sidebar.html b/site/themes/yggdrasil/partials/site-nav-sidebar.html new file mode 100644 index 0000000..5018419 --- /dev/null +++ b/site/themes/yggdrasil/partials/site-nav-sidebar.html @@ -0,0 +1,47 @@ + diff --git a/site/themes/yggdrasil/theme.toml b/site/themes/yggdrasil/theme.toml new file mode 100644 index 0000000..4f40ac0 --- /dev/null +++ b/site/themes/yggdrasil/theme.toml @@ -0,0 +1 @@ +extends = "calepin" -- 2.54.0 From 946177a0b994fbb9e884f453b4080aee61344c2e Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 00:00:42 +0200 Subject: [PATCH 19/24] feat: style the landing page with the academic theme Assisted-by: Delta:zai-glm-5.3 --- README.md | 2 +- site/index.typ | 2 +- .../yggdrasil/layouts/site-landing.html | 293 ++++++++++++++++++ 3 files changed, 295 insertions(+), 2 deletions(-) create mode 100644 site/themes/yggdrasil/layouts/site-landing.html diff --git a/README.md b/README.md index 70096b3..2da37ef 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ site generator. ## Layout - `site/` — website sources: `calepin.toml` + `.typ` pages -- `site/themes/yggdrasil/` — local theme extending the bundled `calepin` theme +- `site/themes/yggdrasil/` — local theme extending the bundled `calepin` theme (scoped sidebars, academic-styled landing) - `public/` — generated site (gitignored) - `tools/` — pinned `calepin` and `typst` binaries (gitignored, downloaded on demand) - `scripts/` — helper scripts used by the Justfile and CI diff --git a/site/index.typ b/site/index.typ index b3d1065..fcbdce9 100644 --- a/site/index.typ +++ b/site/index.typ @@ -1,5 +1,5 @@ #set document(title: [Yggdrasil]) -#metadata((title: "Home", translation_key: "home")) +#metadata((title: "Home", translation_key: "home", layout: "layouts/site-landing.html")) #title() diff --git a/site/themes/yggdrasil/layouts/site-landing.html b/site/themes/yggdrasil/layouts/site-landing.html new file mode 100644 index 0000000..0f8e955 --- /dev/null +++ b/site/themes/yggdrasil/layouts/site-landing.html @@ -0,0 +1,293 @@ +{% set calepin_theme_storage_key = "calepin-website-theme" %} +{% set calepin_theme_param = "theme" %} +{% include "partials/site-head.html" %} + +{{ doc.body_open }} +{% set show_site_sidebar = false %} +{% include "partials/site-nav.html" %} +
+ {{ doc.body }} +
+{% include "partials/site-footer.html" %} +{% include "partials/site-search.html" %} +{% include "partials/theme-scripts.html" %} +{{ doc.body_close }} -- 2.54.0 From af31b6165c1dd0a208ac5d053a7796ed002c9dff Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 00:09:52 +0200 Subject: [PATCH 20/24] chore: remove unused placeholder --- site/index.typ | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/site/index.typ b/site/index.typ index fcbdce9..cd7143a 100644 --- a/site/index.typ +++ b/site/index.typ @@ -4,10 +4,4 @@ #title() Welcome to Yggdrasil, my personal knowledge base. -Pick a master category from the menu: - -- Home — cooking, washing clothes, gardening -- IT — computers, networks, development -- OT — electronics, embedded and industrial systems -- Security — hardening, cryptography, operations -- Medias — films, series, books +Pick a master category from the menu -- 2.54.0 From f94a5cbe1711b6a6ba86fac1252c5f33427f3242 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 00:22:23 +0200 Subject: [PATCH 21/24] ci: use upload-artifact v3 for gitea Assisted-by: Delta:zai-glm-5.3 --- .gitea/workflows/build.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 74b754e..ba8170d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -16,8 +16,13 @@ jobs: - name: Build site run: ./scripts/calepin.sh compile site public + # The official upload-artifact@v4 refuses to run on Gitea (it detects a + # non-GitHub server and aborts with GHESNotSupportedError). v3 uses the + # artifact API that Gitea implements. On Gitea >= 1.22 with a current + # act_runner, christopherhx/gitea-upload-artifact@v4 is a drop-in + # replacement if you want the v4 API. - name: Upload site artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: public path: public/ -- 2.54.0 From 6b33be6956e4c86617c7e69ecb5f7065e5e39f6f Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 00:22:23 +0200 Subject: [PATCH 22/24] chore: add a recipe for local act runs Assisted-by: Delta:zai-glm-5.3 --- Justfile | 4 ++++ README.md | 1 + 2 files changed, 5 insertions(+) diff --git a/Justfile b/Justfile index 9b8b42d..f6c9546 100644 --- a/Justfile +++ b/Justfile @@ -21,3 +21,7 @@ watch: tools # Remove generated output and build caches clean: ./scripts/clean.sh + +# Run the CI workflow locally with act (requires act + docker) +ci: + act push -W .gitea/workflows/build.yml -j build --artifact-server-path /tmp/act-artifacts diff --git a/README.md b/README.md index 2da37ef..259a09b 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ checksum-verified into `tools/` on first use (no global installs, no cargo): just preview # build, then serve the site locally just watch # rebuild on change and serve just clean # remove public/ and build caches + just ci # run the CI workflow locally with act (needs act + docker) ## Adding a page -- 2.54.0 From 3b1ef34bce6a9ed689aefce65ad01e66b6fce56f Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 00:36:14 +0200 Subject: [PATCH 23/24] feat: enable PDF output for pages Assisted-by: Delta:zai-glm-5.3 --- README.md | 9 +++++++-- site/404.typ | 1 + site/calepin.toml | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 259a09b..afe9668 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ target = "/.typ" Sidebar labels come from the page's `#metadata(...)` line, not from the config. +Every page also renders a printable PDF twin (`pdf = true` in +`calepin.toml`, selectable in the page's view picker). Add `pdf: false` to a +page's `#metadata(...)` to skip its PDF, as `404.typ` does. + ## Adding a category 1. Create `site//` with an `index.typ`, using @@ -69,8 +73,9 @@ sidebar. ## Deployment -`just build` produces a fully static site in `public/`: HTML pages plus -`sitemap.xml`, `robots.txt`, and `llms.txt`. The Gitea Actions workflow in +`just build` produces a fully static site in `public/`: HTML pages with +printable PDF twins, plus `sitemap.xml`, `robots.txt`, and `llms.txt`. The +Gitea Actions workflow in `.gitea/workflows/build.yml` builds the site on every push with the same pinned toolchain and uploads `public/` as an artifact for deployment to any static host. diff --git a/site/404.typ b/site/404.typ index 1f94c8c..7c9fae2 100644 --- a/site/404.typ +++ b/site/404.typ @@ -1,4 +1,5 @@ #set document(title: [Not found]) +#metadata((pdf: false)) #title() diff --git a/site/calepin.toml b/site/calepin.toml index fade09e..3d3e9fd 100644 --- a/site/calepin.toml +++ b/site/calepin.toml @@ -2,7 +2,7 @@ title = "Yggdrasil" description = "Personal knowledge base." base-url = "https://yggdrasil.kb28.ch" theme = "themes/yggdrasil" -pdf = false +pdf = true minify = true search = "pagefind" logo = "assets/yggdrasil.svg" -- 2.54.0 From 1adca368020bddf3520a728d13f71f7edca57bdb Mon Sep 17 00:00:00 2001 From: Klagarge Date: Sun, 11 Oct 2026 20:00:54 +0200 Subject: [PATCH 24/24] ci: publish to the pages branch on main pushes Assisted-by: Delta:zai-glm-5.3 --- .gitea/workflows/build.yml | 45 +++++++++++++++++++++++++++++++++++++- README.md | 11 ++++++++-- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index ba8170d..83c845e 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,6 +1,8 @@ name: Build site -on: push +on: + - push + - workflow_dispatch jobs: build: @@ -26,3 +28,44 @@ jobs: with: name: public path: public/ + + deploy: + needs: build + # Publish only from main; move the gate to publish from another branch. + if: github.ref == 'refs/heads/main' + # Write access for the automatic Actions token to push the pages branch. + permissions: + contents: write + # NOTE: must match your act_runner labels (e.g. ubuntu-latest, ubuntu-24.04). + runs-on: ubuntu-latest + steps: + - name: Download site artifact + uses: actions/download-artifact@v3 + with: + name: public + path: public + + - name: Check artifact layout + run: test -f public/index.html + + # Publishing interfaces with prod; it never runs under local act tests + # (act sets env.ACT, the Gitea runner does not). The force-push to the + # `pages` branch is what triggers the git-pages webhook. + - name: Publish to pages branch + if: ${{ !env.ACT }} + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + run: | + if [ -z "$GITEA_TOKEN" ]; then + echo "::error::Missing GITEA_TOKEN (the automatic Actions token)." + exit 1 + fi + cd public + git init -q -b pages . + git config user.name "Yggdrasil CI" + git config user.email "ci@noreply.kb28.ch" + git add -A + git commit -q -m "Publish site from ${GITHUB_SHA}" + repo_host="${GITHUB_SERVER_URL#*://}" + repo_host="${repo_host%/}" + git push -q --force "https://${GITHUB_REPOSITORY_OWNER}:${GITEA_TOKEN}@${repo_host}/${GITHUB_REPOSITORY}.git" pages diff --git a/README.md b/README.md index afe9668..c3282e9 100644 --- a/README.md +++ b/README.md @@ -77,5 +77,12 @@ sidebar. printable PDF twins, plus `sitemap.xml`, `robots.txt`, and `llms.txt`. The Gitea Actions workflow in `.gitea/workflows/build.yml` builds the site on every push with the same -pinned toolchain and uploads `public/` as an artifact for deployment to any -static host. +pinned toolchain and uploads `public/` as an artifact. + +Pushes to `main` are also published: the `deploy` job force-pushes `public/` +to the repo's `pages` branch using the automatic Actions token (no secrets to +configure). A Gitea webhook on the repo then notifies the self-hosted +[git-pages](https://codeberg.org/git-pages/git-pages) server, which clones +the `pages` branch and serves the site. The push step is gated with +`if: ${{ !env.ACT }}` so local `act` runs never publish, and +`workflow_dispatch` enables manual publishes from the Gitea UI. -- 2.54.0