This commit is contained in:
杜恒 2021-01-25 18:36:43 +08:00
parent 084c7faf84
commit f06c934586
20 changed files with 850 additions and 157 deletions

95
archive.php Normal file
View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<?php $this->need('public/include.php'); ?>
<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.archive.css'); ?>">
<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.archive.js'); ?>"></script>
</head>
<body>
<div id="Joe">
<?php $this->need('public/header.php'); ?>
<div class="joe_container">
<div class="joe_main">
<div class="joe_archive">
<div class="joe_archive__title">
<svg width="20" height="20" class="joe_archive__title-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z"></path>
<line x1="16" y1="8" x2="2" y2="22"></line>
<line x1="17.5" y1="15" x2="9" y2="15"></line>
</svg>
<div class="joe_archive__title-title">
<span>搜索到</span>
<span class="muted"><?php echo $this->getTotal(); ?></span>
<span>篇与</span>
<span class="muted ellipsis"><?php echo $this->_keywords; ?></span>
<span>的结果</span>
</div>
</div>
<?php if ($this->have()) : ?>
<ul class="joe_archive__list joe_list" data-wow="<?php $this->options->JList_Animate() ?>">
<?php while ($this->next()) : ?>
<li class="joe_list__item wow">
<div class="line"></div>
<a href="<?php $this->permalink() ?>" class="thumbnail" title="<?php $this->title() ?>">
<img onerror="javascript: this.src='<?php _getLazyload() ?>';" class="lazyload" src="<?php _getLazyload() ?>" data-original="<?php _getThumbnail($this) ?>" alt="<?php $this->title() ?>" />
<time datetime="<?php $this->date('Y-m-d'); ?>"><?php $this->date('Y-m-d'); ?></time>
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
<path d="M903.93077753 107.30625876H115.78633587C64.57261118 107.30625876 22.58166006 149.81138495 22.58166006 201.02510964v624.26547214c0 51.7240923 41.99095114 93.71694641 93.71694641 93.7169464h788.14444164c51.7202834 0 93.71694641-41.99285557 93.71694642-93.7169464v-624.26547214c-0.51227057-51.21372469-43.01739676-93.71885088-94.229217-93.71885088zM115.78633587 171.8333054h788.65671224c16.385041 0 29.70407483 13.31522639 29.70407484 29.70407482v390.22828696l-173.60830179-189.48107072c-12.80486025-13.82749697-30.21634542-21.50774542-48.14010264-19.97093513-17.92375723 1.02073227-34.82106734 10.75387344-46.60138495 26.11437327l-172.58185762 239.1598896-87.06123767-85.52061846c-12.28878076-11.78222353-27.65308802-17.92375723-44.03812902-17.92375577-16.3907529 0.50846167-31.75506163 7.67644101-43.52966736 20.48129978L86.59453164 821.70468765V202.04965083c-1.02454117-17.41529409 12.80486025-30.73052046 29.19180423-30.21634543zM903.93077753 855.50692718H141.90642105l222.25496164-245.81940722 87.0593347 86.03669649c12.80105134 12.80676323 30.21253651 18.95020139 47.11555999 17.4172 17.40958218-1.53871621 33.79652618-11.26614404 45.06267018-26.11818071l172.58376063-238.64762047 216.11152349 236.08817198 2.05098681-1.54062067v142.87778132c0.50846167 16.3907529-13.31522639 29.70597929-30.21444096 29.70597928z m0 0" p-id="1916"></path>
<path d="M318.07226687 509.82713538c79.88945091 0 144.41649754-65.03741277 144.41649754-144.41649753 0-79.37718032-64.52704663-144.92495923-144.41649754-144.92495922-79.89135536 0-144.41649754 64.52704663-144.41649756 144.41268862 0 79.89135536 64.52514218 144.92876814 144.41649756 144.92876813z m0-225.3266807c44.55230407 0 80.91208763 36.36168802 80.91208762 80.91018317 0 44.55611297-35.84751297 81.43007159-80.91208762 81.43007012-45.06838356 0-80.91589654-36.35978356-80.91589508-80.91589507 0-44.55611297 36.87205415-81.42435823 80.91589508-81.42435822z m0 0" p-id="1917"></path>
</svg>
</a>
<div class="information">
<a href="<?php $this->permalink() ?>" class="title" title="<?php $this->title() ?>">
<h6><?php $this->title() ?></h6>
</a>
<a class="abstract" href="<?php $this->permalink() ?>" title="文章摘要"><?php _getAbstract($this) ?></a>
<div class="meta">
<ul class="items">
<li><?php $this->date('Y年m月d日'); ?></li>
<li><?php _getViews($this) ?> 阅读</li>
<li><?php $this->commentsNum('%d'); ?> 评论</li>
<li><?php _getAgree($this) ?> 点赞</li>
</ul>
</div>
</div>
</li>
<?php endwhile; ?>
</ul>
<?php else : ?>
<div class="joe_archive__empty">
<svg class="joe_archive__empty-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="120" height="120">
<path d="M483.322464 136.980228l-2.079821-116.501988A19.278343 19.278343 0 0 1 499.265094 0h2.511785c12.438931 0.103991 22.57406 10.063135 22.57406 22.430072l4.047652 114.446165a22.702049 22.702049 0 0 1-22.606058 22.430073c-10.135129-1.951832-22.478068-10.079134-22.478068-22.326082h0.015999z m165.033818 16.942544c-8.751248 8.695253-23.27 5.847497-32.045246 0a22.638055 22.638055 0 0 1 0-31.701275L700.799775 44.156205a23.006023 23.006023 0 0 1 31.933256 0c8.759247 8.703252 8.759247 23.118013 0 28.957512l-84.376749 80.793057z m-287.215318 0L276.772215 73.001726c-8.767247-5.8235-8.767247-20.13427 0-28.949512a23.006023 23.006023 0 0 1 31.917257 0l84.496739 78.057292a22.606057 22.606057 0 0 1 0 31.701276c-8.775246 5.943489-23.278 8.799244-32.045247 0.11199z m488.686004 679.44561v9.839155l-8.871238 3.663685-306.237682 125.429221-5.759505 2.639773V645.00057l9.903149 17.150526 60.282819 105.062972c2.775761 4.591605 7.735335 7.32737 13.03088 7.32737a14.878721 14.878721 0 0 0 7.951317-2.055823l230.04423-114.438166v175.312934h-0.327971l-0.015999 0.007999z m-671.486294 13.50284l-9.439189-3.655686V654.823726l0.447962 0.455961 236.395684 117.085938c2.535782 1.143902 5.183555 1.823843 7.959316 2.047824a17.150526 17.150526 0 0 0 14.158784-7.759333l59.714868-104.61501 9.919147-17.158525v332.579419l-13.15087-5.279547-306.005702-125.31723z m-21.99811-415.308309l4.719595-8.799244 323.412206 162.850005 4.839585 2.615775-2.759763 4.695597-77.569334 138.93206-2.655772 4.239636-4.719594-2.055824L77.14937 572.662787l5.887494-10.399107 73.297701-130.708767h0.007999z m328.587762-126.917094l12.558921-4.119645v251.882353h-6.335456l-1.607861-1.023912-295.062643-147.867292 9.919147-3.663685 280.527892-95.207819z m328.715751 95.783769l14.174782 4.695597-291.48695 146.707392-7.375366 3.663685V303.053956l5.303544 1.599863L813.654077 400.445587v-0.015999z m122.173501 161.826093l7.367367 13.50284-320.292475 159.306309-4.847583 2.055824-2.519784-4.119646-77.113373-139.508011-2.527783-4.687597 4.703596-2.639774 318.132661-159.18632 2.191811 3.663686 74.921562 131.620688h-0.015999z m49.09978 12.462929l-100.055401-177.384756v-1.015913a16.046621 16.046621 0 0 0-6.775418-7.32737L519.039395 255.194069l-1.039911-0.559952-1.031911-0.46396a14.966714 14.966714 0 0 0-7.967315-2.175813 13.710822 13.710822 0 0 0-7.839327 2.175813l-1.023912 0.46396-1.143901 0.559952-357.881245 134.252463c-3.855669 2.079821-7.10339 5.11956-9.455187 8.815242L31.617283 576.782433a19.414332 19.414332 0 0 0 8.879237 24.957855l81.249017 40.052558 8.431276 4.231636v207.150198a18.910375 18.910375 0 0 0 10.479099 17.150526l358.449196 151.418988c2.991743 1.487872 6.223465 2.159814 9.439189 2.159814 3.247721 0 6.479443-0.671942 9.455187-2.159814l356.497364-151.986939h1.039911a18.022451 18.022451 0 0 0 11.990969-17.158525V644.41662l7.839326-4.127645 78.593246-40.156549 3.231723-1.503871 3.007741-2.047824a15.806642 15.806642 0 0 0 4.719594-21.87012v0.007999z"></path>
</svg>
<span>没有找到相关结果...</span>
</div>
<?php endif; ?>
</div>
<?php $this->pageNav(
'<svg class="icon icon-prev" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="12" height="12"><path d="M822.272 146.944l-396.8 396.8c-19.456 19.456-51.2 19.456-70.656 0-18.944-19.456-18.944-51.2 0-70.656l396.8-396.8c19.456-19.456 51.2-19.456 70.656 0 18.944 19.456 18.944 45.056 0 70.656z" fill="" p-id="9417"></path><path d="M745.472 940.544l-396.8-396.8c-19.456-19.456-19.456-51.2 0-70.656 19.456-19.456 51.2-19.456 70.656 0l403.456 390.144c19.456 25.6 19.456 51.2 0 76.8-26.112 19.968-51.712 19.968-77.312 0.512zM181.248 877.056c0-3.584 0-7.68 0.512-11.264h-0.512V151.552h0.512c-0.512-3.584-0.512-7.168-0.512-11.264 0-43.008 21.504-78.336 48.128-78.336s48.128 34.816 48.128 78.336c0 3.584 0 7.68-0.512 11.264h0.512V865.792h-0.512c0.512 3.584 0.512 7.168 0.512 11.264 0 43.008-21.504 78.336-48.128 78.336s-48.128-35.328-48.128-78.336z"></path></svg>',
'<svg class="icon icon-next" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="12" height="12"><path d="M822.272 146.944l-396.8 396.8c-19.456 19.456-51.2 19.456-70.656 0-18.944-19.456-18.944-51.2 0-70.656l396.8-396.8c19.456-19.456 51.2-19.456 70.656 0 18.944 19.456 18.944 45.056 0 70.656z" fill="" p-id="9417"></path><path d="M745.472 940.544l-396.8-396.8c-19.456-19.456-19.456-51.2 0-70.656 19.456-19.456 51.2-19.456 70.656 0l403.456 390.144c19.456 25.6 19.456 51.2 0 76.8-26.112 19.968-51.712 19.968-77.312 0.512zM181.248 877.056c0-3.584 0-7.68 0.512-11.264h-0.512V151.552h0.512c-0.512-3.584-0.512-7.168-0.512-11.264 0-43.008 21.504-78.336 48.128-78.336s48.128 34.816 48.128 78.336c0 3.584 0 7.68-0.512 11.264h0.512V865.792h-0.512c0.512 3.584 0.512 7.168 0.512 11.264 0 43.008-21.504 78.336-48.128 78.336s-48.128-35.328-48.128-78.336z"></path></svg>',
1,
'...',
array(
'wrapTag' => 'ul',
'wrapClass' => 'joe_pagination',
'itemTag' => 'li',
'textTag' => 'a',
'currentClass' => 'active',
'prevClass' => 'prev',
'nextClass' => 'next'
)
);
?>
</div>
<?php $this->need('public/aside.php'); ?>
</div>
<?php $this->need('public/footer.php'); ?>
</div>
</body>
</html>

View File

@ -0,0 +1 @@
.joe_archive{border-radius:8px;padding:0 15px;background:var(--background);box-shadow:var(--box-shadow)}.joe_archive__title{display:flex;align-items:center;height:45px;line-height:45px;color:var(--main);border-bottom:1px solid var(--classC)}.joe_archive__title-icon{width:20px;height:20px;min-width:20px;min-height:20px;margin-right:5px}.joe_archive__title-title{display:flex;align-items:center}.joe_archive__title-title .muted{color:var(--theme);margin:0 5px}.joe_archive__empty{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:50px 0;color:var(--routine)}.joe_archive__empty-icon{margin-bottom:30px;fill:var(--routine)}

View File

@ -0,0 +1,41 @@
.joe_archive {
border-radius: 8px;
padding: 0 15px;
background: var(--background);
box-shadow: var(--box-shadow);
&__title {
display: flex;
align-items: center;
height: 45px;
line-height: 45px;
color: var(--main);
border-bottom: 1px solid var(--classC);
&-icon {
width: 20px;
height: 20px;
min-width: 20px;
min-height: 20px;
margin-right: 5px;
}
&-title {
display: flex;
align-items: center;
.muted {
color: var(--theme);
margin: 0 5px;
}
}
}
&__empty {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding: 50px 0;
color: var(--routine);
&-icon {
margin-bottom: 30px;
fill: var(--routine);
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,12 @@ html[data-night='night'] {
background: #202122;
z-index: -500;
}
.joe_header__above-logo img {
display: none;
}
.joe_header__above-logo svg {
display: block;
}
}
.joe_dropdown {
@ -72,6 +78,9 @@ html[data-night='night'] {
max-height: 50px;
object-fit: cover;
}
svg {
display: none;
}
&::after {
content: '';
position: absolute;
@ -200,9 +209,78 @@ html[data-night='night'] {
transition: transform 0.35s;
transform: translate3d(100%, -50%, 0) rotateY(180deg);
}
.result {
position: absolute;
top: 60px;
left: 0;
right: 0;
background: var(--background);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
border-radius: 4px;
visibility: hidden;
opacity: 0;
transition: visibility 0.35s, opacity 0.35s, transform 0.35s;
transform: translate3d(0, 15px, 0);
&.active {
transform: translate3d(0, 0, 0);
opacity: 1;
visibility: visible;
}
.item {
height: 40px;
line-height: 40px;
border-bottom: 1px solid var(--classD);
display: flex;
align-items: center;
overflow: hidden;
padding: 0 8px;
transition: background 0.35s;
&:last-child {
border-bottom: none;
}
&:nth-child(1) .sort {
background: #fe2d46;
}
&:nth-child(2) .sort {
background: #f60;
}
&:nth-child(3) .sort {
background: #faa90e;
}
&:hover {
background: var(--classD);
}
.sort {
color: #fff;
background: #7f7f8c;
width: 18px;
height: 18px;
line-height: 18px;
border-radius: 50%;
text-align: center;
margin-right: 8px;
font-weight: 500;
}
.text {
flex: 1;
min-width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: var(--routine);
font-size: 12px;
}
.views {
color: var(--seat);
font-size: 12px;
margin-left: 3px;
}
}
}
}
}
&__below {
position: relative;
border-top: 1px solid var(--classC);
height: 45px;
&-class {
@ -247,6 +325,15 @@ html[data-night='night'] {
}
}
}
&-progress {
position: absolute;
left: 0;
bottom: -3px;
height: 3px;
border-radius: 1.5px;
background: linear-gradient(to right, #4cd964, #5ac8fa, #007aff);
transition: width 0.35s;
}
}
}
@ -1425,6 +1512,50 @@ html[data-night='night'] {
}
}
}
&__friends{
display: flex;
flex-wrap: wrap;
margin: 0 -7.5px;
&-item {
width: 25%;
padding: 7.5px;
.contain {
display: block;
border-radius: 4px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 15px;
color: #fff;
word-break: break-all;
.title {
position: relative;
&::after{
content: "";
position: absolute;
bottom: -5px;
left: 0;
width: 100%;
height: 1px;
background: #fff;
}
}
.content {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
.avatar {
width: 40px;
height: 40px;
min-width: 40px;
min-height: 40px;
border-radius: 50%;
}
}
}
}
}
}
.joe_footer {
@ -1445,6 +1576,48 @@ html[data-night='night'] {
}
}
.joe_pagination {
display: flex;
align-items: center;
justify-content: flex-end;
padding-top: 15px;
li {
margin-left: 5px;
&.active a {
background: var(--theme);
color: #fff;
font-weight: 500;
}
a {
display: flex;
align-items: center;
height: 32px;
color: var(--main);
padding: 0 15px;
background: var(--background);
border-radius: 2px;
transition: background 0.35s, color 0.35s;
user-select: none;
&:hover {
background: var(--theme);
color: #fff;
.icon {
fill: #fff;
}
}
.icon {
width: 12px;
height: 12px;
fill: var(--routine);
transition: fill 0.35s;
&-next {
transform: rotate(180deg);
}
}
}
}
}
.joe_action {
position: fixed;
bottom: 90px;
@ -1491,12 +1664,91 @@ html[data-night='night'] {
}
}
.profile-color-modes-illu-frame {
opacity: 0;
}
.profile-color-modes-illu-red {
stroke: #da3633;
}
.profile-color-modes-illu-orange {
stroke: #f0883e;
}
.profile-color-modes-illu-purple {
stroke: #8957e5;
}
.profile-color-modes-illu-green {
stroke: #3fb950;
}
.profile-color-modes-illu-blue {
stroke: #388bfd;
}
.profile-color-modes-illu-group {
animation: profile-color-modes-illu-anim 0.2s cubic-bezier(0.72, 0.08, 1, 0.68) backwards;
}
.profile-color-modes-illu-frame {
animation: profile-color-modes-illu-anim-frame-show 0s forwards, profile-color-modes-illu-anim-frame-hide 0s forwards;
}
.profile-color-modes-illu-frame:first-child {
opacity: 1;
animation: profile-color-modes-illu-anim-frame-hide 0s forwards;
}
.profile-color-modes-illu-frame:nth-child(8) {
animation: profile-color-modes-illu-anim-frame-show 0s forwards;
}
.profile-color-modes-illu-red {
animation-delay: 0.4s;
animation-duration: 0.1s;
}
.profile-color-modes-illu-orange {
animation-delay: 0.5s;
animation-duration: 0.1s;
}
.profile-color-modes-illu-purple {
animation-delay: 0.6s;
animation-duration: 0.1s;
}
.profile-color-modes-illu-blue {
animation-delay: 0.7s;
animation-duration: 0.1s;
}
.profile-color-modes-illu-green {
animation-delay: 0.8s;
animation-duration: 0.2s;
animation-timing-function: cubic-bezier(0.47, 2.92, 0.84, -1.5);
}
.profile-color-modes-illu-frame:first-child {
animation-delay: 1.8s;
}
.profile-color-modes-illu-frame:nth-child(2) {
animation-delay: 1.8s, 2.58s;
}
.profile-color-modes-illu-frame:nth-child(3) {
animation-delay: 2.58s, 2.66s;
}
.profile-color-modes-illu-frame:nth-child(4) {
animation-delay: 2.66s, 2.78s;
}
.profile-color-modes-illu-frame:nth-child(5) {
animation-delay: 2.78s, 2.84s;
}
.profile-color-modes-illu-frame:nth-child(6) {
animation-delay: 2.84s, 3.44s;
}
.profile-color-modes-illu-frame:nth-child(7) {
animation-delay: 3.44s, 3.56s;
}
.profile-color-modes-illu-frame:nth-child(8) {
animation-delay: 3.56s;
}
.profile-color-modes-illu-frame:nth-child(9),
.profile-color-modes-illu-frame:nth-child(10) {
animation: none;
}
@keyframes box_shadow {
0% {
box-shadow: 0 0 0 0 #f56c6c;
}
}
@keyframes progress {
0% {
background-position: 0 0;
@ -1505,7 +1757,6 @@ html[data-night='night'] {
background-position: 30px 0;
}
}
@keyframes list_thumbnail_loading {
0% {
transform: scale(0.85);
@ -1530,3 +1781,26 @@ html[data-night='night'] {
width: 80%;
}
}
@keyframes profile-color-modes-illu-anim {
0% {
stroke: #666;
}
}
@keyframes profile-color-modes-illu-anim-frame-show {
0% {
opacity: 0;
animation-timing-function: ease-out;
}
to {
opacity: 1;
}
}
@keyframes profile-color-modes-illu-anim-frame-hide {
0% {
opacity: 1;
animation-timing-function: ease-in;
}
to {
opacity: 0;
}
}

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;font-family:'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif}body::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;z-index:-520;pointer-events:none}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[data-night='night']{--background: #303133;--box-shadow: none}
*{margin:0;padding:0;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-radius:4px;background:var(--seat)}::-webkit-scrollbar-track{background:transparent}body{font-size:14px;font-family:'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif}body::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;z-index:-520;pointer-events:none}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[data-night='night']{--background: #303133;--box-shadow: none}

View File

@ -8,6 +8,7 @@
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {

9
assets/js/joe.archive.js Normal file
View File

@ -0,0 +1,9 @@
console.time('Archive.js执行时长');
document.addEventListener('DOMContentLoaded', () => {
/* 激活列表特效 */
{
const wow = $('.joe_archive__list').attr('data-wow');
if (wow !== 'off' && wow) new WOW({ boxClass: 'wow', animateClass: `animated ${wow}`, offset: 0, mobile: true, live: true, scrollContainer: null }).init();
}
console.timeEnd('Archive.js执行时长');
});

View File

@ -34,6 +34,20 @@ document.addEventListener('DOMContentLoaded', () => {
}
}
/* 搜索框弹窗 */
{
$('.joe_header__above-search .input').on('click', e => {
e.stopPropagation();
$('.joe_header__above-search .result').addClass('active');
});
$(document).on('click', function () {
$('.joe_header__above-search .result').removeClass('active');
});
$(document).on('scroll', function () {
$('.joe_header__above-search .result').removeClass('active');
});
}
/* 激活全局下拉框功能 */
{
$('.joe_dropdown').each(function (index, item) {
@ -180,6 +194,22 @@ document.addEventListener('DOMContentLoaded', () => {
});
}
}
/* 计算页面滚动多少 */
{
const calcProgress = () => {
let scrollTop = $(window).scrollTop();
let documentHeight = $(document).height();
let windowHeight = $(window).height();
let progress = parseInt((scrollTop / (documentHeight - windowHeight)) * 100);
if (progress <= 0) progress = 0;
if (progress >= 100) progress = 100;
$('.joe_header__below-progress').css('width', progress + '%');
};
calcProgress();
$(window).on('scroll', () => calcProgress());
}
/* 懒加载 */
new LazyLoad('.lazyload');

View File

@ -1,105 +1,104 @@
console.time('Post&Page.js执行时长')
console.time('Post&Page.js执行时长');
document.addEventListener('DOMContentLoaded', () => {
/* 获取本篇文章百度收录情况 */
{
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'baidu_record', site: window.location.href },
success(res) {
if (res.data && res.data === '已收录') {
$('#Joe_Baidu_Record').css('color', '#67C23A')
$('#Joe_Baidu_Record').html('已收录')
} else {
const url = `https://ziyuan.baidu.com/linksubmit/url?sitename=${encodeURI(window.location.href)}`
$('#Joe_Baidu_Record').html(`<a target="_blank" href="${url}" rel="noopener noreferrer nofollow" style="color: #F56C6C">未收录,提交收录</a>`)
}
}
})
}
/* 获取本篇文章百度收录情况 */
{
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'baidu_record', site: window.location.href },
success(res) {
if (res.data && res.data === '已收录') {
$('#Joe_Baidu_Record').css('color', '#67C23A');
$('#Joe_Baidu_Record').html('已收录');
} else {
const url = `https://ziyuan.baidu.com/linksubmit/url?sitename=${encodeURI(window.location.href)}`;
$('#Joe_Baidu_Record').html(`<a target="_blank" href="${url}" rel="noopener noreferrer nofollow" style="color: #F56C6C">未收录,提交收录</a>`);
}
}
});
}
/* 激活代码高亮 */
{
Prism.highlightAll()
}
/* 激活代码高亮 */
{
Prism.highlightAll();
}
/* 激活图片预览功能 */
{
$('.joe_detail__article img:not(img.owo_image)').each(function () {
$(this).wrap($(`<div data-fancybox="Joe" href="${$(this).attr('src')}"></div>`))
})
}
/* 激活图片预览功能 */
{
$('.joe_detail__article img:not(img.owo_image)').each(function () {
$(this).wrap($(`<div data-fancybox="Joe" href="${$(this).attr('src')}"></div>`));
});
}
/* 设置文章内的链接为新窗口打开 */
{
$('.joe_detail__article a').each(() => $(this).attr({ target: '_blank', rel: 'noopener noreferrer nofollow' }))
}
/* 设置文章内的链接为新窗口打开 */
{
$('.joe_detail__article a').each(() => $(this).attr({ target: '_blank', rel: 'noopener noreferrer nofollow' }));
}
/* 当前页的CID */
const cid = $('.joe_detail').attr('data-cid')
/* 当前页的CID */
const cid = $('.joe_detail').attr('data-cid');
/* 激活浏览功能 */
{
let viewsArr = localStorage.getItem(Joe.encryption('views')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('views')))) : []
const flag = viewsArr.includes(cid)
if (!flag) {
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'handle_views', cid },
success(res) {
if (res.code !== 1) return
$('#Joe_Article_Views').html(`${res.data.views} 阅读`)
viewsArr.push(cid)
const name = Joe.encryption('views')
const val = Joe.encryption(JSON.stringify(viewsArr))
localStorage.setItem(name, val)
}
})
}
}
/* 激活浏览功能 */
{
let viewsArr = localStorage.getItem(Joe.encryption('views')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('views')))) : [];
const flag = viewsArr.includes(cid);
if (!flag) {
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'handle_views', cid },
success(res) {
if (res.code !== 1) return;
$('#Joe_Article_Views').html(`${res.data.views} 阅读`);
viewsArr.push(cid);
const name = Joe.encryption('views');
const val = Joe.encryption(JSON.stringify(viewsArr));
localStorage.setItem(name, val);
}
});
}
}
/* 激活文章点赞功能 */
{
let agreeArr = localStorage.getItem(Joe.encryption('agree')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('agree')))) : []
if (agreeArr.includes(cid)) $('.joe_detail__agree .icon-1').addClass('active')
else $('.joe_detail__agree .icon-2').addClass('active')
let _loading = false
$('.joe_detail__agree .icon').on('click', function () {
if (_loading) return
_loading = true
agreeArr = localStorage.getItem(Joe.encryption('agree')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('agree')))) : []
let flag = agreeArr.includes(cid)
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'handle_agree', cid, type: flag ? 'disagree' : 'agree' },
success(res) {
if (res.code !== 1) return
$('.joe_detail__agree .text').html(res.data.agree)
if (flag) {
const index = agreeArr.findIndex(_ => _ === cid)
agreeArr.splice(index, 1)
$('.joe_detail__agree .icon-1').removeClass('active')
$('.joe_detail__agree .icon-2').addClass('active')
$('.joe_detail__agree .icon').removeClass('active')
} else {
agreeArr.push(cid)
$('.joe_detail__agree .icon-2').removeClass('active')
$('.joe_detail__agree .icon-1').addClass('active')
$('.joe_detail__agree .icon').addClass('active')
}
const name = Joe.encryption('agree')
const val = Joe.encryption(JSON.stringify(agreeArr))
localStorage.setItem(name, val)
},
complete() {
_loading = false
}
})
})
}
console.timeEnd('Post&Page.js执行时长')
})
/* 激活文章点赞功能 */
{
let agreeArr = localStorage.getItem(Joe.encryption('agree')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('agree')))) : [];
if (agreeArr.includes(cid)) $('.joe_detail__agree .icon-1').addClass('active');
else $('.joe_detail__agree .icon-2').addClass('active');
let _loading = false;
$('.joe_detail__agree .icon').on('click', function () {
if (_loading) return;
_loading = true;
agreeArr = localStorage.getItem(Joe.encryption('agree')) ? JSON.parse(Joe.decrypt(localStorage.getItem(Joe.encryption('agree')))) : [];
let flag = agreeArr.includes(cid);
$.ajax({
url: Joe.BASE_API,
type: 'POST',
data: { routeType: 'handle_agree', cid, type: flag ? 'disagree' : 'agree' },
success(res) {
if (res.code !== 1) return;
$('.joe_detail__agree .text').html(res.data.agree);
if (flag) {
const index = agreeArr.findIndex(_ => _ === cid);
agreeArr.splice(index, 1);
$('.joe_detail__agree .icon-1').removeClass('active');
$('.joe_detail__agree .icon-2').addClass('active');
$('.joe_detail__agree .icon').removeClass('active');
} else {
agreeArr.push(cid);
$('.joe_detail__agree .icon-2').removeClass('active');
$('.joe_detail__agree .icon-1').addClass('active');
$('.joe_detail__agree .icon').addClass('active');
}
const name = Joe.encryption('agree');
const val = Joe.encryption(JSON.stringify(agreeArr));
localStorage.setItem(name, val);
},
complete() {
_loading = false;
}
});
});
}
console.timeEnd('Post&Page.js执行时长');
});

View File

@ -9,6 +9,9 @@ require_once('route.php');
/* 主题初始化 */
function themeInit($self)
{
Helper::options()->commentsThreaded = true;
/* 强制显示一页15篇文章 */
$self->parameter->pageSize = 15;
/* 主题开放API 路由规则 */
$path_info = $self->request->getPathinfo();

90
friends.php Normal file
View File

@ -0,0 +1,90 @@
<?php
/**
* 友联
*
* @package custom
*
**/
?>
<!DOCTYPE html>
<html lang="zh-CN">
<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" />
<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'); ?>
<div class="joe_container">
<div class="joe_main">
<div class="joe_detail" data-cid="<?php echo $this->cid ?>">
<?php $this->need('public/article.php'); ?>
<?php
$friends = [];
$friends_color = [
'#0396ff',
'#ea5455',
'#7367f0',
'#28c76f',
'#9f44d3',
'#6fa3ef',
'#bc99c4',
'#46c47c',
'#f9bb3c',
'#e8583d',
'#f68e5f',
'#67c23a',
'#e6a23c',
'#f56c6c'
];
$friends_text = $this->options->JFriends;
if ($friends_text) {
$friends_arr = explode("\r\n", $friends_text);
if (count($friends_arr) > 0) {
for ($i = 0; $i < count($friends_arr); $i++) {
$name = explode("||", $friends_arr[$i])[0];
$url = explode("||", $friends_arr[$i])[1];
$avatar = explode("||", $friends_arr[$i])[2];
$desc = explode("||", $friends_arr[$i])[3];
$friends[] = array("name" => trim($name), "url" => trim($url), "avatar" => trim($avatar), "desc" => trim($desc));
};
}
}
?>
<?php if (sizeof($friends) > 0) : ?>
<ul class="joe_detail__friends">
<?php foreach ($friends as $item) : ?>
<li class="joe_detail__friends-item">
<a class="contain" href="http://ae.js.cn" target="_blank" rel="noopener noreferrer" style="background: <?php echo $friends_color[rand(0, count($friends_color) - 1)] ?>">
<span class="title"><?php echo $item['name']; ?></span>
<div class="content">
<p class="desc"><?php echo $item['desc']; ?></p>
<img class="avatar" src="<?php echo $item['avatar']; ?>" alt="<?php echo $item['name']; ?>" />
</div>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php $this->need('public/handle.php'); ?>
<?php $this->need('public/copyright.php'); ?>
</div>
</div>
<?php $this->need('public/aside.php'); ?>
</div>
<?php $this->need('public/footer.php'); ?>
</div>
</body>
</html>

View File

@ -75,6 +75,22 @@ function themeConfig($form)
$JNavMaxNum->setAttribute('class', 'joe_content joe_global');
$form->addInput($JNavMaxNum->multiMode());
$JCustomNavs = new Typecho_Widget_Helper_Form_Element_Textarea(
'JCustomNavs',
NULL,
NULL,
'导航栏自定义链接(非必填)',
'介绍:用于自定义导航栏链接 <br />
格式:跳转文字 || 跳转链接(中间使用两个竖杠分隔)<br />
其他:一行一个,一行代表一个超链接 <br />
例如:<br />
百度一下 || https://baidu.com <br />
腾讯视频 || https://v.qq.com
'
);
$JCustomNavs->setAttribute('class', 'joe_content joe_global');
$form->addInput($JCustomNavs);
$JList_Animate = new Typecho_Widget_Helper_Form_Element_Select(
'JList_Animate',
array(
@ -565,4 +581,17 @@ function themeConfig($form)
);
$JIndex_Notice->setAttribute('class', 'joe_content joe_index');
$form->addInput($JIndex_Notice);
$JFriends = new Typecho_Widget_Helper_Form_Element_Textarea(
'JFriends',
NULL,
'Joe的博客 || https://ae.js.cn || https://cdn.jsdelivr.net/npm/typecho_joe_theme@4.3.5/assets/img/link.png || Joe主题作者',
'友情链接(非必填)',
'介绍:用于填写友情链接 <br />
注意:您需要先增加友联链接页面,该项才会生效 <br />
格式:博客名称 || 博客地址 || 博客头像 || 博客简介 <br />
其他:一行一个,一行代表一个友联'
);
$JFriends->setAttribute('class', 'joe_content joe_other');
$form->addInput($JFriends);
} ?>

View File

@ -19,6 +19,8 @@
<div class="joe_main">
<div class="joe_detail" data-cid="<?php echo $this->cid ?>">
<?php $this->need('public/article.php'); ?>
<?php $this->need('public/handle.php'); ?>
<?php $this->need('public/copyright.php'); ?>
</div>
</div>
<?php $this->need('public/aside.php'); ?>

View File

@ -14,6 +14,7 @@
<body>
<div id="Joe">
<?php $this->need('public/header.php'); ?>
<div class="joe_container joe_bread">
<ul class="joe_bread__bread">
<li class="item">
@ -43,6 +44,8 @@
</div>
<?php endif; ?>
<?php $this->need('public/article.php'); ?>
<?php $this->need('public/handle.php'); ?>
<?php $this->need('public/copyright.php'); ?>
</div>
</div>
<?php $this->need('public/aside.php'); ?>

View File

@ -31,57 +31,4 @@
<?php else : ?>
<?php _parseContent($this) ?>
<?php endif; ?>
</div>
<div class="joe_detail__agree">
<div class="agree">
<div class="icon">
<svg class="icon-1" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5948" width="28" height="28">
<path d="M736 128c-65.952 0-128.576 25.024-176.384 70.464-4.576 4.32-28.672 28.736-47.328 47.68L464.96 199.04C417.12 153.216 354.272 128 288 128c-141.152 0-256 114.848-256 256 0 82.432 41.184 144.288 76.48 182.496l316.896 320.128C450.464 911.68 478.304 928 512 928c33.696 0 61.568-16.32 86.752-41.504l316.736-320 2.208-2.464C955.904 516.384 992 471.392 992 384 992 242.848 877.152 128 736 128z" p-id="5949" fill="#ffffff"></path>
</svg>
<svg class="icon-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5749" width="28" height="28">
<path d="M512 928c-28.928 0-57.92-12.672-86.624-41.376L106.272 564C68.064 516.352 32 471.328 32 384c0-141.152 114.848-256 256-256 53.088 0 104 16.096 147.296 46.592 14.432 10.176 17.92 30.144 7.712 44.608-10.176 14.432-30.08 17.92-44.608 7.712C366.016 204.064 327.808 192 288 192c-105.888 0-192 86.112-192 192 0 61.408 20.288 90.112 59.168 138.688l315.584 318.816C486.72 857.472 499.616 863.808 512 864c12.704 0.192 24.928-6.176 41.376-22.624l316.672-319.904C896.064 493.28 928 445.696 928 384c0-105.888-86.112-192-192-192-48.064 0-94.08 17.856-129.536 50.272l-134.08 134.112c-12.512 12.512-32.736 12.512-45.248 0s-12.512-32.736 0-45.248l135.104-135.136C610.56 151.808 671.904 128 736 128c141.152 0 256 114.848 256 256 0 82.368-41.152 144.288-75.68 181.696l-317.568 320.8C569.952 915.328 540.96 928 512 928z" p-id="5750" fill="#ffffff"></path>
</svg>
</div>
<span class="text"><?php _getAgree($this) ?></span>
</div>
</div>
<div class="joe_detail__copyright">
<div class="content">
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M614.72 554.538c-49.086-6.399-100.27-2.1-149.256-2.1-119.465 0-209.04 95.972-206.84 215.437 0 17.095 8.498 31.99 23.493 40.488 14.896 10.697 34.09 14.896 53.285 17.095 61.882 6.398 123.664 6.398 198.342 6.398 40.488 0 93.872-2.1 142.858-4.298 27.692 0 53.284-4.3 78.877-14.896 19.194-8.498 29.89-19.194 31.99-40.488 8.498-104.57-72.478-204.84-172.75-217.636zM680.8 375.39c0-87.474-74.678-162.053-164.251-162.053-89.574 0-162.053 74.679-162.053 162.053-2.1 87.474 74.678 164.252 162.053 164.252 89.673 0 164.252-74.678 164.252-164.252z" fill="#FFFFFF"></path>
<path d="M512.35 0C228.733 0 0.5 228.233 0.5 511.85s228.233 511.85 511.85 511.85 511.85-228.233 511.85-511.85S795.967 0 512.35 0z m275.12 772.074c-2.1 21.294-12.797 31.99-31.991 40.488-25.593 10.697-51.185 14.896-78.877 14.896-49.086 2.099-102.37 4.298-142.858 4.298-74.678 0-136.46 0-198.342-6.398-19.195-2.1-38.389-6.398-53.285-17.095-14.895-8.497-23.493-23.493-23.493-40.488-2.1-119.465 87.475-215.437 206.84-215.437 49.085 0 100.27-4.299 149.256 2.1 100.27 12.896 181.247 113.166 172.75 217.636zM354.495 375.39c0-87.474 72.479-162.053 162.053-162.053S680.8 288.016 680.8 375.39c0 89.574-74.679 164.252-164.252 164.252-87.375 0-164.152-76.778-162.053-164.252z" fill="#249FF8"></path>
</svg>
<span>版权属于:</span>
<p class="text"><?php $this->options->title() ?></p>
</div>
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M511.854421 0a511.854421 511.854421 0 1 0 512.145579 511.854421A511.854421 511.854421 0 0 0 511.854421 0z" fill="#39B54A"></path>
<path d="M576.491328 630.355417l-116.462895 116.462894a129.56497 129.56497 0 0 1-182.555587 0l-2.0381-2.038101a128.982656 128.982656 0 0 1 0-182.26443l81.232868-81.232868a179.644015 179.644015 0 0 0 13.102076 70.460051l-52.69946 52.408302a69.877737 69.877737 0 0 0 0 98.702303l2.038101 2.038101a70.168894 70.168894 0 0 0 98.702303 0l116.462895-116.462894a69.877737 69.877737 0 0 0 0-98.702304l-2.038101-2.0381a69.586579 69.586579 0 0 0-13.975547-10.772818l42.508956-42.508956a128.109184 128.109184 0 0 1 13.102076 11.355132l2.0381 2.0381a129.273813 129.273813 0 0 1 0 182.26443z" fill="#FFFFFF"></path>
<path d="M746.235997 460.901905l-81.232869 81.232869a179.352858 179.352858 0 0 0-13.102076-70.460051l52.69946-52.408303a69.877737 69.877737 0 0 0 0-98.702303l-2.038101-2.038101a69.877737 69.877737 0 0 0-98.702303 0l-116.462894 116.462895a69.877737 69.877737 0 0 0 0 98.702303l2.0381 2.038101a68.421951 68.421951 0 0 0 13.975548 10.772817l-42.508957 42.508957a136.552744 136.552744 0 0 1-13.102076-11.355132l-2.0381-2.038101a128.982656 128.982656 0 0 1 0-182.26443l116.462894-116.462894a129.56497 129.56497 0 0 1 182.555587 0l2.038101 2.0381a128.982656 128.982656 0 0 1 0 182.26443z" fill="#FFFFFF"></path>
</svg>
<span>本文链接:</span>
<p class="text">
<a class="link" href="<?php $this->permalink() ?>" target="_blank" rel="noopener noreferrer nofollow"><?php $this->permalink() ?></a>
(转载时请注明本文出处及文章链接)
</p>
</div>
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F3B243"></path>
<path d="M630.784 323.584m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M630.784 688.128m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M319.488 512m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M341.037056 480.370688l257.343488-175.7184 27.713536 40.59136-257.339392 175.7184z" fill="#FFFFFF"></path>
<path d="M349.052928 488.452096l252.854272 182.10816-28.725248 39.886848-252.874752-182.10816z" fill="#FFFFFF"></path>
</svg>
<span>作品采用:</span>
<p class="text">
<a class="link" href="//creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" target="_blank" rel="noopener noreferrer nofollow">署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)</a>
》许可协议授权
</p>
</div>
</div>
</div>

40
public/copyright.php Normal file
View File

@ -0,0 +1,40 @@
<div class="joe_detail__copyright">
<div class="content">
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M614.72 554.538c-49.086-6.399-100.27-2.1-149.256-2.1-119.465 0-209.04 95.972-206.84 215.437 0 17.095 8.498 31.99 23.493 40.488 14.896 10.697 34.09 14.896 53.285 17.095 61.882 6.398 123.664 6.398 198.342 6.398 40.488 0 93.872-2.1 142.858-4.298 27.692 0 53.284-4.3 78.877-14.896 19.194-8.498 29.89-19.194 31.99-40.488 8.498-104.57-72.478-204.84-172.75-217.636zM680.8 375.39c0-87.474-74.678-162.053-164.251-162.053-89.574 0-162.053 74.679-162.053 162.053-2.1 87.474 74.678 164.252 162.053 164.252 89.673 0 164.252-74.678 164.252-164.252z" fill="#FFFFFF"></path>
<path d="M512.35 0C228.733 0 0.5 228.233 0.5 511.85s228.233 511.85 511.85 511.85 511.85-228.233 511.85-511.85S795.967 0 512.35 0z m275.12 772.074c-2.1 21.294-12.797 31.99-31.991 40.488-25.593 10.697-51.185 14.896-78.877 14.896-49.086 2.099-102.37 4.298-142.858 4.298-74.678 0-136.46 0-198.342-6.398-19.195-2.1-38.389-6.398-53.285-17.095-14.895-8.497-23.493-23.493-23.493-40.488-2.1-119.465 87.475-215.437 206.84-215.437 49.085 0 100.27-4.299 149.256 2.1 100.27 12.896 181.247 113.166 172.75 217.636zM354.495 375.39c0-87.474 72.479-162.053 162.053-162.053S680.8 288.016 680.8 375.39c0 89.574-74.679 164.252-164.252 164.252-87.375 0-164.152-76.778-162.053-164.252z" fill="#249FF8"></path>
</svg>
<span>版权属于:</span>
<p class="text"><?php $this->options->title() ?></p>
</div>
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M511.854421 0a511.854421 511.854421 0 1 0 512.145579 511.854421A511.854421 511.854421 0 0 0 511.854421 0z" fill="#39B54A"></path>
<path d="M576.491328 630.355417l-116.462895 116.462894a129.56497 129.56497 0 0 1-182.555587 0l-2.0381-2.038101a128.982656 128.982656 0 0 1 0-182.26443l81.232868-81.232868a179.644015 179.644015 0 0 0 13.102076 70.460051l-52.69946 52.408302a69.877737 69.877737 0 0 0 0 98.702303l2.038101 2.038101a70.168894 70.168894 0 0 0 98.702303 0l116.462895-116.462894a69.877737 69.877737 0 0 0 0-98.702304l-2.038101-2.0381a69.586579 69.586579 0 0 0-13.975547-10.772818l42.508956-42.508956a128.109184 128.109184 0 0 1 13.102076 11.355132l2.0381 2.0381a129.273813 129.273813 0 0 1 0 182.26443z" fill="#FFFFFF"></path>
<path d="M746.235997 460.901905l-81.232869 81.232869a179.352858 179.352858 0 0 0-13.102076-70.460051l52.69946-52.408303a69.877737 69.877737 0 0 0 0-98.702303l-2.038101-2.038101a69.877737 69.877737 0 0 0-98.702303 0l-116.462894 116.462895a69.877737 69.877737 0 0 0 0 98.702303l2.0381 2.038101a68.421951 68.421951 0 0 0 13.975548 10.772817l-42.508957 42.508957a136.552744 136.552744 0 0 1-13.102076-11.355132l-2.0381-2.038101a128.982656 128.982656 0 0 1 0-182.26443l116.462894-116.462894a129.56497 129.56497 0 0 1 182.555587 0l2.038101 2.0381a128.982656 128.982656 0 0 1 0 182.26443z" fill="#FFFFFF"></path>
</svg>
<span>本文链接:</span>
<p class="text">
<a class="link" href="<?php $this->permalink() ?>" target="_blank" rel="noopener noreferrer nofollow"><?php $this->permalink() ?></a>
(转载时请注明本文出处及文章链接)
</p>
</div>
<div class="item">
<svg class="icon" width="20" height="20" viewBox="0 0 1024 1024">
<path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F3B243"></path>
<path d="M630.784 323.584m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M630.784 688.128m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M319.488 512m-90.112 0a90.112 90.112 0 1 0 180.224 0 90.112 90.112 0 1 0-180.224 0Z" fill="#FFFFFF"></path>
<path d="M341.037056 480.370688l257.343488-175.7184 27.713536 40.59136-257.339392 175.7184z" fill="#FFFFFF"></path>
<path d="M349.052928 488.452096l252.854272 182.10816-28.725248 39.886848-252.874752-182.10816z" fill="#FFFFFF"></path>
</svg>
<span>作品采用:</span>
<p class="text">
<a class="link" href="//creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" target="_blank" rel="noopener noreferrer nofollow">署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)</a>
》许可协议授权
</p>
</div>
</div>
</div>

View File

@ -29,4 +29,6 @@
<script>
console.log("PHP输出页面时长: <?php _endCountTime(); ?>")
</script>
</script>
<?php $this->footer(); ?>

13
public/handle.php Normal file
View File

@ -0,0 +1,13 @@
<div class="joe_detail__agree">
<div class="agree">
<div class="icon">
<svg class="icon-1" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5948" width="28" height="28">
<path d="M736 128c-65.952 0-128.576 25.024-176.384 70.464-4.576 4.32-28.672 28.736-47.328 47.68L464.96 199.04C417.12 153.216 354.272 128 288 128c-141.152 0-256 114.848-256 256 0 82.432 41.184 144.288 76.48 182.496l316.896 320.128C450.464 911.68 478.304 928 512 928c33.696 0 61.568-16.32 86.752-41.504l316.736-320 2.208-2.464C955.904 516.384 992 471.392 992 384 992 242.848 877.152 128 736 128z" p-id="5949" fill="#ffffff"></path>
</svg>
<svg class="icon-2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5749" width="28" height="28">
<path d="M512 928c-28.928 0-57.92-12.672-86.624-41.376L106.272 564C68.064 516.352 32 471.328 32 384c0-141.152 114.848-256 256-256 53.088 0 104 16.096 147.296 46.592 14.432 10.176 17.92 30.144 7.712 44.608-10.176 14.432-30.08 17.92-44.608 7.712C366.016 204.064 327.808 192 288 192c-105.888 0-192 86.112-192 192 0 61.408 20.288 90.112 59.168 138.688l315.584 318.816C486.72 857.472 499.616 863.808 512 864c12.704 0.192 24.928-6.176 41.376-22.624l316.672-319.904C896.064 493.28 928 445.696 928 384c0-105.888-86.112-192-192-192-48.064 0-94.08 17.856-129.536 50.272l-134.08 134.112c-12.512 12.512-32.736 12.512-45.248 0s-12.512-32.736 0-45.248l135.104-135.136C610.56 151.808 671.904 128 736 128c141.152 0 256 114.848 256 256 0 82.368-41.152 144.288-75.68 181.696l-317.568 320.8C569.952 915.328 540.96 928 512 928z" p-id="5750" fill="#ffffff"></path>
</svg>
</div>
<span class="text"><?php _getAgree($this) ?></span>
</div>
</div>

View File

@ -3,6 +3,78 @@
<div class="joe_container">
<a title="<?php $this->options->title(); ?>" class="joe_header__above-logo" href="<?php $this->options->siteUrl(); ?>">
<img src="<?php $this->options->JLogo() ?>" alt="<?php $this->options->title(); ?>" />
<svg class="profile-color-modes" height="45" viewBox="0 0 106 60" fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
<g class="profile-color-modes-illu-group profile-color-modes-illu-red">
<path d="M37.5 58.5V57.5C37.5 49.768 43.768 43.5 51.5 43.5V43.5C59.232 43.5 65.5 49.768 65.5 57.5V58.5"></path>
</g>
<g class="profile-color-modes-illu-group profile-color-modes-illu-orange">
<path d="M104.07 58.5C103.401 55.092 97.7635 54.3869 95.5375 57.489C97.4039 54.6411 99.7685 48.8845 94.6889 46.6592C89.4817 44.378 86.1428 50.1604 85.3786 54.1158C85.9519 50.4768 83.7226 43.294 78.219 44.6737C72.7154 46.0534 72.7793 51.3754 74.4992 55.489C74.169 54.7601 72.4917 53.3567 70.5 52.8196"></path>
</g>
<g class="profile-color-modes-illu-group profile-color-modes-illu-purple">
<path d="M5.51109 58.5V52.5C5.51109 41.4543 14.4654 32.5 25.5111 32.5C31.4845 32.5 36.8464 35.1188 40.5111 39.2709C40.7212 39.5089 40.9258 39.7521 41.1245 40"></path>
<path d="M27.511 49.5C29.6777 49.5 28.911 49.5 32.511 49.5"></path>
<path d="M27.511 56.5C29.6776 56.5 26.911 56.5 30.511 56.5"></path>
</g>
<g class="profile-color-modes-illu-group profile-color-modes-illu-green">
<circle cx="5.5" cy="12.5" r="4"></circle>
<circle cx="18.5" cy="5.5" r="4"></circle>
<path d="M18.5 9.5L18.5 27.5"></path>
<path d="M18.5 23.5C6 23.5 5.5 23.6064 5.5 16.5"></path>
</g>
<g class="profile-color-modes-illu-group profile-color-modes-illu-blue">
<g class="profile-color-modes-illu-frame">
<path d="M40.6983 31.5C40.5387 29.6246 40.6456 28.0199 41.1762 27.2317C42.9939 24.5312 49.7417 26.6027 52.5428 30.2409C54.2551 29.8552 56.0796 29.6619 57.9731 29.6619C59.8169 29.6619 61.5953 29.8452 63.2682 30.211C66.0833 26.5913 72.799 24.5386 74.6117 27.2317C75.6839 28.8246 75.0259 33.7525 73.9345 37.5094C74.2013 37.9848 74.4422 38.4817 74.6555 39"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M41.508 31.5C41.6336 31.2259 41.7672 30.9582 41.9085 30.6968C40.7845 26.9182 40.086 21.8512 41.1762 20.2317C42.9939 17.5312 49.7417 19.6027 52.5428 23.2409C54.2551 22.8552 56.0796 22.6619 57.9731 22.6619C59.8169 22.6619 61.5953 22.8452 63.2682 23.211C66.0833 19.5913 72.799 17.5386 74.6117 20.2317C75.6839 21.8246 75.0259 26.7525 73.9345 30.5094C75.1352 32.6488 75.811 35.2229 75.811 38.2283C75.811 38.49 75.8058 38.7472 75.7957 39"></path>
<path d="M49.4996 33V35.6757"></path>
<path d="M67.3375 33V35.6757"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M41.508 31.5C41.6336 31.2259 41.7672 30.9582 41.9085 30.6968C40.7845 26.9182 40.086 21.8512 41.1762 20.2317C42.9939 17.5312 49.7417 19.6027 52.5428 23.2409C54.2551 22.8552 56.0796 22.6619 57.9731 22.6619C59.8169 22.6619 61.5953 22.8452 63.2682 23.211C66.0833 19.5913 72.799 17.5386 74.6117 20.2317C75.6839 21.8246 75.0259 26.7525 73.9345 30.5094C75.1352 32.6488 75.811 35.2229 75.811 38.2283C75.811 38.49 75.8058 38.7472 75.7957 39"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M41.508 31.5C41.6336 31.2259 41.7672 30.9582 41.9085 30.6968C40.7845 26.9182 40.086 21.8512 41.1762 20.2317C42.9939 17.5312 49.7417 19.6027 52.5428 23.2409C54.2551 22.8552 56.0796 22.6619 57.9731 22.6619C59.8169 22.6619 61.5953 22.8452 63.2682 23.211C66.0833 19.5913 72.799 17.5386 74.6117 20.2317C75.6839 21.8246 75.0259 26.7525 73.9345 30.5094C75.1352 32.6488 75.811 35.2229 75.811 38.2283C75.811 38.49 75.8058 38.7472 75.7957 39"></path>
<path d="M49.4996 33V35.6757"></path>
<path d="M67.3375 33V35.6757"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M41.508 31.5C41.6336 31.2259 41.7672 30.9582 41.9085 30.6968C40.7845 26.9182 40.086 21.8512 41.1762 20.2317C42.9939 17.5312 49.7417 19.6027 52.5428 23.2409C54.2551 22.8552 56.0796 22.6619 57.9731 22.6619C59.8169 22.6619 61.5953 22.8452 63.2682 23.211C66.0833 19.5913 72.799 17.5386 74.6117 20.2317C75.6839 21.8246 75.0259 26.7525 73.9345 30.5094C75.1352 32.6488 75.811 35.2229 75.811 38.2283C75.811 38.49 75.8058 38.7472 75.7957 39"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M41.508 31.5C41.6336 31.2259 41.7672 30.9582 41.9085 30.6968C40.7845 26.9182 40.086 21.8512 41.1762 20.2317C42.9939 17.5312 49.7417 19.6027 52.5428 23.2409C54.2551 22.8552 56.0796 22.6619 57.9731 22.6619C59.8169 22.6619 61.5953 22.8452 63.2682 23.211C66.0833 19.5913 72.799 17.5386 74.6117 20.2317C75.6839 21.8246 75.0259 26.7525 73.9345 30.5094C75.1352 32.6488 75.811 35.2229 75.811 38.2283C75.811 38.49 75.8058 38.7472 75.7957 39"></path>
<path d="M49.4996 33V35.6757"></path>
<path d="M67.3375 33V35.6757"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M73.4999 40.2236C74.9709 38.2049 75.8108 35.5791 75.8108 32.2283C75.8108 29.2229 75.1351 26.6488 73.9344 24.5094C75.0258 20.7525 75.6838 15.8246 74.6116 14.2317C72.7989 11.5386 66.0832 13.5913 63.2681 17.211C61.5952 16.8452 59.8167 16.6619 57.973 16.6619C56.0795 16.6619 54.2549 16.8552 52.5427 17.2409C49.7416 13.6027 42.9938 11.5312 41.176 14.2317C40.0859 15.8512 40.7843 20.9182 41.9084 24.6968C41.003 26.3716 40.4146 28.3065 40.2129 30.5"></path>
<path d="M82.9458 30.5471L76.8413 31.657"></path>
<path d="M76.2867 34.4319L81.8362 37.7616"></path>
<path d="M49.4995 27.8242V30.4999"></path>
<path d="M67.3374 27.8242V30.4998"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M45.3697 34.2658C41.8877 32.1376 39.7113 28.6222 39.7113 23.2283C39.7113 20.3101 40.3483 17.7986 41.4845 15.6968C40.3605 11.9182 39.662 6.85125 40.7522 5.23168C42.5699 2.53117 49.3177 4.6027 52.1188 8.24095C53.831 7.85521 55.6556 7.66186 57.5491 7.66186C59.3929 7.66186 61.1713 7.84519 62.8442 8.21095C65.6593 4.59134 72.375 2.5386 74.1877 5.23168C75.2599 6.82461 74.6019 11.7525 73.5105 15.5094C74.7112 17.6488 75.3869 20.2229 75.3869 23.2283C75.3869 28.6222 73.2105 32.1376 69.7285 34.2658C70.8603 35.5363 72.6057 38.3556 73.3076 40"></path>
<path d="M49.0747 19.8242V22.4999"></path>
<path d="M54.0991 28C54.6651 29.0893 55.7863 30.0812 57.9929 30.0812C59.0642 30.0812 59.8797 29.8461 60.5 29.4788"></path>
<path d="M66.9126 19.8242V22.4999"></path>
<path d="M33.2533 20.0237L39.0723 22.1767"></path>
<path d="M39.1369 25.0058L33.0935 27.3212"></path>
<path d="M81.8442 19.022L76.0252 21.1751"></path>
<path d="M75.961 24.0041L82.0045 26.3196"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M73.4999 40.2236C74.9709 38.2049 75.8108 35.5791 75.8108 32.2283C75.8108 29.2229 75.1351 26.6488 73.9344 24.5094C75.0258 20.7525 75.6838 15.8246 74.6116 14.2317C72.7989 11.5386 66.0832 13.5913 63.2681 17.211C61.5952 16.8452 59.8167 16.6619 57.973 16.6619C56.0795 16.6619 54.2549 16.8552 52.5427 17.2409C49.7416 13.6027 42.9938 11.5312 41.176 14.2317C40.0859 15.8512 40.7843 20.9182 41.9084 24.6968C41.003 26.3716 40.4146 28.3065 40.2129 30.5"></path>
<path d="M82.9458 30.5471L76.8413 31.657"></path>
<path d="M76.2867 34.4319L81.8362 37.7616"></path>
<path d="M49.4995 27.8242V30.4999"></path>
<path d="M67.3374 27.8242V30.4998"></path>
</g>
<g class="profile-color-modes-illu-frame">
<path d="M40.6983 31.5C40.5387 29.6246 40.6456 28.0199 41.1762 27.2317C42.9939 24.5312 49.7417 26.6027 52.5428 30.2409C54.2551 29.8552 56.0796 29.6619 57.9731 29.6619C59.8169 29.6619 61.5953 29.8452 63.2682 30.211C66.0833 26.5913 72.799 24.5386 74.6117 27.2317C75.6839 28.8246 75.0259 33.7525 73.9345 37.5094C74.2013 37.9848 74.4422 38.4817 74.6555 39"></path>
</g>
</g>
</svg>
</a>
<nav class="joe_header__above-nav">
<a class="item <?php echo $this->is('index') ? 'active' : '' ?>" href="<?php $this->options->siteUrl(); ?>" title="首页">首页</a>
@ -15,7 +87,7 @@
<?php foreach (array_slice($pages->stack, 0, $this->options->JNavMaxNum) as $item) : ?>
<a class="item <?php echo $this->is('page', $item['slug']) ? 'active' : '' ?>" href="<?php echo $item['permalink'] ?>" title="<?php echo $item['title'] ?>"><?php echo $item['title'] ?></a>
<?php endforeach; ?>
<div class="joe_dropdown" trigger="click" placement="60px">
<div class="joe_dropdown" trigger="hover" placement="60px" style="margin-right: 15px;">
<div class="joe_dropdown__link">
<a href="#" rel="nofollow">更多</a>
<svg class="joe_dropdown__link-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14" height="14">
@ -29,11 +101,52 @@
</nav>
</div>
<?php endif; ?>
<?php
$custom = [];
$custom_text = $this->options->JCustomNavs;
if ($custom_text) {
$custom_arr = explode("\r\n", $custom_text);
if (count($custom_arr) > 0) {
for ($i = 0; $i < count($custom_arr); $i++) {
$title = explode("||", $custom_arr[$i])[0];
$url = explode("||", $custom_arr[$i])[1];
$custom[] = array("title" => trim($title), "url" => trim($url));
};
}
}
?>
<?php if (sizeof($custom) > 0) : ?>
<div class="joe_dropdown" trigger="hover" placement="60px">
<div class="joe_dropdown__link">
<a href="#" rel="nofollow">推荐</a>
<svg class="joe_dropdown__link-icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14" height="14">
<path d="M561.873 725.165c-11.262 11.262-26.545 21.72-41.025 18.502-14.479 2.413-28.154-8.849-39.415-18.502L133.129 375.252c-17.697-17.696-17.697-46.655 0-64.352s46.655-17.696 64.351 0l324.173 333.021 324.977-333.02c17.696-17.697 46.655-17.697 64.351 0s17.697 46.655 0 64.351L561.873 725.165z" p-id="3535" fill="var(--main)"></path>
</svg>
</div>
<nav class="joe_dropdown__menu">
<?php foreach ($custom as $item) : ?>
<a href="<?php echo $item['url'] ?>" target="_blank" rel="noopener noreferrer nofollow"><?php echo $item['title'] ?></a>
<?php endforeach; ?>
</nav>
</div>
<?php endif; ?>
</nav>
<form class="joe_header__above-search" method="post" action="<?php $this->options->siteUrl(); ?>">
<input maxlength="16" autocomplete="off" placeholder="请输入关键字..." name="s" class="input" type="text" />
<input maxlength="16" autocomplete="off" placeholder="请输入关键字..." name="s" value="<?php echo $this->is('search') ? $this->archiveTitle(' &raquo; ', '', '') : '' ?>" class="input" type="text" />
<button type="submit" class="submit">Search</button>
<span class="icon"></span>
<nav class="result">
<?php $this->widget('Widget_Contents_Hot@Search', 'pageSize=5')->to($item); ?>
<?php $index = 1; ?>
<?php while ($item->next()) : ?>
<a href="<?php $item->permalink(); ?>" title="<?php $item->title(); ?>" class="item">
<span class="sort"><?php echo $index; ?></span>
<span class="text"><?php $item->title(); ?></span>
<span class="views"><?php _getViews($item); ?> 阅读</span>
</a>
<?php $index++; ?>
<?php endwhile; ?>
</ul>
</form>
</div>
</div>
@ -66,5 +179,6 @@
<?php endwhile; ?>
</nav>
</div>
<div class="joe_header__below-progress"></div>
</div>
</header>