import type { GenericNode, GenericParent } from 'myst-common'; import type { VFile } from 'vfile'; import type { ISession } from '../session/types.js'; /** * Parse metadata from code block using js-yaml * * Metadata is defined at the beginning of code cells as: * * ```python * #| key: value * #| flag: true * * print('hello world') * ``` * * New lines around metadata will be ignored, but once a non-metadata line * is encountered, metadata parsing is stopped (i.e. you cannot define * metadata in the middle of other code). */ export declare function metadataFromCode(session: ISession, file: VFile, value: string, opts?: { remove?: boolean; }): { value: string; metadata?: Record; }; /** * Traverse mdast, remove code cell metadata, and add it to parent block */ export declare function liftCodeMetadataToBlock(session: ISession, file: VFile, mdast: GenericParent): void; /** * Check duplicated meta tags and conflict meta tags. * Separate the meta tags from tag if filter is true, otherwise just go through and process. */ export declare function checkMetaTags(vfile: VFile, node: GenericNode, tags: string[], filter: boolean): string[]; /** * Traverse mdast, propagate block metadata and tags to code and output */ export declare function propagateBlockDataToCode(session: ISession, vfile: VFile, mdast: GenericParent): void; /** * Because jupytext style notebooks can introduce code-cells in blocks * after explicit thematic breaks, we need to lift them up to the parent * to ensure that all executable code blocks are at the top level of * the document. * * @param mdast */ export declare function transformLiftCodeBlocksInJupytext(mdast: GenericParent): void; //# sourceMappingURL=code.d.ts.map