Typecho Watermark 插件成功安装开启 时间: 2018-01-28 03:53 分类: 日常 前面关于 Watermark 这个插件 GD 库未开启的问题解决后,发现插件开启成功,但一直没有水印效果。 耽搁了一段时间后还是决定把这个问题解决一下。 主要存在两处问题: 1. 添加水印的代码存在问题 2. 正则匹配 `Markdown` 图片地址需要修改(系统默认模板可无需更改) 问题 1 解决方案: `Action.php`中代码替换: ```php $img1 = self::lujin( __TYPECHO_ROOT_DIR__.base64_decode($img)); //替换成 $img1 = __TYPECHO_ROOT_DIR__.base64_decode($img); ``` 原代码中`lujin`方法用来合并合并重复路径的,由于 PHP 不是很熟悉,重复路径的问题基本上不会出现,故不想去修改其代码,直接将其改上如上代码即可。至此,若是用系统`Markdown`到此步已经可以了。 问题 2 解决方案: 我用的是`EditorMD`编辑器,并且设置了接管前台系统的`Markdown`,由于两者编辑出来的图片规则是不一样的,所以需要修改正则匹配表达式。 `Plugin.php`中修改如下: ```php //第一处 $regex = "/\[\d{1,}\]:\s(.*?.(gif|jpg|png))/"; //替换成 $regex = "/((\[\d{1,}\]:\s)|(!\[.*?\]\())(.*?.(gif|jpg|png))/"; //第二处 $url = $matches[1][$i]; //替换成 $pos = 1; if($value_o['isMarkdown']) $pos = 4; $url = $matches[$pos][$i]; ``` 一切OK,附一张效果图: ![12041-1.jpg](https://0o0.me/usr/uploads/2018/01/620156894.jpg) 标签: typecho wartermark