summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorBigCoke233 <hi@guhub.cn>2020-07-17 00:15:54 +0800
committerBigCoke233 <hi@guhub.cn>2020-07-17 00:15:54 +0800
commit2c028cef411a2eae19c82b7b89fedb9b8b191b4f (patch)
tree24bac20b76b100acff8db76dd1680a6d196dcd03 /libs
parentd6fc2cb3f1943a2c118fce837571c1cab9eee952 (diff)
🖼️ Perf: 支持用 cdn 加速懒加载图片了
Diffstat (limited to 'libs')
-rw-r--r--libs/Contents.php10
-rwxr-xr-xlibs/Options.php1
-rw-r--r--libs/Utils.php35
3 files changed, 40 insertions, 6 deletions
diff --git a/libs/Contents.php b/libs/Contents.php
index 567c3b2..d821b72 100644
--- a/libs/Contents.php
+++ b/libs/Contents.php
@@ -26,7 +26,7 @@ class Contents
//ParseOther
$text = Contents::parseDetails(Contents::parsePicShadow(Contents::parseNotice(Contents::parseKbd(Contents::parseCode(Contents::parseImages(Contents::parseHeadings(Contents::parseTextColor(Contents::parseRuby(Contents::parseTip($text))))))))));
//LazyLoad
- $text = preg_replace('/<img (.*?)src(.*?)(\/)?>/','<img $1src="/usr/themes/Miracles/images/loading/'.$load_image.'.gif" data-gisrc$2 data-gazeimg />',$text);
+ $text = preg_replace('/<img (.*?)src(.*?)(\/)?>/','<img $1src="'.Utils::addLoadingImages($GLOBALS['miraclesOptions_CDN'], $GLOBALS['miraclesOptions_loading_image'], 'normal').'" data-gisrc$2 data-gazeimg />',$text);
//owo
$text = Contents::parseEmo($text);
//Links
@@ -110,7 +110,7 @@ class Contents
$rp = '<div class="col-lg-2 col-6 col-md-3 links-container">
<a href="${2}" title="${4}" target="_blank" class="links-link">
<div class="links-item">
- <div class="links-img"><img src="/usr/themes/Miracles/images/loading/avatar.jpg" data-gisrc=\'${3}\'></div>
+ <div class="links-img"><img src="'.Utils::addLoadingImages($GLOBALS['miraclesOptions_CDN'], $GLOBALS['miraclesOptions_loading_image'], 'link').'" data-gisrc=\'${3}\'></div>
<div class="links-title">
<h4>${1}</h4>
</div>
@@ -185,7 +185,7 @@ class Contents
*/
private static function parsePaopaoBiaoqingCallback($match)
{
- return '<img class="owo-img" src="/usr/themes/Miracles/images/loading/owo.png" data-gisrc="/usr/themes/Miracles/images/biaoqing/paopao/'. str_replace('%', '', urlencode($match[1])) . '_2x.png">';
+ return '<img class="owo-img" src="'.Utils::addLoadingImages($GLOBALS['miraclesOptions_CDN'], $GLOBALS['miraclesOptions_loading_image'], 'owo').'" data-gisrc="/usr/themes/Miracles/images/biaoqing/paopao/'. str_replace('%', '', urlencode($match[1])) . '_2x.png">';
}
/**
@@ -195,7 +195,7 @@ class Contents
*/
private static function parseAruBiaoqingCallback($match)
{
- return '<img class="owo-img" src="/usr/themes/Miracles/images/loading/owo.png" data-gisrc="/usr/themes/Miracles/images/biaoqing/aru/'. str_replace('%', '', urlencode($match[1])) . '_2x.png">';
+ return '<img class="owo-img" src="'.Utils::addLoadingImages($GLOBALS['miraclesOptions_CDN'], $GLOBALS['miraclesOptions_loading_image'], 'owo').'" data-gisrc="/usr/themes/Miracles/images/biaoqing/aru/'. str_replace('%', '', urlencode($match[1])) . '_2x.png">';
}
/**
@@ -205,7 +205,7 @@ class Contents
*/
private static function parseTweBiaoqingCallback($match)
{
- return '<img class="owo-img" src="/usr/themes/Miracles/images/loading/owo.png" data-gisrc="/usr/themes/Miracles/images/biaoqing/twemoji/'. str_replace('%', '', $match[1]) . '.png">';
+ return '<img class="owo-img" src="'.Utils::addLoadingImages($GLOBALS['miraclesOptions_CDN'], $GLOBALS['miraclesOptions_loading_image'], 'owo').'" data-gisrc="/usr/themes/Miracles/images/biaoqing/twemoji/'. str_replace('%', '', $match[1]) . '.png">';
}
/**
diff --git a/libs/Options.php b/libs/Options.php
index 96721cd..d1b5f13 100755
--- a/libs/Options.php
+++ b/libs/Options.php
@@ -153,6 +153,7 @@ function themeConfig($form) {
$CDN = new Typecho_Widget_Helper_Form_Element_Select('CDN',array(
'0'=>'关闭',
'1'=>'jsDelivr',
+ '6'=>'jsDelivr(仅图片)',
'5'=>'9jojo CDN',
'2'=>'GitHack(实时更新)',
'4'=>'GitHack CDN(较慢)',
diff --git a/libs/Utils.php b/libs/Utils.php
index 27d7658..397448c 100644
--- a/libs/Utils.php
+++ b/libs/Utils.php
@@ -135,7 +135,7 @@ class Utils
$path = 'https://cdn.9jojo.cn/Miracles/'.themeVersion().'/';
}
elseif ($cdn=='3'){
- $path = $custom;
+ $path = $custom;
}else{
$path = Helper::options()->themeUrl("","Miracles/assets");
}
@@ -150,6 +150,39 @@ class Utils
}
/**
+ * 自动生成懒加载图片 url
+ */
+ public static function addLoadingImages($cdn, $loading_image, $type){
+ if ($type=='normal'):
+ $loading = $loading_image;
+ elseif($type=='link'):
+ $loading = 'avatar';
+ elseif($type=='owo'):
+ $loading = 'owo';
+ endif;
+
+ if ($cdn=='1' || $cdn=='6'){
+ $path = 'https://cdn.jsdelivr.net/gh/BigCoke233/miracles@'.themeVersion()."/images/loading/".$loading.'.gif';
+ }
+ elseif ($cdn=='2'){
+ $path = 'https://raw.githack.com/BigCoke233/miracles/master/images/loading/'.$loading.'.gif';
+ }
+ elseif ($cdn=='4'){
+ $path = 'https://rawcdn.githack.com/BigCoke233/miracles/master/images/loading/'.$loading.'.gif';
+ }
+ elseif ($cdn=='5'){
+ //9jojo CDN 并未提供图片缓存 则换用 jsDelivr
+ $path = 'https://cdn.jsdelivr.net/gh/BigCoke233/miracles@'.themeVersion()."/images/loading/".$loading.'.gif';
+ }
+ elseif ($cdn=='3'){
+ $path = $custom;
+ }else{
+ $path = Helper::options()->themeUrl("","Miracles/images/loading").$loading.'.gif';
+ }
+ return $path;
+ }
+
+ /**
* 缩略图
*/
public static function postBanner($post){