refactor: share common intro creation code (#61814)

This commit is contained in:
Oliver Eyton-Williams
2025-08-15 08:05:54 +02:00
committed by GitHub
parent 91f87ea237
commit 0ae01847cb
4 changed files with 45 additions and 72 deletions

View File

@@ -12,6 +12,7 @@ import {
} from '../../shared/config/curriculum';
import { createDialogueFile, validateBlockName } from './utils';
import { getBaseMeta } from './helpers/get-base-meta';
import { createIntroMD } from './helpers/create-intro';
const helpCategories = ['English'] as const;
@@ -42,12 +43,12 @@ async function createLanguageBlock(
if (!title) {
title = block;
}
void updateIntroJson(superBlock, block, title);
await updateIntroJson(superBlock, block, title);
const challengeId = await createDialogueChallenge(superBlock, block);
void createMetaJson(superBlock, block, title, helpCategory, challengeId);
await createMetaJson(superBlock, block, title, helpCategory, challengeId);
// TODO: remove once we stop relying on markdown in the client.
void createIntroMD(superBlock, block, title);
await createIntroMD(superBlock, block, title);
}
async function updateIntroJson(
@@ -100,28 +101,6 @@ async function createMetaJson(
);
}
async function createIntroMD(superBlock: string, block: string, title: string) {
const introMD = `---
title: Introduction to the ${title}
block: ${block}
superBlock: ${superBlock}
---
## Introduction to the ${title}
This page is for the ${title}
`;
const dirPath = path.resolve(
__dirname,
`../../client/src/pages/learn/${superBlock}/${block}/`
);
const filePath = path.resolve(dirPath, 'index.md');
if (!existsSync(dirPath)) {
await withTrace(fs.mkdir, dirPath);
}
void withTrace(fs.writeFile, filePath, introMD, { encoding: 'utf8' });
}
async function createDialogueChallenge(
superBlock: SuperBlocks,
block: string