admin

Typecho Watermark 插件成功安装开启
前面关于 Watermark 这个插件 GD 库未开启的问题解决后,发现插件开启成功,但一直没有水印效果。耽搁了一...
扫描右侧二维码阅读全文
28
2018/01

Typecho Watermark 插件成功安装开启

前面关于 Watermark 这个插件 GD 库未开启的问题解决后,发现插件开启成功,但一直没有水印效果。

耽搁了一段时间后还是决定把这个问题解决一下。

主要存在两处问题:

  1. 添加水印的代码存在问题
  2. 正则匹配 Markdown 图片地址需要修改(系统默认模板可无需更改)

问题 1 解决方案:
Action.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中修改如下:

//第一处
$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

Last modification:January 31st, 2018 at 11:16 pm
If you think my article is useful to you, please feel free to appreciate

One comment

  1. test

    icon_mad.gif icon_mad.gif icon_sad.gif icon_cool.gif icon_cool.gif icon_cool.gif icon_cool.gif

Leave a Comment