Typecho1.1文章内链接用新窗口打开的办法

时间:2022-07-24
本文章向大家介绍Typecho1.1文章内链接用新窗口打开的办法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文:毛毛,首发自: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后程序媛,写代码,也写软文
  • 喜欢阅读,喜欢聆听,喜欢分享
  • 热爱挑战各种稀奇古怪的事物(比如这个博客)
  • 我是毛毛,感恩遇见你!