UnifiedとRemark-Parseを使用して GitHub フレーバーのマークダウン ファイルを解析し、MDAST を生成しようとしています。そのほとんどを正確かつ簡単に解析できますが、HTML タグとそのコンテンツを AST から解析するのに問題があります。
AST では、HTML タグとそのコンテンツは、親子ではなく兄弟として表されます。たとえば、<sub>hi</sub>に解析されます
[
{
"type": "paragraph",
"children": [
{
"type": "html",
"value": "<sub>",
},
{
"type": "text",
"value": "hi",
},
{
"type": "html",
"value": "</sub>",
}
]
}
]
理想的には、次のように解析したいと思います
[
{
"type": "paragraph",
"children": [
{
"type": "html",
"value": "sub",
"children": [
{
"type": "text",
"value": "hi",
},
]
},
]
}
]
タグの種類とその内容にアクセスできるようにします。(具体的には、タグとそのコンテンツは私の目的には必要ないため、スキップすることが私の目標です)
これは私が現在使用している構成です:
import unified from 'unified';
import markdown from 'remark-parse';
import type {Block} from '@notionhq/client/build/src/api-types';
import {parseRoot} from './internal';
import gfm from 'remark-gfm';
export function parseBody(body: string): Block[] {
const tokens = unified().use(markdown).use(gfm).parse(body);
return parseRoot(tokens);
}
だから、私の質問は:そうするようにRemarkを設定する方法はありますか/これを行うためのRemarkプラグインはありますか? そうでない場合、そうするプラグインを作成するにはどうすればよいですか?
ありがとう。