feat: new index and style update

This commit is contained in:
Dillon 2019-08-19 01:36:52 +08:00
parent 6981f1e285
commit ee7c7549b5
29 changed files with 801 additions and 707 deletions

View file

@ -4,13 +4,19 @@ date: {{ .Date }}
lastmod: {{ .Date }}
draft: true
description: ""
show_in_homepage: true
show_description: false
tags: []
categories: []
featured_image: ""
featured_image_preview: ""
comment: true
toc: false
autoCollapseToc: true
math: false
---
---
<!--more-->

View file

@ -8,4 +8,4 @@
text-align:center;
font-size: 30px;
line-height: 50px;
}
}

View file

@ -1,5 +1,4 @@
/** Home **/
.intro {
transform: translateY(25vh);
text-align: center;
@ -55,4 +54,4 @@ h2.description {
i {
font-size: 1.4em;
}
}
}

View file

@ -1,65 +0,0 @@
.post-warp {
.intro {
transform: translateY(0);
margin: 2em 0 5em 0;
.avatar {
img {
width: 96px;
}
}
}
.post {
margin-bottom: 4em;
border-bottom: 1px dashed #ddd;
.post-content {
padding-top: .5em;
}
.post-footer {
display: flex;
justify-content: space-between;
align-items: center;
.post-meta {
a {
color: rgba(85, 85, 85, 0.52941) !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
&:hover {
color: $global-font-secondary-color !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
}
}
}
.post-tags {
span {
a {
color: rgba(85, 85, 85, 0.52941) !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
&:hover {
color: $global-font-secondary-color !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
}
}
}
}
}
}
}

View file

@ -0,0 +1,22 @@
@import "_home";
.post-warp {
position: relative;
width: 100%;
max-width: 780px;
margin: 0 auto;
padding-top: 2rem;
@import "_post";
@import "_posts";
}
.archive {
.post-title {
text-align: right;
padding-bottom: 2em;
}
@import "_terms";
@import "_tags";
}

View file

@ -1,372 +1,370 @@
/** Post **/
.post-header {
.post-title {
margin: 0 !important;
font-size: 2em;
line-height: 1.5em;
}
}
.post-warp {
position: relative;
width: 100%;
max-width: 780px;
margin: 0 auto;
padding-top: 2rem;
.post-meta {
font-size: 14px;
color: rgba(85, 85, 85, 0.52941) !important;
.post-header {
.post-title {
margin: 0 !important;
font-size: 2em;
line-height: 1.5em;
}
span {
display: inline-block;
}
.post-meta {
font-size: 14px;
color: rgba(85, 85, 85, 0.52941) !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
span {
display: inline-block;
}
a {
color: $post-link-color;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
color: $post-link-color-dark;
}
a {
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
&:hover {
color: $post-link-hover-color;
.dark-theme & {
color: $post-link-hover-color-dark;
}
}
}
}
.post-toc {
position: absolute;
width: 200px;
max-width: 240px;
margin-left: 800px;
padding: 10px;
border-left: 1px solid $global-border-color;
word-wrap: break-word;
box-sizing: border-box;
top: 120px;
.post-toc-title {
font-weight: 400;
text-transform: uppercase;
}
.post-toc-content {
&.always-active ul {
display: block;
}
>nav>ul {
margin: 10px 0;
}
ul {
padding-left: 10px;
list-style: none;
ul {
padding-left: 20px;
display: none;
}
.has-active > ul {
display: block;
}
}
.toc-link.active {
color: $global-link-hover-color;
}
}
}
.post-content {
h2,
h3,
h4,
h5,
h6 {
padding-top: .8em;
padding-bottom: .3em;
}
h2::before {
content: "#";
margin-right: 5px;
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
h3::before {
content: "|";
margin-right: 5px;
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
a {
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
a:hover {
&:hover {
color: $post-link-hover-color;
.dark-theme &:hover {
.dark-theme & {
color: $post-link-hover-color-dark;
font-weight: bold;
}
}
}
.author {
font-size: 1.2em;
}
}
.post-toc {
position: absolute;
width: 200px;
max-width: 240px;
margin-left: 800px;
padding: 10px;
border-left: 1px solid $global-border-color;
word-wrap: break-word;
box-sizing: border-box;
top: 120px;
.post-toc-title {
font-weight: 400;
text-transform: uppercase;
}
.post-toc-content {
&.always-active ul {
display: block;
}
>nav>ul {
margin: 10px 0;
}
ul {
padding-left: 2em;
}
padding-left: 10px;
list-style: none;
.table-wrapper {
overflow-x: auto;
> table {
width: 100%;
max-width: 100%;
margin: 10px 0;
border-spacing: 0;
box-shadow: 2px 2px 3px rgba(0,0,0,.125);
background: $table-background-color;
.dark-theme & {
background: $table-background-color-dark;
}
thead {
background: $table-thead-color;
.dark-theme & {
background-color: $table-thead-color-dark;
}
}
th, td {
padding: 5px 15px;
border: 1px double $global-border-color;
.dark-theme & {
border: 1px double $global-border-color-dark;
}
}
ul {
padding-left: 20px;
display: none;
}
}
figure {
text-align: center;
}
.image-caption:not(:empty) {
min-width: 20%;
max-width: 80%;
display: inline-block;
padding: 10px;
margin: 0 auto;
border-bottom: 1px solid #d9d9d9;
font-size: 14px;
color: #969696;
line-height: 1.7;
}
img {
display: block;
max-width: 80%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
.featured_image {
width: 100% !important;
max-width: 100% !important;
height: auto !important;
margin: 0 !important;
}
blockquote {
font-size: 1rem;
display: block;
border-width: 1px 0;
border-style: solid;
border-color: $global-border-color;
padding: 1.5em 1.2em 0.5em 1.2em;
margin: 0 0 2em 0;
position: relative;
&:before {
content: '\201C';
position: absolute;
top: 0em;
left: 50%;
transform: translate(-50%, -50%);
width: 3rem;
height: 2rem;
font: 6em/1.08em 'PT Sans', sans-serif;
color: $post-link-color;
text-align: center;
.dark-theme & {
color: $post-link-color-dark;
}
}
&:after {
content: "#blockquote" attr(cite);
.has-active > ul {
display: block;
text-align: right;
font-size: 0.875em;
color: $post-link-color;
}
}
.toc-link.active {
color: $global-link-hover-color;
}
}
}
.featured_image {
display: block;
max-width: 100%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
.post-content {
h2,
h3,
h4,
h5,
h6 {
padding-top: .8em;
padding-bottom: .3em;
}
h2::before {
content: "#";
margin-right: 5px;
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
h3::before {
content: "|";
margin-right: 5px;
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
a {
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
a:hover {
color: $post-link-hover-color;
.dark-theme &:hover {
color: $post-link-hover-color-dark;
font-weight: bold;
}
}
ul {
padding-left: 2em;
}
.table-wrapper {
overflow-x: auto;
> table {
width: 100%;
max-width: 100%;
margin: 10px 0;
border-spacing: 0;
box-shadow: 2px 2px 3px rgba(0,0,0,.125);
background: $table-background-color;
.dark-theme & {
background: $table-background-color-dark;
}
thead {
background: $table-thead-color;
.dark-theme & {
color: $post-link-color-dark;
background-color: $table-thead-color-dark;
}
}
.dark-theme & {
border-color: $global-border-color-dark;
th, td {
padding: 5px 15px;
border: 1px double $global-border-color;
.dark-theme & {
border: 1px double $global-border-color-dark;
}
}
}
}
@import "../_partial/_post/code";
@import "../_partial/_post/admonition";
figure {
text-align: center;
}
.mermaid {
@import "../_mermaid/neutral/index";
.image-caption:not(:empty) {
min-width: 20%;
max-width: 80%;
display: inline-block;
padding: 10px;
margin: 0 auto;
border-bottom: 1px solid #d9d9d9;
font-size: 14px;
color: #969696;
line-height: 1.7;
}
.dark-theme & {
@import "../_mermaid/dark/index";
}
}
img {
display: block;
max-width: 100%;
height: auto;
margin: 0 auto;
overflow: hidden;
}
.echarts {
margin: 3% auto;
blockquote {
font-size: 1rem;
display: block;
border-width: 1px 0;
border-style: solid;
border-color: $global-border-color;
padding: 1.5em 1.2em 0.5em 1.2em;
margin: 0 0 2em 0;
position: relative;
&:before {
content: '\201C';
position: absolute;
top: 0em;
left: 50%;
transform: translate(-50%, -50%);
width: 3rem;
height: 2rem;
font: 6em/1.08em 'PT Sans', sans-serif;
color: $post-link-color;
text-align: center;
.dark-theme & {
color: $post-link-color-dark;
}
}
&:after {
content: "#blockquote" attr(cite);
display: block;
text-align: right;
font-size: 0.875em;
color: $post-link-color;
.dark-theme & {
color: $post-link-color-dark;
}
}
.bilibili {
position: relative;
.dark-theme & {
border-color: $global-border-color-dark;
}
}
@import "../_partial/_post/code";
@import "../_partial/_post/admonition";
.mermaid {
@import "../_mermaid/neutral/index";
.dark-theme & {
@import "../_mermaid/dark/index";
}
}
.echarts {
margin: 3% auto;
text-align: center;
}
.bilibili {
position: relative;
width: 100%;
height: 0;
padding-bottom: 75%;
margin: 3% auto;
iframe {
position: absolute;
width: 100%;
height: 0;
padding-bottom: 75%;
margin: 3% auto;
iframe {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
}
hr {
margin: 1rem 0;
position: relative;
border-top: 1px dashed $global-border-color;
border-bottom: none;
.dark-theme & {
border-top: 1px dashed $global-border-color-dark;
}
}
kbd {
display: inline-block;
padding: .25em;
background-color: $global-background-color;
border: 1px solid $global-border-color;
border-bottom-color: $global-border-color;
border-radius: 3px;
-webkit-box-shadow: inset 0 -1px 0 $global-border-color;
box-shadow: inset 0 -1px 0 $global-border-color;
font-size: .8em;
line-height: 1.25;
font-family: $code-font-family;
color: $code-color;
.dark-theme & {
background-color: $global-background-color-dark;
border: 1px solid $global-border-color-dark;
border-bottom-color: $global-border-color-dark;
-webkit-box-shadow: inset 0 -1px 0 $global-border-color-dark;
box-shadow: inset 0 -1px 0 $global-border-color-dark;
color: $code-color-dark;
}
}
.typeit {
.code {
padding: 6px;
font-size: 14px;
font-family: Consolas, Monaco, Menlo, Consolas, monospace;
font-weight: bold;
word-break: break-all;
.k {
color: #D371E3;
}
.kt {
color: #D371E3;
}
.kc {
color: #D371E3;
}
.o {
color: #D371E3;
}
.nf {
color: #F16473;
}
.na {
color: #41B1F5;
}
.s {
color: #8BC56F;
}
.n {
color: #DB975C;
}
.c1 {
color: #7E848F;
}
}
height: 100%;
left: 0;
top: 0;
}
}
p {
font-size: 1em;
margin: .5em 0 .5em 0;
hr {
margin: 1rem 0;
position: relative;
border-top: 1px dashed $global-border-color;
border-bottom: none;
.dark-theme & {
border-top: 1px dashed $global-border-color-dark;
}
}
kbd {
display: inline-block;
padding: .25em;
background-color: $global-background-color;
border: 1px solid $global-border-color;
border-bottom-color: $global-border-color;
border-radius: 3px;
-webkit-box-shadow: inset 0 -1px 0 $global-border-color;
box-shadow: inset 0 -1px 0 $global-border-color;
font-size: .8em;
line-height: 1.25;
font-family: $code-font-family;
color: $code-color;
.dark-theme & {
background-color: $global-background-color-dark;
border: 1px solid $global-border-color-dark;
border-bottom-color: $global-border-color-dark;
-webkit-box-shadow: inset 0 -1px 0 $global-border-color-dark;
box-shadow: inset 0 -1px 0 $global-border-color-dark;
color: $code-color-dark;
}
}
.typeit {
.code {
padding: 6px;
font-size: 14px;
font-family: Consolas, Monaco, Menlo, Consolas, monospace;
font-weight: bold;
word-break: break-all;
.k {
color: #D371E3;
}
.kt {
color: #D371E3;
}
.kc {
color: #D371E3;
}
.o {
color: #D371E3;
}
.nf {
color: #F16473;
}
.na {
color: #41B1F5;
}
.s {
color: #8BC56F;
}
.n {
color: #DB975C;
}
.c1 {
color: #7E848F;
}
}
}
}
p {
font-size: 1em;
margin: .5em 0 .5em 0;
}
.post-footer {
.post-info {
margin-top: 3rem;
border-bottom: 1px solid $global-border-color;
@ -419,28 +417,28 @@
transform: translateX(4px);
}
}
.post-comment {
padding: 3em 0;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
.float-left {
float: left;
}
.float-right {
float: right;
}
}
.post-comment {
padding: 3em 0;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
.float-left {
float: left;
}
.float-right {
float: right;
}

View file

@ -0,0 +1,128 @@
.intro {
transform: translateY(0);
padding: 2em 0 2em 0;
.avatar {
img {
width: 96px;
}
}
}
.post {
padding-top: 0.8em;
padding-bottom: 0.8em;
color: $global-font-color;
border-top: 1px dashed $global-border-color;
border-bottom: 1px dashed $global-border-color;
.dark-theme & {
color: $global-font-color-dark;
border-bottom: 1px dashed $global-border-color-dark;
}
.featured_image_preview {
width: 100%;
padding: 30% 0 0;
position: relative;
margin-bottom: 1em;
img {
position: absolute;
width: 100%; height: 100%;
left: 0; top: 0;
object-fit: cover;
}
}
.post-list-title {
font-size: 1.6em;
}
.post-meta {
font-size: 14px !important;
a {
color: $global-font-secondary-color !important;
.dark-theme & {
color: $global-font-secondary-color-dark !important;
}
&:hover {
color: $global-link-hover-color !important;
.dark-theme & {
color: $global-link-hover-color-dark !important;
}
}
}
}
.post-content {
padding-top: .2em;
font-size: 0.9em;
width: 100%;
max-height: 100px;
overflow: hidden;
h2,
h3,
h4,
h5,
h6 {
font-size: 1em;
line-height: 1em;
padding-top: .3em;
padding-bottom: .3em;
}
p {
margin: 0;
padding-top: .3em;
padding-bottom: .3em;
}
}
.post-footer {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 14px !important;
a {
color: $post-link-color !important;
.dark-theme & {
color: $post-link-color-dark !important;
}
&:hover {
color: $post-link-hover-color !important;
.dark-theme & {
color: $post-link-hover-color-dark !important;
}
}
}
.post-tags {
padding: 0;
a {
color: $global-link-color !important;
.dark-theme & {
color: $global-link-color-dark !important;
}
&:hover {
color: $global-link-hover-color !important;
.dark-theme & {
color: $global-link-hover-color-dark !important;
}
}
}
}
}
}

View file

@ -1,76 +1,73 @@
.post-warp {
.archive-item {
margin-left: 2rem;
}
.archive-item {
margin-left: 2rem;
}
.categories-card {
margin: 0 auto;
margin-top: 3em;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
padding: 0 2.5em;
line-height: 1.6em;
.categories-card {
margin: 0 auto;
margin-top: 3em;
.card-item {
font-size: 14px;
text-align: left;
width: 45%;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: row;
flex-wrap: wrap;
padding: 0 2.5em;
line-height: 1.6em;
align-items: flex-start;
margin-top: 2em;
min-height: 16em;
padding: 0 2%;
position: relative;
.card-item {
font-size: 14px;
text-align: left;
width: 45%;
display: flex;
align-items: flex-start;
margin-top: 2em;
min-height: 16em;
padding: 0 2%;
position: relative;
.categories {
overflow: hidden;
}
.categories {
overflow: hidden;
}
}
}
.archive-item-link {
display: inline-block;
.archive-item-link {
display: inline-block;
text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 95%;
&:hover {
color: $global-link-hover-color;
background-color: transparent;
}
.dark-theme & {
color: $global-link-color-dark;
text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 95%;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
&:hover {
color: $global-link-hover-color;
background-color: transparent;
}
.dark-theme & {
color: $global-link-color-dark;
color: $global-link-hover-color-dark;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
&:hover {
color: $global-link-hover-color-dark;
text-decoration: none;
transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
}
}
}
.archive-item-date {
float: right;
text-align: right;
color: $global-font-secondary-color;
.archive-item-date {
float: right;
text-align: right;
color: $global-font-secondary-color;
.dark-theme & {
color: $global-font-secondary-color-dark;
}
.dark-theme & {
color: $global-font-secondary-color-dark;
}
}
.more-post {
text-align: right;
}
.more-post {
text-align: right;
}
.categories {
@ -82,4 +79,4 @@
float: right;
padding-right: 1em;
}
}
}

View file

@ -7,11 +7,11 @@
list-style: none;
white-space: nowrap;
width: 100%;
padding-top: 2em;
padding-top: 1em;
a {
-webkit-font-smoothing: antialiased;
font-size: 12px;
font-size: 0.8em;
color: #bfbfbf;
letter-spacing: 0.1em;
font-weight: 700;

View file

@ -5,11 +5,7 @@
@import "_core/base";
@import "_core/layout";
@import "_page/home";
@import "_page/home_post";
@import "_page/post";
@import "_page/tags";
@import "_page/terms";
@import "_page/index";
@import "_partial/navbar";
@import "_partial/footer";

View file

@ -56,56 +56,64 @@ jQuery(function($) {
_Blog._initToc = function() {
const SPACING = 20;
const $toc = $('.post-toc');
const $footer = $('.post-footer');
if ($toc.length) {
const startTop = $toc.css("top");
const minScrollTop = $toc.offset().top - SPACING;
const tocState = {
start: {
'position': 'absolute',
'top': startTop,
},
process: {
'position': 'fixed',
'top': SPACING,
},
};
const minTop = $toc.position().top;
const mainTop = $('main').position().top;
const minScrollTop = minTop + mainTop - SPACING;
$(window).scroll(function() {
const scrollTop = $(window).scrollTop();
const scrollTop = $(window).scrollTop();
const maxTop = $footer.position().top - $toc.height();
const maxScrollTop = maxTop + mainTop - SPACING;
if (scrollTop < minScrollTop) {
$toc.css(tocState.start);
} else {
$toc.css(tocState.process);
}
const tocState = {
start: {
'position': 'absolute',
'top': minTop,
},
process: {
'position': 'fixed',
'top': SPACING,
},
end: {
'position': 'absolute',
'top': maxTop,
}
};
if (scrollTop < minScrollTop) {
$toc.css(tocState.start);
} else if (scrollTop > maxScrollTop) {
$toc.css(tocState.end);
} else {
$toc.css(tocState.process);
}
});
}
const HEADERFIX = 30;
const HEADERFIX = 60;
const $toclink = $('.toc-link');
const $headerlink = $('.headerlink');
const $tocLinkLis = $('.post-toc-content li');
const headerlinkTop = $.map($headerlink, function(link) {
return $(link).offset().top;
});
const headerLinksOffsetForSearch = $.map(headerlinkTop, function(offset) {
return offset - HEADERFIX;
});
const searchActiveTocIndex = function(array, target) {
for (let i = 0; i < array.length - 1; i++) {
if (target > array[i] && target <= array[i + 1]) return i;
}
if (target > array[array.length - 1]) return array.length - 1;
return 0;
};
const activeIndex = function() {
const scrollTop = $(window).scrollTop();
const headerlinkTop = $.map($headerlink, function(link) {
return $(link).offset().top;
});
const headerLinksOffsetForSearch = $.map(headerlinkTop, function(offset) {
return offset - HEADERFIX;
});
const searchActiveTocIndex = function(array, target) {
for (let i = 0; i < array.length - 1; i++) {
if (target > array[i] && target <= array[i + 1]) return i;
}
if (target > array[array.length - 1]) return array.length - 1;
return 0;
};
const activeTocIndex = searchActiveTocIndex(headerLinksOffsetForSearch, scrollTop);
$($toclink).removeClass('active');
@ -182,7 +190,7 @@ jQuery(function($) {
_Blog.countdown = function() {
if (window.countdownMap) {
Object.keys(countdownMap).forEach(function(id) {
$(id).countdown(countdownMap[id], {elapse: true})
$(`#${id}`).countdown(countdownMap[id], {elapse: true})
.on('update.countdown', function(event) {
var $this = $(this).html(event.strftime(''
+ '<span>%D</span> 天 <br />'
@ -226,9 +234,9 @@ jQuery(function($) {
_Blog.changeTitle();
_Blog.chroma();
_Blog.responsiveTable();
_Blog.toc();
_Blog.echarts(isDark);
_Blog.countdown();
_Blog.typeit();
_Blog.toc();
});
});

View file

@ -37,6 +37,9 @@ other = "Theme - "
[toc]
other = "Table of Contents"
[publish]
other = "published on"
[included]
other = "included in"
@ -63,6 +66,9 @@ other = "Back"
[home]
other = "Home"
[readmore]
other = "Read More......"
# === posts/single.html ===
# === 404.html ===

View file

@ -37,6 +37,9 @@ other = "主题 - "
[toc]
other = "目录"
[publish]
other = "发布于"
[included]
other = "收录于"
@ -63,6 +66,9 @@ other = "返回"
[home]
other = "主页"
[readmore]
other = "阅读全文......"
# === posts/single.html ===
# === 404.html ===

View file

@ -5,9 +5,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
{{ partial "head.html" . }}
{{ $style := resources.Get "css/style.scss" | resources.ToCSS | resources.Minify}}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">
</head>
<body class="">
<div class="wrapper">
@ -18,7 +15,7 @@
</div>
</main>
{{ partial "footer.html" . }}
{{ partial "scripts.html" . }}
</div>
{{ partial "js.html" . }}
</body>
</html>
</html>

View file

@ -1,22 +1,22 @@
{{ define "title" }}{{ T "posts" }} - {{ .Site.Title }}{{ end }}
{{ define "title" }}{{ T "posts" }} - {{ .Site.Title }}{{ end -}}
{{ define "content" }}
{{ $data := .Data }}
{{ define "content" -}}
{{ $data := .Data -}}
<div class="post-warp archive">
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
<h2 class="post-title">
{{ printf "- %s -" (T "posts") }}
</h2>
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
<h3>{{ .Key }}</h3>
{{ range .Pages }}
<article class="archive-item">
<a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
<span class="archive-item-date">
{{ .Date.Format (.Site.Params.dateFormatToUse | default "01-02") }}
</span>
</article>
{{ end }} {{ end }}
{{ partial "paginator.html" . }}
{{- range (.Paginate (.Pages.GroupByDate "2006")).PageGroups -}}
<h3>{{ .Key }}</h3>
{{- range .Pages -}}
<article class="archive-item">
<a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
<span class="archive-item-date">
{{- .Date.Format (.Site.Params.dateFormatToUse | default "01-02") -}}
</span>
</article>
{{- end -}}
{{- end -}}
{{- partial "paginator.html" . -}}
</div>
{{end }}
{{- end }}

View file

@ -0,0 +1,55 @@
<article class="post" itemscope itemtype="http://schema.org/Article">
{{ $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
{{ $author := .Site.Author.name }}
{{ if isset .Params "author" }}
{{ $author = .Site.Author.name }}
{{ end }}
<!--featured_image-->
{{ with .Params.featured_image }}
{{ $image := $.Params.featured_image_preview | default . }}
<div class="featured_image_preview">
<img src=/images/loading.svg data-sizes=auto data-src={{ $image }} alt="featured image" class="lazyload">
</div>
{{ end }}
<!-- end featured_image-->
<header class="post-header">
<h1 class="post-title post-list-title" itemprop="name headline">
<a href="{{ .Permalink }}">{{ .Title }}</a>
</h1>
</header>
<div class="post-meta">
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle"></i>&nbsp;{{ $author }}&nbsp;</a>
{{ T "publish" }}<span class="post-time">&nbsp;<time datetime={{ $publish_date }}>{{ $publish_date }}</time>&nbsp;</span>
{{ with .Params.categories -}}
<span class="post-category">
{{ T "included" }}
{{ range . }}
{{- $name := . -}}
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
<i class="far fa-folder"></i>&nbsp;<a href="{{ .Permalink }}">{{ $name }}</a>&nbsp;
{{ end -}}
{{ end }}
</span>
{{- end }}
</div>
<div class="post-content">
{{ if .Params.show_description }}
<p>{{ . }}</p>
{{ else }}
{{ .Summary }}
{{ end }}
</div>
<div class="post-footer">
<a href="{{ .Permalink }}">{{ T "readmore" }}</a>
{{ with .Params.tags }}
<div class="post-tags">
{{ range . }}
<span class="tag">
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/">&nbsp;<i class="fas fa-tag"></i>&nbsp;{{ . }}</a>
</span>
{{ end }}
</div>
{{ end }}
</div>
</article>

View file

@ -1,15 +1,16 @@
{{ define "content" }}
{{ if eq .Site.Params.home_mode "post" }}
{{ define "content" -}}
{{ if eq .Site.Params.home_mode "post" -}}
<div class="post-warp">
{{ partial "home/profile.html" . }}
{{- partial "home/profile.html" . -}}
{{ range (.Paginate (where .Pages "Type" "posts")).Pages }}
{{ .Render "summary" }}
{{ end }}
{{- $paginator := .Paginate (where (where .Data.Pages "Type" "posts") ".Params.show_in_homepage" "!=" false) }}
{{ range $paginator.Pages -}}
{{ .Render "summary" -}}
{{ end -}}
{{ partial "paginator.html" . }}
</div>
{{ else }}
{{ partial "home/profile.html" . }}
{{ end }}
{{ end }}
{{- else -}}
{{ partial "home/profile.html" . -}}
{{ end -}}
{{ end }}

View file

@ -18,4 +18,4 @@
<span class="license">&nbsp;|&nbsp;{{ . | safeHTML }}</span>
{{- end -}}
</div>
</footer>
</footer>

View file

@ -30,12 +30,15 @@
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
{{ with .OutputFormats.Get "RSS" }}
{{- with .OutputFormats.Get "RSS" -}}
<link rel="alternate" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
<link rel="feed" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
{{ end }}
{{- end -}}
{{ template "_internal/twitter_cards.html" . }}
{{- template "_internal/twitter_cards.html" . -}}
{{ partial "seo_schema.html" . }}
{{- partial "seo_schema.html" . -}}
{{- $style := resources.Get "css/style.scss" | resources.ToCSS | resources.Minify -}}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">

View file

@ -13,7 +13,6 @@
</div>
</div>
</nav>
<nav class="navbar-mobile" id="nav-mobile" style="display: none">
<div class="container">
<div class="navbar-header">
@ -30,4 +29,4 @@
{{ end }}
</div>
</div>
</nav>
</nav>

View file

@ -28,4 +28,4 @@
{{ end }}
{{ end }}
</ul>
{{ end }}
{{ end }}

View file

@ -0,0 +1,35 @@
{{ $modify_date := .Lastmod.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
<div class="post-footer">
<div class="post-info">
<div class="post-info-mod"><span>{{ printf (T "lastMod") $modify_date }}</span></div>
<div class="post-info-share">
{{ if and ( .Param "socialShare" ) (gt (len (.Param "share")) 0) }}
<span>{{ partial "post/share.html" . }}</span>
{{ end }}
</div>
</div>
<div class="post-tags">
<section>
{{ with .Params.tags }}
{{ range . }}
<span class="tag">
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag"></i>&nbsp;{{.}}&nbsp;</a>
</span>
{{ end }}
{{ end }}
</section>
<section>
<span><a href="javascript:window.history.back();">{{ T "back" }}</a></span>&nbsp;|&nbsp;<span><a href="{{ .Site.BaseURL }}">{{ T "home" }}</a></span>
</section>
</div>
<div class="post-nav">
{{ if .PrevInSection }}
<a href="{{.PrevInSection.Permalink}}" class="prev" rel="prev" title="{{ .PrevInSection.Title}}"><i class="fas fa-angle-left"></i>&nbsp;{{ .PrevInSection.Title}}</a>
{{ end }}
{{ if .NextInSection }}
<a href="{{.NextInSection.Permalink}}" class="next" rel="next" title="{{.NextInSection.Title}}">{{.NextInSection.Title}}&nbsp;<i class="fas fa-angle-right"></i></a>
{{ end }}
</div>
</div>

View file

@ -1,62 +1,52 @@
{{ if or .Params.socialShare (and .Site.Params.socialShare (ne .Params.socialShare false)) }}
{{ if or (eq .Params.share.enable false) (eq .Site.Params.share.enable false) | not }}
{{ if or .Params.Share.Twitter (and .Site.Params.Share.Twitter (ne .Params.Share.Twitter false)) }}
<a href="//twitter.com/share?url={{ .Permalink }}&amp;text={{ .Title }}&amp;via={{ .Site.Params.Social.Twitter }}" target="_blank" title="Share on Twitter">
<i class="fab fa-twitter"></i>
</a>
{{ end }}
{{ if or .Params.Share.Facebook (and .Site.Params.Share.Facebook (ne .Params.Share.Facebook false)) }}
<a href="//www.facebook.com/sharer/sharer.php?u={{ .Permalink }}" target="_blank" title="Share on Facebook">
<i class="fab fa-facebook-square"></i>
</a>
{{ end }}
{{ if or .Params.Share.Reddit (and .Site.Params.Share.Reddit (ne .Params.Share.Reddit false)) }}
<a href="//reddit.com/submit?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="Share on Reddit">
<i class="fab fa-reddit"></i>
</a>
{{ end }}
{{ if or .Params.Share.Linkedin (and .Site.Params.Share.Linkedin (ne .Params.Share.Linkedin false)) }}
<a href="//www.linkedin.com/shareArticle?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="Share on LinkedIn">
<i class="fab fa-linkedin"></i>
</a>
{{ end }}
{{ if or .Params.Share.Pinterest (and .Site.Params.Share.Pinterest (ne .Params.Share.Pinterest false)) }}
<a href="//www.pinterest.com/pin/create/button/?url={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="Share on Pinterest">
<i class="fab fa-pinterest"></i>
</a>
{{ end }}
{{ if or .Params.Share.YCombinator (and .Site.Params.Share.YCombinator (ne .Params.Share.YCombinator false)) }}
<a href="//news.ycombinator.com/submitlink?u={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="Share on Hacker News">
<i class="fab fa-y-combinator"></i>
</a>
{{ end }}
{{ if or .Params.Share.Mix (and .Site.Params.Share.Mix (ne .Params.Share.Mix false)) }}
<a href="//mix.com/add?url={{ .Permalink }}&amp;description={{ .Title }}" target="_blank" title="Share on Mix">
<i class="fab fa-mix"></i>
</a>
{{ end }}
{{ if or .Params.Share.Tumblr (and .Site.Params.Share.Tumblr (ne .Params.Share.Tumblr false)) }}
<a href="//www.tumblr.com/widgets/share/tool?canonicalUrl={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="Share on Tumblr">
<i class="fab fa-tumblr"></i>
</a>
{{ end }}
{{ if or .Params.Share.VK (and .Site.Params.Share.VK (ne .Params.Share.VK false)) }}
<a href="//vk.com/share.php?url={{ .Permalink }}&amp;title={{ .Title }}" target="_blank" title="Share on VKontakte ">
<i class="fab fa-vk"></i>
</a>
{{ end }}
{{ if or .Params.Share.Weibo (and .Site.Params.Share.Weibo (ne .Params.Share.Weibo false)) }}
<a href="//service.weibo.com/share/share.php?url={{ .Permalink }}&amp;appkey=&amp;title={{ .Title }}" target="_blank" title="Share on Weibo">
<i class="fab fa-weibo"></i>
</a>
{{ end }}
{{ end }}
{{ end }}

View file

@ -1,6 +1,3 @@
{{ $scripts := resources.Get "/js/main.js" | slice }}
{{ $dynamicToTop := resources.Get "/js/dynamicToTop.js" }}
<!-- jQuery https://github.com/jquery/jquery -->
{{ $jquery := `
<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
@ -41,10 +38,9 @@
` }}
{{ $jquery | safeHTML }}
{{ $lazysizes | safeHTML }}
{{ if .IsPage }}
{{ $lazysizes | safeHTML }}
{{ if .Scratch.Get "diagram" }}
{{ $diagram | safeHTML }}
{{ end }}
@ -71,11 +67,6 @@
{{ $countdown | safeHTML }}
<script>var countdownMap = {{ . | jsonify | safeJS }};</script>
{{ end }}
{{ $scripts = $scripts | append $dynamicToTop }}
{{ $scripts = $scripts | resources.Concat "/js/vendor_post.js" | resources.Minify }}
{{ else }}
{{ $scripts = $scripts | resources.Concat "/js/vendor_main.js" | resources.Minify}}
{{ end }}
{{ $typeitMap := .Scratch.Get "typeitMap" }}
@ -88,6 +79,7 @@
<script>var typeitArr = {{ $typeitArr | jsonify | safeJS }};</script>
{{ end }}
{{ $scripts := slice (resources.Get "/js/main.js") (resources.Get "/js/dynamicToTop.js") | resources.Concat "/js/vendor.js" | resources.Minify }}
<script src="{{ $scripts.RelPermalink }}" async=""></script>
{{ template "_internal/google_analytics_async.html" . }}
{{ template "_internal/google_analytics_async.html" . }}

View file

@ -2,7 +2,6 @@
{{ define "content" }}
{{ $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
{{ $modify_date := .Lastmod.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
{{ $author := .Site.Author.name }}
{{ if isset .Params "author" }}
{{ $author = .Site.Author.name }}
@ -15,20 +14,19 @@
<div class="post-meta">
<div class="post-meta-main">
<a href="{{.Site.BaseURL }}" rel="author">{{ $author }}</a>
{{ T "included" }}
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle"></i>&nbsp;{{ $author }}&nbsp;</a>
{{ with .Params.categories -}}
<span class="post-category">
{{ T "included" }}
{{ range . }}
{{- $name := . -}}
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
<i class="far fa-folder"></i>&nbsp;<a href="{{ .Permalink }}">{{ $name }}</a>
<i class="far fa-folder"></i>&nbsp;<a href="{{ .Permalink }}">{{ $name }}</a>&nbsp;
{{ end -}}
{{ end }}
</span>
{{- end }}
</div>
<div class="post-meta-other">
<span class="post-time"><i class="far fa-calendar-alt"></i>&nbsp;<time datetime={{ $publish_date }}>{{ $publish_date }}</time>&nbsp;</span>
<i class="fas fa-pencil-alt"></i>&nbsp;{{ T "wordCount" .WordCount }}&nbsp;
@ -45,66 +43,36 @@
<div class="post-toc" id="post-toc">
<h2 class="post-toc-title">{{ T "toc" }}</h2>
{{- $globalAutoCollapseToc := .Site.Params.autoCollapseToc | default true }}
<div class="post-toc-content{{ if not (or .Params.autoCollapseToc (and $globalAutoCollapseToc (ne .Params.autoCollapseToc false))) }} always-active{{ end }}">
{{.TableOfContents}}
<div class="post-toc-content{{ if not (and $globalAutoCollapseToc (ne .Params.autoCollapseToc false)) }} always-active{{ end }}">
{{ .TableOfContents }}
</div>
</div>
{{- end }}
{{ with .Params.featured_image }}
<img src=/images/loading.svg data-sizes=auto data-src={{ . }} alt="featured image" class="featured_image lazyload">
{{ end }}
<div class="post-content">
<!--featured_image-->
{{ with .Params.featured_image }}
<img src=/images/loading.svg data-sizes=auto data-src={{ . }} alt="featured image" class="featured_image lazyload">
{{ end }}
<!-- end featured_image-->
{{ $reAltIn := `<img src="([^"]+)" alt="([^"]+)?" />` }}
{{ $reAltOut := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
{{ $altContent := .Content | replaceRE $reAltIn $reAltOut | safeHTML }}
{{ $reAltTitleIn := `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }}
{{ $reAltTitleOut := "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
{{ $finalContent := $altContent | replaceRE $reAltTitleIn $reAltTitleOut | safeHTML }}
{{ $finalContent }}
{{ $content := .Content }}
{{ $REin := `<img src="([^"]+)" alt="([^"]+)?" />` }}
{{ $REout := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
{{ $content = replaceRE $REin $REout $content }}
{{ $REin = `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }}
{{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
{{ $content = replaceRE $REin $REout $content }}
{{ $REin = `:\(([\w- ]+?)\):` }}
{{ $REout = `<i class="inline-icon $1"></i>` }}
{{ $content = replaceRE $REin $REout $content }}
{{ $content | safeHTML }}
</div>
<div class="post-footer">
<div class="post-info">
<div class="post-info-mod"><span>{{ printf (T "lastMod") $modify_date }}</span></div>
<div class="post-info-share">
{{ if and ( $.Param "socialShare" ) (gt (len ($.Param "share")) 0) }}
<span>{{ partial "post/share-links.html" . }}</span>
{{ end }}
</div>
</div>
<div class="post-tags">
<section>
{{ with .Params.tags }}
{{ range . }}
<span class="tag">
<i class="fas fa-tag"></i><a href="{{ "tags/" | absURL }}{{ . | urlize }}/">&nbsp;{{.}}&nbsp;</a>
</span>
{{ end }}
{{ end }}
</section>
<section>
<span><a href="javascript:window.history.back();">{{ T "back" }}</a></span>&nbsp;|&nbsp;<span><a href="{{ .Site.BaseURL }}">{{ T "home" }}</a></span>
</section>
</div>
<div class="post-nav">
{{ if .PrevInSection }}
<a href="{{.PrevInSection.Permalink}}" class="prev" rel="prev" title="{{ .PrevInSection.Title}}"><i class="fas fa-angle-left"></i>&nbsp;{{ .PrevInSection.Title}}</a>
{{ end }}
{{ if .NextInSection }}
<a href="{{.NextInSection.Permalink}}" class="next" rel="next" title="{{.NextInSection.Title}}">{{.NextInSection.Title}}&nbsp;<i class="fas fa-angle-right"></i></a>
{{ end }}
</div>
</div>
{{ partial "post/footer.html" . }}
<div class="post-comment">
{{ if ( .Params.showComments | default true ) }}
{{ if ( .Params.comment | default true ) }}
{{ partial "comments.html" . }}
{{ end }}
</div>
</article>
{{- end }}
{{- end }}

View file

@ -1,46 +0,0 @@
<article class="post" itemscope itemtype="http://schema.org/Article">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a href="{{ .Permalink }}">{{ .Title }}</a>
</h1>
</header>
<div class="post-content">
<!--featured_image-->
{{ with .Params.featured_image }}
<p><img itemprop="image" src={{ . }} class="featured_image"></p>
{{ end }}
<!-- end featured_image-->
{{ .Summary }}
</div>
<div class="post-footer">
<div class="post-meta">
<span class="post-time">
<time datetime={{.Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }} itemprop="datePublished">
{{ .Date.Format (.Site.Params.dateFormatToUse | default "2 January 2006") }}
</time>
</span>
in
{{ with .Params.categories }}
<i class="far fa-folder"></i>
<span class="post-category">
{{ range . }}
{{ $name := . }}
{{ with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) }}
<a href="{{ .Permalink }}">{{ $name }}</a>
{{ end }}
{{ end }}
</span>
{{ end }}
</div>
{{ with .Params.tags }}
<div class="post-tags">
{{ range . }}
<span class="tag">
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/">#{{ . }}</a>
</span>
{{ end }}
</div>
{{ end }}
</div>
</article>

View file

@ -1,17 +1,16 @@
{{ if .Get "id" }}
{{ $id := .Get "id" }}
{{ with .Get "class" }}
<div id={{ $id }} class="{{ . }}"></div>
{{ else }}
<div id={{ $id }}></div>
{{ end }}
{{ $id = printf "#%s" $id }}
{{ with .Get "date" }}
{{ $date := . }}
{{ with $.Page.Scratch.Get "countdownMap" }}
{{ $.Page.Scratch.Set "countdownMap" (dict $id $date | merge .) }}
{{ else }}
{{ $.Page.Scratch.Set "countdownMap" (dict $id $date) }}
{{ end }}
{{ end }}
{{ end }}
{{ if .Get "id" -}}
{{ $id := .Get "id" -}}
{{ if .Get "date" -}}
{{ $date := .Get "date" -}}
{{ with .Page.Scratch.Get "countdownMap" -}}
{{ .Page.Scratch.Set "countdownMap" (dict $id $date | merge .) -}}
{{ else -}}
{{ .Page.Scratch.Set "countdownMap" (dict $id $date) -}}
{{ end -}}
{{ with .Get "class" -}}
<div id={{ $id }} class="{{ . }}"></div>
{{- else -}}
<div id={{ $id }}></div>
{{- end -}}
{{ end -}}
{{ end }}

View file

@ -9,7 +9,7 @@
{{ $taxonomyName = (T "category") }}
{{ end }}
<div class="post-warp archive">
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
<h2 class="post-title">
{{- printf "%s - %s" $taxonomyName .Title -}}
</h2>
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}

View file

@ -13,8 +13,8 @@
{{ $length := len $terms }}
{{ $type := .Type }}
<div class="post-warp {{.Data.Plural}}">
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
<div class="post-warp archive">
<h2 class="post-title">
{{- printf "- %s -" $taxonomysName -}}
</h2>