jetsung Flarum 自定义 bbcode 以支持 asciinema 安装依赖 composer require s9e/text-formatter 配置 extend.php use s9e\TextFormatter\Configurator; // 从 URL 提取 ID,或者纯数字 ID // [cast]https://asciinema.org/a/1[/cast] // [cast]1[/cast] function extractNumber($input) { // 去除空格 $input = trim($input); // 如果是 URL,提取 /a/{0-9}+ 中的数字 if (preg_match('!/a/(\d+)!', $input, $matches)) { return $matches[1]; } // 如果是纯数字,直接返回 if (ctype_digit($input)) { return $input; } // 未找到匹配的数字 return 1; } return [ (new Extend\Formatter) ->configure(function (Configurator $config) { $config->attributeFilters->set('#rectext', 'extractNumber'); // 添加自定义 BBCode 规则 $config->BBCodes->addCustom( '[cast]{RECTEXT}[/cast]', // BBCode 语法 '<script src="https://asciinema.org/a/{RECTEXT}.js" id="asciicast-{RECTEXT}" async="true"></script>' // 渲染为 <script> 标签 ); }), ]; 使用 [cast]https://asciinema.org/a/1[/cast] [cast]1[/cast] 相关教程:https://s9etextformatter.readthedocs.io/