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