From 1a6f927b835670fea2df85d5fd1680eb036742ce Mon Sep 17 00:00:00 2001 From: marihachi <marihachi0620@gmail.com> Date: Wed, 24 Mar 2021 01:03:57 +0900 Subject: [PATCH] wip --- src/index.ts | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/index.ts b/src/index.ts index 9ba9e47..811dc1c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,72 @@ export function parsePlain(input: string): MfmNode[] { return nodes; } +function nodeStringify(node: MfmNode): string { + switch(node.type) { + // block + case 'quote': { + return toString(node.children).split('\n').map(line => `>${line}`).join('\n'); + } + case 'search': { + break; + } + case 'blockCode': { + break; + } + case 'mathBlock': { + break; + } + case 'center': { + break; + } + // inline + case 'emoji': { + break; + } + case 'bold': { + break; + } + case 'small': { + break; + } + case 'italic': { + break; + } + case 'strike': { + break; + } + case 'inlineCode': { + break; + } + case 'mathInline': { + break; + } + case 'mention': { + break; + } + case 'hashtag': { + break; + } + case 'url': { + break; + } + case 'link': { + break; + } + case 'fn': { + break; + } + case 'text': { + return node.props.text; + } + } + return ''; +} + +export function toString(nodes: MfmNode[]): string { + return nodes.map(node => nodeStringify(node)).join(''); +} + export { MfmNode, MfmBlock, -- GitLab