diff --git a/docs/syntax.md b/docs/syntax.md
index 84dc9655ad5d86039d9a343090aac62df37da163..676fdfd6390d04b38fe3fe305b14cf5641fc54b9 100644
--- a/docs/syntax.md
+++ b/docs/syntax.md
@@ -607,24 +607,6 @@ $[shake.speed=1s 🍮]
 $[flip.h,v MisskeyでFediverseの世界が広がります]
 ```
 
-æ§‹æ–‡2:
-**廃止予定の構文。代替の構文(構文1)が用意されています。**
-```
-[shake 🍮]
-```
-
-```
-[spin.alternate 🍮]
-```
-
-```
-[shake.speed=1s 🍮]
-```
-
-```
-[flip.h,v MisskeyでFediverseの世界が広がります]
-```
-
 ## 詳細
 - 内容には再度InlineParserを適用する。
 - 内容には改行も含めることが可能です。
diff --git a/src/internal/parser.pegjs b/src/internal/parser.pegjs
index 7abc8deb28bc2e12b0594c18a09f00f1265a8c14..9b6e3ac4c4e1770af13b0e7b4bccd594f38dedf2 100644
--- a/src/internal/parser.pegjs
+++ b/src/internal/parser.pegjs
@@ -92,9 +92,8 @@ full
 	/ mention
 	/ hashtag
 	/ url
-	/ fnVer2
+	/ fn
 	/ link
-	/ fnVer1
 	/ search // block
 	/ inlineText
 
@@ -111,9 +110,8 @@ inline
 	/ mention
 	/ hashtag
 	/ url
-	/ fnVer2
+	/ fn
 	/ link
-	/ fnVer1
 	/ inlineText
 
 plain
@@ -415,15 +413,8 @@ linkUrl
 
 // inline: fn
 
-fnVer1
-	= "[" name:$([a-z0-9_]i)+ args:fnArgs? _ content:fnContentPart+ "]"
-{
-	args = args || {};
-	return FN(name, args, mergeText(content));
-}
-
-fnVer2
-	= "$[" name:$([a-z0-9_]i)+ args:fnArgs? _ content:fnContentPart+ "]"
+fn
+	= "$[" name:$([a-z0-9_]i)+ args:fnArgs? _ content:(!("]") @inline)+ "]"
 {
 	args = args || {};
 	return FN(name, args, mergeText(content));
@@ -449,9 +440,6 @@ fnArg
 	return { k: k, v: true };
 }
 
-fnContentPart
-	= !("]") @inline
-
 // inline: text
 
 inlineText
diff --git a/test/parser.ts b/test/parser.ts
index 048084c0a1b59581f9578bb33e4aab8c615ca18b..b36e505369d4650d23da9b553372e0b69a98859f 100644
--- a/test/parser.ts
+++ b/test/parser.ts
@@ -1018,41 +1018,7 @@ hoge`;
 		});
 	});
 
-	describe('fn v1', () => {
-		it('basic', () => {
-			const input = '[tada abc]';
-			const output = [
-				FN('tada', { }, [
-					TEXT('abc')
-				])
-			];
-			assert.deepStrictEqual(mfm.parse(input), output);
-		});
-
-		it('with a string argument', () => {
-			const input = '[spin.speed=1.1s a]';
-			const output = [
-				FN('spin', { speed: '1.1s' }, [
-					TEXT('a')
-				])
-			];
-			assert.deepStrictEqual(mfm.parse(input), output);
-		});
-
-		it('nest', () => {
-			const input = '[spin.speed=1.1s [shake a]]';
-			const output = [
-				FN('spin', { speed: '1.1s' }, [
-					FN('shake', { }, [
-						TEXT('a')
-					])
-				])
-			];
-			assert.deepStrictEqual(mfm.parse(input), output);
-		});
-	});
-
-	describe('fn v2', () => {
+	describe('fn', () => {
 		it('basic', () => {
 			const input = '$[tada abc]';
 			const output = [
@@ -1090,7 +1056,7 @@ hoge`;
 		const input =
 `before
 <center>
-Hello [tada everynyan! 🎉]
+Hello $[tada everynyan! 🎉]
 
 I'm @ai, A bot of misskey!