修改FoF:Upload插件
Flarum站点使用的图片上传插件,他有自己的格式如下:
1
| [upl-image-preview url={URL}]
|
当然这个格式肯定不是我想要的,于是乎需要对该插件进行一点小小的扩展;
通过在工程内搜索 [upl-image-preview url=
这串文本可以定位到 ImagePreviewTemplate.php 文件。
虽然我没做过php开发,但是略懂一点语法,找到BBCode的格式化的函数,修改之。
继续看这个ImagePreviewTemplate.php派生自AbstractTextFormatterTemplate.php文件,找到他的应用BBCode解析的函数,发现这是一个正则匹配模板,这样就只需要添加一个新的正则匹配即可。
效果达成,如果你也有类似需求可参考我的修改,文末奉上调整后的代码.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public function preview(File $file): string { $bbcode = $this->bbcode();
return preg_replace_callback_array([ '/\]\((?<find>.*)\[\)/' => function ($m) use ($file) { return str_replace($m['find'], $file->base_name, $m[0]); }, '/size=(?<find>{.*?})/' => function ($m) use ($file) { return str_replace($m['find'], $file->humanSize, $m[0]); }, '/uuid=(?<find>{.*?})/' => function ($m) use ($file) { return str_replace($m['find'], $file->uuid, $m[0]); }, '/path=(?<find>{.*?})/' => function ($m) use ($file) { return str_replace($m['find'], $file->path, $m[0]); }, '/url=(?<find>{.*?})/' => function ($m) use ($file) { return str_replace($m['find'], $file->url, $m[0]); }, '/\!\[\]\((?<url>{.*?})\)/' => function ($m) use ($file) { $replacedUrl = str_replace('{URL}', $file->url, $m['url']); return '!['. $file->base_name. ']('. $replacedUrl. ')'; }, ], $bbcode); }
|
去文字说明部分
在hexo下一般会显示图片说明,如下图:
我这边是截图居多,不需要这个,可以做如下修改,改完之后就像上面这张图一样没有文字说明了:
1 2 3
| return '!['. $file->base_name. ']('. $replacedUrl. ')'; 替换为 return '![]('. $replacedUrl. ')';
|
本文标题:修改FoF:Upload 插件 贴图字符串规则,使其兼容markdown
文章作者:Keyle
发布时间:2024-08-29
最后更新:2024-08-29
原始链接:https://vrast.cn/posts/35850/
版权声明:©Keyle's Blog. 本站采用署名-非商业性使用-相同方式共享 4.0 国际进行许可