首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Typecho1.1文章内链接用新窗口打开的办法

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

作者头像
毛大姑娘
发布2020-09-10 15:39:04
8580
发布2020-09-10 15:39:04
举报
文章被收录于专栏:向全栈出发向全栈出发

文:毛毛,首发自: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后程序媛,写代码,也写软文
  • 喜欢阅读,喜欢聆听,喜欢分享
  • 热爱挑战各种稀奇古怪的事物(比如这个博客)
  • 我是毛毛,感恩遇见你!
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 尝试过几个失败案例:
  • 终极解决方案:
    • 找到后,在<a>标签里加了target=\"_blank\"。
      • 祝你成功!!!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档