|
|
|
@ -14,7 +14,7 @@ export function get_tutorial_data() {
|
|
|
|
const section = {
|
|
|
|
const section = {
|
|
|
|
title: '', // Initialise with empty
|
|
|
|
title: '', // Initialise with empty
|
|
|
|
slug: subdir.split('-').slice(1).join('-'),
|
|
|
|
slug: subdir.split('-').slice(1).join('-'),
|
|
|
|
tutorials: [],
|
|
|
|
tutorials: []
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if (!(fs.statSync(`${base}/${subdir}`).isDirectory() || subdir.endsWith('meta.json'))) continue;
|
|
|
|
if (!(fs.statSync(`${base}/${subdir}`).isDirectory() || subdir.endsWith('meta.json'))) continue;
|
|
|
|
@ -46,7 +46,7 @@ export function get_tutorial_data() {
|
|
|
|
completion_states_data[app_dir === 'app-a' ? 'initial' : 'complete'].push({
|
|
|
|
completion_states_data[app_dir === 'app-a' ? 'initial' : 'complete'].push({
|
|
|
|
name: file,
|
|
|
|
name: file,
|
|
|
|
type: file.split('.').at(-1),
|
|
|
|
type: file.split('.').at(-1),
|
|
|
|
content: fs.readFileSync(`${app_dir_path}/${file}`, 'utf-8'),
|
|
|
|
content: fs.readFileSync(`${app_dir_path}/${file}`, 'utf-8')
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -56,7 +56,7 @@ export function get_tutorial_data() {
|
|
|
|
slug,
|
|
|
|
slug,
|
|
|
|
content: body,
|
|
|
|
content: body,
|
|
|
|
dir: `${subdir}/${section_dir}`,
|
|
|
|
dir: `${subdir}/${section_dir}`,
|
|
|
|
...completion_states_data,
|
|
|
|
...completion_states_data
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -75,7 +75,7 @@ export function get_tutorial_list(tutorial_data) {
|
|
|
|
title: section.title,
|
|
|
|
title: section.title,
|
|
|
|
tutorials: section.tutorials.map((tutorial) => ({
|
|
|
|
tutorials: section.tutorials.map((tutorial) => ({
|
|
|
|
title: tutorial.title,
|
|
|
|
title: tutorial.title,
|
|
|
|
slug: tutorial.slug,
|
|
|
|
slug: tutorial.slug
|
|
|
|
})),
|
|
|
|
}))
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|