├── languages
├── .gitkeep
├── zh-CN.yml
└── default.yml
├── scripts
├── .gitkeep
├── path_url.js
├── category.js
└── home.js
├── index.html
├── layout
├── post.ejs
├── about.ejs
├── _partial
│ ├── excerpt.ejs
│ ├── pagination.ejs
│ ├── footer.ejs
│ ├── project-card.ejs
│ ├── article-card.ejs
│ ├── article.ejs
│ ├── nav.ejs
│ └── head.ejs
├── index.ejs
├── layout.ejs
├── tag.ejs
├── archive.ejs
└── category.ejs
├── source
├── fonts
│ ├── BebasNeue.otf
│ └── MaturaMTScriptCapitals.ttf
└── css
│ ├── _partial
│ ├── about.scss
│ ├── tagcloud.scss
│ ├── pagination.scss
│ ├── footer.scss
│ ├── archive.scss
│ ├── nav.scss
│ ├── project-card.scss
│ └── article.scss
│ ├── functions.scss
│ ├── layout.scss
│ ├── global.scss
│ ├── index.scss
│ ├── mixins.scss
│ ├── reset.css
│ └── fonts.scss
├── _config.yml
└── readme.md
/languages/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scripts/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | hello
2 |
--------------------------------------------------------------------------------
/layout/post.ejs:
--------------------------------------------------------------------------------
1 | <%- partial('_partial/article', { post: page }) %>
--------------------------------------------------------------------------------
/source/fonts/BebasNeue.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/esappear/hexo-theme-clover/HEAD/source/fonts/BebasNeue.otf
--------------------------------------------------------------------------------
/scripts/path_url.js:
--------------------------------------------------------------------------------
1 | hexo.extend.helper.register('path_url', function(path){
2 | return path.replace(/\/|\'|\s/g, '-');
3 | });
--------------------------------------------------------------------------------
/layout/about.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%- page.content %>
4 |
5 |
--------------------------------------------------------------------------------
/source/fonts/MaturaMTScriptCapitals.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/esappear/hexo-theme-clover/HEAD/source/fonts/MaturaMTScriptCapitals.ttf
--------------------------------------------------------------------------------
/languages/zh-CN.yml:
--------------------------------------------------------------------------------
1 | categories: 分类
2 | tags: 标签
3 | archive_a: 归档
4 | archive_b: 归档:%s
5 | page: 第 %d 页
6 | category: 分类
7 | tag: 标签
8 | other_category: 其他
--------------------------------------------------------------------------------
/source/css/_partial/about.scss:
--------------------------------------------------------------------------------
1 | .about {
2 | background-color: white;
3 | min-height: 300px;
4 | padding: 80px;
5 | font-size: 16px;
6 | line-height: 30px;
7 | }
--------------------------------------------------------------------------------
/source/css/_partial/tagcloud.scss:
--------------------------------------------------------------------------------
1 | .tagcloud {
2 | background-color: white;
3 | padding: 60px;
4 | > a {
5 | display: inline-block;
6 | padding: 10px;
7 | }
8 | }
--------------------------------------------------------------------------------
/layout/_partial/excerpt.ejs:
--------------------------------------------------------------------------------
1 | <% if (post.excerpt) { %>
2 | <%- post.excerpt %>
3 | <% } else { %>
4 | <%= (post.raw.match(/excerpts?:\s*([^\n]+)\n/) || ['', ''])[1] %>
5 | <% } %>
--------------------------------------------------------------------------------
/languages/default.yml:
--------------------------------------------------------------------------------
1 | categories: Categories
2 | tags: Tags
3 | archive_a: Archives
4 | archive_b: "Archives: %s"
5 | page: Page %d
6 | category: Category
7 | tag: Tag
8 | other_category: Others
--------------------------------------------------------------------------------
/layout/index.ejs:
--------------------------------------------------------------------------------
1 | <% page.posts.each(function(post){ %>
2 | <%- partial('_partial/' + (theme.card_style.home || 'project-card') , { post: post }) %>
3 | <% }) %>
4 | <%- partial('_partial/pagination') %>
--------------------------------------------------------------------------------
/source/css/functions.scss:
--------------------------------------------------------------------------------
1 | .f-fl {
2 | float: left;
3 | }
4 |
5 | .f-fr {
6 | float: right;
7 | }
8 |
9 | .f-cf {
10 | &::after {
11 | content: '';
12 | display:block;
13 | height: 0;
14 | visibility: hidden;
15 | clear: both;
16 | }
17 | }
--------------------------------------------------------------------------------
/source/css/layout.scss:
--------------------------------------------------------------------------------
1 | #container {
2 | max-width: 980px;
3 | margin: 90px auto 75px;
4 | padding: 0 15px;
5 | @media screen and (max-width: 600px){
6 | margin-top: 20px;
7 | margin-bottom: 20px;
8 | }
9 | }
10 |
11 | #panel {
12 | background-color: white;
13 | }
--------------------------------------------------------------------------------
/layout/_partial/pagination.ejs:
--------------------------------------------------------------------------------
1 | <% if (page.prev || page.next) { %>
2 |
8 | <% } %>
9 |
--------------------------------------------------------------------------------
/source/css/_partial/pagination.scss:
--------------------------------------------------------------------------------
1 | .pagination {
2 | padding: 20px;
3 | background-color: white;
4 | text-align: center;
5 | > .prev, > .next {
6 | margin: 0 10px;
7 | }
8 | > .page-number {
9 | margin: 0 10px;
10 | &.current {
11 | text-decoration: underline;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/source/css/global.scss:
--------------------------------------------------------------------------------
1 | a {
2 | color: #333;
3 | text-decoration: none;
4 | &:hover {
5 | opacity: .7;
6 | }
7 | }
8 |
9 | body {
10 | font-family: -apple-system, system-ui, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;
11 | }
--------------------------------------------------------------------------------
/source/css/_partial/footer.scss:
--------------------------------------------------------------------------------
1 | #footer {
2 | margin-top: 80px;
3 | font-size: 14px;
4 | line-height: 22px;
5 | opacity: 0.8;
6 | color: #333;
7 | .copyright {
8 | float: right;
9 | }
10 | @media screen and (max-width: 800px){
11 | margin-top: 20px;
12 | text-align: center;
13 | .copyright {
14 | display: block;
15 | float: none;
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/layout/_partial/footer.ejs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/_partial/project-card.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% if (post.photos[0]) { %>
3 |
4 |

5 |
6 | <% } %>
7 |
8 |
<%= post.title %>
9 |
<%- partial('excerpt', { post: post }) %>
10 |
<%- date(post.date, 'MMM D, YYYY') %>
11 |
12 |
--------------------------------------------------------------------------------
/source/css/index.scss:
--------------------------------------------------------------------------------
1 | @import 'mixins.scss';
2 | @import 'reset.css';
3 | @import 'layout.scss';
4 | @import 'global.scss';
5 | @import 'fonts.scss';
6 | @import 'functions.scss';
7 |
8 | @import '_partial/nav.scss';
9 | @import '_partial/footer.scss';
10 | @import '_partial/pagination.scss';
11 | @import '_partial/project-card.scss';
12 | @import '_partial/article.scss';
13 | @import '_partial/archive.scss';
14 | @import '_partial/about.scss';
15 | @import '_partial/tagcloud.scss';
--------------------------------------------------------------------------------
/source/css/mixins.scss:
--------------------------------------------------------------------------------
1 | // 左侧固定,右侧自适应的布局
2 | @mixin left-right-layout($leftWidth, $divide:0, $align:middle) {
3 | font-size: 0;
4 | line-height: 0;
5 | > .leftWrap {
6 | display: inline-block;
7 | vertical-align: $align;
8 | width: $leftWidth;
9 | }
10 | > .rightWrap {
11 | display: inline-block;
12 | vertical-align: $align;
13 | width: 100%;
14 | box-sizing: border-box;
15 | margin-left: -$leftWidth;
16 | padding-left: $leftWidth + $divide;
17 | }
18 | }
--------------------------------------------------------------------------------
/layout/_partial/article-card.ejs:
--------------------------------------------------------------------------------
1 |
2 | <% if (post.photos[0]) { %>
3 |
4 |

5 |
6 | <% } %>
7 |
8 |
<%= post.title %>
9 |
<%- partial('excerpt', { post: post }) %>
10 |
<%- date(post.date, 'MMM D, YYYY') %>
11 |
12 |
--------------------------------------------------------------------------------
/layout/layout.ejs:
--------------------------------------------------------------------------------
1 | <%- partial('_partial/head') %>
2 |
11 |
12 | <%- partial('_partial/nav') %>
13 |
<%- body %>
14 | <%- partial('_partial/footer') %>
15 |
16 |
17 |