├── .github
└── workflows
│ └── npmpublish.yml
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── README_CN.md
├── _config.example.yml
├── index.js
├── layout
├── about.ejs
├── common
│ ├── footer.ejs
│ ├── group.ejs
│ ├── head.ejs
│ └── header.ejs
├── index.ejs
├── layout.ejs
└── page.ejs
├── move_config.js
├── package-lock.json
├── package.json
├── screenshot
└── screenshot.png
├── scripts
└── replace_config.js
└── source
├── css
├── bootstrap.min.css
├── fonts
│ ├── fontawesome
│ │ ├── css
│ │ │ ├── all.min.css
│ │ │ └── webfonts
│ │ │ │ ├── fa-brands-400.eot
│ │ │ │ ├── fa-brands-400.svg
│ │ │ │ ├── fa-brands-400.ttf
│ │ │ │ ├── fa-brands-400.woff
│ │ │ │ ├── fa-brands-400.woff2
│ │ │ │ ├── fa-regular-400.eot
│ │ │ │ ├── fa-regular-400.svg
│ │ │ │ ├── fa-regular-400.ttf
│ │ │ │ ├── fa-regular-400.woff
│ │ │ │ ├── fa-regular-400.woff2
│ │ │ │ ├── fa-solid-900.eot
│ │ │ │ ├── fa-solid-900.svg
│ │ │ │ ├── fa-solid-900.ttf
│ │ │ │ ├── fa-solid-900.woff
│ │ │ │ └── fa-solid-900.woff2
│ │ └── webfonts
│ │ │ ├── fa-brands-400.eot
│ │ │ ├── fa-brands-400.svg
│ │ │ ├── fa-brands-400.ttf
│ │ │ ├── fa-brands-400.woff
│ │ │ ├── fa-brands-400.woff2
│ │ │ ├── fa-regular-400.eot
│ │ │ ├── fa-regular-400.svg
│ │ │ ├── fa-regular-400.ttf
│ │ │ ├── fa-regular-400.woff
│ │ │ ├── fa-regular-400.woff2
│ │ │ ├── fa-solid-900.eot
│ │ │ ├── fa-solid-900.svg
│ │ │ ├── fa-solid-900.ttf
│ │ │ ├── fa-solid-900.woff
│ │ │ └── fa-solid-900.woff2
│ └── linecons
│ │ ├── css
│ │ ├── linecons-codes.css
│ │ ├── linecons-embedded.css
│ │ ├── linecons-ie7-codes.css
│ │ ├── linecons-ie7.css
│ │ └── linecons.min.css
│ │ └── font
│ │ ├── linecons.eot
│ │ ├── linecons.svg
│ │ ├── linecons.ttf
│ │ └── linecons.woff
├── hclonely.css
├── nav.min.css
├── xenon-components.min.css
├── xenon-core.min.css
├── xenon-forms.min.css
├── xenon-skins.min.css
└── xenon.min.css
├── images
├── favicon.png
├── flags
│ ├── flag-cn.png
│ └── flag-us.png
├── logo-collapsed@2x.png
├── logo@2x.png
├── logo_dark@2x.png
├── logos
│ ├── github.png
│ └── myblog.png
├── off_on.png
├── search_icon.png
├── webstack_banner_cn.png
└── webstack_icon_producthunt.png
└── js
├── TweenMax.min.js
├── bootstrap.min.js
├── footer.js
├── header.js
├── html5shiv.min.js
├── joinable.js
├── jquery-1.11.1.min.js
├── lozad.min.js
├── resizeable.js
├── resizeable.min.js
├── respond.min.js
├── xenon-api.min.js
├── xenon-custom.min.js
└── xenon-toggles.min.js
/.github/workflows/npmpublish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3 |
4 | name: Node.js Package
5 |
6 | on:
7 | release:
8 | types: [created]
9 |
10 | jobs:
11 | publish-npm:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v2
15 | - uses: actions/setup-node@v1
16 | with:
17 | node-version: 12
18 | registry-url: https://registry.npmjs.org/
19 | - run: npm publish
20 | env:
21 | NODE_AUTH_TOKEN: ${{secrets.npm_token}}
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .vscode
3 | .history
4 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | screenshot/
2 | .github/
3 | .history/
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 HCLonely
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # hexo-theme-webstack
2 |
3 | [中文文档](https://github.com/HCLonely/hexo-theme-webstack/blob/master/README_CN.md)
4 |
5 | > A Hexo theme based on [WebStackPage](https://github.com/WebStackPage/WebStackPage.github.io).
6 |
7 | 
8 |
9 | ## Installation
10 |
11 | ### hexo >= 4.0
12 |
13 | ```shell
14 | git clone https://github.com/HCLonely/hexo-theme-webstack themes/webstack
15 | ```
16 |
17 | ### hexo >= 5.0
18 |
19 | ```shell
20 | npm install hexo-theme-webstack -S
21 | ```
22 |
23 | or
24 |
25 | ```shell
26 | cnpm install hexo-theme-webstack -S
27 | ```
28 |
29 | ## Configuration
30 |
31 | ### hexo >= 4.0
32 |
33 | Copy the `_config.example.yml` file in the `themes/webstack/` directory to the `rootDir/source/_data/` directory and rename it to `webstack.yml`.
34 |
35 | Configure it by editing `webstack.yml`.
36 |
37 | ### hexo >= 5.0
38 |
39 | - If this theme is newly installed, a `_config.webstack.yml` file will be generated in the root directory after the installation is complete, and you can directly edit the `_config.webstack.yml` file for configuration.
40 | - If it is a theme upgrade, you can use the configuration method of hexo >= 4.0, or you can move the original configuration file to the root directory and rename it to `_config.webstack.yml`.
41 |
42 | > Note: Please keep only one of `rootDir/_config.webstack.yml` and `rootDir/source/_data/webstack.yml`!
43 |
44 | ### favicon
45 |
46 | > Website icon.
47 |
48 | Examples:
49 | ```yml
50 | favicon: /favicon.ico
51 | ```
52 |
53 | ### banner
54 |
55 | > [Optional] Banner when sharing website to twitter and facebook.
56 |
57 | Examples:
58 | ```yml
59 | banner: /images/webstack_banner_cn.png
60 | ```
61 |
62 | ### logo
63 |
64 | > Website logo.
65 |
66 | - `expanded`: The logo in the upper left corner of the expanded sidebar.
67 | - `collapsed`: The logo in the upper left corner of the retractable sidebar.
68 | - `dark`: The logo in the upper left corner when the top bar is dark, only the `about` page takes effect.
69 |
70 | Examples:
71 | ```yml
72 | logo:
73 | expanded: /images/logo@2x.png
74 | collapsed: /images/logo-collapsed@2x.png
75 | dark: /images/logo_dark@2x.png
76 | ```
77 |
78 | ### flag
79 |
80 | > Language identifier, multi-language please cooperate with [Subpage](#Subpage-configuration) use.
81 |
82 | - icon: Language icons, by default only `flag-cn` and `flag-us`, other icons please look for and store in `theme directory/source/images/flags/`.
83 | - name: Language name
84 | - default: Whether the language is the default language
85 | - index: The page link
86 |
87 | Examples:
88 | ```yml
89 | flag:
90 | - name: Chinese
91 | default: true
92 | icon: flag-cn
93 | index: /index.html
94 | ```
95 |
96 | ### search
97 |
98 | > Whether to show search box
99 |
100 | Examples:
101 | ```yml
102 | search: true
103 | ```
104 |
105 | ### userDefinedSearchData
106 |
107 | > Custom search engine
108 |
109 | - custom: Whether to enable custom configuration
110 | - thisSearch: Current search engine search link
111 | - thisSearchIcon: Current search engine icon link, format: `url(图片链接)`
112 | - hotStatus: Whether to enable hot word search function
113 | - data: Multiple search engine configurations
114 | - name: Search engine name
115 | img: Search engine search link
116 | url: Search engine icon link, format: `url(图片链接)`
117 |
118 | 示例:
119 | ```yml
120 | userDefinedSearchData:
121 | custom: true
122 | thisSearch: https://www.baidu.com/s?wd=
123 | thisSearchIcon: url(https://www.baidu.com/favicon.ico)
124 | hotStatus: true
125 | data:
126 | - name: 百度
127 | img: url(https://www.baidu.com/favicon.ico)
128 | url: https://www.baidu.com/s?wd=
129 | - name: 谷歌
130 | img: url(https://www.google.com/favicon.ico)
131 | url: https://www.google.com/search?q=
132 | ```
133 |
134 | ### githubCorner
135 |
136 | > [Github corner](http://tholman.com/github-corners/) in the upper right corner.
137 |
138 | Examples:
139 | ```yml
140 | githubCorner: ' '
141 | ```
142 |
143 | ### since
144 |
145 | > Year of site establishment, shown at the bottom of the page.
146 |
147 | Examples:
148 | ```yml
149 | since: 2020
150 | ```
151 |
152 | ### menu
153 |
154 | > **[Main] Sidebar menu settings**
155 |
156 | - name: Group name
157 | - icon: Group icon
158 | - config: [Main] Grouped content (see [Config](#config) for detailed settings), if there is a submenu, this item is not needed!
159 | - submenu: If there is a submenu, `config` is not required, this option contains `name`, `icon`, `config` options.
160 |
161 | Examples:
162 | ```yml
163 | menu:
164 | - name: 常用工具
165 | icon: far fa-star
166 | config: hotTools
167 | - name: 其他工具
168 | icon: fas fa-tools
169 | submenu:
170 | - name: 开发工具
171 | icon: fas fa-tools
172 | config: devTools
173 | - name: 我的博客
174 | icon: fas fa-blog
175 | config: myBlog
176 | ```
177 |
178 | ### expandAll
179 |
180 | > Whether to expand the sidebar.
181 |
182 | 示例:
183 |
184 | ```yml
185 | expandAll: true
186 | ```
187 |
188 | ### about
189 |
190 | > About this site in the sidebar.
191 |
192 | - url: The link of about page.
193 | - name: Text displayed in the sidebar.
194 | - icon: Icon.
195 |
196 | Examples:
197 | ```yml
198 | about:
199 | url: /about/
200 | icon: far fa-heart
201 | name: 关于本站
202 | ```
203 |
204 | ### aboutPage
205 |
206 | > About page settings.
207 |
208 | 1. Generate about page.
209 |
210 | ```shell
211 | hexo new page about
212 | ```
213 |
214 | 2. Edit `source/about/index.md` and add `type:'about'`
215 |
216 | ```yml
217 | ---
218 | title: about
219 | date: 2020-06-04 18:11:54
220 | type: 'about'
221 | ---
222 | ```
223 |
224 | 3. Editing `aboutPage` in theme configuration files.
225 |
226 | - website: The content of about this site.
227 | - head: Headline.
228 | - html: Content, support `html` syntax.
229 | - webmaster: The content of about webmaster.
230 | - head: Headline.
231 | - name: Webmaster's name
232 | - url: Link.
233 | - img: Avatar.
234 | - description: Description.
235 | - html: Content, support `html` syntax.
236 |
237 | Examples:
238 | ```yml
239 | aboutPage:
240 | website:
241 | head: 关于本站
242 | html: '
本站是hexo主题hexo-theme-webstack 的demo站。
'
243 | webmaster:
244 | head: 关于站长
245 | name: HCLonely
246 | url: https://blog.hclonely.com/
247 | img: /images/logos/myblog.png
248 | description: 懒人一个
249 | html: '本站是HCLonely 基于WebStackPage 项目做的一款Hexo 主题。
'
250 | ```
251 |
252 | ### busuanzi
253 |
254 | > Website statistics by busuanzi.
255 |
256 | - enable: Whether to enable this feature.
257 | - position: The number of visits is displayed, `footer` is displayed in the footer, and `sidebar` is displayed in the sidebar.
258 | - pv: The number of visits displayed by the traffic, `$pv` will be replaced by the number of visits.
259 | - uv: The number of visitors displayed, `$uv` will be replaced by the number of visitors.
260 |
261 | Examples:
262 | ```yml
263 | busuanzi:
264 | enable: true
265 | position: sidebar
266 | pv: 本站总访问量$pv
267 | uv: 本站总访客数$uv
268 | ```
269 |
270 | ### custom
271 |
272 | > Customize `html` content.
273 |
274 | - head: Content inserted into the `` tag.
275 | - body: Content inserted before the `
2 |
16 |
17 |
18 |
19 |
20 |
21 | <% if (theme.aboutPage && theme.aboutPage.website) { %>
22 |
<%= theme.aboutPage.website.head %>
23 |
24 |
25 |
26 | <%- theme.aboutPage.website.html %>
27 |
28 |
29 | <% } else { %>
30 |
31 | <% } %>
32 | <% if (theme.aboutPage && theme.aboutPage.webmaster) { %>
33 |
<%= theme.aboutPage.webmaster.head %>
34 |
35 |
50 |
51 |
52 |
53 | <%- theme.aboutPage.webmaster.html %>
54 |
55 |
56 |
57 |
58 |
59 | <% } %>
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/layout/common/footer.ejs:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 | <%- js([setting.js.bootstrap, setting.js.TweenMax, setting.js.resizeable, setting.js.joinable, setting.js.xenonApi, setting.js.xenonToggles, setting.js.xenonCustom]) %>
25 | <% if (setting.busuanzi.enable) { %>
26 |
27 | <% } %>
28 | <% if (page.type!=="about") { %>
29 | <%- js(setting.js.lozad) %>
30 | <% } else { %>
31 |
32 | <% } %>
33 |
--------------------------------------------------------------------------------
/layout/common/group.ejs:
--------------------------------------------------------------------------------
1 |
<%= e.name %>
2 |
3 | <% menus.forEach(function(menu) { %>
4 |
19 | <% }) %>
20 |
21 |
22 |
--------------------------------------------------------------------------------
/layout/common/head.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
<%= setting.tittle || config.title %> - <%= setting.subtitle || config.subtitle %>
7 |
8 |
9 |
10 | <%- css(Object.values(setting.css)) %>
11 | <%- js(setting.js.jquery) %>
12 |
16 | <%- js(setting.js.header) %>
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | <% if (setting.banner) { %>
29 |
30 | <% } %>
31 |
32 |
33 |
34 |
35 | <% if (setting.banner) { %>
36 |
37 | <% } %>
38 | <% if (setting.custom && setting.custom.head) { %>
39 | <%- setting.custom.head %>
40 | <% } %>
41 |
42 |
--------------------------------------------------------------------------------
/layout/common/header.ejs:
--------------------------------------------------------------------------------
1 |
71 |
--------------------------------------------------------------------------------
/layout/index.ejs:
--------------------------------------------------------------------------------
1 | <% const isChildPage = page.type === 'child' %>
2 | <% const setting = isChildPage ? Object.assign({}, theme, page) : theme %>
3 | <%# console.log(page.path) %>
4 |
5 |
6 | <%- partial('common/header', {setting:setting}) %>
7 |
8 |
9 |
10 |
47 | <% if (setting.githubCorner) { %>
48 | <%- setting.githubCorner %>
49 | <% } %>
50 |
51 | <% if(setting.search){ %>
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
63 |
64 |
65 |
66 |
选择您的默认搜索引擎:
67 |
搜索热词:
68 |
69 |
71 |
72 |
73 |
74 | <% } %>
75 | <% if(is_home() || isChildPage){ %>
76 | <% const menuSetting = isChildPage ? page : theme; %>
77 | <% menuSetting.menu.forEach(function(e) { %>
78 | <% if (e.submenu) { %>
79 | <% e.submenu.forEach(function(e) { %>
80 | <% const childPath = page.path.replace('index.html', '') + e.config; %>
81 | <% const key = isChildPage?childPath:e.config; %>
82 | <% var menus = site.data && site.data[key] ? site.data[key] : menuSetting[e.config]; %>
83 | <%- partial('common/group.ejs', {e: e, menus: menus || []}); %>
84 | <% }) %>
85 | <% } else { %>
86 | <% const childPath = page.path.replace('index.html', '') + e.config; %>
87 | <% const key = isChildPage?childPath:e.config; %>
88 | <% var menus = site.data && site.data[key] ? site.data[key] : menuSetting[e.config]; %>
89 | <%# console.log(page.path,childPath,key); %>
90 | <%- partial('common/group.ejs', {e: e, menus: menus || []}); %>
91 | <% } %>
92 | <% }) %>
93 | <% } %>
94 | <%- js(setting.js.footer) %>
95 |
--------------------------------------------------------------------------------
/layout/layout.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <% const setting = page ? Object.assign({}, theme, page) : theme %>
4 |
5 | <%- partial('common/head', {setting:setting}) %>
6 |
7 |
8 | <%- body %>
9 | <%- partial('common/footer', {setting:setting}) %>
10 | <% if (setting.custom && setting.custom.body) { %>
11 | <%- setting.custom.body %>
12 | <% } %>
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/layout/page.ejs:
--------------------------------------------------------------------------------
1 | <% if(page.type==="about"){ %>
2 | <%- partial('about') %>
3 | <% }else if(page.type==="child"){ %>
4 | <%- partial('index') %>
5 | <% }else{ %>
6 | <% } %>
7 |
--------------------------------------------------------------------------------
/move_config.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 |
3 | if (fs.existsSync('../hexo/package.json')){
4 | const version = JSON.parse(fs.readFileSync('../hexo/package.json')).version
5 | if (version.split('.')[0].includes('5')) {
6 | const oldConfigPath = '../../source/_data/webstack.yml'
7 | const configPath = '../../_config.webstack.yml'
8 | if (!fs.existsSync(configPath) && !fs.existsSync(oldConfigPath)) {
9 | fs.writeFileSync(configPath, fs.readFileSync('./_config.example.yml'))
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hexo-theme-webstack",
3 | "version": "2.1.1",
4 | "description": "A hexo theme based on webstack.",
5 | "keywords": [
6 | "hexo",
7 | "theme",
8 | "webstack"
9 | ],
10 | "main": "index.js",
11 | "scripts": {
12 | "test": "ejslint ./layout",
13 | "mincss": "cleancss",
14 | "postinstall": "node ./move_config.js"
15 | },
16 | "author": "HCLonely
",
17 | "license": "MIT",
18 | "bugs": {
19 | "url": "https://github.com/HCLonely/hexo-theme-webstack/issues",
20 | "email": "h1606051253@gmail.com"
21 | },
22 | "repository": {
23 | "type": "git",
24 | "url": "https://github.com/HCLonely/hexo-theme-webstack.git"
25 | },
26 | "devDependencies": {
27 | "clean-css-cli": "^4.3.0",
28 | "ejs-lint": "^0.1.1",
29 | "uglify-js": "^3.9.4"
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/screenshot/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/screenshot/screenshot.png
--------------------------------------------------------------------------------
/scripts/replace_config.js:
--------------------------------------------------------------------------------
1 | hexo.on('generateBefore', function () {
2 | const rootConfig = hexo.config
3 | if (hexo.locals.get) {
4 | const data = hexo.locals.get('data')
5 | data && data.webstack && (hexo.theme.config = data.webstack)
6 | }
7 | hexo.theme.config.rootConfig = rootConfig
8 | })
9 |
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/css/webfonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/source/css/fonts/fontawesome/webfonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/fontawesome/webfonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/source/css/fonts/linecons/css/linecons-codes.css:
--------------------------------------------------------------------------------
1 |
2 | .linecons-music:before { content: '\e800'; } /* '' */
3 | .linecons-search:before { content: '\e801'; } /* '' */
4 | .linecons-mail:before { content: '\e802'; } /* '' */
5 | .linecons-heart:before { content: '\e803'; } /* '' */
6 | .linecons-star:before { content: '\e804'; } /* '' */
7 | .linecons-user:before { content: '\e805'; } /* '' */
8 | .linecons-videocam:before { content: '\e806'; } /* '' */
9 | .linecons-camera:before { content: '\e807'; } /* '' */
10 | .linecons-photo:before { content: '\e808'; } /* '' */
11 | .linecons-attach:before { content: '\e809'; } /* '' */
12 | .linecons-lock:before { content: '\e80a'; } /* '' */
13 | .linecons-eye:before { content: '\e80b'; } /* '' */
14 | .linecons-tag:before { content: '\e80c'; } /* '' */
15 | .linecons-thumbs-up:before { content: '\e80d'; } /* '' */
16 | .linecons-pencil:before { content: '\e80e'; } /* '' */
17 | .linecons-comment:before { content: '\e80f'; } /* '' */
18 | .linecons-location:before { content: '\e810'; } /* '' */
19 | .linecons-cup:before { content: '\e811'; } /* '' */
20 | .linecons-trash:before { content: '\e812'; } /* '' */
21 | .linecons-doc:before { content: '\e813'; } /* '' */
22 | .linecons-note:before { content: '\e814'; } /* '' */
23 | .linecons-cog:before { content: '\e815'; } /* '' */
24 | .linecons-params:before { content: '\e816'; } /* '' */
25 | .linecons-calendar:before { content: '\e817'; } /* '' */
26 | .linecons-sound:before { content: '\e818'; } /* '' */
27 | .linecons-clock:before { content: '\e819'; } /* '' */
28 | .linecons-lightbulb:before { content: '\e81a'; } /* '' */
29 | .linecons-tv:before { content: '\e81b'; } /* '' */
30 | .linecons-desktop:before { content: '\e81c'; } /* '' */
31 | .linecons-mobile:before { content: '\e81d'; } /* '' */
32 | .linecons-cd:before { content: '\e81e'; } /* '' */
33 | .linecons-inbox:before { content: '\e81f'; } /* '' */
34 | .linecons-globe:before { content: '\e820'; } /* '' */
35 | .linecons-cloud:before { content: '\e821'; } /* '' */
36 | .linecons-paper-plane:before { content: '\e822'; } /* '' */
37 | .linecons-fire:before { content: '\e823'; } /* '' */
38 | .linecons-graduation-cap:before { content: '\e824'; } /* '' */
39 | .linecons-megaphone:before { content: '\e825'; } /* '' */
40 | .linecons-database:before { content: '\e826'; } /* '' */
41 | .linecons-key:before { content: '\e827'; } /* '' */
42 | .linecons-beaker:before { content: '\e828'; } /* '' */
43 | .linecons-truck:before { content: '\e829'; } /* '' */
44 | .linecons-money:before { content: '\e82a'; } /* '' */
45 | .linecons-food:before { content: '\e82b'; } /* '' */
46 | .linecons-shop:before { content: '\e82c'; } /* '' */
47 | .linecons-diamond:before { content: '\e82d'; } /* '' */
48 | .linecons-t-shirt:before { content: '\e82e'; } /* '' */
49 | .linecons-wallet:before { content: '\e82f'; } /* '' */
--------------------------------------------------------------------------------
/source/css/fonts/linecons/css/linecons-ie7-codes.css:
--------------------------------------------------------------------------------
1 |
2 | .linecons-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
3 | .linecons-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
4 | .linecons-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
5 | .linecons-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
6 | .linecons-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
7 | .linecons-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
8 | .linecons-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
9 | .linecons-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
10 | .linecons-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
11 | .linecons-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
12 | .linecons-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
13 | .linecons-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
14 | .linecons-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
15 | .linecons-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
16 | .linecons-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
17 | .linecons-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
18 | .linecons-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
19 | .linecons-cup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
20 | .linecons-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
21 | .linecons-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
22 | .linecons-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
23 | .linecons-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
24 | .linecons-params { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
25 | .linecons-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
26 | .linecons-sound { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
27 | .linecons-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
28 | .linecons-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
29 | .linecons-tv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
30 | .linecons-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
31 | .linecons-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
32 | .linecons-cd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
33 | .linecons-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
34 | .linecons-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
35 | .linecons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
36 | .linecons-paper-plane { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
37 | .linecons-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
38 | .linecons-graduation-cap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
39 | .linecons-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
40 | .linecons-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
41 | .linecons-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
42 | .linecons-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
43 | .linecons-truck { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
44 | .linecons-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
45 | .linecons-food { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
46 | .linecons-shop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
47 | .linecons-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
48 | .linecons-t-shirt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
49 | .linecons-wallet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
--------------------------------------------------------------------------------
/source/css/fonts/linecons/css/linecons-ie7.css:
--------------------------------------------------------------------------------
1 | [class^="linecons-"], [class*=" linecons-"] {
2 | font-family: 'linecons';
3 | font-style: normal;
4 | font-weight: normal;
5 |
6 | /* fix buttons height */
7 | line-height: 1em;
8 |
9 | /* you can be more comfortable with increased icons size */
10 | /* font-size: 120%; */
11 | }
12 |
13 | .linecons-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
14 | .linecons-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
15 | .linecons-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
16 | .linecons-heart { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
17 | .linecons-star { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
18 | .linecons-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
19 | .linecons-videocam { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
20 | .linecons-camera { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
21 | .linecons-photo { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
22 | .linecons-attach { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
23 | .linecons-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
24 | .linecons-eye { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
25 | .linecons-tag { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
26 | .linecons-thumbs-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
27 | .linecons-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
28 | .linecons-comment { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
29 | .linecons-location { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
30 | .linecons-cup { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
31 | .linecons-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
32 | .linecons-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
33 | .linecons-note { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
34 | .linecons-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
35 | .linecons-params { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
36 | .linecons-calendar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
37 | .linecons-sound { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
38 | .linecons-clock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
39 | .linecons-lightbulb { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
40 | .linecons-tv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
41 | .linecons-desktop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
42 | .linecons-mobile { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
43 | .linecons-cd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
44 | .linecons-inbox { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
45 | .linecons-globe { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
46 | .linecons-cloud { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
47 | .linecons-paper-plane { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
48 | .linecons-fire { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
49 | .linecons-graduation-cap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
50 | .linecons-megaphone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
51 | .linecons-database { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
52 | .linecons-key { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
53 | .linecons-beaker { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
54 | .linecons-truck { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
55 | .linecons-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
56 | .linecons-food { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
57 | .linecons-shop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
58 | .linecons-diamond { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
59 | .linecons-t-shirt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
60 | .linecons-wallet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
--------------------------------------------------------------------------------
/source/css/fonts/linecons/css/linecons.min.css:
--------------------------------------------------------------------------------
1 | @font-face{font-family:linecons;src:url(../font/linecons.eot?24293614);src:url(../font/linecons.eot?24293614#iefix) format('embedded-opentype'),url(../font/linecons.woff?24293614) format('woff'),url(../font/linecons.ttf?24293614) format('truetype'),url(../font/linecons.svg?24293614#linecons) format('svg');font-weight:400;font-style:normal}[class*=" linecons-"]:before,[class^=linecons-]:before{font-family:linecons;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.linecons-music:before{content:'\e800'}.linecons-search:before{content:'\e801'}.linecons-mail:before{content:'\e802'}.linecons-heart:before{content:'\e803'}.linecons-star:before{content:'\e804'}.linecons-user:before{content:'\e805'}.linecons-videocam:before{content:'\e806'}.linecons-camera:before{content:'\e807'}.linecons-photo:before{content:'\e808'}.linecons-attach:before{content:'\e809'}.linecons-lock:before{content:'\e80a'}.linecons-eye:before{content:'\e80b'}.linecons-tag:before{content:'\e80c'}.linecons-thumbs-up:before{content:'\e80d'}.linecons-pencil:before{content:'\e80e'}.linecons-comment:before{content:'\e80f'}.linecons-location:before{content:'\e810'}.linecons-cup:before{content:'\e811'}.linecons-trash:before{content:'\e812'}.linecons-doc:before{content:'\e813'}.linecons-note:before{content:'\e814'}.linecons-cog:before{content:'\e815'}.linecons-params:before{content:'\e816'}.linecons-calendar:before{content:'\e817'}.linecons-sound:before{content:'\e818'}.linecons-clock:before{content:'\e819'}.linecons-lightbulb:before{content:'\e81a'}.linecons-tv:before{content:'\e81b'}.linecons-desktop:before{content:'\e81c'}.linecons-mobile:before{content:'\e81d'}.linecons-cd:before{content:'\e81e'}.linecons-inbox:before{content:'\e81f'}.linecons-globe:before{content:'\e820'}.linecons-cloud:before{content:'\e821'}.linecons-paper-plane:before{content:'\e822'}.linecons-fire:before{content:'\e823'}.linecons-graduation-cap:before{content:'\e824'}.linecons-megaphone:before{content:'\e825'}.linecons-database:before{content:'\e826'}.linecons-key:before{content:'\e827'}.linecons-beaker:before{content:'\e828'}.linecons-truck:before{content:'\e829'}.linecons-money:before{content:'\e82a'}.linecons-food:before{content:'\e82b'}.linecons-shop:before{content:'\e82c'}.linecons-diamond:before{content:'\e82d'}.linecons-t-shirt:before{content:'\e82e'}.linecons-wallet:before{content:'\e82f'}
--------------------------------------------------------------------------------
/source/css/fonts/linecons/font/linecons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/linecons/font/linecons.eot
--------------------------------------------------------------------------------
/source/css/fonts/linecons/font/linecons.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Copyright (C) 2014 by original authors @ fontello.com
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/source/css/fonts/linecons/font/linecons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/linecons/font/linecons.ttf
--------------------------------------------------------------------------------
/source/css/fonts/linecons/font/linecons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/css/fonts/linecons/font/linecons.woff
--------------------------------------------------------------------------------
/source/css/hclonely.css:
--------------------------------------------------------------------------------
1 | .sousuo{
2 | padding: 25px 0 35px 0;
3 | max-width: 717px;
4 | margin: 0 auto;
5 | }
6 | .search{
7 | position: relative;
8 | width: 100%;
9 | margin: 0 auto;
10 | }
11 | .search-box{
12 | position: relative;
13 | }
14 | .search-icon{
15 | position: absolute;
16 | left: 3px;
17 | top: 5px;
18 | width: 40px;
19 | height: 40px;
20 | overflow: hidden;
21 | border-radius: 25px;
22 | cursor: pointer;
23 | opacity: 0;
24 | }
25 | .search-input{
26 | width: 100%;
27 | height: 50px;
28 | line-height: 50px;
29 | font-size: 16px;
30 | color: #999;
31 | border: none;
32 | outline: none;
33 | padding-left: 45px;
34 | border: 1px solid #e6e6e6;
35 | border-radius: 10px;
36 | }
37 | .search-input:focus{
38 | outline: none;
39 | border: 1px solid #2188ff;
40 | -webkit-box-shadow: 0 0 5px 0px rgba(71, 158, 245, 0.5);
41 | box-shadow: 0 0 5px 0px rgba(71, 158, 245, 0.5);
42 | }
43 | input::-webkit-input-placeholder{
44 | font-size: 12px;
45 | letter-spacing: 1px;
46 | color: #ccc;
47 | }
48 | .search-btn{
49 | position: absolute;
50 | right: 0;
51 | top: 0;
52 | width: 50px;
53 | line-height: 48px;
54 | background: transparent;
55 | border: none;
56 | font-size: 25px;
57 | color: #ddd;
58 | font-weight: bold;
59 | outline: none;
60 | padding: 0 10px;
61 | }
62 | .search-btn:hover{ color: #6b7184 }
63 | .search-btn i { margin: 0 }
64 | .search-hot-text{
65 | position: absolute;
66 | z-index: 100;
67 | width: 100%;
68 | border-radius: 0 0 10px 10px;
69 | background: #FFF;
70 | box-shadow: 0px 4px 5px 0px #cccccc94;
71 | overflow: hidden;
72 | }
73 | .search-hot-text ul{
74 | margin: 0;
75 | padding: 5px 0;
76 | }
77 | .search-hot-text ul li{
78 | border-top: 1px solid #f2f2f2;
79 | line-height: 30px;
80 | font-size: 14px;
81 | padding: 0px 25px;
82 | color: #777;
83 | cursor: pointer;
84 | }
85 | .search-hot-text ul li.current{
86 | background: #f1f1f1;
87 | color: #2196f3;
88 | }
89 | .search-hot-text ul li:hover{
90 | background: #f1f1f1;
91 | color: #2196f3;
92 | cursor: pointer;
93 | }
94 | .search-hot-text ul li span{
95 | display: inline-block;
96 | width: 20px;
97 | height: 20px;
98 | font-size: 12px;
99 | line-height: 20px;
100 | text-align: center;
101 | background: #e5e5e5;
102 | margin-right: 10px;
103 | border-radius: 10px;
104 | color: #999;
105 | }
106 | /* 搜索引擎 */
107 | .search-engine{
108 | position: absolute;
109 | top: 60px;
110 | left: 0;
111 | width: 100%;
112 | background: #FFF;
113 | padding: 15px 0 0 15px;
114 | border-radius: 5px;
115 | box-shadow: 0px 5px 20px 0px #d8d7d7;
116 | transition: all 0.3s;
117 | -moz-transition: all 0.3s;
118 | -webkit-transition: all 0.3s;
119 | -o-transition: all 0.3s;
120 | display: none;
121 | z-index: 999
122 | }
123 | .search-engine-head{
124 | overflow: hidden;
125 | margin-bottom: 10px;
126 | padding-right: 15px;
127 | }
128 | .search-engine-tit{
129 | float: left;
130 | margin: 0;
131 | font-size: 14px;
132 | color: #999;
133 | }
134 | .search-engine-tool{
135 | float: right;
136 | font-size: 12px;
137 | color: #999;
138 | }
139 | .search-engine-tool > span{
140 | float: right;
141 | display: inline-block;
142 | width: 25px;
143 | height: 15px;
144 | background-position: 0px 0px;
145 | cursor: pointer
146 | }
147 | .search-engine-tool > span.off{ background-position: -30px 0px }
148 |
149 | .search-engine ul::before{
150 | content: '';
151 | width: 0px;
152 | height: 0px;
153 | position: absolute;
154 | top: -15px;
155 | border-top: 8px solid transparent;
156 | border-right: 8px solid transparent;
157 | border-bottom: 8px solid #fff;
158 | border-left: 8px solid transparent;
159 |
160 | }
161 | .search-engine-list::after{
162 | content: '';
163 | width: 90px;
164 | height: 20px;
165 | position: absolute;
166 | top: -20px;
167 | left: 1px;
168 | }
169 | .search-engine-list li{
170 | float: left;
171 | width: 30%;
172 | line-height: 30px;
173 | font-size: 14px;
174 | padding: 5px 10px 5px 10px;
175 | margin: 0 10px 10px 0;
176 | background: #f9f9f9;
177 | color: #999;
178 | cursor: pointer;
179 | padding: 0;
180 | }
181 | .search-engine-list li span{
182 | width: 25px;
183 | height: 25px;
184 | border-radius: 15px;
185 | float: left;
186 | margin-right: 5px;
187 | margin-top: 2.5px;
188 | }
189 | body.night .board {
190 | background: #2c2e2f;
191 | box-shadow: 0px 0px 6px #00000061;
192 | }
193 |
194 | body.night .board a {
195 | color: #d6d6d6;
196 | }
197 |
198 | body.night .tpwidget_title_hook,
199 | body.night .tpwidget_text_hook {
200 | color: #fdfdfd;
201 | }
202 |
203 | body.night .sidebar-menu {
204 | border-right: #7f8080 1px solid;
205 | }
206 |
207 | body.night .user-info-navbar {
208 | background-color: #232323 !important;
209 | }
210 | body.night .dropdown-menu {
211 | background-color: #232323 !important;
212 | border: 1px solid #888686 !important;
213 | }
214 |
215 | body.night .user-info-navbar .user-info-menu>li>a {
216 | border-bottom: 1px solid #232323 !important;
217 | border-right: 1px solid #232323 !important;
218 | border-left: 1px solid #232323 !important;
219 | }
220 |
221 | body.night .user-info-navbar .user-info-menu>li>a,
222 | .user-info-navbar .user-info-menu>li>a {
223 | height: 76px !important;
224 | }
225 |
226 | body.night .user-info-navbar .user-info-menu>li>a:hover {
227 | border-right: 1px solid #888686 !important;
228 | border-left: 1px solid #888686 !important;
229 | }
230 |
231 | body.night .user-info-navbar .user-info-menu>li {
232 | border: 1px solid #232323 !important;
233 | }
234 |
235 | body.night .user-info-navbar .user-info-menu>li .dropdown-menu.languages li.active a {
236 | background-color: #232323 !important;
237 | color: #979898 !important;
238 | }
239 |
240 | body.night,
241 | body.night #body {
242 | background-color: #2c2e2f !important;
243 | color: #a9a9a9 !important;
244 | }
245 |
246 | body.night .text-gray {
247 | color: #f8f8f8;
248 | }
249 |
250 | body.night .xe-widget.xe-conversations {
251 | background: #2c2e2f;
252 | }
253 |
254 | body.night .box2 {
255 | border: 1px solid #3f4142;
256 | }
257 |
258 | body.night .xe-comment a {
259 | color: #d8d8d8;
260 | }
261 |
262 | body.night .xe-comment p {
263 | color: #979898 !important;
264 | }
265 |
266 | body.night .box2:hover {
267 | box-shadow: 0 26px 40px -24px rgb(255, 255, 255);
268 | -webkit-box-shadow: 0 26px 40px -24px rgba(130, 130, 130, 0.13);
269 | -moz-box-shadow: 0 26px 40px -24px rgba(0, 36, 100, 0.3);
270 | -webkit-transition: all 0.3s cubic-bezier(0.25, 0.1, 0.14, 1.43);
271 | -moz-transition: all 0.3s ease;
272 | -o-transition: all 0.3s ease;
273 | transition: all 0.3s ease-out;
274 | background-color: #232323 !important;
275 | }
276 |
277 | body.night .tpwthwidt .front_37Zqj25,
278 | body.night .tpwthwidt .widget_ctONpAN {
279 | background: #535656;
280 | color: red !important;
281 | }
282 |
283 | body.night .tpwthwidt .weakText_3SLbaEo {
284 | color: rgb(253, 253, 253);
285 | }
286 |
287 | body.night .tpwthwidt .baseText_31obwQ4 {
288 | color: #cccccc;
289 | }
290 |
291 | body.night footer.main-footer {
292 | border-top: 1px solid #414344b5;
293 | background-color: #2c2e2f;
294 | }
295 |
296 | body.night .footer-text a {
297 | color: #a9a9a9;
298 | }
299 |
300 | body.night .footer-text a:hover,
301 | body.night footer-text a:focus {
302 | color: #ffffff;
303 | text-decoration: none
304 | }
305 |
306 | body.night .panel {
307 | background: #2c2e2f;
308 | }
309 |
310 | body.night blockquote {
311 | border-left: 5px solid #000;
312 | }
313 |
314 | body.night .respond a {
315 | color: #cecece;
316 | }
317 |
318 | body.night .respond .textarea {
319 | background-color: #2b2b2b;
320 | margin-top: 50px;
321 | border-radius: 15px;
322 | padding: 10px;
323 | }
324 |
325 | body.night .submit {
326 | color: #a5a5a5;
327 | background-color: #0000008f;
328 | border: 0px;
329 | border-radius: 5px;
330 | padding: 5px 10px;
331 | font-size: 15px;
332 | float: right;
333 | margin-top: 10px;
334 | }
335 |
336 | body.night #search button i {
337 | color: #b1b1b1;
338 | }
339 |
340 | body.night #search-text {
341 | background-color: #464646;
342 | color: #bdbdbd;
343 | }
344 |
345 | body.night .search-type input:checked+label,
346 | .search-type input:hover+label {
347 | background-color: #969696;
348 | }
349 |
350 | body.night .s-type-list {
351 | display: none;
352 | position: absolute;
353 | top: 31px;
354 | padding: 9pt 0;
355 | width: 20pc;
356 | background: #535656;
357 | border-radius: 4px;
358 | box-shadow: 0 0 6px rgba(0, 0, 0, .16);
359 | }
360 |
361 | body.night .xe-comment-entry img {
362 | filter: brightness(95%);
363 | }
364 |
365 | body.night .search-input {
366 | border: 1px solid #424242;
367 | border-radius: 10px;
368 | background-color: #424242;
369 | }
370 |
371 | body.night .search-engine {
372 | background: #424242;
373 | box-shadow: 0px 5px 20px 0px #2c2e2f;
374 | }
375 |
376 | body.night .search-engine-list li {
377 | background: #424242;
378 | }
379 |
380 | .go-up{
381 | right: 10px !important;
382 | position: fixed !important;
383 | bottom: 20px !important;
384 | height: 20px;
385 | }
386 |
387 | body.night .go-up a {
388 | background-color: rgb(88 88 88) !important;
389 | padding: 15px 20px !important;
390 | border-radius: 50% !important;
391 | }
392 |
393 | body.night .go-up a:hover {
394 | background-color: rgb(123 123 123) !important;
395 | }
396 |
397 | .footer-inner #busuanzi_container_site_pv,
398 | .footer-inner #busuanzi_container_site_uv {
399 | font-weight: bold;
400 | }
401 |
402 | .footer-inner #busuanzi_value_site_pv,
403 | .footer-inner #busuanzi_value_site_uv {
404 | color: #373e4a;
405 | }
406 |
407 | .main-menu #busuanzi_value_site_pv,
408 | .main-menu #busuanzi_value_site_uv {
409 | float: right;
410 | }
411 |
412 | .sidebar-menu .main-menu a>i{
413 | width: 16px;
414 | }
415 |
--------------------------------------------------------------------------------
/source/css/nav.min.css:
--------------------------------------------------------------------------------
1 | .box2{height:86px;cursor:pointer;border-radius:4px;padding:0 30px 0 30px;background-color:#fff;border-radius:4px;border:1px solid #e4ecf3;margin:20px 0 0 0;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.box2:hover{transform:translateY(-6px);-webkit-transform:translateY(-6px);-moz-transform:translateY(-6px);box-shadow:0 26px 40px -24px rgba(0,36,100,.3);-webkit-box-shadow:0 26px 40px -24px rgba(0,36,100,.3);-moz-box-shadow:0 26px 40px -24px rgba(0,36,100,.3);-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}.xe-comment-entry img{float:left;display:block;margin-right:10px}.xe-comment{transform:translateY(-50%);position:absolute;margin-left:50px;top:50%}.xe-comment p{margin-bottom:0;margin-right:15px}.overflowClip_1{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.overflowClip_2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.submit-tag{margin-top:50px}.img-circle{padding:7px 0}
--------------------------------------------------------------------------------
/source/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/favicon.png
--------------------------------------------------------------------------------
/source/images/flags/flag-cn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/flags/flag-cn.png
--------------------------------------------------------------------------------
/source/images/flags/flag-us.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/flags/flag-us.png
--------------------------------------------------------------------------------
/source/images/logo-collapsed@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/logo-collapsed@2x.png
--------------------------------------------------------------------------------
/source/images/logo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/logo@2x.png
--------------------------------------------------------------------------------
/source/images/logo_dark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/logo_dark@2x.png
--------------------------------------------------------------------------------
/source/images/logos/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/logos/github.png
--------------------------------------------------------------------------------
/source/images/logos/myblog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/logos/myblog.png
--------------------------------------------------------------------------------
/source/images/off_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/off_on.png
--------------------------------------------------------------------------------
/source/images/search_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/search_icon.png
--------------------------------------------------------------------------------
/source/images/webstack_banner_cn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/webstack_banner_cn.png
--------------------------------------------------------------------------------
/source/images/webstack_icon_producthunt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HCLonely/hexo-theme-webstack/2c0659650696d14deb3496816b5cfb9606c85578/source/images/webstack_icon_producthunt.png
--------------------------------------------------------------------------------
/source/js/footer.js:
--------------------------------------------------------------------------------
1 |
2 | $(document).ready(function () {
3 | //img lazy loaded
4 | const observer = lozad();
5 | observer.observe();
6 |
7 | $(document).on('click', '.has-sub', function () {
8 | var _this = $(this)
9 | if (!$(this).hasClass('expanded')) {
10 | setTimeout(function () {
11 | _this.find('ul').attr("style", "")
12 | }, 300);
13 |
14 | } else {
15 | $('.has-sub ul').each(function (id, ele) {
16 | var _that = $(this)
17 | if (_this.find('ul')[0] != ele && !expandAll) {
18 | setTimeout(function () {
19 | _that.attr("style", "")
20 | }, 300);
21 | }
22 | })
23 | }
24 | })
25 | $('.user-info-menu .hidden-sm').click(function () {
26 | if ($('.sidebar-menu').hasClass('collapsed')) {
27 | $('.has-sub.expanded > ul').attr("style", "")
28 | } else {
29 | $('.has-sub.expanded > ul').show()
30 | }
31 | })
32 | $("#main-menu li ul li").click(function () {
33 | $(this).siblings('li').removeClass('active'); // 删除其他兄弟元素的样式
34 | $(this).addClass('active'); // 添加当前元素的样式
35 | });
36 | $("a.smooth").click(function (ev) {
37 | ev.preventDefault();
38 |
39 | public_vars.$mainMenu.add(public_vars.$sidebarProfile).toggleClass('mobile-is-visible');
40 | ps_destroy();
41 | $("html, body").animate({
42 | scrollTop: $($(this).attr("href")).offset().top - 30
43 | }, {
44 | duration: 500,
45 | easing: "swing"
46 | });
47 | });
48 | return false;
49 | });
50 |
51 | var href = "";
52 | var pos = 0;
53 | $("a.smooth").click(function (e) {
54 | $("#main-menu li").each(function () {
55 | $(this).removeClass("active");
56 | });
57 | $(this).parent("li").addClass("active");
58 | e.preventDefault();
59 | href = $(this).attr("href");
60 | pos = $(href).position().top - 30;
61 | });
62 | (function () {
63 | if (document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") === '') {
64 | if (new Date().getHours() > 22 || new Date().getHours() < 6) {
65 | document.body.classList.add('night');
66 | document.cookie = "night=1;path=/";
67 | console.log('夜间模式开启');
68 | } else {
69 | document.body.classList.remove('night');
70 | document.cookie = "night=0;path=/";
71 | console.log('夜间模式关闭');
72 | }
73 | } else {
74 | var night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") || '0';
75 | if (night == '0') {
76 | document.body.classList.remove('night');
77 | } else if (night == '1') {
78 | document.body.classList.add('night');
79 | }
80 | }
81 | })();
82 |
--------------------------------------------------------------------------------
/source/js/header.js:
--------------------------------------------------------------------------------
1 | function search(searchIconUrl) {
2 | $(".search-icon").css("opacity", "1");
3 | var listIndex = -1;
4 | var hotList = 0;
5 | var searchData = userDefinedSearchData.custom ? userDefinedSearchData : {
6 | "thisSearch": "https://www.baidu.com/s?wd=",
7 | "thisSearchIcon": "url(" + searchIconUrl + ")",
8 | "hotStatus": true,
9 | "custom": false,
10 | "data": [{
11 | name: "百度",
12 | img: "url(" + searchIconUrl + ") -80px 0px",
13 | position: "0px 0px",
14 | url: "https://www.baidu.com/s?wd="
15 | }, {
16 | name: "谷歌",
17 | img: "url(" + searchIconUrl + ") -105px 0px",
18 | position: "-40px 0px",
19 | url: "https://www.google.com/search?q="
20 | }, {
21 | name: "必应",
22 | img: "url(" + searchIconUrl + ") -80px -25px",
23 | position: "0px -40px",
24 | url: "https://cn.bing.com/search?q="
25 | }, {
26 | name: "好搜",
27 | img: "url(" + searchIconUrl + ") -105px -25px",
28 | position: "-40px -40px",
29 | url: "https://www.so.com/s?q="
30 | }, {
31 | name: "搜狗",
32 | img: "url(" + searchIconUrl + ") -80px -50px",
33 | position: "0px -80px",
34 | url: "https://www.sogou.com/web?query="
35 | }, {
36 | name: "淘宝",
37 | img: "url(" + searchIconUrl + ") -105px -50px",
38 | position: "-40px -80px",
39 | url: "https://s.taobao.com/search?q="
40 | }, {
41 | name: "京东",
42 | img: "url(" + searchIconUrl + ") -80px -75px",
43 | position: "0px -120px",
44 | url: "http://search.jd.com/Search?keyword="
45 | }, {
46 | name: "天猫",
47 | img: "url(" + searchIconUrl + ") -105px -75px",
48 | position: "-40px -120px",
49 | url: "https://list.tmall.com/search_product.htm?q="
50 | }, {
51 | name: "1688",
52 | img: "url(" + searchIconUrl + ") -80px -100px",
53 | position: "0px -160px",
54 | url: "https://s.1688.com/selloffer/offer_search.htm?keywords="
55 | }, {
56 | name: "知乎",
57 | img: "url(" + searchIconUrl + ") -105px -100px",
58 | position: "-40px -160px",
59 | url: "https://www.zhihu.com/search?type=content&q="
60 | }, {
61 | name: "微博",
62 | img: "url(" + searchIconUrl + ") -80px -125px",
63 | position: "0px -200px",
64 | url: "https://s.weibo.com/weibo/"
65 | }, {
66 | name: "B站",
67 | img: "url(" + searchIconUrl + ") -105px -125px",
68 | position: "-40px -200px",
69 | url: "http://search.bilibili.com/all?keyword="
70 | }, {
71 | name: "豆瓣",
72 | img: "url(" + searchIconUrl + ") -80px -150px",
73 | position: "0px -240px",
74 | url: "https://www.douban.com/search?source=suggest&q="
75 | }, {
76 | name: "优酷",
77 | img: "url(" + searchIconUrl + ") -105px -150px",
78 | position: "-40px -240px",
79 | url: "https://so.youku.com/search_video/q_"
80 | }, {
81 | name: "GitHub",
82 | img: "url(" + searchIconUrl + ") -80px -175px",
83 | position: "0px -280px",
84 | url: "https://github.com/search?utf8=✓&q="
85 | }]
86 | };
87 | var localSearchData = localStorage.getItem("searchData");
88 | if (localSearchData && (searchData.custom === localSearchData.custom)) {
89 | searchData = JSON.parse(localSearchData)
90 | }
91 | function filterChildren(element) {
92 | var thisText = $(element).contents().filter(function (index, content) {
93 | return content.nodeType === 3
94 | }).text().trim();
95 | return thisText
96 | }
97 | function getHotkeyword(value) {
98 | $.ajax({
99 | type: "GET",
100 | url: "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",
101 | async: true,
102 | data: {
103 | wd: value
104 | },
105 | dataType: "jsonp",
106 | jsonp: "cb",
107 | success: function (res) {
108 | $("#box ul").text("");
109 | hotList = res.s.length;
110 | if (hotList) {
111 | $("#box").css("display", "block");
112 | for (var i = 0; i < hotList; i++) {
113 | $("#box ul").append("" + (i + 1) + " " + res.s[i] + " ");
114 | $("#box ul li").eq(i).click(function () {
115 | var thisText = filterChildren(this);
116 | $("#txt").val(thisText);
117 | window.open(searchData.thisSearch + thisText);
118 | $("#box").css("display", "none")
119 | });
120 | if (i === 0) {
121 | $("#box ul li").eq(i).css({
122 | "border-top": "none"
123 | });
124 | $("#box ul span").eq(i).css({
125 | "color": "#fff",
126 | "background": "#f54545"
127 | })
128 | } else {
129 | if (i === 1) {
130 | $("#box ul span").eq(i).css({
131 | "color": "#fff",
132 | "background": "#ff8547"
133 | })
134 | } else {
135 | if (i === 2) {
136 | $("#box ul span").eq(i).css({
137 | "color": "#fff",
138 | "background": "#ffac38"
139 | })
140 | }
141 | }
142 | }
143 | }
144 | } else {
145 | $("#box").css("display", "none")
146 | }
147 | },
148 | error: function (res) {
149 | console.log(res)
150 | }
151 | })
152 | }
153 | $("#txt").keyup(function (e) {
154 | if ($(this).val()) {
155 | if (e.keyCode == 38 || e.keyCode == 40 || !searchData.hotStatus) {
156 | return
157 | }
158 | getHotkeyword($(this).val())
159 | } else {
160 | $(".search-clear").css("display", "none");
161 | $("#box").css("display", "none")
162 | }
163 | });
164 | $("#txt").keydown(function (e) {
165 | if (e.keyCode === 40) {
166 | listIndex === (hotList - 1) ? listIndex = 0 : listIndex++;
167 | $("#box ul li").eq(listIndex).addClass("current").siblings().removeClass("current");
168 | var hotValue = filterChildren($("#box ul li").eq(listIndex));
169 | $("#txt").val(hotValue)
170 | }
171 | if (e.keyCode === 38) {
172 | if (e.preventDefault) {
173 | e.preventDefault()
174 | }
175 | if (e.returnValue) {
176 | e.returnValue = false
177 | }
178 | listIndex === 0 || listIndex === -1 ? listIndex = (hotList - 1) : listIndex--;
179 | $("#box ul li").eq(listIndex).addClass("current").siblings().removeClass("current");
180 | var hotValue = filterChildren($("#box ul li").eq(listIndex));
181 | $("#txt").val(hotValue)
182 | }
183 | if (e.keyCode === 13) {
184 | window.open(searchData.thisSearch + $("#txt").val());
185 | $("#box").css("display", "none");
186 | $("#txt").blur();
187 | $("#box ul li").removeClass("current");
188 | listIndex = -1
189 | }
190 | });
191 | $("#txt").focus(function () {
192 | $(".search-box").css("box-show", "inset 0 1px 2px rgba(27,31,35,.075), 0 0 0 0.2em rgba(3,102,214,.3)");
193 | if ($(this).val() && searchData.hotStatus) {
194 | getHotkeyword($(this).val())
195 | }
196 | });
197 | $("#txt").blur(function () {
198 | setTimeout(function () {
199 | $("#box").css("display", "none")
200 | }, 250)
201 | });
202 | for (var i = 0; i < searchData.data.length; i++) {
203 | $(".search-engine-list").append(' ' +
204 | searchData.data[i].name + " ")
205 | }
206 | $(".search-icon, .search-engine").hover(function () {
207 | $(".search-engine").css("display", "block")
208 | }, function () {
209 | $(".search-engine").css("display", "none")
210 | });
211 | $("#hot-btn").click(function () {
212 | $(this).toggleClass("off");
213 | searchData.hotStatus = !searchData.hotStatus;
214 | localStorage.searchData = JSON.stringify(searchData)
215 | });
216 | searchData.hotStatus ? $("#hot-btn").removeClass("off") : $("#hot-btn").addClass("off");
217 | $(".search-engine-list li").click(function () {
218 | var index = $(this).index();
219 | searchData.thisSearchIcon = searchData.custom ? searchData.data[index].img : searchData.data[index].position;
220 | if (searchData.custom) {
221 | $(".search-icon").css("background", searchData.thisSearchIcon + ' no-repeat').css("background-size", 'cover');
222 | } else {
223 | $(".search-icon").css("background-position", searchData.thisSearchIcon);
224 | }
225 | searchData.thisSearch = searchData.data[index].url;
226 | $(".search-engine").css("display", "none");
227 | localStorage.searchData = JSON.stringify(searchData)
228 | });
229 | if (searchData.custom) {
230 | $(".search-icon").css("background", searchData.thisSearchIcon + ' no-repeat').css("background-size", 'cover');
231 | } else {
232 | $(".search-icon").css("background-position", searchData.thisSearchIcon);
233 | }
234 | $("#search-btn").click(function () {
235 | var textValue = $("#txt").val();
236 | if (textValue) {
237 | window.open(searchData.thisSearch + textValue);
238 | $("#box ul").html("")
239 | } else {
240 | layer.msg("请输入关键词!", {
241 | time: 500
242 | }, function () {
243 | $("#txt").focus()
244 | })
245 | }
246 | })
247 | }
248 |
249 | //夜间模式切换
250 | function switchNightMode() {
251 | var night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") || '0';
252 | if (night == '0') {
253 | document.body.classList.add('night');
254 | document.cookie = "night=1;path=/"
255 | } else {
256 | document.body.classList.remove('night');
257 | document.cookie = "night=0;path=/"
258 | }
259 | }
260 |
--------------------------------------------------------------------------------
/source/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML=" ",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);
--------------------------------------------------------------------------------
/source/js/joinable.js:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * Bunch of scripts included in one file to reduce number HTTP requests
4 | *
5 | */
6 |
7 |
8 |
9 | /*!
10 | Autosize v1.18.9 - 2014-05-27
11 | Automatically adjust textarea height based on user input.
12 | (c) 2014 Jack Moore - http://www.jacklmoore.com/autosize
13 | license: http://www.opensource.org/licenses/mit-license.php
14 | */
15 | (function(e){var t,o={className:"autosizejs",id:"autosizejs",append:"\n",callback:!1,resizeDelay:10,placeholder:!0},i='',n=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent"],s=e(i).data("autosize",!0)[0];s.style.lineHeight="99px","99px"===e(s).css("lineHeight")&&n.push("lineHeight"),s.style.lineHeight="",e.fn.autosize=function(i){return this.length?(i=e.extend({},o,i||{}),s.parentNode!==document.body&&e(document.body).append(s),this.each(function(){function o(){var t,o=window.getComputedStyle?window.getComputedStyle(u,null):!1;o?(t=u.getBoundingClientRect().width,(0===t||"number"!=typeof t)&&(t=parseInt(o.width,10)),e.each(["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"],function(e,i){t-=parseInt(o[i],10)})):t=p.width(),s.style.width=Math.max(t,0)+"px"}function a(){var a={};if(t=u,s.className=i.className,s.id=i.id,d=parseInt(p.css("maxHeight"),10),e.each(n,function(e,t){a[t]=p.css(t)}),e(s).css(a).attr("wrap",p.attr("wrap")),o(),window.chrome){var r=u.style.width;u.style.width="0px",u.offsetWidth,u.style.width=r}}function r(){var e,n;t!==u?a():o(),s.value=!u.value&&i.placeholder?(p.attr("placeholder")||"")+i.append:u.value+i.append,s.style.overflowY=u.style.overflowY,n=parseInt(u.style.height,10),s.scrollTop=0,s.scrollTop=9e4,e=s.scrollTop,d&&e>d?(u.style.overflowY="scroll",e=d):(u.style.overflowY="hidden",c>e&&(e=c)),e+=w,n!==e&&(u.style.height=e+"px",f&&i.callback.call(u,u))}function l(){clearTimeout(h),h=setTimeout(function(){var e=p.width();e!==g&&(g=e,r())},parseInt(i.resizeDelay,10))}var d,c,h,u=this,p=e(u),w=0,f=e.isFunction(i.callback),z={height:u.style.height,overflow:u.style.overflow,overflowY:u.style.overflowY,wordWrap:u.style.wordWrap,resize:u.style.resize},g=p.width(),y=p.css("resize");p.data("autosize")||(p.data("autosize",!0),("border-box"===p.css("box-sizing")||"border-box"===p.css("-moz-box-sizing")||"border-box"===p.css("-webkit-box-sizing"))&&(w=p.outerHeight()-p.height()),c=Math.max(parseInt(p.css("minHeight"),10)-w||0,p.height()),p.css({overflow:"hidden",overflowY:"hidden",wordWrap:"break-word"}),"vertical"===y?p.css("resize","none"):"both"===y&&p.css("resize","horizontal"),"onpropertychange"in u?"oninput"in u?p.on("input.autosize keyup.autosize",r):p.on("propertychange.autosize",function(){"value"===event.propertyName&&r()}):p.on("input.autosize",r),i.resizeDelay!==!1&&e(window).on("resize.autosize",l),p.on("autosize.resize",r),p.on("autosize.resizeIncludeStyle",function(){t=null,r()}),p.on("autosize.destroy",function(){t=null,clearTimeout(h),e(window).off("resize",l),p.off("autosize").off(".autosize").css(z).removeData("autosize")}),r())})):this}})(window.jQuery||window.$);
16 |
17 |
18 | /* Scroll Monitor */
19 | (function(e){if(typeof define!=="undefined"&&define.amd){define(["jquery"],e)}else if(typeof module!=="undefined"&&module.exports){var t=require("jquery");module.exports=e(t)}else{window.scrollMonitor=e(jQuery)}})(function(e){function m(){return window.innerHeight||document.documentElement.clientHeight}function y(){t.viewportTop=n.scrollTop();t.viewportBottom=t.viewportTop+t.viewportHeight;t.documentHeight=r.height();if(t.documentHeight!==d){g=i.length;while(g--){i[g].recalculateLocation()}d=t.documentHeight}}function b(){t.viewportHeight=m();y();x()}function E(){clearTimeout(w);w=setTimeout(b,100)}function x(){S=i.length;while(S--){i[S].update()}S=i.length;while(S--){i[S].triggerCallbacks()}}function T(n,r){function x(e){if(e.length===0){return}E=e.length;while(E--){S=e[E];S.callback.call(i,v);if(S.isOne){e.splice(E,1)}}}var i=this;this.watchItem=n;if(!r){this.offsets=p}else if(r===+r){this.offsets={top:r,bottom:r}}else{this.offsets=e.extend({},p,r)}this.callbacks={};for(var d=0,m=h.length;d0){this.top=this.bottom=this.watchItem}else{this.top=this.bottom=t.documentHeight-this.watchItem}}else{this.top=this.watchItem.top;this.bottom=this.watchItem.bottom}this.top-=this.offsets.top;this.bottom+=this.offsets.bottom;this.height=this.bottom-this.top;if((n!==undefined||r!==undefined)&&(this.top!==n||this.bottom!==r)){x(this.callbacks[l])}};this.recalculateLocation();this.update();g=this.isInViewport;y=this.isFullyInViewport;b=this.isAboveViewport;w=this.isBelowViewport}function O(e){v=e;y();x()}var t={};var n=e(window);var r=e(document);var i=[];var s="visibilityChange";var o="enterViewport";var u="fullyEnterViewport";var a="exitViewport";var f="partiallyExitViewport";var l="locationChange";var c="stateChange";var h=[s,o,u,a,f,l,c];var p={top:0,bottom:0};t.viewportTop;t.viewportBottom;t.documentHeight;t.viewportHeight=m();var d;var v;var g;var w;var S;T.prototype={on:function(e,t,n){switch(true){case e===s&&!this.isInViewport&&this.isAboveViewport:case e===o&&this.isInViewport:case e===u&&this.isFullyInViewport:case e===a&&this.isAboveViewport&&!this.isInViewport:case e===f&&this.isAboveViewport:t();if(n){return}}if(this.callbacks[e]){this.callbacks[e].push({callback:t,isOne:n})}else{throw new Error("Tried to add a scroll monitor listener of type "+e+". Your options are: "+h.join(", "))}},off:function(e,t){if(this.callbacks[e]){for(var n=0,r;r=this.callbacks[e][n];n++){if(r.callback===t){this.callbacks[e].splice(n,1);break}}}else{throw new Error("Tried to remove a scroll monitor listener of type "+e+". Your options are: "+h.join(", "))}},one:function(e,t){this.on(e,t,true)},recalculateSize:function(){this.height=this.watchItem.offsetHeight+this.offsets.top+this.offsets.bottom;this.bottom=this.top+this.height},update:function(){this.isAboveViewport=this.topt.viewportBottom;this.isInViewport=this.top<=t.viewportBottom&&this.bottom>=t.viewportTop;this.isFullyInViewport=this.top>=t.viewportTop&&this.bottom<=t.viewportBottom||this.isAboveViewport&&this.isBelowViewport},destroy:function(){var e=i.indexOf(this),t=this;i.splice(e,1);for(var n=0,r=h.length;nthis.endVal?!0:!1,this.startTime=null,this.timestamp=null,this.remaining=null,this.frameVal=this.startVal,this.rAF=null,this.decimals=Math.max(0,d||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*e||2e3,this.version=function(){return"1.3.1"},this.printValue=function(a){var b=isNaN(a)?"--":j.formatNumber(a);"INPUT"==j.d.tagName?this.d.value=b:this.d.innerHTML=b},this.easeOutExpo=function(a,b,c,d){return 1024*c*(-Math.pow(2,-10*a/d)+1)/1023+b},this.count=function(a){null===j.startTime&&(j.startTime=a),j.timestamp=a;var b=a-j.startTime;if(j.remaining=j.duration-b,j.options.useEasing)if(j.countDown){var c=j.easeOutExpo(b,0,j.startVal-j.endVal,j.duration);j.frameVal=j.startVal-c}else j.frameVal=j.easeOutExpo(b,j.startVal,j.endVal-j.startVal,j.duration);else if(j.countDown){var c=(j.startVal-j.endVal)*(b/j.duration);j.frameVal=j.startVal-c}else j.frameVal=j.startVal+(j.endVal-j.startVal)*(b/j.duration);j.frameVal=j.countDown?j.frameValj.endVal?j.endVal:j.frameVal,j.frameVal=Math.round(j.frameVal*j.dec)/j.dec,j.printValue(j.frameVal),b1?j.options.decimal+b[1]:"",e=/(\d+)(\d{3})/,j.options.useGrouping)for(;e.test(c);)c=c.replace(e,"$1"+j.options.separator+"$2");return j.options.prefix+c+d+j.options.suffix},j.printValue(j.startVal)}
25 |
26 |
27 | /*! perfect-scrollbar - v0.5.8
28 | * http://noraesae.github.com/perfect-scrollbar/
29 | * Copyright (c) 2014 Hyunje Alex Jun; Licensed MIT */
30 | (function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(jQuery)})(function(e){"use strict";function t(e){return"string"==typeof e?parseInt(e,10):~~e}var o={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,includePadding:!1},n=0,r=function(){var e=n++;return function(t){var o=".perfect-scrollbar-"+e;return t===void 0?o:t+o}},l="WebkitAppearance"in document.documentElement.style;e.fn.perfectScrollbar=function(n,i){return this.each(function(){function a(e,o){var n=e+o,r=D-R;j=0>n?0:n>r?r:n;var l=t(j*(Y-D)/(D-R));M.scrollTop(l)}function s(e,o){var n=e+o,r=E-k;W=0>n?0:n>r?r:n;var l=t(W*(C-E)/(E-k));M.scrollLeft(l)}function c(e){return P.minScrollbarLength&&(e=Math.max(e,P.minScrollbarLength)),P.maxScrollbarLength&&(e=Math.min(e,P.maxScrollbarLength)),e}function u(){var e={width:I};e.left=B?M.scrollLeft()+E-C:M.scrollLeft(),N?e.bottom=_-M.scrollTop():e.top=Q+M.scrollTop(),H.css(e);var t={top:M.scrollTop(),height:A};Z?t.right=B?C-M.scrollLeft()-V-J.outerWidth():V-M.scrollLeft():t.left=B?M.scrollLeft()+2*E-C-$-J.outerWidth():$+M.scrollLeft(),G.css(t),U.css({left:W,width:k-z}),J.css({top:j,height:R-et})}function d(){M.removeClass("ps-active-x"),M.removeClass("ps-active-y"),E=P.includePadding?M.innerWidth():M.width(),D=P.includePadding?M.innerHeight():M.height(),C=M.prop("scrollWidth"),Y=M.prop("scrollHeight"),!P.suppressScrollX&&C>E+P.scrollXMarginOffset?(X=!0,I=E-F,k=c(t(I*E/C)),W=t(M.scrollLeft()*(I-k)/(C-E))):(X=!1,k=0,W=0,M.scrollLeft(0)),!P.suppressScrollY&&Y>D+P.scrollYMarginOffset?(O=!0,A=D-tt,R=c(t(A*D/Y)),j=t(M.scrollTop()*(A-R)/(Y-D))):(O=!1,R=0,j=0,M.scrollTop(0)),W>=I-k&&(W=I-k),j>=A-R&&(j=A-R),u(),X&&M.addClass("ps-active-x"),O&&M.addClass("ps-active-y")}function p(){var t,o,n=function(e){s(t,e.pageX-o),d(),e.stopPropagation(),e.preventDefault()},r=function(){H.removeClass("in-scrolling"),e(q).unbind(K("mousemove"),n)};U.bind(K("mousedown"),function(l){o=l.pageX,t=U.position().left,H.addClass("in-scrolling"),e(q).bind(K("mousemove"),n),e(q).one(K("mouseup"),r),l.stopPropagation(),l.preventDefault()}),t=o=null}function f(){var t,o,n=function(e){a(t,e.pageY-o),d(),e.stopPropagation(),e.preventDefault()},r=function(){G.removeClass("in-scrolling"),e(q).unbind(K("mousemove"),n)};J.bind(K("mousedown"),function(l){o=l.pageY,t=J.position().top,G.addClass("in-scrolling"),e(q).bind(K("mousemove"),n),e(q).one(K("mouseup"),r),l.stopPropagation(),l.preventDefault()}),t=o=null}function v(e,t){var o=M.scrollTop();if(0===e){if(!O)return!1;if(0===o&&t>0||o>=Y-D&&0>t)return!P.wheelPropagation}var n=M.scrollLeft();if(0===t){if(!X)return!1;if(0===n&&0>e||n>=C-E&&e>0)return!P.wheelPropagation}return!0}function g(e,t){var o=M.scrollTop(),n=M.scrollLeft(),r=Math.abs(e),l=Math.abs(t);if(l>r){if(0>t&&o===Y-D||t>0&&0===o)return!P.swipePropagation}else if(r>l&&(0>e&&n===C-E||e>0&&0===n))return!P.swipePropagation;return!0}function b(){function e(e){var t=e.originalEvent.deltaX,o=-1*e.originalEvent.deltaY;return(t===void 0||o===void 0)&&(t=-1*e.originalEvent.wheelDeltaX/6,o=e.originalEvent.wheelDeltaY/6),e.originalEvent.deltaMode&&1===e.originalEvent.deltaMode&&(t*=10,o*=10),t!==t&&o!==o&&(t=0,o=e.originalEvent.wheelDelta),[t,o]}function t(t){if(l||!(M.find("select:focus").length>0)){var n=e(t),r=n[0],i=n[1];o=!1,P.useBothWheelAxes?O&&!X?(i?M.scrollTop(M.scrollTop()-i*P.wheelSpeed):M.scrollTop(M.scrollTop()+r*P.wheelSpeed),o=!0):X&&!O&&(r?M.scrollLeft(M.scrollLeft()+r*P.wheelSpeed):M.scrollLeft(M.scrollLeft()-i*P.wheelSpeed),o=!0):(M.scrollTop(M.scrollTop()-i*P.wheelSpeed),M.scrollLeft(M.scrollLeft()+r*P.wheelSpeed)),d(),o=o||v(r,i),o&&(t.stopPropagation(),t.preventDefault())}}var o=!1;window.onwheel!==void 0?M.bind(K("wheel"),t):window.onmousewheel!==void 0&&M.bind(K("mousewheel"),t)}function h(){var t=!1;M.bind(K("mouseenter"),function(){t=!0}),M.bind(K("mouseleave"),function(){t=!1});var o=!1;e(q).bind(K("keydown"),function(n){if((!n.isDefaultPrevented||!n.isDefaultPrevented())&&t){for(var r=document.activeElement?document.activeElement:q.activeElement;r.shadowRoot;)r=r.shadowRoot.activeElement;if(!e(r).is(":input,[contenteditable]")){var l=0,i=0;switch(n.which){case 37:l=-30;break;case 38:i=30;break;case 39:l=30;break;case 40:i=-30;break;case 33:i=90;break;case 32:case 34:i=-90;break;case 35:i=n.ctrlKey?-Y:-D;break;case 36:i=n.ctrlKey?M.scrollTop():D;break;default:return}M.scrollTop(M.scrollTop()-i),M.scrollLeft(M.scrollLeft()+l),o=v(l,i),o&&n.preventDefault()}}})}function w(){function e(e){e.stopPropagation()}J.bind(K("click"),e),G.bind(K("click"),function(e){var o=t(R/2),n=e.pageY-G.offset().top-o,r=D-R,l=n/r;0>l?l=0:l>1&&(l=1),M.scrollTop((Y-D)*l)}),U.bind(K("click"),e),H.bind(K("click"),function(e){var o=t(k/2),n=e.pageX-H.offset().left-o,r=E-k,l=n/r;0>l?l=0:l>1&&(l=1),M.scrollLeft((C-E)*l)})}function m(){function t(){var e=window.getSelection?window.getSelection():document.getSlection?document.getSlection():{rangeCount:0};return 0===e.rangeCount?null:e.getRangeAt(0).commonAncestorContainer}function o(){r||(r=setInterval(function(){return x()?(M.scrollTop(M.scrollTop()+l.top),M.scrollLeft(M.scrollLeft()+l.left),d(),void 0):(clearInterval(r),void 0)},50))}function n(){r&&(clearInterval(r),r=null),H.removeClass("in-scrolling"),G.removeClass("in-scrolling")}var r=null,l={top:0,left:0},i=!1;e(q).bind(K("selectionchange"),function(){e.contains(M[0],t())?i=!0:(i=!1,n())}),e(window).bind(K("mouseup"),function(){i&&(i=!1,n())}),e(window).bind(K("mousemove"),function(e){if(i){var t={x:e.pageX,y:e.pageY},r=M.offset(),a={left:r.left,right:r.left+M.outerWidth(),top:r.top,bottom:r.top+M.outerHeight()};t.xa.right-3?(l.left=5,H.addClass("in-scrolling")):l.left=0,t.ya.top+3-t.y?-5:-20,G.addClass("in-scrolling")):t.y>a.bottom-3?(l.top=5>t.y-a.bottom+3?5:20,G.addClass("in-scrolling")):l.top=0,0===l.top&&0===l.left?n():o()}})}function T(t,o){function n(e,t){M.scrollTop(M.scrollTop()-t),M.scrollLeft(M.scrollLeft()-e),d()}function r(){h=!0}function l(){h=!1}function i(e){return e.originalEvent.targetTouches?e.originalEvent.targetTouches[0]:e.originalEvent}function a(e){var t=e.originalEvent;return t.targetTouches&&1===t.targetTouches.length?!0:t.pointerType&&"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE?!0:!1}function s(e){if(a(e)){w=!0;var t=i(e);p.pageX=t.pageX,p.pageY=t.pageY,f=(new Date).getTime(),null!==b&&clearInterval(b),e.stopPropagation()}}function c(e){if(!h&&w&&a(e)){var t=i(e),o={pageX:t.pageX,pageY:t.pageY},r=o.pageX-p.pageX,l=o.pageY-p.pageY;n(r,l),p=o;var s=(new Date).getTime(),c=s-f;c>0&&(v.x=r/c,v.y=l/c,f=s),g(r,l)&&(e.stopPropagation(),e.preventDefault())}}function u(){!h&&w&&(w=!1,clearInterval(b),b=setInterval(function(){return x()?.01>Math.abs(v.x)&&.01>Math.abs(v.y)?(clearInterval(b),void 0):(n(30*v.x,30*v.y),v.x*=.8,v.y*=.8,void 0):(clearInterval(b),void 0)},10))}var p={},f=0,v={},b=null,h=!1,w=!1;t&&(e(window).bind(K("touchstart"),r),e(window).bind(K("touchend"),l),M.bind(K("touchstart"),s),M.bind(K("touchmove"),c),M.bind(K("touchend"),u)),o&&(window.PointerEvent?(e(window).bind(K("pointerdown"),r),e(window).bind(K("pointerup"),l),M.bind(K("pointerdown"),s),M.bind(K("pointermove"),c),M.bind(K("pointerup"),u)):window.MSPointerEvent&&(e(window).bind(K("MSPointerDown"),r),e(window).bind(K("MSPointerUp"),l),M.bind(K("MSPointerDown"),s),M.bind(K("MSPointerMove"),c),M.bind(K("MSPointerUp"),u)))}function y(){M.bind(K("scroll"),function(){d()})}function L(){M.unbind(K()),e(window).unbind(K()),e(q).unbind(K()),M.data("perfect-scrollbar",null),M.data("perfect-scrollbar-update",null),M.data("perfect-scrollbar-destroy",null),U.remove(),J.remove(),H.remove(),G.remove(),M=H=G=U=J=X=O=E=D=C=Y=k=W=_=N=Q=R=j=V=Z=$=B=K=null}function S(){d(),y(),p(),f(),w(),m(),b(),(ot||nt)&&T(ot,nt),P.useKeyboard&&h(),M.data("perfect-scrollbar",M),M.data("perfect-scrollbar-update",d),M.data("perfect-scrollbar-destroy",L)}var P=e.extend(!0,{},o),M=e(this),x=function(){return!!M};if("object"==typeof n?e.extend(!0,P,n):i=n,"update"===i)return M.data("perfect-scrollbar-update")&&M.data("perfect-scrollbar-update")(),M;if("destroy"===i)return M.data("perfect-scrollbar-destroy")&&M.data("perfect-scrollbar-destroy")(),M;if(M.data("perfect-scrollbar"))return M.data("perfect-scrollbar");M.addClass("ps-container");var E,D,C,Y,X,k,W,I,O,R,j,A,B="rtl"===M.css("direction"),K=r(),q=this.ownerDocument||document,H=e(" ` tag.
276 |
277 | Examples:
278 | ```yml
279 | custom:
280 | head: |- # The following content is inserted into the
tag, you can set up multiple lines, pay attention to at least four spaces at the beginning of each line.
281 |
282 |
283 | body: |- # Insert the following content before the tag, you can set multiple lines, pay attention to at least four spaces at the beginning of each line.
284 |
custom text
285 |
286 | ```
287 |
288 | ## config
289 |
290 | > [Main] Website content settings
291 |
292 | ### Parameter
293 |
294 | - name: Website name.
295 | - url: Website link.
296 | - img: Website icon.
297 | - description: Website description.
298 |
299 | Examples:
300 | ```yml
301 | - name: HCLonely Blog
302 | url: https://blog.hclonely.com/
303 | img: /images/logos/myBlog.png
304 | description: 一个懒人的博客。
305 | ```
306 |
307 | ### Associate setting name and add website
308 |
309 | The content of `config` set in `menu` and `submenu` is the name of this option.
310 |
311 | Examples `menu`:
312 | ```yml
313 | menu:
314 | - name: Common tools
315 | icon: far fa-star
316 | config: hotTools
317 | ```
318 | There are two ways to add websites in the `Common Tools` group:
319 |
320 | - In the theme's `_config.yml` add:
321 | ```yml
322 | hotTools:
323 | - name: HCLonely Blog
324 | url: https://blog.hclonely.com/
325 | img: /images/logos/myBlog.png
326 | description: 一个懒人的博客。
327 | - name: Github
328 | url: https://github.com/
329 | img: /images/logos/github.png
330 | description: 面向开源及私有软件项目的托管平台。
331 | ```
332 | - Create a new `hotTools.yml` file in the `source/_data/` (not created by yourself), the content of the file is as follows:
333 | ```yml
334 | - name: HCLonely Blog
335 | url: https://blog.hclonely.com/
336 | img: /images/logos/myBlog.png
337 | description: 一个懒人的博客。
338 | - name: Github
339 | url: https://github.com/
340 | img: /images/logos/github.png
341 | description: 面向开源及私有软件项目的托管平台。
342 | ```
343 |
344 | Either of the above two methods can be selected. The second method is recommended.
345 |
346 | ## Subpage configuration
347 |
348 | ### Create subpage
349 |
350 | Use `hexo new page xxx` to create a child page, including the following descriptions, using `hexo new page child` as an example.
351 |
352 | ### Modify the subpage configuration file
353 |
354 | After using the above command to generate the subpage, open the `root directory/source/child/index.md` file (subpage configuration file), and add a line `type:'child'` between the two `---` This configuration file takes effect. The sub-page uses the configuration of the homepage by default, and the sub-page preferentially uses the configuration between the two `---` sub-page configuration files. Each configuration item has the same configuration function as the homepage.
355 |
356 | See the example[https://github.com/HCLonely/hexo-theme-webstack/tree/gh-pages/source/child/index.md](https://github.com/HCLonely/hexo-theme-webstack/tree/gh-pages/source/child/index.md)
357 |
358 | > Since the subpage was basically completed a long time ago, it was later put on hold when it was busy. There may be some configuration or bugs that have been forgotten. If you have any questions, please feedback in time!
359 |
--------------------------------------------------------------------------------
/README_CN.md:
--------------------------------------------------------------------------------
1 | # hexo-theme-webstack
2 |
3 | > 一款基于[WebStackPage](https://github.com/WebStackPage/WebStackPage.github.io)的 Hexo 主题。
4 |
5 | 
6 |
7 | ## 安装
8 |
9 | ### hexo >= 4.0
10 |
11 | ```shell
12 | git clone https://github.com/HCLonely/hexo-theme-webstack themes/webstack
13 | ```
14 |
15 | ### hexo >= 5.0
16 |
17 | ```shell
18 | npm install hexo-theme-webstack -S
19 | ```
20 |
21 | or
22 |
23 | ```shell
24 | cnpm install hexo-theme-webstack -S
25 | ```
26 |
27 | ## 配置
28 |
29 | ### hexo >= 4.0
30 |
31 | 将`themes/webstack/`目录内的`_config.example.yml`文件复制到`博客根目录/source/_data/`目录内,并重命名为`webstack.yml`.
32 |
33 | 通过编辑`webstack.yml`进行配置。
34 |
35 | ### hexo >= 5.0
36 |
37 | - 如果是新安装本主题,安装完成后会在根目录生成一个`_config.webstack.yml`文件,直接编辑`_config.webstack.yml`文件进行配置即可。
38 | - 如果是主题升级,可以使用 hexo >= 4.0 的配置方法,也可以将原来的配置文件移动到根目录,并重命名为`_config.webstack.yml`.
39 |
40 | > 注意:`博客根目录/_config.webstack.yml`和`博客根目录/source/_data/webstack.yml`请只保留一个!
41 |
42 | ### favicon
43 |
44 | > 网站图标
45 |
46 | 示例:
47 | ```yml
48 | favicon: /favicon.ico
49 | ```
50 |
51 | ### banner
52 |
53 | > [可选]分享网站到 twitter 和 facebook 时的图片。
54 |
55 | 示例:
56 | ```yml
57 | banner: /images/webstack_banner_cn.png
58 | ```
59 |
60 | ### logo
61 |
62 | > 网站 logo
63 |
64 | - `expanded`: 侧边栏展开式左上角的 logo
65 | - `collapsed`: 侧边栏收起式左上角的 logo
66 | - `dark`: 顶栏为暗色时左上角的 logo, 仅 `about` 页面生效
67 |
68 | 示例:
69 | ```yml
70 | logo:
71 | expanded: /images/logo@2x.png
72 | collapsed: /images/logo-collapsed@2x.png
73 | dark: /images/logo_dark@2x.png
74 | ```
75 |
76 | ### flag
77 |
78 | > 语言标识,多语言请配合[子页面](#子页面配置)使用
79 |
80 | - icon: 语言图标,默认仅有`flag-cn`和`flag-us`, 其他图标自行寻找存放于`主题目录/source/images/flags/`
81 | - name: 语言名称
82 | - default: 该语言是否为默认语言
83 | - index: 页面链接
84 |
85 | 示例:
86 | ```yml
87 | flag:
88 | - name: Chinese
89 | default: true
90 | icon: flag-cn
91 | index: /index.html
92 | ```
93 |
94 | ### search
95 |
96 | > 是否显示搜索框
97 |
98 | 示例:
99 | ```yml
100 | search: true
101 | ```
102 |
103 | ### userDefinedSearchData
104 |
105 | > 自定义搜索引擎
106 |
107 | - custom: 是否启用自定义配置
108 | - thisSearch: 当前搜索引擎的搜索链接
109 | - thisSearchIcon: 当前搜索引擎的图标链接,格式为`url(图片链接)`
110 | - hotStatus: 是否启用搜热词功能
111 | - data: 多搜索引擎配置
112 | - name: 搜索引擎名字
113 | img: 搜索引擎的搜索链接
114 | url: 搜索引擎的图标链接,格式为`url(图片链接)`
115 |
116 | 示例:
117 | ```yml
118 | userDefinedSearchData:
119 | custom: true
120 | thisSearch: https://www.baidu.com/s?wd=
121 | thisSearchIcon: url(https://www.baidu.com/favicon.ico)
122 | hotStatus: true
123 | data:
124 | - name: 百度
125 | img: url(https://www.baidu.com/favicon.ico)
126 | url: https://www.baidu.com/s?wd=
127 | - name: 谷歌
128 | img: url(https://www.google.com/favicon.ico)
129 | url: https://www.google.com/search?q=
130 | ```
131 |
132 | ### githubCorner
133 |
134 | > 右上角的 [github corner](http://tholman.com/github-corners/)
135 |
136 | 示例:
137 | ```yml
138 | githubCorner: ' '
139 | ```
140 |
141 | ### since
142 |
143 | > 建站年份,显示在页面底部
144 |
145 | 示例:
146 | ```yml
147 | since: 2020
148 | ```
149 |
150 | ### menu
151 |
152 | > **[主要]侧边栏菜单设置**
153 |
154 | - name: 分组名
155 | - icon: 分组图标
156 | - config: [主要]分组内容(详细设置查看[Config](#config)),如果有二级菜单则不需要此项!
157 | - submenu: 二级菜单,如果有二级菜单则不需要`config`, 此选项内容包含`name`, `icon`, `config`选项
158 |
159 | 示例:
160 | ```yml
161 | menu:
162 | - name: 常用工具
163 | icon: far fa-star
164 | config: hotTools
165 | - name: 其他工具
166 | icon: fas fa-tools
167 | submenu:
168 | - name: 开发工具
169 | icon: fas fa-tools
170 | config: devTools
171 | - name: 我的博客
172 | icon: fas fa-blog
173 | config: myBlog
174 | ```
175 |
176 | ### expandAll
177 |
178 | > 是否将侧边栏全部展开
179 |
180 | 示例:
181 |
182 | ```yml
183 | expandAll: true
184 | ```
185 |
186 | ### about
187 |
188 | > 侧边栏的关于本站
189 |
190 | - url: 关于页面链接
191 | - name: 在侧边栏显示的文字
192 | - icon: 图标
193 |
194 | 示例:
195 | ```yml
196 | about:
197 | url: /about/
198 | icon: far fa-heart
199 | name: 关于本站
200 | ```
201 |
202 | ### aboutPage
203 |
204 | > 关于页面设置
205 |
206 | 1. 生成关于页面
207 |
208 | ```shell
209 | hexo new page about
210 | ```
211 |
212 | 2. 编辑`source/about/index.md`, 添加`type: 'about'`
213 |
214 | ```yml
215 | ---
216 | title: about
217 | date: 2020-06-04 18:11:54
218 | type: 'about'
219 | ---
220 | ```
221 |
222 | 3. 编辑主题配置文件的`aboutPage`
223 |
224 | - website: 关于本站内容
225 | - head: 标题
226 | - html: 内容,支持`html`语法
227 | - webmaster: 关于站长内容
228 | - head: 标题
229 | - name: 站长名字
230 | - url: 链接
231 | - img: 头像
232 | - description: 描述
233 | - html: 其他内容,支持`html`语法
234 |
235 | 示例:
236 | ```yml
237 | aboutPage:
238 | website:
239 | head: 关于本站
240 | html: '
本站是hexo主题hexo-theme-webstack 的demo站。
'
241 | webmaster:
242 | head: 关于站长
243 | name: HCLonely
244 | url: https://blog.hclonely.com/
245 | img: /images/logos/myblog.png
246 | description: 懒人一个
247 | html: '
本站是HCLonely 基于WebStackPage 项目做的一款Hexo 主题。
'
248 | ```
249 |
250 | ### busuanzi
251 |
252 | > 不蒜子统计
253 |
254 | - enable: 是否启用不蒜子统计
255 | - position: 访问量显示位置, `footer`显示在页脚, `sidebar`显示在侧边栏
256 | - pv: 访问量显示的内容, `$pv`会被替换为访问量
257 | - uv: 访客数显示的内容, `$uv`会被替换为访客数
258 |
259 | 示例:
260 | ```yml
261 | busuanzi:
262 | enable: true
263 | position: sidebar
264 | pv: 本站总访问量$pv
265 | uv: 本站总访客数$uv
266 | ```
267 |
268 | ### custom
269 |
270 | > 自定义`html`内容
271 |
272 | - head: 插入到`
`标签内的内容
273 | - body: 插入到``标签之前的内容
274 |
275 | 示例:
276 | ```yml
277 | custom:
278 | head: |- # 以下内容插入到
标签内,可设置多行,注意每行开头至少四个空格
279 |
280 |
281 | body: |- # 以下内容插入到标签之前,可设置多行,注意每行开头至少四个空格
282 |
custom text
283 |
284 | ```
285 |
286 | ## config
287 |
288 | > [主要]网站内容设置
289 |
290 | ### 参数
291 |
292 | - name: 网站名称
293 | - url: 网站链接
294 | - img: 网站图标
295 | - description: 网站描述
296 |
297 | 示例:
298 | ```yml
299 | - name: HCLonely Blog
300 | url: https://blog.hclonely.com/
301 | img: /images/logos/myBlog.png
302 | description: 一个懒人的博客。
303 | ```
304 |
305 | ### 关联设置名称并添加网站
306 |
307 | 在`menu`和`submenu`中设置的`config`的内容为此选项的名称。
308 |
309 | 例`menu`:
310 | ```yml
311 | menu:
312 | - name: 常用工具
313 | icon: far fa-star
314 | config: hotTools
315 | ```
316 | 则`常用工具`分组里的网站有以下两种添加方式:
317 |
318 | - 在主题的`_config.yml`里添加:
319 | ```yml
320 | hotTools:
321 | - name: HCLonely Blog
322 | url: https://blog.hclonely.com/
323 | img: /images/logos/myBlog.png
324 | description: 一个懒人的博客。
325 | - name: Github
326 | url: https://github.com/
327 | img: /images/logos/github.png
328 | description: 面向开源及私有软件项目的托管平台。
329 | ```
330 | - 在`站点根目录/source/_data/`(没有自行创建)内新建`hotTools.yml`文件,文件内容如下:
331 | ```yml
332 | - name: HCLonely Blog
333 | url: https://blog.hclonely.com/
334 | img: /images/logos/myBlog.png
335 | description: 一个懒人的博客。
336 | - name: Github
337 | url: https://github.com/
338 | img: /images/logos/github.png
339 | description: 面向开源及私有软件项目的托管平台。
340 | ```
341 |
342 | > 以上两种方式任选一种即可,建议使用第二种。
343 |
344 | [配置详情](https://blog.hclonely.com/posts/3cd4fb34/)
345 |
346 | ## 子页面配置
347 |
348 | ### 创建子页面
349 |
350 | 使用`hexo new page xxx`创建子页面,这里包括下面的说明都以`hexo new page child`为例。
351 |
352 | ### 修改子页面配置文件
353 |
354 | 使用上面的命令生成子页面后,打开`根目录/source/child/index.md`文件(子页面配置文件),在两个`---`之间添加一行`type: 'child'`使此配置文件生效,子页面默认使用主页的配置,子页面优先使用子页面配置文件两个`---`之间的配置,各配置项和主页的配置功能相同。
355 |
356 | 示例请看[https://github.com/HCLonely/hexo-theme-webstack/tree/gh-pages/source/child/index.md](https://github.com/HCLonely/hexo-theme-webstack/tree/gh-pages/source/child/index.md)
357 |
358 | > 由于子页面在很久之前就基本做完了,后来比较忙就鸽了,可能有些配置或 bug 给忘了,有问题请及时反馈!
359 |
--------------------------------------------------------------------------------
/_config.example.yml:
--------------------------------------------------------------------------------
1 | favicon: /favicon.ico
2 | banner: /images/webstack_banner_cn.png
3 |
4 | logo:
5 | expanded: /images/logo@2x.png
6 | collapsed: /images/logo-collapsed@2x.png
7 | dark: /images/logo_dark@2x.png
8 |
9 | flag:
10 | - name: Chinese
11 | default: true
12 | icon: flag-cn
13 | index: /index.html
14 |
15 | search: true
16 |
17 | userDefinedSearchData:
18 | custom: false
19 | thisSearch: https://www.baidu.com/s?wd=
20 | thisSearchIcon: url(https://www.baidu.com/favicon.ico)
21 | hotStatus: true
22 | data:
23 | - name: 百度
24 | img: url(https://www.baidu.com/favicon.ico)
25 | url: https://www.baidu.com/s?wd=
26 |
27 | githubCorner: ' '
28 |
29 | expandAll: false
30 | menu:
31 | - name: 测试页面
32 | icon: far fa-star
33 | config: testPage
34 | - name: 常用工具
35 | icon: far fa-star
36 | config: hotTools
37 | - name: 其他工具
38 | icon: fas fa-tools
39 | submenu:
40 | - name: 开发工具
41 | icon: fas fa-tools
42 | config: devTools
43 | - name: 我的博客
44 | icon: fas fa-blog
45 | config: myBlog
46 |
47 | testPage:
48 | - name: Child Page
49 | url: /child
50 | img: /images/logos/myblog.png
51 | description: 子页面测试
52 | devTools:
53 | - name: Github
54 | url: https://github.com/
55 | img: /images/logos/github.png
56 | description: 面向开源及私有软件项目的托管平台。
57 | - name: Github
58 | url: https://github.com/
59 | img: /images/logos/github.png
60 | description: 面向开源及私有软件项目的托管平台。
61 |
62 | myBlog:
63 | - name: HCLonely Blog
64 | url: https://blog.hclonely.com/
65 | img: /images/logos/myBlog.png
66 | description: 一个懒人的博客。
67 |
68 | about:
69 | url: /about/
70 | icon: far fa-heart
71 | name: 关于本站
72 |
73 | aboutPage:
74 | website:
75 | head: 关于本站
76 | html: '
本站是hexo主题hexo-theme-webstack 的demo站。
'
77 | webmaster:
78 | head: 关于站长
79 | name: HCLonely
80 | url: https://blog.hclonely.com/
81 | img: /images/logos/myblog.png
82 | description: 懒人一个
83 | html: '
本站是HCLonely 基于WebStackPage 项目做的一款Hexo 主题。
'
84 |
85 | since: 2020
86 |
87 | busuanzi:
88 | enable: true
89 | position: sidebar # 'footer','sidebar'
90 | pv: 本站总访问量$pv
91 | uv: 本站总访客数$uv
92 |
93 | custom:
94 | head: |- # 以下内容插入到
标签内,可设置多行,注意每行开头至少四个空格
95 |
96 |
97 | body: |- # 以下内容插入到标签之前,可设置多行,注意每行开头至少四个空格
98 |
99 |
100 |
101 | js:
102 | header: /js/header.js
103 | footer: /js/footer.js
104 | jquery: /js/jquery-1.11.1.min.js
105 | bootstrap: /js/bootstrap.min.js
106 | TweenMax: /js/TweenMax.min.js
107 | resizeable: /js/resizeable.min.js
108 | joinable: /js/joinable.js
109 | xenonApi: /js/xenon-api.min.js
110 | xenonToggles: /js/xenon-toggles.min.js
111 | xenonCustom: /js/xenon-custom.min.js
112 | lozad: /js/lozad.min.js
113 | html5shiv: /js/html5shiv.min.js
114 | respond: /js/respond.min.js
115 | busuanzi: https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js
116 |
117 | css:
118 | hclonely: /css/hclonely.css
119 | fonts: //fonts.loli.net/css?family=Arimo:400,700,400italic
120 | linecons: /css/fonts/linecons/css/linecons.min.css
121 | fontawesome: /css/fonts/fontawesome/css/all.min.css
122 | bootstrap: /css/bootstrap.min.css
123 | xenonCore: /css/xenon-core.min.css
124 | xenonComponents: /css/xenon-components.min.css
125 | xenonSkins: /css/xenon-skins.min.css
126 | nav: /css/nav.min.css
127 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // 这个文件用来防止 hexo 5.0.0 使用 "hexo clean" 命令报错。
2 | // This file is used to prevent hexo 5.0.0 from using "hexo clean" command error.
3 |
--------------------------------------------------------------------------------
/layout/about.ejs:
--------------------------------------------------------------------------------
1 |
<%= theme.aboutPage.webmaster.description %>
46 |