mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-17 18:22:33 +00:00
New tag link-grid
This commit is contained in:
parent
632768cc1f
commit
ebabc8643b
19
scripts/tags/link-grid.js
Normal file
19
scripts/tags/link-grid.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/* global hexo */
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
function linkGrid(args, content) {
|
||||||
|
const links = content.split('\n').map(item => {
|
||||||
|
const args = item.split('|').map(arg => arg.trim());
|
||||||
|
if (args[0][0] === '%') return '';
|
||||||
|
return `<div>
|
||||||
|
<img src="${args[3] || '/images/avatar.gif'}" onerror="this.src='/images/avatar.gif';">
|
||||||
|
<p>${args[0]}</p><p>${args[2] || args[1]}</p>
|
||||||
|
<a href="${args[1]}"></a>
|
||||||
|
</div>`;
|
||||||
|
});
|
||||||
|
return `<div class="link-grid">${links.join('')}</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
hexo.extend.tag.register('linkgrid', linkGrid, {ends: true});
|
||||||
|
hexo.extend.tag.register('lg', linkGrid, {ends: true});
|
||||||
101
source/css/_common/scaffolding/tags/link-grid.styl
Normal file
101
source/css/_common/scaffolding/tags/link-grid.styl
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
.post-body .link-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-gap: 1.5rem 1.5rem;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
padding: 1.5rem;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
+mobile() {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
div {
|
||||||
|
border: solid #ddd;
|
||||||
|
box-shadow: 1rem 1rem 0.5rem gray;
|
||||||
|
height: 5rem;
|
||||||
|
transition: background 0.3s;
|
||||||
|
padding: 0.5rem;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
animation: shake 0.5s;
|
||||||
|
background: rgba(230,244,250,.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
box-shadow: 0.5rem 0.5rem 0.25rem gray;
|
||||||
|
transform: translate(0.2rem, 0.2rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 50%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
height: 5rem;
|
||||||
|
left: 0.5rem;
|
||||||
|
padding: 3px;
|
||||||
|
position: absolute;
|
||||||
|
top: 0.5rem;
|
||||||
|
width: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0 1rem 0 6rem;
|
||||||
|
|
||||||
|
&:first-of-type {
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-of-type {
|
||||||
|
font-size: 0.8em;
|
||||||
|
line-height: 1.3rem;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
border: none;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes shake {
|
||||||
|
0% {
|
||||||
|
transform: translate(1pt, 1pt) rotate(0deg);
|
||||||
|
}
|
||||||
|
10% {
|
||||||
|
transform: translate(-1pt, -2pt) rotate(-1deg);
|
||||||
|
}
|
||||||
|
20% {
|
||||||
|
transform: translate(-3pt, 0pt) rotate(1deg);
|
||||||
|
}
|
||||||
|
30% {
|
||||||
|
transform: translate(3pt, 2pt) rotate(0deg);
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
transform: translate(1pt, -1pt) rotate(1deg);
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
transform: translate(-1pt, 2pt) rotate(-1deg);
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
transform: translate(-3pt, 1pt) rotate(0deg);
|
||||||
|
}
|
||||||
|
70% {
|
||||||
|
transform: translate(3pt, 1pt) rotate(-1deg);
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
transform: translate(-1pt, -1pt) rotate(1deg);
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
transform: translate(1pt, 2pt) rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translate(1pt, -2pt) rotate(-1deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
@import 'blockquote-center';
|
@import 'blockquote-center';
|
||||||
@import 'group-pictures';
|
@import 'group-pictures';
|
||||||
@import 'label';
|
@import 'label';
|
||||||
|
@import 'link-grid';
|
||||||
@import 'tabs';
|
@import 'tabs';
|
||||||
|
|
||||||
@import 'note' if (hexo-config('note.style') != 'disabled');
|
@import 'note' if (hexo-config('note.style') != 'disabled');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user