小变动

Posted 2017-10-21Updated 2019-10-31Words 608Reading 5m

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

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

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

1
2
3
4
5
6
7
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';

1
2
3
4
5
6
7
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的输出

1
2
3
4
5
6
7
8
    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 '';
if($custom != '') echo "$custom";
}

将它改成

1
2
3
4
5
6
7
8
9
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 ''; # 替换$cssUrl
if($custom != '') echo "$custom";
}

然后找到JS输出:

1
2
3
4
public static function footer() {
$jsUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/prettify.js';
echo '';
echo 'window.onload = function () {var pre = document.getElementsByTagName(\'pre\');for(i=0,l=pre.length;i

将它改成:

1
2
3
4
5
6
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

1
<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