This commit is contained in:
haoouba 2021-01-24 21:30:43 +08:00
parent 42c7807e76
commit 94050964e1
16 changed files with 79 additions and 106 deletions

File diff suppressed because one or more lines are too long

View File

@ -1255,14 +1255,14 @@
cursor: zoom-in;
margin: 0 auto;
&:hover {
transform: translateY(-5px);
box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.25);
// transform: translateY(-5px);
box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
}
}
ol,
ul {
color: var(--routine);
margin-bottom: 20px;
margin-bottom: 15px;
padding: 0 30px;
li {
line-height: 26px;
@ -1307,12 +1307,14 @@
}
}
}
span.block {
display: block;
}
&-hide {
background: repeating-linear-gradient(145deg, var(--classD), var(--classD) 15px, var(--background) 0, var(--background) 25px);
padding: 10px 0;
text-align: center;
position: relative;
margin-bottom: 15px;
user-select: none;
i {
position: relative;

View File

@ -1 +1 @@
*{margin:0;padding:0;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{border-radius:4px;background:var(--seat)}::-webkit-scrollbar-track{background:transparent}body{font-size:14px;background:#f5f5f5;font-family:'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif}input[type='text']{-webkit-appearance:none;border-radius:0;font-size:13px;font-weight:500}textarea{resize:none;-webkit-appearance:none}li{list-style:none}a{text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:500}img{border:0;vertical-align:middle}img[src=''],img:not([src]){border:0;opacity:0}svg,canvas{vertical-align:middle}button{cursor:pointer;-webkit-appearance:none;font-size:13px}table{border-collapse:collapse;border-spacing:0}.joe_container{display:flex;max-width:1140px;margin:0 auto;padding:0 15px}.joe_main{min-width:0;flex:1;padding:15px 0}@media (max-width: 1200px){.joe_container{max-width:960px}}@media (max-width: 992px){.joe_container{max-width:720px}}@media (max-width: 768px){.joe_container{max-width:540px}}@media (max-width: 576px){.joe_container{max-width:100%}}html{--background: #fff;--theme: #f24e4e;--main: #303133;--routine: #606266;--minor: #909399;--seat: #c0c4cc;--classA: #dcdfe6;--classB: #e4e7ed;--classC: #ebeef5;--classD: #f2f6fc;--text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);--box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22)}html[dark='true']{--background: #303133;--box-shadow: none}
*{margin:0;padding:0;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{border-radius:4px;background:var(--seat)}::-webkit-scrollbar-track{background:transparent}body{font-size:14px;background:#f5f5f5;font-family:'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif}input[type='text']{-webkit-appearance:none;border-radius:0;font-size:13px;font-weight:500}textarea{resize:none;-webkit-appearance:none}li{list-style:none}a{text-decoration:none}h1,h2,h3,h4,h5,h6{font-weight:500}img{border:0;vertical-align:middle}img[src=''],img:not([src]){border:0;opacity:0}svg,canvas{vertical-align:middle}button{cursor:pointer;-webkit-appearance:none;font-size:13px}table{border-collapse:collapse;border-spacing:0}.joe_main{min-width:0;flex:1;padding:15px 0}.joe_container{display:flex;width:100%;margin:0 auto;padding:0 15px}@media (min-width: 576px){.joe_container{max-width:540px}}@media (min-width: 768px){.joe_container{max-width:720px}}@media (min-width: 992px){.joe_container{max-width:960px}}@media (min-width: 1200px){.joe_container{max-width:1140px}}@media (min-width: 1400px){.joe_container{max-width:1320px}}html{--background: #fff;--theme: #f24e4e;--main: #303133;--routine: #606266;--minor: #909399;--seat: #c0c4cc;--classA: #dcdfe6;--classB: #e4e7ed;--classC: #ebeef5;--classD: #f2f6fc;--text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);--box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22)}html[dark='true']{--background: #303133;--box-shadow: none}

View File

@ -81,37 +81,42 @@ table {
border-spacing: 0;
}
.joe_container {
display: flex;
max-width: 1140px;
margin: 0 auto;
padding: 0 15px;
}
.joe_main {
min-width: 0;
flex: 1;
padding: 15px 0;
}
@media (max-width: 1200px) {
.joe_container {
max-width: 960px;
}
.joe_container {
display: flex;
width: 100%;
margin: 0 auto;
padding: 0 15px;
}
@media (max-width: 992px) {
.joe_container {
max-width: 720px;
}
}
@media (max-width: 768px) {
@media (min-width: 576px) {
.joe_container {
max-width: 540px;
}
}
@media (max-width: 576px) {
@media (min-width: 768px) {
.joe_container {
max-width: 100%;
max-width: 720px;
}
}
@media (min-width: 992px) {
.joe_container {
max-width: 960px;
}
}
@media (min-width: 1200px) {
.joe_container {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
.joe_container {
max-width: 1320px;
}
}

View File

@ -4,7 +4,14 @@ document.addEventListener('DOMContentLoaded', () => {
if ($('.joe_index__banner .swiper-container').length !== 0) {
let direction = 'horizontal'
if (!Joe.prototype.IS_MOBILE && $('.joe_index__banner-recommend .item').length === 2) direction = 'vertical'
new Swiper('.swiper-container', { direction, loop: true, autoplay: true, mousewheel: true, pagination: { el: '.swiper-pagination' } })
new Swiper('.swiper-container', {
keyboard: true,
direction,
loop: true,
autoplay: true,
mousewheel: true,
pagination: { el: '.swiper-pagination' }
})
}
}

View File

@ -32,7 +32,10 @@ document.addEventListener('DOMContentLoaded', () => {
/* 设置文章内的链接为新窗口打开 */
{
$('.joe_detail__article a').each(function () {
$(this).attr('target', '_blank')
$(this).attr({
target: '_blank',
rel: 'noopener noreferrer nofollow'
})
})
}

View File

@ -1,26 +0,0 @@
<?php
$_requestType = _getParam('type');
switch ($_requestType) {
case 'getRank':
_getRank();
break;
}
function _getRank()
{
}
function _getParam($key, $default = '')
{
return trim($key && is_string($key) ? (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $default)) : $default);
}
function _echoJson($data = null, $code = 1)
{
die(array(
"code" => $code,
"data" => $data
));
}

View File

@ -52,12 +52,16 @@ function _getEncryptionTitle($item, $type = true)
/* 过滤文章内容 */
function _parseContent($post)
{
$db = Typecho_Db::get();
$result = $db->fetchAll($db->select()->from('table.comments')->where('cid = ?', $post->cid)->where('mail = ?', $post->remember('mail', true))->limit(1));
if ($result) {
$content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '<div style="margin-bottom: 15px">$1</div>', $post->content);
} else {
$content = preg_replace("/\[hide\](.*?)\[\/hide\]/sm", '<p class="joe_detail__article-hide">此处内容 <i data-scroll="comment">回复</i> 可见</p>', $post->content);
/* 优先判断文章内是否有回复可见的内容 */
$content = $post->content;
if (preg_match('/\[hide\].*\[\/hide\]/', $content)) {
$db = Typecho_Db::get();
$hasComment = $db->fetchAll($db->select()->from('table.comments')->where('cid = ?', $post->cid)->where('mail = ?', $post->remember('mail', true))->limit(1));
if ($hasComment) {
$content = preg_replace('/\[hide\](.*?)\[\/hide\]/sm', '$1', $content);
} else {
$content = preg_replace('/\[hide\](.*?)\[\/hide\]/sm', '<span class="joe_detail__article-hide block">此处内容 <i data-scroll="comment">回复</i> 可见</span>', $content);
}
}
echo $content;
}
@ -198,6 +202,12 @@ function _getLazyload($type = true)
else return Helper::options()->JLazyload;
}
function _getAvatarLazyload($type = true)
{
if ($type) echo "https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/img/lazyload_avatar.png";
else return "https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/img/lazyload_avatar.png";
}
function _getAsideAuthorNav()
{
if (Helper::options()->JAside_Author_Nav !== "off") {

View File

@ -14,7 +14,11 @@
<head>
<?php $this->need('public/include.php'); ?>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@5.4.5/css/swiper.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css@3.7.2/animate.min.css" />
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.index.css'); ?>">
<script src="https://cdn.jsdelivr.net/npm/swiper@5.4.5/js/swiper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/wowjs@1.1.3/dist/wow.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/joe.index.js'); ?>"></script>
</head>
@ -24,8 +28,6 @@
<div class="joe_container">
<div class="joe_main">
<div class="joe_index">
<!-- Index Banner -->
<?php
$carousel = [];
$carousel_text = $this->options->JIndex_Carousel;
@ -49,8 +51,6 @@
?>
<?php if (sizeof($carousel) > 0 || sizeof($recommend) === 2) : ?>
<div class="joe_index__banner">
<!-- Index Carousel -->
<?php if (sizeof($carousel) > 0) : ?>
<div class="swiper-container">
<div class="swiper-wrapper">
@ -69,8 +69,6 @@
<div class="swiper-pagination"></div>
</div>
<?php endif; ?>
<!-- Index Recommend -->
<?php if (sizeof($recommend) === 2) : ?>
<div class="joe_index__banner-recommend <?php echo sizeof($carousel) === 0 ? 'noswiper' : '' ?>">
<?php foreach ($recommend as $cid) : ?>
@ -89,8 +87,6 @@
<?php endif; ?>
</div>
<?php endif; ?>
<!-- Index Hot -->
<?php if ($this->options->JIndex_Hot === "on") : ?>
<?php $this->widget('Widget_Contents_Hot@Index', 'pageSize=4')->to($item); ?>
<div class="joe_index__hot">
@ -109,8 +105,6 @@
</ul>
</div>
<?php endif; ?>
<!-- Index Ad -->
<?php
$index_ad_text = $this->options->JIndex_Ad;
$index_ad = null;
@ -129,8 +123,6 @@
<?php endif; ?>
<div class="joe_index__title">
<!-- Index Title -->
<ul class="joe_index__title-title">
<li class="item" data-type="created">最新文章</li>
<li class="item" data-type="commentsNum">评论最多</li>
@ -138,8 +130,6 @@
<li class="item" data-type="views">浏览最多</li>
<li class="line"></li>
</ul>
<!-- Index Notice -->
<?php
$index_notice_text = $this->options->JIndex_Notice;
$index_notice = null;
@ -158,8 +148,6 @@
</div>
<?php endif; ?>
</div>
<!-- Index List -->
<div class="joe_index__list" data-wow="<?php $this->options->JList_Animate() ?>">
<ul class="joe_list"></ul>
<ul class="joe_list__loading">

View File

@ -3,6 +3,11 @@
<head>
<?php $this->need('public/include.php'); ?>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-tomorrow.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.post.css'); ?>">
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/joe.post&page.js'); ?>"></script>
</head>
@ -13,7 +18,6 @@
<div class="joe_container">
<div class="joe_main">
<div class="joe_detail" data-cid="<?php echo $this->cid ?>">
<!-- Page Article -->
<?php $this->need('public/article.php'); ?>
</div>
</div>

View File

@ -3,15 +3,17 @@
<head>
<?php $this->need('public/include.php'); ?>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-tomorrow.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.post.css'); ?>">
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/joe.post&page.js'); ?>"></script>
</head>
<body>
<div id="Joe">
<?php $this->need('public/header.php'); ?>
<!-- Post Bread -->
<div class="joe_container joe_bread">
<ul class="joe_bread__bread">
<li class="item">
@ -30,12 +32,9 @@
<li class="item">正文</li>
</ul>
</div>
<div class="joe_container">
<div class="joe_main joe_post">
<div class="joe_detail" data-cid="<?php echo $this->cid ?>">
<!-- Post Category -->
<?php if (sizeof($this->categories) > 0) : ?>
<div class="joe_detail__category">
<?php foreach (array_slice($this->categories, 0, 5) as $key => $item) : ?>
@ -43,8 +42,6 @@
<?php endforeach; ?>
</div>
<?php endif; ?>
<!-- Post Article -->
<?php $this->need('public/article.php'); ?>
</div>
</div>

View File

@ -1,8 +1,7 @@
<h1 class="joe_detail__title"><?php _getEncryptionTitle($this) ?></h1>
<div class="joe_detail__count">
<div class="joe_detail__count-information">
<img class="avatar" src="<?php _getAvatarByMail($this->author->mail) ?>" alt="<?php $this->author(); ?>" />
<img class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" onerror="javascript: this.src = '<?php _getAvatarLazyload(); ?>'" data-original="<?php _getAvatarByMail($this->author->mail) ?>" alt="<?php $this->author(); ?>" />
<div class="meta">
<div class="author">
<a class="link" href="<?php $this->author->permalink(); ?>" title="<?php $this->author(); ?>"><?php $this->author(); ?></a>
@ -20,7 +19,6 @@
</div>
<time class="joe_detail__count-created" datetime="<?php $this->date('m/d'); ?>"><?php $this->date('m/d'); ?></time>
</div>
<div class="joe_detail__article">
<?php if ($this->is('post')) : ?>
<?php if ($this->hidden) : ?>
@ -34,7 +32,6 @@
<?php _parseContent($this) ?>
<?php endif; ?>
</div>
<div class="joe_detail__agree">
<div class="agree">
<div class="icon">
@ -48,7 +45,6 @@
<span class="text"><?php _getAgree($this) ?></span>
</div>
</div>
<div class="joe_detail__copyright">
<div class="content">
<div class="item">

View File

@ -4,7 +4,7 @@
<section class="joe_aside__item author">
<img class="image" onerror="<?php _getLazyload() ?>" src="<?php $this->options->JAside_Author_Image() ?>" alt="<?php $this->author->screenName(); ?>" />
<div class="user">
<img class="avatar" src="<?php _getAvatarByMail($this->author->mail) ?>" alt="<?php $this->author->screenName(); ?>" />
<img class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" onerror="javascript: this.src = '<?php _getAvatarLazyload(); ?>'" data-original="<?php _getAvatarByMail($this->author->mail) ?>" alt="<?php $this->author->screenName(); ?>" />
<a class="link" href="<?php $this->options->JAside_Author_Link() ?>" target="_blank" rel="noopener noreferrer nofollow"><?php $this->author->screenName(); ?></a>
<p class="motto"><?php _getAsideAuthorMotto() ?></p>
</div>
@ -26,7 +26,6 @@
<?php endif; ?>
</section>
<?php endif; ?>
<?php if (in_array('timelife', $this->options->JAside)) : ?>
<section class="joe_aside__item timelife">
<div class="joe_aside__item-title">
@ -40,7 +39,6 @@
<div class="joe_aside__item-contain"></div>
</section>
<?php endif; ?>
<?php if (in_array('hot', $this->options->JAside)) : ?>
<section class="joe_aside__item hot">
<div class="joe_aside__item-title">
@ -74,7 +72,6 @@
</ol>
</section>
<?php endif; ?>
<?php if (in_array('newreply', $this->options->JAside)) : ?>
<section class="joe_aside__item newreply">
<div class="joe_aside__item-title">
@ -91,7 +88,7 @@
<?php while ($item->next()) : ?>
<li class="item">
<div class="user">
<img class="avatar" src="<?php _getAvatarByMail($item->mail) ?>" alt="<?php $item->author(false) ?>" />
<img class="avatar lazyload" src="<?php _getAvatarLazyload(); ?>" onerror="javascript: this.src = '<?php _getAvatarLazyload(); ?>'" data-original="<?php _getAvatarByMail($item->mail) ?>" alt="<?php $item->author(false) ?>" />
<div class="info">
<div class="author"><?php $item->author(false) ?></div>
<span class="date"><?php $item->date('Y-m-d'); ?></span>
@ -110,7 +107,6 @@
</ul>
</section>
<?php endif; ?>
<?php if (in_array('ranking', $this->options->JAside)) : ?>
<section class="joe_aside__item ranking">
<div class="joe_aside__item-title">
@ -126,7 +122,6 @@
</ul>
</section>
<?php endif; ?>
<?php if (in_array('weather', $this->options->JAside) && $this->options->JAside_Weather_Key) : ?>
<section class="joe_aside__item weather" data-key="<?php $this->options->JAside_Weather_Key() ?>" data-style="<?php $this->options->JAside_Weather_Style() ?>">
<div class="joe_aside__item-title">

View File

@ -1,4 +1,4 @@
<div class="joe_footer">
<footer class="joe_footer">
<div class="joe_container">
<div class="left">
<?php $this->options->JFooter_Left() ?>
@ -8,7 +8,7 @@
<?php $this->options->JFooter_Right() ?>
</div>
</div>
</div>
</footer>
<div class="joe_action">
<div class="joe_action_item scroll">

View File

@ -2,7 +2,7 @@
<div class="joe_header__above">
<div class="joe_container">
<a title="<?php $this->options->title(); ?>" class="joe_header__above-logo" href="<?php $this->options->siteUrl(); ?>">
<img class="lazyload" src="" data-original="<?php $this->options->JLogo() ?>" alt="<?php $this->options->title(); ?>" />
<img src="<?php $this->options->JLogo() ?>" alt="<?php $this->options->title(); ?>" />
</a>
<nav class="joe_header__above-nav">
<a class="item <?php echo $this->is('index') ? 'active' : '' ?>" href="<?php $this->options->siteUrl(); ?>" title="首页">首页</a>

View File

@ -8,18 +8,10 @@
<title><?php $this->archiveTitle(array('category' => '分类 %s 下的文章', 'search' => '包含关键字 %s 的文章', 'tag' => '标签 %s 下的文章', 'author' => '%s 发布的文章'), '', ' - '); ?><?php $this->options->title(); ?></title>
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.normalize.css'); ?>">
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.global.css'); ?>">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@5.4.5/css/swiper.min.css" />
<link rel="stylesheet" href="https://apip.weatherdt.com/standard/static/css/weather-standard.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css@3.7.2/animate.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/themes/prism-tomorrow.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@5.4.5/js/swiper.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/js/joe.scroll.js"></script>
<script src="https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/js/joe.lazyload.js"></script>
<script src="https://cdn.jsdelivr.net/npm/wowjs@1.1.3/dist/wow.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/joe.global.js'); ?>"></script>
<script async src="https://apip.weatherdt.com/standard/static/js/weather-standard.js?v=2.0"></script>
<script async src="https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/js/joe.smooth.js"></script>