Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:

- name: Install dependencies
run: npm ci
- name: Guardia manifest percorsi (append-only)
run: npm run curriculum:check
- name: Lint
run: npm run lint
- name: Test build website
Expand Down
22 changes: 22 additions & 0 deletions curriculum/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"version": 1,
"currentEpoch": 1,
"epochs": {
"1": [
"programmatore/intro",
"programmatore/variabili",
"artefice/intro",
"artefice/perche-gli-oggetti",
"artefice/classi-e-istanze",
"artefice/metodi-di-classe-e-statici",
"artefice/mostrare-un-oggetto",
"artefice/incapsulamento",
"archivista/intro",
"apprendista/intro",
"apprendista/programmatore/le-basi/le-variabili",
"apprendista/programmatore/le-basi/i-tipi-di-dato/esercizi-rapidi",
"apprendista/programmatore/le-basi/i-tipi-di-dato/esercizio-convertitore",
"apprendista/programmatore/le-basi/i-tipi-di-dato/laboratorio-convertitore"
]
}
}
70 changes: 70 additions & 0 deletions curriculum/presets.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
// Configurazioni predefinite (preset) del configuratore percorsi: i vecchi
// percorsi IT/Liceo/ITS diventano codici curati. `keys` elenca le lezioni
// INCLUSE come chiavi globali «<volume>/<docId>» — devono tutte esistere
// nell'epoca corrente del manifest (validato dal plugin curriculum).
// Le label sono migrate da src/contexts/pathLabels.ts.
module.exports = [
{
id: 'it',
label: 'Istituto Tecnico',
short: 'IT',
keys: [
'programmatore/intro',
'programmatore/variabili',
'artefice/intro',
'artefice/perche-gli-oggetti',
'artefice/classi-e-istanze',
'artefice/metodi-di-classe-e-statici',
'artefice/mostrare-un-oggetto',
'artefice/incapsulamento',
'archivista/intro',
'apprendista/intro',
'apprendista/programmatore/le-basi/le-variabili',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizi-rapidi',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizio-convertitore',
'apprendista/programmatore/le-basi/i-tipi-di-dato/laboratorio-convertitore',
],
},
{
id: 'liceo',
label: 'Liceo',
short: 'Liceo',
keys: [
'programmatore/intro',
'programmatore/variabili',
'artefice/intro',
'artefice/perche-gli-oggetti',
'artefice/classi-e-istanze',
'artefice/metodi-di-classe-e-statici',
'artefice/mostrare-un-oggetto',
'artefice/incapsulamento',
'archivista/intro',
'apprendista/intro',
'apprendista/programmatore/le-basi/le-variabili',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizi-rapidi',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizio-convertitore',
'apprendista/programmatore/le-basi/i-tipi-di-dato/laboratorio-convertitore',
],
},
{
id: 'its',
label: 'ITS',
short: 'ITS',
keys: [
// Il percorso ITS del vecchio sistema escludeva `variabili` dal vol. 1.
'programmatore/intro',
'artefice/intro',
'artefice/perche-gli-oggetti',
'artefice/classi-e-istanze',
'artefice/metodi-di-classe-e-statici',
'artefice/mostrare-un-oggetto',
'artefice/incapsulamento',
'archivista/intro',
'apprendista/intro',
'apprendista/programmatore/le-basi/le-variabili',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizi-rapidi',
'apprendista/programmatore/le-basi/i-tipi-di-dato/esercizio-convertitore',
'apprendista/programmatore/le-basi/i-tipi-di-dato/laboratorio-convertitore',
],
},
];
46 changes: 46 additions & 0 deletions curriculum/toc/apprendista.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// Albero sidebar UNICO della Biblioteca dell'Apprendista (Volume 4 —
// esercizi e laboratori). Vedi programmatore.js per il ruolo di questi file.
//
// Gli esercizi sono raggruppati per volume di provenienza:
// volume-sorgente > capitolo > lezione
//
// Modello IBRIDO al livello "lezione":
// - lezione con SOLO esercizi rapidi → è una PAGINA singola (un doc)
// - lezione con anche esercizi dedicati / laboratori → è una CATEGORIA, con
// sotto una pagina per tipo (Esercizi rapidi / Esercizio: … / Laboratorio: …)
// Gli esercizietti di una pagina-batch sono sezioni <h2> (vanno nel TOC della
// pagina), non voci di sidebar.
//
// Regola di collapse (per evitare la "lista infinita"):
// - categorie volume-sorgente: collapsed: false → aperte, mostrano i capitoli
// - categorie capitolo / lezione: collapsed: true → chiuse di default
module.exports = [
'intro',
{
type: 'category',
label: 'Manuale del Programmatore',
collapsed: false, // volume-sorgente: aperto
items: [
{
type: 'category',
label: 'Le basi',
collapsed: true, // capitolo: chiuso
items: [
// lezione con solo esercizi rapidi → pagina singola
'programmatore/le-basi/le-variabili',
// lezione con più tipi di pagina → categoria
{
type: 'category',
label: 'I tipi di dato',
collapsed: true, // lezione: chiusa
items: [
'programmatore/le-basi/i-tipi-di-dato/esercizi-rapidi',
'programmatore/le-basi/i-tipi-di-dato/esercizio-convertitore',
'programmatore/le-basi/i-tipi-di-dato/laboratorio-convertitore',
],
},
],
},
],
},
];
3 changes: 3 additions & 0 deletions curriculum/toc/archivista.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Albero sidebar UNICO del Manuale dell'Archivista (Volume 3 — 5a).
// Vedi programmatore.js per il ruolo di questi file.
module.exports = ['intro'];
10 changes: 10 additions & 0 deletions curriculum/toc/artefice.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Albero sidebar UNICO del Manuale dell'Artefice (Volume 2 — 4a).
// Vedi programmatore.js per il ruolo di questi file.
module.exports = [
'intro',
'perche-gli-oggetti',
'classi-e-istanze',
'metodi-di-classe-e-statici',
'mostrare-un-oggetto',
'incapsulamento',
];
5 changes: 5 additions & 0 deletions curriculum/toc/programmatore.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// Albero sidebar UNICO del Manuale del Programmatore (Volume 1 — 3a).
// Unione dei contenuti dei vecchi percorsi it/liceo/its. Fonte unica sia per
// la sidebar Docusaurus (sidebars/programmatore.ts) sia per il plugin
// curriculum (manifest + configuratore). CJS: require()-abile da entrambi.
module.exports = ['intro', 'variabili'];
1 change: 1 addition & 0 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ export default async function createConfig(): Promise<Config> {
'./plugins/pyrunner/index.js',
'./plugins/exercise-graph/index.js',
'./plugins/copy-page-md/index.js',
'./plugins/curriculum/index.js',
[
'@docusaurus/plugin-content-docs',
{
Expand Down
Loading
Loading