diff --git a/src/tagHandler.ts b/src/tagHandler.ts new file mode 100644 index 0000000..d70a210 --- /dev/null +++ b/src/tagHandler.ts @@ -0,0 +1,30 @@ +import { heading } from 'mdast-builder'; +// tslint:disable-next-line: no-implicit-dependencies +import { Node as MDASTNode, Parent as MDASTParent } from 'unist'; +import { IReactElementSubset } from './helpers'; + +export default function handleTag( + node: IReactElementSubset, + parentASTNode: MDASTParent +) { + const { type: tagType } = node; + + let childASTNode: MDASTNode | undefined; + let newParentASTNode: MDASTParent | undefined; + + switch (tagType) { + case 'h1': + newParentASTNode = childASTNode = heading(1); + break; + + default: + newParentASTNode = parentASTNode; + break; + } + + if (childASTNode !== undefined) { + parentASTNode.children.push(childASTNode); + } + + return newParentASTNode; +}