文:毛毛,首发自:maomao.ink,转载请保留此行。

想要文章里面的链接都用新窗口打开,可文章内容被封装起来了,根本没办法对<a>标签进行修改。

尝试过几个失败案例:

  1. 在head里添加<head><base target="_blank"/></head>这种方式确实能满足要求,但是页面里面所有链接都用新窗口打开,顿时新窗口泛滥,不是我想要的。
  2. 修改markdown样式。网上有很多帖子说修改markdown样式或者修改markdown对应的js,由于步骤太复杂,我未进行尝试,怕改坏了。

终极解决方案:

失败是成功之母,总算生出一个好办法。

在Typecho目录下找到:/var/HyperDown.php,然后找到下面内容进行修改:

        // link
        $text = preg_replace_callback(
            "/\[((?:[^\]]|\\\\\]|\\\\\[)+?)\]\(((?:[^\)]|\\\\\)|\\\\\()+?)\)/",
            function ($matches) use ($self) {
                $escaped = $self->parseInline(
                    $self->escapeBracket($matches[1]),  '',  false, false
                );
                $url = $self->escapeBracket($matches[2]);
                $url = $self->cleanUrl($url);
                return $self->makeHolder("<a href=\"{$url}\" target=\"_blank\">{$escaped}</a>");
            },
            $text
        );

在我这里是498行,行数仅供参考。

找到后,在<a>标签里加了target=\"_blank\"

如果不想让爬虫继续爬取链接之后的内容,可以在<a>标签里再加上rel=\"nofollow\"

加好之后,保存,上传,运行。

参考链接:https://www.ddkiss.com/archives/143.html

祝你成功!!!

我是谁?
  • 90后程序媛,写代码,也写软文
  • 喜欢阅读,喜欢聆听,喜欢分享
  • 热爱挑战各种稀奇古怪的事物(比如这个博客)
  • 我是毛毛,感恩遇见你!