summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--assets/css/miracles.min.css115
-rw-r--r--assets/js/OwO.min.js3
-rw-r--r--includes/footer.php46
-rw-r--r--includes/head.php4
-rw-r--r--includes/header.php29
-rw-r--r--index.php5
-rw-r--r--libs/Contents.php2
-rw-r--r--screenshot.jpgbin41798 -> 165962 bytes
8 files changed, 136 insertions, 68 deletions
diff --git a/assets/css/miracles.min.css b/assets/css/miracles.min.css
index 1639add..9ed26fd 100644
--- a/assets/css/miracles.min.css
+++ b/assets/css/miracles.min.css
@@ -18,10 +18,7 @@ body,html {
margin: 0;
background: #fafafa;
overflow: auto;
- transition: background 0.2s
-}
-body {
- height: 100%;
+ transition: background 0.2s;
width: 100%;
}
@@ -130,7 +127,11 @@ hr {
.body-dark .login,
.body-dark .login-close,
.body-darl .login a,
-.body-dark .OwO-bar {
+.body-dark .OwO-bar,
+.body-dark .mobile-menu,
+.body-dark .mobile-menu a,
+.body-dark .mobile-menu-close,
+.body-dark .mobile-menu-footer {
color: #fafafa!important
}
@@ -146,7 +147,9 @@ hr {
.body-dark .post-content th,
.body-dark .post-content tr,
.body-dark .OwO-logo,
-.body-dark .OwO-body {
+.body-dark .OwO-body,
+.body-dark .mobile-menu-title,
+.body-dark .mobile-menu-footer {
border-color: #6e6e6e!important;
}
@@ -169,7 +172,9 @@ hr {
-moz-box-shadow: 0 0 30px #000
}
-.body-dark .nav a:hover {
+.body-dark .nav a:hover,
+.body-dark .nav-mobile-title:hover,
+.mobile-menu-pagelist a:hover {
background: #646464
}
.body-dark .nav-icon-button {
@@ -187,7 +192,7 @@ hr {
}
.nav {
- background: rgba(255,255,255,.9);
+ background: rgba(255,255,255,0.96);
width: 100%;
position: absolute;
box-shadow: 0 0 20px #ddd;
@@ -219,7 +224,9 @@ hr {
font-size: 16px
}
-.nav-content a:hover {
+.nav-content a:hover,
+.nav-mobile-content a:hover,
+.nav-mobile-content button:hover {
background: #f0f0f0
}
@@ -242,6 +249,21 @@ hr {
position: absolute;
top: 20px;
}
+
+
+.nav-mobile {
+ background: rgba(255,255,255,0.99);
+ word-break: keep-all;
+}
+.nav-mobile-content {
+ padding: 0 5px;
+}
+.nav-mobile-content a,
+.nav-mobile-content button {
+ margin: 0;
+ padding: 16px 10px;
+}
+
.search-button {
right: 20px;
}
@@ -599,20 +621,20 @@ hr {
.links-item {
background: #fff;
- box-shadow: 0 3px 1px #ddd;
- -webkit-box-shadow: 0 1px 3px #ddd;
- -moz-box-shadow: 0 3px 1px #ddd;
+ box-shadow: 0 3px 1px #ccc;
+ -webkit-box-shadow: 0 1px 3px #ccc;
+ -moz-box-shadow: 0 3px 1px #ccc;
overflow: hidden;
transition: all .2s!important;
- margin-bottom: 20px;
+ margin-bottom: 5px;
border-radius: 3px
}
.links-item:hover {
transform: scale(1.05);
- box-shadow: 0 6px 28px #ddd;
- -webkit-box-shadow: 0 6px 28px #ddd;
- -moz-box-shadow: 0 6px 28px #ddd;
+ box-shadow: 0 6px 28px #ccc;
+ -webkit-box-shadow: 0 6px 28px #ccc;
+ -moz-box-shadow: 0 6px 28px #ccc;
transform: translateY(-6px)
}
@@ -621,14 +643,18 @@ hr {
}
.links-title {
- text-align: Center
+ text-align: center
}
.links-title h4 {
font-weight: 700;
letter-spacing: 2px;
white-space: nowrap;
- margin: 10px 0
+ font-size: 15px;
+ margin: 14px 0
+}
+.links-container {
+ padding: 6px;
}
.archive-title {
@@ -646,33 +672,63 @@ hr {
margin-bottom: 5px
}
-.search,.login {
+.search,.login,.mobile-menu {
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
- background-color: rgba(255,255,255,.95);
+ background-color: rgba(255,255,255,0.96);
transition: all .2s;
z-index: 1000;
+}
+.search,.login {
display: flex;
align-items: center;
justify-content: center;
}
.body-dark .search,
-.body-dark .login {
+.body-dark .login,
+.body-dark .mobile-menu {
background: rgba(90,90,90,.95)
}
.search.ready,
-.login.ready {
+.login.ready,
+.mobile-menu.ready {
bottom: 120vh;
top: -120vh;
visibility: hidden;
}
.search-close.ready,
-.login-close.ready {
+.login-close.ready,
+.mobile-menu-close.ready {
display: none
}
+.mobile-menu-pagelist a {
+ display: block;
+ border-radius: 4px;
+ padding: 10px 5px;
+ text-align: center;
+ transition: all 0.2s;
+}
+.mobile-menu-pagelist a:hover {
+ background: rgb(240,240,240)
+}
+.mobile-menu-title {
+ text-align: center;
+ border-bottom: 1px solid rgb(220,220,220);
+ padding-bottom: 20px;
+}
+.mobile-menu-footer {
+ position: absolute;
+ text-align: center;
+ bottom: 10px;
+ right: 0;
+ left: 0;
+ border-top: 1px solid rgb(220,220,220);
+ padding-top: 10px;
+}
+
.search-form input {
border: 1px solid #bababa;
padding: 10px 25px;
@@ -691,7 +747,8 @@ hr {
outline: 0
}
.search-close,
-.login-close {
+.login-close,
+.mobile-menu-close {
position: fixed;
top: 20px;
right: 20px;
@@ -948,6 +1005,7 @@ iframe[src*="//player.bilibili.com/player.html"] {
.login-form button {
width: 260px;
}
+
@media (min-width:768px) {
.nav-content a {
font-size: 19px;
@@ -1019,6 +1077,9 @@ iframe[src*="//player.bilibili.com/player.html"] {
.post-body {
margin-top: -130px
}
+ .links-container {
+ padding: 10px;
+ }
}
@media (min-width:992px) {
@@ -1097,6 +1158,9 @@ iframe[src*="//player.bilibili.com/player.html"] {
.post-body {
margin-top: -134px
}
+ .links-container {
+ padding: 12px;
+ }
}
@media (min-width:1200px) {
@@ -1173,4 +1237,7 @@ iframe[src*="//player.bilibili.com/player.html"] {
.post-body {
margin-top: -140px
}
+ .links-container {
+ padding: 15px;
+ }
}
diff --git a/assets/js/OwO.min.js b/assets/js/OwO.min.js
index 74d2383..bcc9238 100644
--- a/assets/js/OwO.min.js
+++ b/assets/js/OwO.min.js
@@ -1,2 +1 @@
-"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var s=t[a];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,a,s){return a&&e(t.prototype,a),s&&e(t,s),t}}();!function(){var e=function(){function e(t){var a=this;_classCallCheck(this,e);var s={logo:"OwO表情",container:document.getElementsByClassName("OwO")[0],target:document.getElementsByTagName("textarea")[0],position:"down",width:"100%",maxHeight:"250px",api:"https://api.anotherhome.net/OwO/OwO.json"};for(var n in s)s.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=s[n]);this.container=t.container,this.target=t.target,"up"===t.position&&this.container.classList.add("OwO-up");var i=new XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&(i.status>=200&&i.status<300||304===i.status?(a.odata=JSON.parse(i.responseText),a.init(t)):console.log("OwO data request was unsuccessful: "+i.status))},i.open("get",t.api,!0),i.send(null)}return _createClass(e,[{key:"init",value:function(e){var t=this;this.area=e.target,this.packages=Object.keys(this.odata);for(var a='\n <div class="OwO-logo"><span>'+e.logo+'</span></div>\n <div class="OwO-body" style="width: '+e.width+'">',s=0;s<this.packages.length;s++){a+='\n <ul class="OwO-items OwO-items-'+this.odata[this.packages[s]].type+'" style="max-height: '+(parseInt(e.maxHeight)-53+"px")+';">';for(var n=this.odata[this.packages[s]].container,i=0;i<n.length;i++)a+='\n <li class="OwO-item" title="'+n[i].text+'">'+n[i].icon+"</li>";a+="\n </ul>"}a+='\n <div class="OwO-bar">\n <ul class="OwO-packages">';for(var o=0;o<this.packages.length;o++)a+="\n <li><span>"+this.packages[o]+"</span></li>";a+="\n </ul>\n </div>\n </div>\n ",this.container.innerHTML=a,this.logo=this.container.getElementsByClassName("OwO-logo")[0],this.logo.addEventListener("click",function(){t.toggle()}),this.container.getElementsByClassName("OwO-body")[0].addEventListener("click",function(e){var a=null;if(e.target.classList.contains("OwO-item")?a=e.target:e.target.parentNode.classList.contains("OwO-item")&&(a=e.target.parentNode),a){var s=t.area.selectionEnd,n=t.area.value;t.area.value=n.slice(0,s)+a.innerHTML+n.slice(s),t.area.focus(),t.toggle()}}),this.packagesEle=this.container.getElementsByClassName("OwO-packages")[0];for(var c=function(e){!function(a){t.packagesEle.children[e].addEventListener("click",function(){t.tab(a)})}(e)},l=0;l<this.packagesEle.children.length;l++)c(l);this.tab(0)}},{key:"toggle",value:function(){this.container.classList.contains("OwO-open")?this.container.classList.remove("OwO-open"):this.container.classList.add("OwO-open")}},{key:"tab",value:function(e){var t=this.container.getElementsByClassName("OwO-items-show")[0];t&&t.classList.remove("OwO-items-show"),this.container.getElementsByClassName("OwO-items")[e].classList.add("OwO-items-show");var a=this.container.getElementsByClassName("OwO-package-active")[0];a&&a.classList.remove("OwO-package-active"),this.packagesEle.getElementsByTagName("li")[e].classList.add("OwO-package-active")}}]),e}();"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=e:window.OwO=e}();
-//# sourceMappingURL=OwO.min.js.map \ No newline at end of file
+"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var s=t[a];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,a,s){return a&&e(t.prototype,a),s&&e(t,s),t}}();!function(){var e=function(){function e(t){var a=this;_classCallCheck(this,e);var s={logo:"OwO表情",container:document.getElementsByClassName("OwO")[0],target:document.getElementsByTagName("textarea")[0],position:"down",width:"100%",maxHeight:"250px",api:"https://api.anotherhome.net/OwO/OwO.json"};for(var n in s)s.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=s[n]);this.container=t.container,this.target=t.target,"up"===t.position&&this.container.classList.add("OwO-up");var i=new XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&(i.status>=200&&i.status<300||304===i.status?(a.odata=JSON.parse(i.responseText),a.init(t)):console.log("OwO data request was unsuccessful: "+i.status))},i.open("get",t.api,!0),i.send(null)}return _createClass(e,[{key:"init",value:function(e){var t=this;this.area=e.target,this.packages=Object.keys(this.odata);for(var a='\n <div class="OwO-logo"><span>'+e.logo+'</span></div>\n <div class="OwO-body" style="width: '+e.width+'">',s=0;s<this.packages.length;s++){a+='\n <ul class="OwO-items OwO-items-'+this.odata[this.packages[s]].type+'" style="max-height: '+(parseInt(e.maxHeight)-53+"px")+';">';for(var n=this.odata[this.packages[s]].container,i=0;i<n.length;i++)a+='\n <li class="OwO-item" title="'+n[i].text+'">'+n[i].icon+"</li>";a+="\n </ul>"}a+='\n <div class="OwO-bar">\n <ul class="OwO-packages">';for(var o=0;o<this.packages.length;o++)a+="\n <li><span>"+this.packages[o]+"</span></li>";a+="\n </ul>\n </div>\n </div>\n ",this.container.innerHTML=a,this.logo=this.container.getElementsByClassName("OwO-logo")[0],this.logo.addEventListener("click",function(){t.toggle()}),this.container.getElementsByClassName("OwO-body")[0].addEventListener("click",function(e){var a=null;if(e.target.classList.contains("OwO-item")?a=e.target:e.target.parentNode.classList.contains("OwO-item")&&(a=e.target.parentNode),a){var s=t.area.selectionEnd,n=t.area.value;t.area.value=n.slice(0,s)+a.innerHTML+n.slice(s),t.area.focus(),t.toggle()}}),this.packagesEle=this.container.getElementsByClassName("OwO-packages")[0];for(var c=function(e){!function(a){t.packagesEle.children[e].addEventListener("click",function(){t.tab(a)})}(e)},l=0;l<this.packagesEle.children.length;l++)c(l);this.tab(0)}},{key:"toggle",value:function(){this.container.classList.contains("OwO-open")?this.container.classList.remove("OwO-open"):this.container.classList.add("OwO-open")}},{key:"tab",value:function(e){var t=this.container.getElementsByClassName("OwO-items-show")[0];t&&t.classList.remove("OwO-items-show"),this.container.getElementsByClassName("OwO-items")[e].classList.add("OwO-items-show");var a=this.container.getElementsByClassName("OwO-package-active")[0];a&&a.classList.remove("OwO-package-active"),this.packagesEle.getElementsByTagName("li")[e].classList.add("OwO-package-active")}}]),e}();"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=e:window.OwO=e}(); \ No newline at end of file
diff --git a/includes/footer.php b/includes/footer.php
index 82d527a..8017818 100644
--- a/includes/footer.php
+++ b/includes/footer.php
@@ -41,48 +41,22 @@
pres[i].className = 'line-numbers';}
Prism.highlightAll(true,null);}
$('form#login-form').addClass('need-refresh');
- var OwO_demo = new OwO({
- logo: 'OωO表情',
- container: document.getElementsByClassName('OwO')[0],
- target: document.getElementsByClassName('OwO-textarea')[0],
- api: '<?php Utils::indexTheme('assets/OwO.json'); ?>',
- position: 'down',
- width: '400px',
- maxHeight: '250px'
- });
- jQuery(function() {
- jQuery("img").lazyload({threshold: 200,effect: "fadeIn"});
- });
+ var OwO_demo = new OwO({logo: 'OωO表情',container: document.getElementsByClassName('OwO')[0],target: document.getElementsByClassName('OwO-textarea')[0],api: '<?php Utils::indexTheme('assets/OwO.json'); ?>',position: 'down',width: '400px',maxHeight: '250px'});
+ jQuery(function() {jQuery("img").lazyload({threshold: 200,effect: "fadeIn"});});
});
//LazyLoad
- jQuery(function() {
- jQuery("img").lazyload({threshold: 200,effect: "fadeIn"});
- });
+ jQuery(function() {jQuery("img").lazyload({threshold: 200,effect: "fadeIn"});});
//解决刷新后不显示行号的问题
var pres = document.getElementsByTagName('pre');
- for (var i = 0; i < pres.length; i++){
- if (pres[i].getElementsByTagName('code').length > 0)
- pres[i].className = 'line-numbers';
- }
+ for (var i = 0; i < pres.length; i++){if (pres[i].getElementsByTagName('code').length > 0)pres[i].className = 'line-numbers';}
//Search
- function Search() {
- $(".search").toggleClass("ready");
- $(".search-close").toggleClass("ready");
- }
+ function Search() {$(".search").toggleClass("ready");$(".search-close").toggleClass("ready");}
+ //mobileMenu
+ function toggleMobileMenu() {$(".mobile-menu").toggleClass("ready");$(".mobile-menu-close").toggleClass("ready");}
//Login
- function Login() {
- $(".login").toggleClass("ready");
- $(".login-close").toggleClass("ready");
- }
- var OwO_demo = new OwO({
- logo: 'OωO表情',
- container: document.getElementsByClassName('OwO')[0],
- target: document.getElementsByClassName('OwO-textarea')[0],
- api: '<?php Utils::indexTheme('assets/OwO.json'); ?>',
- position: 'down',
- width: '400px',
- maxHeight: '250px'
- });</script>
+ function Login() {$(".login").toggleClass("ready");$(".login-close").toggleClass("ready");}
+ //OwO
+ var OwO_demo = new OwO({logo: 'OωO表情',container: document.getElementsByClassName('OwO')[0],target: document.getElementsByClassName('OwO-textarea')[0],api: '<?php Utils::indexTheme('assets/OwO.json'); ?>',position: 'down',width: '400px',maxHeight: '250px'});
</script>
<?php $this->footer(); ?>
diff --git a/includes/head.php b/includes/head.php
index 9367c0c..116b8ff 100644
--- a/includes/head.php
+++ b/includes/head.php
@@ -46,13 +46,13 @@ if (isset($_POST['action'])) {
<?php $this->options->headerEcho(); ?>
<!-- css -->
<link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/normalize.css'); ?>" />
- <link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/miracles.min.css'); ?>" />
<link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/nprogress.css'); ?>" />
<link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/prism.css'); ?>" />
<link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/owo.min.css'); ?>" />
<link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/fancybox.css'); ?>" />
+ <link rel="stylesheet" href="<?php Utils::indexTheme('assets/css/miracles.min.css'); ?>" />
<!-- icon font -->
- <link rel="stylesheet" href="//at.alicdn.com/t/font_1165190_8emw6f3zka.css" />
+ <link rel="stylesheet" href="//at.alicdn.com/t/font_1165190_hilot65sdef.css" />
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC:300|Noto+Serif+SC:300&display=swap" rel="stylesheet">
diff --git a/includes/header.php b/includes/header.php
index abc57ca..c43b4dd 100644
--- a/includes/header.php
+++ b/includes/header.php
@@ -1,4 +1,5 @@
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
+ <!-- 搜索 -->
<div class="search ready">
<button class="search-close ready" onclick="Search()"><i class="iconfont icon-x"></i></button>
<form method="post" action="">
@@ -8,6 +9,7 @@
</div>
</form>
</div>
+ <!-- 登录面板 -->
<div class="login ready">
<button class="login-close ready" onclick="Login()"><i class="iconfont icon-x"></i></button>
<?php if($this->user->hasLogin()): ?>
@@ -26,7 +28,22 @@
</form>
<?php endif; ?>
</div>
- <nav class="nav<?php if($this->options->nav_position && $this->options->nav_position=1): ?> nav-fixed<?php endif; ?>">
+ <!-- 移动端导航面板 -->
+ <div class="mobile-menu ready">
+ <button class="mobile-menu-close ready" onclick="toggleMobileMenu()"><i class="iconfont icon-x"></i></button>
+ <h2 class="mobile-menu-title">页面导航</h2>
+ <div class="mobile-menu-pagelist"><div class="container-fluid"><div class="row">
+ <?php $this->widget('Widget_Contents_Page_List')
+ ->parse('<div class="col-6"><a href="{permalink}">{title}</a></div>'); ?>
+ </div></div></div>
+ <div class="mobile-menu-footer">
+ <p>&copy; <?php echo date('Y'); ?> <a href="<?php $this->options->SiteUrl(); ?>"><?php $this->options->title(); ?></a> | Theme <a href="https://github.com/BigCoke233/miracles">Miracles</a></p>
+ </div>
+ </div>
+
+ <!-- 导航 -->
+ <!-- > 大屏幕导航 -->
+ <nav class="large-screen nav<?php if($this->options->nav_position && $this->options->nav_position=1): ?> nav-fixed<?php endif; ?>">
<div class="container">
<p class="nav-content">
<a href="<?php $this->options->SiteUrl(); ?>" class="nav-title"><?php $this->options->title(); ?></a>
@@ -39,6 +56,16 @@
<button class="nav-icon-button login-button" onclick="Login()"><i class="iconfont icon-user"></i></button>
</div>
</nav>
+ <!--> 小屏幕导航 -->
+ <nav class="small-screen nav nav-mobile<?php if($this->options->nav_position && $this->options->nav_position=1): ?> nav-fixed<?php endif; ?>">
+ <div class="nav-mobile-content">
+ <a href="<?php $this->options->SiteUrl(); ?>" style="float:left"><i class="iconfont icon-xuanzhongshangcheng"></i></a>
+ <a onclick="Search()" style="float:left"><i class="iconfont icon-chaxun"></i></a>
+ <a onclick="Login()" style="float:left"><i class="iconfont icon-user"></i></a>
+ <a onclick="toggleMobileMenu()" style="float:right">MENU <i class="iconfont icon-list"></i></a>
+ </div>
+ </nav>
+
<div id="pjax-container">
<header>
<?php if($this->is('post') || $this->is('page')): ?>
diff --git a/index.php b/index.php
index 4526070..8c21025 100644
--- a/index.php
+++ b/index.php
@@ -1,6 +1,7 @@
<?php
/**
- * You're the miracles.
+ * You're the miracles. 你即是奇迹
+ * 作者:<a href="https://guhub.cn">Eltrac</a> | 帮助文档:<a href="https://github.com/BigCoke233/miracles/wiki">GitHub Wiki</a>
*
* @package Miracles
* @author Eltrac
@@ -40,7 +41,7 @@ $this->need('includes/header.php');
<div class="post-item small-screen">
<div class="post-banner-box-ss">
<div class="post-banner-ss">
- <img src="<?php if($this->fields->banner && $this->fields->banner=!''): ?><?php echo $this->fields->banner(); ?><?php else: ?><?php Utils::indexTheme('images/postbg/'); ?><?php echo rand(1,rand(1,rand(1,10))); ?>.jpg<?php endif; ?>">
+ <img src="/usr/themes/Miracles/images/loading.gif" data-original="<?php if($this->fields->banner && $this->fields->banner=!''): ?><?php echo $this->fields->banner(); ?><?php else: ?><?php Utils::indexTheme('images/postbg/'); ?><?php echo rand(1,rand(1,rand(1,10))); ?>.jpg<?php endif; ?>">
</div>
</div>
<div class="post-item-content-ss">
diff --git a/libs/Contents.php b/libs/Contents.php
index c007d0a..fd2c8f1 100644
--- a/libs/Contents.php
+++ b/libs/Contents.php
@@ -20,7 +20,7 @@ class Contents
//解析友链项目
$reg = '/\[(.*?)\]\{(.*?)\}\((.*?)\)/s';
- $rp = '<div class="col-md-2 col-xs-4 col-sm-3">
+ $rp = '<div class="col-lg-2 col-4 col-md-3 links-container">
<a href="${2}" target="_blank" class="links-link">
<div class="links-item">
<div class="links-img" style="background:url(\'${3}\');width: 100%;padding-top: 100%;background-repeat: no-repeat;background-size: cover;"></div>
diff --git a/screenshot.jpg b/screenshot.jpg
index f0b690b..3e59867 100644
--- a/screenshot.jpg
+++ b/screenshot.jpg
Binary files differ