小变动

变动在Theme 换成 Ghost(@iKirby) 后产生的
于是做出一些改进

实现typecho文章链接在新窗口中打开

很简单,找到\var\CommonMark\HtmlRenderer.php

        case CommonMark_Element_InlineElement::TYPE_LINK:
            $attrs['href'] = $this->escape($inline->getAttribute('destination'), true);
            if ($title = $inline->getAttribute('title')) {
                $attrs['title'] = $this->escape($title, true);
            }
    
            return $this->inTags('a', $attrs, $this->renderInlines($inline->getAttribute('label')));

在return上面加一行$attrs['target'] = '_blank';

        case CommonMark_Element_InlineElement::TYPE_LINK:
            $attrs['href'] = $this->escape($inline->getAttribute('destination'), true);
            if ($title = $inline->getAttribute('title')) {
                $attrs['title'] = $this->escape($title, true);
            }
        $attrs['target'] = '_blank'; #加在这边
            return $this->inTags('a', $attrs, $this->renderInlines($inline->getAttribute('label')));

以上方法仅适用于 Typecho原生解析器

部分插件的文件手动切换七牛的CDN服务

譬如Google代码高亮(GoogleCodePrettify)
先往七牛上上传资源,然后编辑Plugin.php
找到JS和CSS输出
这个是CSS的输出

    public static function header() {
    $config = Helper::options()->plugin('GoogleCodePrettify');
    $type = $config->type ? $config->type : 'desert';
    $custom = $config->custom;
    $cssUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/' . $type . '.css';
    echo '<link rel="stylesheet" type="text/css" href="' . $cssUrl . '" />';
    if($custom != '') echo "<style type=\"text/css\">$custom</style>";
}

将它改成

    public static function header() {
        $config = Helper::options()->plugin('GoogleCodePrettify');
        $type = $config->type ? $config->type : 'desert';
        $custom = $config->custom;
        $mycssUrl= 'http://CDN地址/GoogleCodePrettify/src/' . $type . '.css'; # 我新建了一个变量
        $cssUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/' . $type . '.css';
        echo '<link rel="stylesheet" type="text/css" href="' . $mycssUrl . '" />'; # 替换$cssUrl
        if($custom != '') echo "<style type=\"text/css\">$custom</style>";
    }

然后找到JS输出:

    public static function footer() {
        $jsUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/prettify.js';
        echo '<script type="text/javascript" src="'.$jsUrl.'"></script>';
        echo '<script type="text/javascript">window.onload = function () {var pre = document.getElementsByTagName(\'pre\');for(i=0,l=pre.length;i<l;i++) pre[i].className += " prettyprint linenums";prettyPrint();}</script>';
    }

将它改成:

    public static function footer() {
        $jsUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/prettify.js';
        $myjsUrl = 'http://CDN地址/GoogleCodePrettify/prettify.js'; # 新建七牛地址变量
        echo '<script type="text/javascript" src="'.$myjsUrl.'"></script>'; # 替换$jsUrl
        echo '<script type="text/javascript">window.onload = function () {var pre = document.getElementsByTagName(\'pre\');for(i=0,l=pre.length;i<l;i++) pre[i].className += " prettyprint linenums";prettyPrint();}</script>';
    }

最后自定义一下CSS,使得展示出完整的lineNumbers

<style type="text/css">ol.linenums {margin-left:30px;} li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {list-style-type: decimal;}</style>

大功告成!(*^__^*)

余留的问题:

  • 很显然这个代码高亮也不美观 ↑ 已解决
  • like.js 故障 已解决
  • https还未启用
  • 伪静态
  • 将换一个域名

休息的时候继续修复。
保持充足睡眠 hihi

将来的计划:
搭建 Gogs
重新启用实验室
升级 Typecho并解决 Like Issue


仅有一条评论
  1. /滑鸡

添加新评论