diff --git a/packages/myst-cli/src/init/jupyter-book/toc.ts b/packages/myst-cli/src/init/jupyter-book/toc.ts index f02ae79f9..243e33c98 100644 --- a/packages/myst-cli/src/init/jupyter-book/toc.ts +++ b/packages/myst-cli/src/init/jupyter-book/toc.ts @@ -10,7 +10,7 @@ const TOCTreeOptions = z caption: z.string(), hidden: z.boolean(), maxdepth: z.number(), - numberted: z.boolean(), + numbered: z.boolean(), reversed: z.boolean(), titlesonly: z.boolean(), }) @@ -149,6 +149,7 @@ const BookShorthandInnerSubtree: z.ZodType = z.ob const BookHasOuterSubtrees = z.object({ parts: BookOuterSubtree.array(), + options: TOCTreeOptions.optional(), }); const BookHasInnerSubtrees = z.object({ @@ -281,7 +282,10 @@ function convertNoFormat(session: ISession, dir: string, data: z.infer): z.infer { +function convertBookToNoFormat( + data: z.infer, + session: ISession, +): z.infer { const convertEntry = (item: z.infer): z.infer => { // Drop subtrees and sections // eslint-disable-next-line prefer-const, @typescript-eslint/no-unused-vars @@ -324,6 +328,10 @@ function convertBookToNoFormat(data: z.infer): z.infer | z.infer, ): z.infer | z.infer => { if ('parts' in item) { + if ('options' in item) { + session.log.warn('The "options" key in your _toc.yml has no effect and will be ignored.'); + delete item.options; + } const { parts, ...rest } = item; return { ...rest, subtrees: parts.map(convertOuterSubtree) }; } else { @@ -402,7 +410,7 @@ export function upgradeTOC(session: ISession, data: SphinxExternalTOC): MySTEntr switch (data.format) { case 'jb-book': { - dataNoFormat = convertBookToNoFormat(data); + dataNoFormat = convertBookToNoFormat(data, session); } break; case 'jb-article':