70 | <#if settings.advert_enable!false>
71 | <#include "common/advert.ftl">
72 | #if>
73 | <#if settings.notice_enable!false>
74 | <#include "common/notice.ftl">
75 | #if>
76 |
77 | <#if type == "index">
78 |
79 | <#elseif type == "journals">
80 |
81 | <#else>
82 |
83 | #if>
84 | <#nested />
85 |
86 | <#if type == "index">
87 | <@widget 'right','menuHide' />
88 | <@widget 'left','menuHide' />
89 | <#elseif type == "urlNav">
90 | <@widget 'left','urlNavMenuShow'/>
91 | <#elseif type == "journals">
92 | <@widget 'right','no' />
93 | <#elseif type == "categories">
94 | <@widget 'left','menuHide'/>
95 | <#elseif type == "archives">
96 | <@widget 'left','menuHide'/>
97 | <#elseif type == "category">
98 | <@widget 'left','menuHide'/>
99 | <#else>
100 | <@widget 'left','menuShow'/>
101 | #if>
102 |
103 |
104 |
105 | <#include "common/footer.ftl">
106 | <#include "common/scripts.ftl">
107 |
108 | <#include "search/local.ftl">
109 |
110 |
111 | #macro>
--------------------------------------------------------------------------------
/layout/plugin/animejs.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/plugin/back-to-top.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/plugin/gallery.ftl:
--------------------------------------------------------------------------------
1 | <#if is_post?? || is_sheet??>
2 |
3 |
4 | #if>
--------------------------------------------------------------------------------
/layout/plugin/mathjax.ftl:
--------------------------------------------------------------------------------
1 | <#if (is_post?? || is_sheet??) && settings.mathjax_enable!false>
2 |
3 |
25 | #if>
--------------------------------------------------------------------------------
/layout/plugin/outdated-browser.ftl:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/layout/plugin/show-mobile-menu.ftl:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/layout/search/local.ftl:
--------------------------------------------------------------------------------
1 |
61 |
--------------------------------------------------------------------------------
/layout/share/addtoany.ftl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/layout/share/bdshare.ftl:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/layout/share/sharejs.ftl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/layout/tag.ftl:
--------------------------------------------------------------------------------
1 | <#include "common/article.ftl">
2 |
12 | <#list posts.content as post>
13 | <@article post,'index','null',true />
14 | #list>
15 | <#if posts.getTotalPages() gt 0>
16 |
17 |
36 |
37 | #if>
--------------------------------------------------------------------------------
/layout/tags.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/widget/archive.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/widget/category.ftl:
--------------------------------------------------------------------------------
1 | <#include "../categories.ftl">
--------------------------------------------------------------------------------
/layout/widget/journals.ftl:
--------------------------------------------------------------------------------
1 | <#--日志界面的一项 OK-->
2 | <#if (journals.content)?? && journals.content?size gt 0>
3 | <#list journals.content as journal>
4 |
5 |
6 |
17 |
${journal.content}
18 |
38 |
44 |
45 |
46 | #list>
47 | <#if journals.getTotalPages() gt 0>
48 |
49 |
68 |
69 | #if>
70 | <#else>
71 | 还没有发布过日志,回
主页看看吧
72 | #if>
73 |
--------------------------------------------------------------------------------
/layout/widget/links.ftl:
--------------------------------------------------------------------------------
1 | <@linkTag method="listTeams">
2 | <#if teams?? && teams?size gt 0>
3 |
4 | <#list teams as item>
5 |
6 |
${item.team}
7 |
8 | <#list item.links as link>
9 |
24 | #list>
25 |
26 |
27 | #list>
28 |
29 | #if>
30 | @linkTag>
--------------------------------------------------------------------------------
/layout/widget/menu_tag.ftl:
--------------------------------------------------------------------------------
1 | <#-- 目录 -->
2 |
14 | <#-- 目录结束 -->
--------------------------------------------------------------------------------
/layout/widget/photos.ftl:
--------------------------------------------------------------------------------
1 | <@photoTag method="list">
2 | <#--
3 |
${item.team}
4 |

5 | ${photo.id}
6 | ${photo.name} 图片名称
7 | ${photo.description}图片描述信息
8 | ${photo.takeTime}图片上传日期
9 | ${photo.location}图片存储位置
10 | ${photo.thumbnail}图片缩略图地址
11 | ${photo.url}图片链接(访问地址)
12 | ${photo.team} String 图片分组名称
13 | -->
14 |
15 |
16 | <#list photos as photo>
17 |
18 |
19 |
22 |
23 |
24 |
${photo.name}
25 |
${photo.description}
26 |
27 |
28 | #list>
29 |
30 |
31 | @photoTag>
32 |
--------------------------------------------------------------------------------
/layout/widget/profile.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/widget/recent_comments.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/widget/recent_posts.ftl:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/widget/slider.ftl:
--------------------------------------------------------------------------------
1 | <#import "./slider_list.ftl" as slider_list>
2 | <#import "./slider_tag.ftl" as slider_tag>
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | <@slider_list.sliderListMacro/>
11 |
12 |
13 |
14 | <@slider_tag.sliderTagMacro/>
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/layout/widget/slider_list.ftl:
--------------------------------------------------------------------------------
1 | <#macro sliderListMacro>
2 | <@tagTag method="list">
3 | <#list tags as tag>
4 | <#if (settings.slider_main_tag!'lunbobiaoqian') == tag.slug >
5 | <@postTag method="listByTagId" tagId="${tag.id}">
6 | <#list posts as post>
7 |
8 |
9 |
10 | ${post.title!}
11 |
12 |
13 | #list>
14 | @postTag>
15 | #if>
16 | #list>
17 | @tagTag>
18 | #macro>
--------------------------------------------------------------------------------
/layout/widget/slider_tag.ftl:
--------------------------------------------------------------------------------
1 | <#macro sliderTagMacro>
2 | <@tagTag method="list">
3 | <#list tags as tag>
4 | <#if (settings.slider_right_tag!'lunbofutu') == tag.slug >
5 | <@postTag method="listByTagId" tagId="${tag.id}">
6 |
7 |
8 | <#list posts as post>
9 |
14 | #list>
15 |
16 |
17 |
18 |
19 | <#list posts as post>
20 | <#-- 0,取第1条 -->
21 | <#if post_index == 0>
22 |
27 | <#-- 1,取第2条 -->
28 | <#elseif post_index == 1>
29 |
34 | #if>
35 | #list>
36 |
37 |
38 | @postTag>
39 | #if>
40 | #list>
41 | @tagTag>
42 | #macro>
43 |
--------------------------------------------------------------------------------
/layout/widget/tag.ftl:
--------------------------------------------------------------------------------
1 | <#include "../tags.ftl">
--------------------------------------------------------------------------------
/layout/widget/tagcloud.ftl:
--------------------------------------------------------------------------------
1 | <@tagTag method="list">
2 | <#if tags?? && tags?size gt 0>
3 |
13 | #if>
14 | @tagTag>
--------------------------------------------------------------------------------
/layout/widget/toc.ftl:
--------------------------------------------------------------------------------
1 | <% if (get_config('toc') === true && (post.layout === 'page' || post.layout === 'post')) {
2 | function buildToc(toc) {
3 | let result = '';
4 | if (toc.hasOwnProperty('id') && toc.hasOwnProperty('index') && toc.hasOwnProperty('text')) {
5 | result += `
6 |
7 | ${toc.index}
8 | ${toc.text}
9 | `;
10 | }
11 | let keys = Object.keys(toc);
12 | keys.indexOf('id') > -1 && keys.splice(keys.indexOf('id'), 1);
13 | keys.indexOf('text') > -1 && keys.splice(keys.indexOf('text'), 1);
14 | keys.indexOf('index') > -1 && keys.splice(keys.indexOf('index'), 1);
15 | keys = keys.map(k => parseInt(k)).sort((a, b) => a - b);
16 | if (keys.length > 0) {
17 | result += '';
22 | }
23 | if (toc.hasOwnProperty('id') && toc.hasOwnProperty('index') && toc.hasOwnProperty('text')) {
24 | result += '';
25 | }
26 | return result;
27 | }
28 | %>
29 |
39 | <% } %>
--------------------------------------------------------------------------------
/layout/widget/url_menu_tag.ftl:
--------------------------------------------------------------------------------
1 | <#-- 目录 -->
2 |
14 | <#-- 目录结束 -->
--------------------------------------------------------------------------------
/layout/wiki.ftl:
--------------------------------------------------------------------------------
1 | <#macro wiki post,layout,commentType,index>
2 | <#include "./comment/comment.ftl">
3 |
4 |
5 |
6 | ${post.title!}
7 |
8 | <#-- 12布局文章内容 -->
9 |
${post.formatContent!}
10 | <#-- 文章的详情页面信息 -->
11 |
12 |
编辑小子 | ${user.nickname!"博主"}
13 |
留言数量 | ${post.commentCount}次
14 |
浏览数量 | ${post.visits!}次
15 |
17 |
18 |
19 |
20 | <#if !index>
21 |
27 | #if>
28 | #macro>
29 |
--------------------------------------------------------------------------------
/links.ftl:
--------------------------------------------------------------------------------
1 | <#include "layout/layout.ftl">
2 | <#include "layout/common/article.ftl">
3 | <@layout type="urlNav" title="网址收藏 - ${options.blog_title!}" keywords="${options.seo_keywords!}" description="${options.seo_description!}" canonical="${context!}/links">
4 | <#include "layout/widget/links.ftl">
5 | @layout>
--------------------------------------------------------------------------------
/photos.ftl:
--------------------------------------------------------------------------------
1 | <#-- 相册界面 -->
2 | <#include "layout/layout-navbar.ftl">
3 | <@layout type="photos" title="个人相册 - ${options.blog_title!}" keywords="${options.seo_keywords!}" description="${options.seo_description!}" canonical="${context!}/links">
4 | <#include "layout/widget/photos.ftl">
5 | @layout>
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/post.ftl:
--------------------------------------------------------------------------------
1 | <#include "layout/layout.ftl">
2 | <#include "layout/common/article.ftl">
3 | <@layout type="no" title="${post.title!} - ${blog_title!}" keywords="${options.seo_keywords!},${tagWords!}" description="${post.summary!}" canonical="${post.fullPath!}">
4 | <@article post,'page',"post",false />
5 | @layout>
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/screenshot.png
--------------------------------------------------------------------------------
/search.ftl:
--------------------------------------------------------------------------------
1 | <#include "layout/layout.ftl">
2 | <#include "layout/common/article.ftl">
3 | <@layout type="no" title="搜索:${keyword} - ${blog_title!}" keywords="${options.seo_keywords!}" description="${options.seo_description!}" canonical="${blog_url!}/search?keyword=${keyword}">
4 | <#list posts.content as post>
5 | <@article post,'index','null',true />
6 | #list>
7 | <#if posts.getTotalPages() gt 0>
8 |
9 |
28 |
29 | #if>
30 | @layout>
--------------------------------------------------------------------------------
/settings.yaml:
--------------------------------------------------------------------------------
1 | post:
2 | label: 文章设置
3 | items:
4 | share_type:
5 | name: share_type
6 | label: 文章分享组件
7 | type: select
8 | default: ''
9 | options:
10 | - value: ''
11 | label: '无'
12 | - value: addtoany
13 | label: addtoany
14 | - value: bdshare
15 | label: bdshare
16 | - value: sharejs
17 | label: sharejs
18 | donate_alipay:
19 | name: donate_alipay
20 | label: 支付宝捐赠二维码
21 | type: attachment
22 | placeholder: '二维码地址'
23 | donate_wechat:
24 | name: donate_wechat
25 | label: 微信捐赠二维码
26 | type: attachment
27 | placeholder: '二维码地址'
28 | mathjax_enable:
29 | name: mathjax_enable
30 | label: MathJax
31 | type: radio
32 | data-type: bool
33 | default: false
34 | options:
35 | - value: true
36 | label: 开启
37 | - value: false
38 | label: 关闭
39 | code_pretty:
40 | name: code_pretty
41 | label: 文章代码高亮主题
42 | type: select
43 | default: Default
44 | options:
45 | - value: Default
46 | label: Default
47 | - value: Coy
48 | label: Coy
49 | - value: Dark
50 | label: Dark
51 | - value: Okaidia
52 | label: Okaidia
53 | - value: Solarized Light
54 | label: Solarized Light
55 | - value: Tomorrow Night
56 | label: Tomorrow Night
57 | - value: Twilight
58 | label: Twilight
59 | sidebar:
60 | label: 侧边栏
61 | items:
62 | profile_avatar_type:
63 | name: profile_avatar_type
64 | label: 头像形状
65 | type: select
66 | default: 'avatar_rounded'
67 | options:
68 | - value: avatar_rounded
69 | label: '圆形'
70 | - value: avatar_square
71 | label: '方形'
72 | profile_location:
73 | name: profile_location
74 | label: 地理位置
75 | type: text
76 | placeholder: '个人所在地'
77 | profile_follow_url:
78 | name: profile_follow_url
79 | label: 【关注我】按钮地址
80 | type: text
81 | placeholder: '默认为博客地址'
82 | sidebar_profile:
83 | name: sidebar_profile
84 | label: 侧边栏个人资料
85 | type: radio
86 | data-type: bool
87 | default: true
88 | options:
89 | - value: true
90 | label: 开启
91 | - value: false
92 | label: 关闭
93 | sidebar_categories:
94 | name: sidebar_categories
95 | label: 侧边栏分类
96 | type: radio
97 | data-type: bool
98 | default: true
99 | options:
100 | - value: true
101 | label: 开启
102 | - value: false
103 | label: 关闭
104 | sidebar_tagcloud:
105 | name: sidebar_tagcloud
106 | label: 侧边栏标签云
107 | type: radio
108 | data-type: bool
109 | default: true
110 | options:
111 | - value: true
112 | label: 开启
113 | - value: false
114 | label: 关闭
115 | sidebar_links:
116 | name: sidebar_links
117 | label: 侧边栏链接
118 | type: radio
119 | data-type: bool
120 | default: true
121 | options:
122 | - value: true
123 | label: 开启
124 | - value: false
125 | label: 关闭
126 | sidebar_recentpost:
127 | name: sidebar_recentpost
128 | label: 侧边栏最近文章
129 | type: radio
130 | data-type: bool
131 | default: true
132 | options:
133 | - value: true
134 | label: 开启
135 | - value: false
136 | label: 关闭
137 | sidebar_recentcomment:
138 | name: sidebar_recentcomment
139 | label: 侧边栏最近评论
140 | type: radio
141 | data-type: bool
142 | default: false
143 | options:
144 | - value: true
145 | label: 开启
146 | - value: false
147 | label: 关闭
148 | sidebar_tags:
149 | name: sidebar_tags
150 | label: 侧边栏标签
151 | type: radio
152 | data-type: bool
153 | default: true
154 | options:
155 | - value: true
156 | label: 开启
157 | - value: false
158 | label: 关闭
159 | social_github:
160 | name: social_github
161 | label: Github
162 | type: text
163 | placeholder: 'Github 用户名'
164 | social_qq:
165 | name: social_qq
166 | label: QQ
167 | type: text
168 | placeholder: 'QQ 号'
169 | social_weibo:
170 | name: social_weibo
171 | label: 微博
172 | type: text
173 | placeholder: '微博用户名'
174 | social_twitter:
175 | name: social_twitter
176 | label: Twitter
177 | type: text
178 | placeholder: 'Twitter 用户名'
179 | social_facebook:
180 | name: social_facebook
181 | label: Facebook
182 | type: text
183 | placeholder: 'Facebook 用户名'
184 | social_email:
185 | name: social_email
186 | label: Email
187 | type: text
188 | placeholder: '邮箱地址'
189 | social_telegram:
190 | name: social_telegram
191 | label: Telegram
192 | type: text
193 | placeholder: 'Telegram 用户名'
194 | custom_links:
195 | label: 自定义链接
196 | items:
197 | links_top:
198 | name: links_top
199 | label: 顶部链接
200 | type: textarea
201 | default: '
202 |
203 | '
204 | links_footer:
205 | name: links_footer
206 | label: 底部链接
207 | type: textarea
208 | default: '
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
'
218 | view_set:
219 | label: 界面配置
220 | items:
221 | slider_enable:
222 | name: notice_enable
223 | label: 轮播开关
224 | type: radio
225 | data-type: bool
226 | default: true
227 | options:
228 | - value: true
229 | label: 开启
230 | - value: false
231 | label: 关闭
232 | slider_main_tag:
233 | name: slider_main_tag
234 | label: 【轮播列表】标签别名
235 | type: text
236 | placeholder: '默认为lunboliebiao'
237 | description: '自定义轮播图显示内容,对应文章标签别名,建议是英文字母'
238 | slider_right_tag:
239 | name: slider_right_tag
240 | label: 【轮播附图】标签别名
241 | type: text
242 | placeholder: '默认为lunbofutu'
243 | description: '自定义右侧图显示内容,对应文章标签别名,建议是英文字母'
244 | advert_enable:
245 | name: advert_enable
246 | label: Banner广告开关
247 | type: radio
248 | data-type: bool
249 | default: false
250 | options:
251 | - value: true
252 | label: 开启
253 | - value: false
254 | label: 关闭
255 | advert_title:
256 | name: advert_title
257 | label: Banner广告标题
258 | type: text
259 | placeholder: '广告标题'
260 | advert_pc_img:
261 | name: advert_pc_img
262 | label: BannerPC端广告图
263 | type: attachment
264 | placeholder: '广告图'
265 | advert_mobile_img:
266 | name: advert_mobile_img
267 | label: Banner移动端广告图
268 | type: attachment
269 | placeholder: '广告图'
270 | advert_href:
271 | name: advert_href
272 | label: Banner广告链接
273 | type: text
274 | placeholder: '广告链接'
275 | default: '#none'
276 | notice_enable:
277 | name: notice_enable
278 | label: 公告开关
279 | type: radio
280 | data-type: bool
281 | default: false
282 | options:
283 | - value: true
284 | label: 开启
285 | - value: false
286 | label: 关闭
287 | notice_info:
288 | name: notice_info
289 | label: 公告信息
290 | type: textarea
291 | placeholder: '请输入公告'
--------------------------------------------------------------------------------
/sheet.ftl:
--------------------------------------------------------------------------------
1 | <#include "layout/layout.ftl">
2 | <#include "layout/common/article.ftl">
3 | <@layout type="no" title="${sheet.title} - ${options.blog_title!}" keywords="${options.seo_keywords!}" description="${options.seo_description!}" canonical="${context!}/s/${sheet.url!}">
4 | <@article sheet,'page',"sheet",false />
5 | @layout>
--------------------------------------------------------------------------------
/sheet_wikis.ftl:
--------------------------------------------------------------------------------
1 | <#include "layout/layout-custom.ftl">
2 | <#include "layout/wiki.ftl">
3 | <@layout type="about" title="${post.title!} - ${blog_title!}" keywords="${options.seo_keywords!},${tagWords!}" description="${post.summary!}" canonical="${post.fullPath!}">
4 | <@wiki post,'page',"post",false />
5 | @layout>
6 |
--------------------------------------------------------------------------------
/source/css/back-to-top.css:
--------------------------------------------------------------------------------
1 | #back-to-top {
2 | position: fixed;
3 | padding: 8px 0;
4 | transition: 0.4s ease opacity, 0.4s ease width, 0.4s ease transform, 0.4s ease border-radius;
5 | opacity: 0;
6 | line-height: 24px;
7 | outline: none;
8 | transform: translateY(120px);
9 | }
10 | #back-to-top.fade-in {
11 | opacity: 1;
12 | }
13 | #back-to-top.rise-up {
14 | transform: translateY(0);
15 | }
--------------------------------------------------------------------------------
/source/css/bundle.css:
--------------------------------------------------------------------------------
1 | #back-to-top{position:fixed;padding:8px 0;transition:.4s ease opacity,.4s ease width,.4s ease transform,.4s ease border-radius;opacity:0;line-height:24px;outline:0;transform:translateY(120px)}#back-to-top.fade-in{opacity:1}#back-to-top.rise-up{transform:translateY(0)}.ins-section-container{position:relative;background:#f7f7f7}.ins-section{font-size:14px;line-height:16px}.ins-section .ins-search-item,.ins-section .ins-section-header{padding:8px 15px}.ins-section .ins-section-header{color:#9a9a9a;border-bottom:1px solid #e2e2e2}.ins-section .ins-slug{margin-left:5px;color:#9a9a9a}.ins-section .ins-slug:before{content:'('}.ins-section .ins-slug:after{content:')'}.ins-section .ins-search-item .ins-search-preview,.ins-section .ins-search-item header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ins-section .ins-search-item header .ins-title{margin-left:8px}.ins-section .ins-search-item .ins-search-preview{height:15px;font-size:12px;color:#9a9a9a;margin:5px 0 0 20px}.ins-section .ins-search-item.active,.ins-section .ins-search-item:hover{color:#fff;background:#3273dc}.ins-section .ins-search-item.active .ins-search-preview,.ins-section .ins-search-item.active .ins-slug,.ins-section .ins-search-item:hover .ins-search-preview,.ins-section .ins-search-item:hover .ins-slug{color:#fff}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.searchbox{display:none;perspective:50em;top:0;left:0;width:100%;height:100%;z-index:100;background:rgba(0,0,0,.7);transform-origin:0;perspective-origin:top center}.searchbox.show{display:block}.searchbox,.searchbox .searchbox-container{position:fixed}.searchbox .searchbox-container{overflow:hidden}.searchbox .searchbox-selectable{cursor:pointer}.searchbox .searchbox-input-wrapper{position:relative}.searchbox .searchbox-input-wrapper .searchbox-input{width:100%;border:none;outline:0;font-size:16px;box-shadow:none;font-weight:200;border-radius:0;background:#fff;line-height:20px;box-sizing:border-box;padding:12px 28px 12px 20px;border-bottom:1px solid #e2e2e2}.searchbox .searchbox-input-wrapper .searchbox-close{top:50%;right:6px;width:20px;height:20px;line-height:20px;font-size:16px;margin-top:-11px;position:absolute;text-align:center;display:inline-block}.searchbox .searchbox-input-wrapper .searchbox-close:hover{color:#3273dc}.searchbox .searchbox-result-wrapper{left:0;right:0;top:45px;bottom:0;overflow-y:auto;position:absolute}.searchbox .searchbox-container{left:50%;top:100px;width:540px;z-index:101;bottom:100px;margin-left:-270px;box-sizing:border-box}@media screen and (max-width:559px),screen and (max-height:479px){.searchbox .searchbox-container{top:0;left:0;margin:0;width:100%;height:100%;background:#f7f7f7}}
--------------------------------------------------------------------------------
/source/css/insight.css:
--------------------------------------------------------------------------------
1 | .ins-section-container {
2 | position: relative;
3 | background: #f7f7f7;
4 | }
5 |
6 | .ins-section {
7 | font-size: 14px;
8 | line-height: 16px;
9 | }
10 |
11 | .ins-section .ins-section-header, .ins-section .ins-search-item {
12 | padding: 8px 15px;
13 | }
14 |
15 | .ins-section .ins-section-header {
16 | color: #9a9a9a;
17 | border-bottom: 1px solid #e2e2e2;
18 | }
19 |
20 | .ins-section .ins-slug {
21 | margin-left: 5px;
22 | color: #9a9a9a;
23 | }
24 |
25 | .ins-section .ins-slug:before {
26 | content: '(';
27 | }
28 |
29 | .ins-section .ins-slug:after {
30 | content: ')';
31 | }
32 |
33 | .ins-section .ins-search-item header, .ins-section .ins-search-item .ins-search-preview {
34 | overflow: hidden;
35 | white-space: nowrap;
36 | text-overflow: ellipsis;
37 | }
38 |
39 | .ins-section .ins-search-item header .ins-title {
40 | margin-left: 8px;
41 | }
42 |
43 | .ins-section .ins-search-item .ins-search-preview {
44 | height: 15px;
45 | font-size: 12px;
46 | color: #9a9a9a;
47 | margin: 5px 0 0 20px;
48 | }
49 |
50 | .ins-section .ins-search-item:hover, .ins-section .ins-search-item.active {
51 | color: #fff;
52 | background: #3273dc;
53 | }
54 |
55 | .ins-section .ins-search-item:hover .ins-slug, .ins-section .ins-search-item.active .ins-slug, .ins-section .ins-search-item:hover .ins-search-preview, .ins-section .ins-search-item.active .ins-search-preview {
56 | color: #fff;
57 | }
--------------------------------------------------------------------------------
/source/css/progressbar.css:
--------------------------------------------------------------------------------
1 | .pace {
2 | -webkit-pointer-events: none;
3 | pointer-events: none;
4 |
5 | -webkit-user-select: none;
6 | -moz-user-select: none;
7 | user-select: none;
8 | }
9 |
10 | .pace-inactive {
11 | display: none;
12 | }
13 |
14 | .pace .pace-progress {
15 | background: #3273dc;
16 | position: fixed;
17 | z-index: 2000;
18 | top: 0;
19 | right: 100%;
20 | width: 100%;
21 | height: 2px;
22 | }
--------------------------------------------------------------------------------
/source/css/search.css:
--------------------------------------------------------------------------------
1 | .searchbox {
2 | display: none;
3 | perspective: 50em;
4 | top: 0;
5 | left: 0;
6 | width: 100%;
7 | height: 100%;
8 | z-index: 100;
9 | background: rgba(0, 0, 0, 0.7);
10 | transform-origin: 0%;
11 | perspective-origin: top center;
12 | }
13 |
14 | .searchbox.show {
15 | display: block;
16 | }
17 |
18 | .searchbox, .searchbox .searchbox-container {
19 | position: fixed;
20 | }
21 |
22 | .searchbox .searchbox-container {
23 | overflow: hidden;
24 | }
25 |
26 | .searchbox .searchbox-selectable {
27 | cursor: pointer;
28 | }
29 |
30 | .searchbox .searchbox-input-wrapper {
31 | position: relative;
32 | }
33 |
34 | .searchbox .searchbox-input-wrapper .searchbox-input {
35 | width: 100%;
36 | border: none;
37 | outline: none;
38 | font-size: 16px;
39 | box-shadow: none;
40 | font-weight: 200;
41 | border-radius: 0;
42 | background: #fff;
43 | line-height: 20px;
44 | box-sizing: border-box;
45 | padding: 12px 28px 12px 20px;
46 | border-bottom: 1px solid #e2e2e2;
47 | }
48 |
49 | .searchbox .searchbox-input-wrapper .searchbox-close {
50 | top: 50%;
51 | right: 6px;
52 | width: 20px;
53 | height: 20px;
54 | line-height: 20px;
55 | font-size: 16px;
56 | margin-top: -11px;
57 | position: absolute;
58 | text-align: center;
59 | display: inline-block;
60 | }
61 |
62 | .searchbox .searchbox-input-wrapper .searchbox-close:hover {
63 | color: #3273dc;
64 | }
65 |
66 | .searchbox .searchbox-result-wrapper {
67 | left: 0;
68 | right: 0;
69 | top: 45px;
70 | bottom: 0;
71 | overflow-y: auto;
72 | position: absolute;
73 | }
74 |
75 | .searchbox .searchbox-container {
76 | left: 50%;
77 | top: 100px;
78 | width: 540px;
79 | z-index: 101;
80 | bottom: 100px;
81 | margin-left: -270px;
82 | box-sizing: border-box;
83 | }
84 |
85 | @media screen and (max-width: 559px), screen and (max-height: 479px) {
86 | .searchbox .searchbox-container {
87 | top: 0;
88 | left: 0;
89 | margin: 0;
90 | width: 100%;
91 | height: 100%;
92 | background: #f7f7f7;
93 | }
94 | }
--------------------------------------------------------------------------------
/source/doc/bulma_doc.txt:
--------------------------------------------------------------------------------
1 | 参考博客:[https://www.lisa33xiaoq.net/843.html]
2 | is-hidden-mobile:只在手机隐藏
3 | is-hidden-tablet-only:只在平板隐藏
4 | is-hidden-desktop-only :只在桌面隐藏
5 | is-hidden-touch:手机和平板隐藏,其他宽度显示
--------------------------------------------------------------------------------
/source/images/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/images/avatar.png
--------------------------------------------------------------------------------
/source/images/favicon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/source/images/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/source/images/og_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/images/og_image.png
--------------------------------------------------------------------------------
/source/images/thumbnail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/source/js/animation.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | function $() {
3 | return Array.prototype.slice.call(document.querySelectorAll.apply(document, arguments));
4 | }
5 |
6 | $('body > .navbar, body > .section, body > .footer').forEach(function (element) {
7 | element.style.transition = '0s';
8 | element.style.opacity = '0';
9 | });
10 | document.querySelector('body > .navbar').style.transform = 'translateY(-100px)';
11 | ['.column-main > .card',
12 | '.column-left > .card, .column-right-shadow > .card',
13 | '.column-right > .card'].map(function (selector) {
14 | $(selector).forEach(function (element) {
15 | element.style.transition = '0s';
16 | element.style.opacity = '0';
17 | element.style.transform = 'scale(0.8)';
18 | element.style.transformOrigin = 'center top';
19 | });
20 | });
21 | setTimeout(function () {
22 | $('body > .navbar, body > .section, body > .footer').forEach(function (element) {
23 | element.style.opacity = '1';
24 | element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out';
25 | });
26 | document.querySelector('body > .navbar').style.transform = 'translateY(0)';
27 | ['.column-main > .card',
28 | '.column-left > .card, .column-right-shadow > .card',
29 | '.column-right > .card'].map(function (selector) {
30 | var i = 1;
31 | $(selector).forEach(function (element) {
32 | setTimeout(function () {
33 | element.style.opacity = '1';
34 | element.style.transform = '';
35 | element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out';
36 | }, i * 100);
37 | i++;
38 | });
39 | });
40 | });
41 | })();
42 |
--------------------------------------------------------------------------------
/source/js/back-to-top.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | var $button = $('#back-to-top');
3 | var $footer = $('footer.footer');
4 | var $mainColumn = $('.column-main');
5 | var $leftSidebar = $('.column-left');
6 | var $rightSidebar = $('.column-right');
7 | var lastScrollTop = 0;
8 | var rightMargin = 20;
9 | var bottomMargin = 20;
10 | var lastState = null;
11 | var state = {
12 | base: {
13 | classname: 'card has-text-centered',
14 | left: '',
15 | width: 64,
16 | bottom: bottomMargin,
17 | 'border-radius': 4
18 | }
19 | };
20 | state['desktop-hidden'] = Object.assign({}, state.base, {
21 | classname: state.base.classname + ' rise-up',
22 | });
23 | state['desktop-visible'] = Object.assign({}, state['desktop-hidden'], {
24 | classname: state['desktop-hidden'].classname + ' fade-in',
25 | });
26 | state['desktop-dock'] = Object.assign({}, state['desktop-visible'], {
27 | classname: state['desktop-visible'].classname + ' fade-in',
28 | width: 40,
29 | 'border-radius': '50%'
30 | });
31 | state['mobile-hidden'] = Object.assign({}, state.base, {
32 | classname: state.base.classname + ' fade-in',
33 | right: rightMargin
34 | });
35 | state['mobile-visible'] = Object.assign({}, state['mobile-hidden'], {
36 | classname: state['mobile-hidden'].classname + ' rise-up',
37 | });
38 |
39 | function isStateEquals(prev, next) {
40 | for (var prop in prev) {
41 | if (!next.hasOwnProperty(prop) || next[prop] !== prev[prop]) {
42 | return false;
43 | }
44 | }
45 | for (var prop in next) {
46 | if (!prev.hasOwnProperty(prop) || prev[prop] !== prev[prop]) {
47 | return false;
48 | }
49 | }
50 | return true;
51 | }
52 |
53 | function applyState(state) {
54 | if (lastState !== null && isStateEquals(lastState, state)) {
55 | return;
56 | }
57 | $button.attr('class', state.classname);
58 | for (let prop in state) {
59 | if (prop === 'classname') {
60 | continue;
61 | }
62 | $button.css(prop, state[prop]);
63 | }
64 | lastState = state;
65 | }
66 |
67 | function isDesktop() {
68 | return window.innerWidth >= 1078;
69 | }
70 |
71 | function isTablet() {
72 | return window.innerWidth >= 768 && !isDesktop();
73 | }
74 |
75 | function isScrollUp() {
76 | return $(window).scrollTop() < lastScrollTop && $(window).scrollTop() > 0;
77 | }
78 |
79 | function hasLeftSidebar() {
80 | return $leftSidebar.length > 0;
81 | }
82 |
83 | function hasRightSidebar() {
84 | return $rightSidebar.length > 0;
85 | }
86 |
87 | function getRightSidebarBottom() {
88 | if (!hasRightSidebar()) {
89 | return 0;
90 | }
91 | return Math.max.apply(null, $rightSidebar.find('.widget').map(function () {
92 | return $(this).offset().top + $(this).outerHeight(true);
93 | }));
94 | }
95 |
96 | function getScrollTop() {
97 | return $(window).scrollTop();
98 | }
99 |
100 | function getScrollBottom() {
101 | return $(window).scrollTop() + $(window).height();
102 | }
103 |
104 | function getButtonWidth() {
105 | return $button.outerWidth(true);
106 | }
107 |
108 | function getButtonHeight() {
109 | return $button.outerHeight(true);
110 | }
111 |
112 | function updateScrollTop() {
113 | lastScrollTop = $(window).scrollTop();
114 | }
115 |
116 | function update() {
117 | // desktop mode or tablet mode with only right sidebar enabled
118 | if (isDesktop() || (isTablet() && !hasLeftSidebar() && hasRightSidebar())) {
119 | var nextState;
120 | var padding = ($mainColumn.outerWidth() - $mainColumn.width()) / 2;
121 | var maxLeft = $(window).width() - getButtonWidth() - rightMargin;
122 | var maxBottom = $footer.offset().top + getButtonHeight() / 2 + bottomMargin;
123 | if (getScrollTop() == 0 || getScrollBottom() < getRightSidebarBottom() + padding + getButtonHeight()) {
124 | nextState = state['desktop-hidden'];
125 | } else if (getScrollBottom() < maxBottom) {
126 | nextState = state['desktop-visible'];
127 | } else {
128 | nextState = Object.assign({}, state['desktop-dock'], {
129 | bottom: getScrollBottom() - maxBottom + bottomMargin
130 | });
131 | }
132 |
133 | var left = $mainColumn.offset().left + $mainColumn.outerWidth() + padding;
134 | nextState = Object.assign({}, nextState, {
135 | left: Math.min(left, maxLeft)
136 | });
137 | applyState(nextState);
138 | } else {
139 | // mobile and tablet mode
140 | if (!isScrollUp()) {
141 | applyState(state['mobile-hidden']);
142 | } else {
143 | applyState(state['mobile-visible']);
144 | }
145 | updateScrollTop();
146 | }
147 | }
148 |
149 | update();
150 | $(window).resize(update);
151 | $(window).scroll(update);
152 |
153 | $('#back-to-top').on('click', function () {
154 | $('body, html').animate({ scrollTop: 0 }, 400);
155 | });
156 | });
--------------------------------------------------------------------------------
/source/js/bundle.js:
--------------------------------------------------------------------------------
1 | // main.js
2 | (function($){$('.article img:not(".not-gallery-item")').each(function(){if($(this).parent("a").length===0){$(this).wrap('
');if(this.alt){$(this).after('
'+this.alt+"
")}}});if(typeof(moment)==="function"){$(".article-meta time").each(function(){$(this).text(moment($(this).attr("datetime")).fromNow())})}$(".article > .content > table").each(function(){if($(this).width()>$(this).parent().width()){$(this).wrap('
')}});function adjustNavbar(){const navbarWidth=$(".navbar-main .navbar-start").outerWidth()+$(".navbar-main .navbar-end").outerWidth();if($(document).outerWidth()
');if(typeof(IcarusThemeSettings)!=="undefined"&&typeof(IcarusThemeSettings.article)!=="undefined"&&typeof(IcarusThemeSettings.article.highlight)!=="undefined"){if(typeof(ClipboardJS)!=="undefined"&&IcarusThemeSettings.article.highlight.clipboard){$("figure.highlight").each(function(){var id="code-"+Date.now()+(Math.random()*1000|0);var button='';$(this).attr("id",id);if($(this).find("figcaption").length){$(this).find("figcaption").prepend(button)}else{$(this).prepend(""+button+"")}});new ClipboardJS(".highlight .copy")}var fold=IcarusThemeSettings.article.highlight.fold;if(fold.trim()){var button=''+(fold==="unfolded"?'':'')+"";$("figure.highlight").each(function(){if($(this).find("figcaption").length){$(this).find("figcaption").prepend(button)}else{$(this).prepend(""+button+"")}});function toggleFold(codeBlock,isFolded){var $toggle=$(codeBlock).find(".fold i");!isFolded?$(codeBlock).removeClass("folded"):$(codeBlock).addClass("folded");!isFolded?$toggle.removeClass("fa-angle-right"):$toggle.removeClass("fa-angle-down");!isFolded?$toggle.addClass("fa-angle-down"):$toggle.addClass("fa-angle-right")}$("figure.highlight").each(function(){toggleFold(this,fold==="folded")});$("figure.highlight figcaption .fold").click(function(){var $code=$(this).closest("figure.highlight");toggleFold($code.eq(0),!$code.hasClass("folded"))})}}var $toc=$("#toc");if($toc.length>0){var $mask=$("");$mask.attr("id","toc-mask");$("body").append($mask);function toggleToc(){$toc.toggleClass("is-active");$mask.toggleClass("is-active")}$toc.on("click",toggleToc);$mask.on("click",toggleToc);$(".navbar-main .catalogue").on("click",toggleToc)}})(jQuery);
3 |
4 | // animation.js
5 | (function(){function $(){return Array.prototype.slice.call(document.querySelectorAll.apply(document,arguments))}$("body > .navbar, body > .section, body > .footer").forEach(function(element){element.style.transition="0s";element.style.opacity="0"});document.querySelector("body > .navbar").style.transform="translateY(-100px)";[".column-main > .card",".column-left > .card, .column-right-shadow > .card",".column-right > .card"].map(function(selector){$(selector).forEach(function(element){element.style.transition="0s";element.style.opacity="0";element.style.transform="scale(0.8)";element.style.transformOrigin="center top"})});setTimeout(function(){$("body > .navbar, body > .section, body > .footer").forEach(function(element){element.style.opacity="1";element.style.transition="opacity 0.3s ease-out, transform 0.3s ease-out"});document.querySelector("body > .navbar").style.transform="translateY(0)";[".column-main > .card",".column-left > .card, .column-right-shadow > .card",".column-right > .card"].map(function(selector){var i=1;$(selector).forEach(function(element){setTimeout(function(){element.style.opacity="1";element.style.transform="";element.style.transition="opacity 0.3s ease-out, transform 0.3s ease-out"},i*100);i++})})})})();
6 |
7 | // back-to-top.js
8 | $(document).ready(function(){var $button=$('#back-to-top');var $footer=$('footer.footer');var $mainColumn=$('.column-main');var $leftSidebar=$('.column-left');var $rightSidebar=$('.column-right');var lastScrollTop=0;var rightMargin=20;var bottomMargin=20;var lastState=null;var state={base:{classname:'card has-text-centered',left:'',width:64,bottom:bottomMargin,'border-radius':4}};state['desktop-hidden']=Object.assign({},state.base,{classname:state.base.classname+' rise-up',});state['desktop-visible']=Object.assign({},state['desktop-hidden'],{classname:state['desktop-hidden'].classname+' fade-in',});state['desktop-dock']=Object.assign({},state['desktop-visible'],{classname:state['desktop-visible'].classname+' fade-in',width:40,'border-radius':'50%'});state['mobile-hidden']=Object.assign({},state.base,{classname:state.base.classname+' fade-in',right:rightMargin});state['mobile-visible']=Object.assign({},state['mobile-hidden'],{classname:state['mobile-hidden'].classname+' rise-up',});function isStateEquals(prev,next){for(var prop in prev){if(!next.hasOwnProperty(prop)||next[prop]!==prev[prop]){return false}}for(var prop in next){if(!prev.hasOwnProperty(prop)||prev[prop]!==prev[prop]){return false}}return true}function applyState(state){if(lastState!==null&&isStateEquals(lastState,state)){return}$button.attr('class',state.classname);for(let prop in state){if(prop==='classname'){continue}$button.css(prop,state[prop])}lastState=state}function isDesktop(){return window.innerWidth>=1078}function isTablet(){return window.innerWidth>=768&&!isDesktop()}function isScrollUp(){return $(window).scrollTop()
0}function hasLeftSidebar(){return $leftSidebar.length>0}function hasRightSidebar(){return $rightSidebar.length>0}function getRightSidebarBottom(){if(!hasRightSidebar()){return 0}return Math.max.apply(null,$rightSidebar.find('.widget').map(function(){return $(this).offset().top+$(this).outerHeight(true)}))}function getScrollTop(){return $(window).scrollTop()}function getScrollBottom(){return $(window).scrollTop()+$(window).height()}function getButtonWidth(){return $button.outerWidth(true)}function getButtonHeight(){return $button.outerHeight(true)}function updateScrollTop(){lastScrollTop=$(window).scrollTop()}function update(){if(isDesktop()||(isTablet()&&!hasLeftSidebar()&&hasRightSidebar())){var nextState;var padding=($mainColumn.outerWidth()-$mainColumn.width())/2;var maxLeft=$(window).width()-getButtonWidth()-rightMargin;var maxBottom=$footer.offset().top+getButtonHeight()/2+bottomMargin;if(getScrollTop()==0||getScrollBottom() p > .gallery-item').length){$('.justified-gallery > p > .gallery-item').unwrap()}$('.justified-gallery').justifiedGallery()}});
--------------------------------------------------------------------------------
/source/js/common.js:
--------------------------------------------------------------------------------
1 | var url = location.href;
2 | var urlstatus = false;
3 | $(".navbar-start a").each(function() {
4 | if ((url + '/').indexOf($(this).attr('href')) > -1 && $(this).attr('href') != '/') {
5 | $(this).addClass('is-active');
6 | urlstatus = true;
7 | } else {
8 | $(this).removeClass('is-active');
9 | }
10 | });
11 | if (!urlstatus) {
12 | $(".navbar-start a").eq(0).addClass('is-active');
13 | }
14 |
15 | /**
16 | * 移动端导航栏 OK
17 | */
18 | document.addEventListener('DOMContentLoaded', () => {
19 | // Get all "navbar-burger" elements
20 | const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
21 | // Check if there are any navbar burgers
22 | if ($navbarBurgers.length > 0) {
23 | // Add a click event on each of them
24 | $navbarBurgers.forEach(el => {
25 | el.addEventListener('click', () => {
26 | // Get the target from the "data-target" attribute
27 | const target = el.dataset.target;
28 | const $target = document.getElementById(target);
29 | // Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
30 | el.classList.toggle('is-active');
31 | $target.classList.toggle('is-active');
32 | });
33 | });
34 | }
35 | });
36 |
37 | /**
38 | * 个人信息模块右侧滑出效果
39 | */
40 | function filtration_click() {
41 | if (!this.show) {
42 | $('#sq_drawer').css('right', 0);
43 | } else {
44 | $('#sq_drawer').css('right', '-200px');
45 | }
46 | }
47 |
48 | function close_user_info() {
49 | var position = $('#sq_drawer').css('right');
50 | if (position === "0px") {
51 | $('#sq_drawer').css('right', '-200px');
52 | }
53 | }
54 |
55 | /**
56 | * 文章界面的所有操作
57 | * |-生成目录
58 | * |-在代码的右上角显示代码的格式
59 | * |-剪切板功能
60 | * |-手机端目录
61 | * Status: OK
62 | */
63 | $(function() {
64 |
65 | /**
66 | * 生成文章的目录
67 | * @param from 从哪里寻找目录
68 | * @param to 添加目录到哪里
69 | * @param marginSpace 不同等级的标题错开多少距离
70 | * @param success 成功后调用的方法
71 | */
72 | let generateCatalogs = (marginSpace) => {
73 | // 获取所有的标题
74 | let titles = $('.content h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]');
75 | // 得到标题数字的最小数字,用来计算每个标题的margin-left间距,例如["h2", "h3"]则返回2
76 | let minTitleNumber = Math.min.apply(null, [...new Set(titles.get().map(value => value.tagName[1]))]);
77 | // 如果没有title的话返回0
78 | minTitleNumber = minTitleNumber === Infinity ? 0 : minTitleNumber;
79 | minTitleNumber && (() => {
80 | // 开始生成目录
81 | titles.each(function() {
82 | // 得到标题等级,用来做margin-left处理
83 | let titleLevel = parseInt($(this).prop("tagName")[1]) - minTitleNumber;
84 | $("#catalogBox").append(
85 | '' + $(this).text() + '
'
87 | );
88 | });
89 | // 为目录中每个链接添加一个点击事件
90 | $("#catalogBox .catalog-item a[data-catalog-target]").on("click", function() {
91 | let title = $(this).attr("data-catalog-target");
92 | let offsetTop = $('#' + title).offset().top - 20;
93 | $("html,body").animate({
94 | scrollTop: offsetTop
95 | }, 300);
96 | });
97 | })();
98 | };
99 |
100 |
101 | // 生成文章的目录
102 | generateCatalogs(1.125);
103 |
104 | // 固定目录
105 | $(function() {
106 | $(window).scroll(function() {
107 | //获取垂直滚动的距离
108 | var scrollTop = $(document).scrollTop();
109 | if (scrollTop >= 445) {
110 | var wdh = $("#menu-box").width();
111 | $("#menu-box").css("width", wdh);
112 | $("#menu-box").addClass("menu-fixed");
113 | } else {
114 | $("#menu-box").removeClass("menu-fixed");
115 | }
116 | });
117 | });
118 |
119 |
120 | /**
121 | * 处理手机端目录
122 | */
123 | // 目录按钮
124 | $("#show-mobile-menu").on("click", function () {
125 | $('#menu-box').addClass('is-show-mobile-menu').removeClass('is-hidden-mobile');
126 | $('.menu-content').css('max-height','88vh');
127 | $("#menu-box").animate({right: "0"}, 300);
128 | $("#catalog-over-box").show();
129 | return false;
130 | });
131 |
132 | // 判断为手机才执行手机端目录效果
133 | if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
134 | // 目录中的链接
135 | $("[data-catalog-target]").on("click", function () {
136 | $("#menu-box").css({right: "-70%"});
137 | $("#catalog-over-box").hide();
138 | });
139 | }
140 | // 点击目录后的蒙版
141 | $("#catalog-over-box").click('on', function () {
142 | $("#menu-box").animate({right: "-70%"}, 300, () => {
143 | $(this).hide();
144 | });
145 | return false;
146 | });
147 |
148 | });
149 |
150 |
151 |
152 |
153 | /**
154 | * ===============================================================================
155 | * 网址导航界面的目录
156 | * ===============================================================================
157 | */
158 | $(function() {
159 | /**
160 | * 网址导航的目录
161 | * @param from 从哪里寻找目录
162 | * @param to 添加目录到哪里
163 | * @param marginSpace 不同等级的标题错开多少距离
164 | * @param success 成功后调用的方法
165 | */
166 | let generateUrlNavCatalogs = (marginSpace) => {
167 | // 获取所有的标题
168 | let titles = $('#url-show-list h2[id]');
169 | // 得到标题数字的最小数字,用来计算每个标题的margin-left间距,例如["h2", "h3"]则返回2
170 | let minTitleNumber = Math.min.apply(null, [...new Set(titles.get().map(value => value.tagName[1]))]);
171 | // 如果没有title的话返回0
172 | minTitleNumber = minTitleNumber === Infinity ? 0 : minTitleNumber;
173 | minTitleNumber && (() => {
174 | // 开始生成目录
175 | titles.each(function() {
176 | // 得到标题等级,用来做margin-left处理
177 | let titleLevel = parseInt($(this).prop("tagName")[1]) - minTitleNumber;
178 | $("#urlNavBox").append(
179 | '' + $(this).text() + '
'
181 | );
182 | });
183 | // 为目录中每个链接添加一个点击事件
184 | $("#urlNavBox .catalog-item a[data-catalog-target]").on("click", function() {
185 | let title = $(this).attr("data-catalog-target");
186 | let offsetTop = $('#' + title).offset().top - 20;
187 | $("html,body").animate({
188 | scrollTop: offsetTop
189 | }, 300);
190 | });
191 | })();
192 | };
193 |
194 | generateUrlNavCatalogs(1.125);
195 |
196 | // 固定目录
197 | $(function() {
198 | $(window).scroll(function() {
199 | //获取垂直滚动的距离
200 | var scrollTop = $(document).scrollTop();
201 | if (scrollTop >= 87) {
202 | var wdh = $("#url-nav-menu-box").width();
203 | $("#url-nav-menu-box").css("width", wdh);
204 | $("#url-nav-menu-box").addClass("menu-fixed");
205 | $("#url-nav-menu-box").css("margin-top", "1.5rem");
206 | } else {
207 | $("#url-nav-menu-box").removeClass("menu-fixed");
208 | $("#url-nav-menu-box").css("margin-top", "0rem");
209 | }
210 | });
211 | });
212 |
213 | /**
214 | * 处理手机端目录
215 | */
216 | // 目录按钮
217 | $("#show-mobile-menu").on("click", function () {
218 | $('#url-nav-menu-box').addClass('is-show-mobile-menu').removeClass('is-hidden-mobile');
219 | $('.menu-content').css('max-height','88vh');
220 | $("#url-nav-menu-box").animate({right: "0"}, 300);
221 | $("#catalog-over-box").show();
222 | return false;
223 | });
224 |
225 | // 判断为手机才执行手机端目录效果
226 | if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
227 | // 目录中的链接
228 | $("[data-catalog-target]").on("click", function () {
229 | $("#url-nav-menu-box").css({right: "-70%"});
230 | $("#catalog-over-box").hide();
231 | });
232 | }
233 | // 点击目录后的蒙版
234 | $("#catalog-over-box").click('on', function () {
235 | $("#url-nav-menu-box").animate({right: "-70%"}, 300, () => {
236 | $(this).hide();
237 | });
238 | return false;
239 | });
240 | });
241 |
242 |
243 | /***
244 | * 首页轮播图slider
245 | **/
246 | $(function() {
247 | $("#hwslider").hwSlider({
248 | autoPlay: true,
249 | arrShow: true,
250 | dotShow: true,
251 | touch: true
252 | });
253 | });
254 |
255 | /***
256 | * 点击显示评论
257 | **/
258 | $(".comment-btn").click(function(){
259 | var that = $(this);
260 | var ele = that.parents(".card-content").children('.journals-comment');
261 | ele.is(':hidden') ? that.find('span').text('收起评论') : that.find('span').text('评论');
262 | ele.slideToggle();
263 |
264 |
265 | });
266 |
267 | /***
268 | * 关闭广告
269 | **/
270 | $(".close-btn").click(function(){
271 | var that = $(this);
272 | var ele = that.parents(".banner-advert");
273 | ele.slideUp();
274 | });
275 | /***
276 | * 延时开启广告
277 | **/
278 | function lazyAdvert(){
279 | setTimeout(function(){
280 | $(".banner-advert").slideDown('slow');
281 | },1000);
282 | }
283 | lazyAdvert();
284 |
--------------------------------------------------------------------------------
/source/js/gallery.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', function () {
2 | if (typeof ($.fn.lightGallery) === 'function') {
3 | $('.article').lightGallery({ selector: '.gallery-item' });
4 | }
5 | if (typeof ($.fn.justifiedGallery) === 'function') {
6 | if ($('.justified-gallery > p > .gallery-item').length) {
7 | $('.justified-gallery > p > .gallery-item').unwrap();
8 | }
9 | $('.justified-gallery').justifiedGallery();
10 | }
11 | });
--------------------------------------------------------------------------------
/source/js/main.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 | $('.article img:not(".not-gallery-item")').each(function () {
3 | // wrap images with link and add caption if possible
4 | if ($(this).parent('a').length === 0) {
5 | $(this).wrap('');
6 | if (this.alt) {
7 | alert(1);
8 | // $(this).after('' + this.alt + '
');
9 | }
10 | }
11 | });
12 |
13 | if (typeof (moment) === 'function') {
14 | $('.article-meta time').each(function () {
15 | $(this).text(moment($(this).attr('datetime')).fromNow());
16 | });
17 | }
18 |
19 | $('.article > .content > table').each(function () {
20 | if ($(this).width() > $(this).parent().width()) {
21 | $(this).wrap('');
22 | }
23 | });
24 |
25 | function adjustNavbar() {
26 | const navbarWidth = $('.navbar-main .navbar-start').outerWidth() + $('.navbar-main .navbar-end').outerWidth();
27 | if ($(document).outerWidth() < navbarWidth) {
28 | $('.navbar-main .navbar-menu').addClass('is-flex-start');
29 | } else {
30 | $('.navbar-main .navbar-menu').removeClass('is-flex-start');
31 | }
32 | }
33 | adjustNavbar();
34 | $(window).resize(adjustNavbar);
35 |
36 | $('figure.highlight table').wrap('');
37 | if (typeof (IcarusThemeSettings) !== 'undefined' &&
38 | typeof (IcarusThemeSettings.article) !== 'undefined' &&
39 | typeof (IcarusThemeSettings.article.highlight) !== 'undefined') {
40 | if (typeof (ClipboardJS) !== 'undefined' && IcarusThemeSettings.article.highlight.clipboard) {
41 | $('figure.highlight').each(function () {
42 | var id = 'code-' + Date.now() + (Math.random() * 1000 | 0);
43 | var button = '
';
44 | $(this).attr('id', id);
45 | if ($(this).find('figcaption').length) {
46 | $(this).find('figcaption').prepend(button);
47 | } else {
48 | $(this).prepend('
' + button + '');
49 | }
50 | });
51 | new ClipboardJS('.highlight .copy');
52 | }
53 | var fold = IcarusThemeSettings.article.highlight.fold;
54 | if (fold.trim()) {
55 | var button = '
' + (fold === 'unfolded' ? '' : '') + '';
56 | $('figure.highlight').each(function () {
57 | if ($(this).find('figcaption').length) {
58 | $(this).find('figcaption').prepend(button);
59 | } else {
60 | $(this).prepend('
' + button + '');
61 | }
62 | });
63 |
64 | function toggleFold(codeBlock, isFolded) {
65 | var $toggle = $(codeBlock).find('.fold i');
66 | !isFolded ? $(codeBlock).removeClass('folded') : $(codeBlock).addClass('folded');
67 | !isFolded ? $toggle.removeClass('fa-angle-right') : $toggle.removeClass('fa-angle-down');
68 | !isFolded ? $toggle.addClass('fa-angle-down') : $toggle.addClass('fa-angle-right');
69 | }
70 |
71 | $('figure.highlight').each(function () {
72 | toggleFold(this, fold === 'folded');
73 | });
74 | $('figure.highlight figcaption .fold').click(function () {
75 | var $code = $(this).closest('figure.highlight');
76 | toggleFold($code.eq(0), !$code.hasClass('folded'));
77 | });
78 | }
79 | }
80 |
81 | var $toc = $('#toc');
82 | if ($toc.length > 0) {
83 | var $mask = $('
');
84 | $mask.attr('id', 'toc-mask');
85 |
86 | $('body').append($mask);
87 |
88 | function toggleToc() {
89 | $toc.toggleClass('is-active');
90 | $mask.toggleClass('is-active');
91 | }
92 |
93 | $toc.on('click', toggleToc);
94 | $mask.on('click', toggleToc);
95 | $('.navbar-main .catalogue').on('click', toggleToc);
96 | }
97 | })(jQuery);
98 |
--------------------------------------------------------------------------------
/source/lib/hwslider/css/hwslider.css:
--------------------------------------------------------------------------------
1 | .hwslider {
2 | width: 100%;
3 | /*height: auto ;*/
4 | height: 12.5rem;
5 | min-width: 280px;
6 | min-height: 160px;
7 | position: relative;
8 | overflow: hidden
9 | }
10 |
11 | .hwslider ul {
12 | width: 100%;
13 | height: 100%;
14 | position: absolute;
15 | z-index: 1
16 | }
17 |
18 | .hwslider ul li {
19 | display: none;
20 | position: absolute;
21 | left: 0;
22 | top: 0;
23 | width: 100%;
24 | height: 100%;
25 | overflow: hidden
26 | }
27 |
28 | .hwslider ul li.active {
29 | display: block
30 | }
31 |
32 | .hwslider ul li img {
33 | width: 100%;
34 | max-width: 100%;
35 | min-height: 200px;
36 | display: block
37 | }
38 |
39 | .dots {
40 | position: absolute;
41 | bottom: 4%;
42 | left: 5%;
43 | min-width: 60px;
44 | height: 7px;
45 | z-index: 2
46 | }
47 |
48 | .dots span {
49 | float: left;
50 | width: 7px;
51 | height: 7px;
52 | margin-right: 8px;
53 | cursor: pointer;
54 | background-color: rgba(255,255,255,0.7);
55 | border: 0;
56 | border-radius: 3px;
57 | -webkit-transition: width .4s ease-in;
58 | transition: width .4s ease-in;
59 | }
60 |
61 | .dots span.active {
62 | margin-right: 8px;
63 | width: 30px;
64 | height: 7px;
65 | }
66 |
67 | .arr {
68 | /* display: none; */
69 | position: absolute;
70 | top: 0px;
71 | bottom: 0px;
72 | z-index: 2;
73 | width: 40px;
74 | height: 100%;
75 | text-align: center;
76 | font-size: 36px;
77 | color: #fff;
78 | text-decoration: none;
79 | display: flex;
80 | justify-content: center;
81 | align-items: center;
82 | opacity: 0;
83 | /* 属性 花费时间 曲线 何时开始*/
84 | transition: all 0.5s ease-in 0s;
85 | }
86 |
87 | .hwslider:hover .arr {
88 | text-decoration: none;
89 | color: #fff;
90 | display: flex;
91 | align-items: center;
92 | justify-content: center;
93 | opacity: 0.7;
94 | }
95 | .arr svg{
96 | fill: #fff;
97 | width: 14px;
98 | height: 20px;
99 | }
100 | .prev {
101 | left: 0;
102 | background-image: linear-gradient(to right, rgb(0, 0, 0), transparent);
103 | }
104 |
105 | .next {
106 | right: 0;
107 | background-image: linear-gradient(to left, rgb(0, 0, 0), transparent);
108 | }
109 | .intro {
110 | position: absolute;
111 | left: 4.8%;
112 | bottom: 9%;
113 | width: 85%;
114 | min-width: 240px;
115 | z-index: 2;
116 | color: #fff;
117 | font-size: 1.4rem;
118 | font-weight:600;
119 | line-height: 1.6rem;
120 | overflow:hidden;
121 | text-overflow: ellipsis;
122 | display: -webkit-box;
123 | -webkit-box-orient: vertical;
124 | -webkit-line-clamp: 1;
125 | }
126 |
--------------------------------------------------------------------------------
/source/lib/hwslider/index.1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
hwSlider支持手机app触屏滑动
7 |
8 |
9 |
10 |
11 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 这是一个内容滑动切换效果,支持触控滑动,响应式滑块。

29 | 
30 | hwSlider.js
31 |
32 |
33 |
34 |
47 |
48 |
49 |
50 |
51 |
52 |
69 |
--------------------------------------------------------------------------------
/source/lib/hwslider/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
hwSlider支持手机app触屏滑动
6 |
7 |
15 |
16 |
17 |
35 |
36 |
37 |
38 |
39 |
49 |
--------------------------------------------------------------------------------
/source/lib/hwslider/js/jquery.hwSlider.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * hwSlider内容滑动切换插件 - v1.0
3 | * by 月光光
4 | */
5 | ;
6 | (function($, window, document, undefined) {
7 | var HwSlider = function(ele, opt) {
8 | var self = this;
9 | self.$element = ele, self.defaults = {
10 | width: 600,
11 | height: 200,
12 | start: 1,
13 | speed: 400,
14 | interval: 3000,
15 | autoPlay: false,
16 | dotShow: true,
17 | arrShow: true,
18 | touch: true,
19 | afterSlider: function() {}
20 | }, self.clickable = true, self.options = $.extend({}, self.defaults, opt)
21 | };
22 | HwSlider.prototype = {
23 | init: function() {
24 | var self = this,
25 | ele = self.$element;
26 | var sliderInder = ele.children("ul");
27 | var hwsliderLi = sliderInder.children("li");
28 | var hwsliderSize = hwsliderLi.length;
29 | var index = self.options.start;
30 | var touchStartY = 0,
31 | touchStartX = 0;
32 | if (self.options.arrShow) {
33 | var arrElement = '
';
34 | ele.append(arrElement)
35 | }
36 | for (i = 1; i <= hwsliderSize; i++) {
37 | if (index == i) {
38 | hwsliderLi.eq(index - 1).addClass("active")
39 | }
40 | }
41 | if (self.options.dotShow) {
42 | var dot = "";
43 | for (i = 1; i <= hwsliderSize; i++) {
44 | if (index == i) {
45 | dot += '
'
46 | } else {
47 | dot += '
'
48 | }
49 | }
50 | var dotElement = '
' + dot + "
";
51 | ele.append(dotElement)
52 | }
53 | var resize = function() {
54 | var sWidth = ele.width();
55 | var sHeight = self.options.height / self.options.width * sWidth;
56 | // alert(sHeight);
57 | // ele.css("height", sHeight);
58 | if (self.options.arrShow) {
59 | // var arrOffset = (sHeight - 40) / 2;
60 | // ele.find(".arr").css("top", arrOffset + "px")
61 | ele.find(".arr").css("top","0px")
62 | }
63 | if (self.options.dotShow) {
64 | // var dotWidth = hwsliderSize * 20;
65 | // var dotOffset = (sWidth - dotWidth) / 20;
66 | // ele.find(".dots").css("left", dotOffset + "px")
67 | // ele.find(".dots").css("left", "5%")
68 | }
69 | };
70 | ele.css("height", self.options.height);
71 | resize();
72 | $(window).resize(function() {
73 | resize()
74 | });
75 | if (self.options.arrShow) {
76 | ele.find(".next").on("click", function(event) {
77 | event.preventDefault();
78 | if (self.clickable) {
79 | if (index >= hwsliderSize) {
80 | index = 1
81 | } else {
82 | index += 1
83 | }
84 | self.moveTo(index, "next")
85 | }
86 | });
87 | ele.find(".prev").on("click", function(event) {
88 | event.preventDefault();
89 | if (self.clickable) {
90 | if (index == 1) {
91 | index = hwsliderSize
92 | } else {
93 | index -= 1
94 | }
95 | self.moveTo(index, "prev")
96 | }
97 | })
98 | }
99 | if (self.options.dotShow) {
100 | ele.find(".dots span").on("click", function(event) {
101 | event.preventDefault();
102 | if (self.clickable) {
103 | var dotIndex = $(this).data("index");
104 | if (dotIndex > index) {
105 | dir = "next"
106 | } else {
107 | dir = "prev"
108 | }
109 | if (dotIndex != index) {
110 | index = dotIndex;
111 | self.moveTo(index, dir)
112 | }
113 | }
114 | })
115 | }
116 | if (self.options.autoPlay) {
117 | var timer;
118 | var play = function() {
119 | index++;
120 | if (index > hwsliderSize) {
121 | index = 1
122 | }
123 | self.moveTo(index, "next")
124 | };
125 | timer = setInterval(play, self.options.interval);
126 | ele.hover(function() {
127 | timer = clearInterval(timer)
128 | }, function() {
129 | timer = setInterval(play, self.options.interval)
130 | })
131 | }
132 | if (self.options.touch) {
133 | hwsliderLi.on({
134 | touchstart: function(e) {
135 | touchStartY = e.originalEvent.touches[0].clientY;
136 | touchStartX = e.originalEvent.touches[0].clientX
137 | },
138 | touchend: function(e) {
139 | var touchEndY = e.originalEvent.changedTouches[0].clientY,
140 | touchEndX = e.originalEvent.changedTouches[0].clientX,
141 | yDiff = touchStartY - touchEndY,
142 | xDiff = touchStartX - touchEndX;
143 | if (Math.abs(xDiff) > Math.abs(yDiff)) {
144 | if (xDiff > 5) {
145 | if (index >= hwsliderSize) {
146 | index = 1
147 | } else {
148 | index += 1
149 | }
150 | self.moveTo(index, "next")
151 | } else {
152 | if (index == 1) {
153 | index = hwsliderSize
154 | } else {
155 | index -= 1
156 | }
157 | self.moveTo(index, "prev")
158 | }
159 | }
160 | touchStartY = null;
161 | touchStartX = null
162 | },
163 | touchmove: function(e) {
164 | if (e.preventDefault) {
165 | e.preventDefault()
166 | }
167 | }
168 | })
169 | }
170 | },
171 | moveTo: function(index, dir) {
172 | var self = this,
173 | ele = self.$element;
174 | var clickable = self.clickable;
175 | var dots = ele.find(".dots span");
176 | var sliderInder = ele.children("ul");
177 | var hwsliderLi = sliderInder.children("li");
178 | if (clickable) {
179 | self.clickable = false;
180 | var offset = ele.width();
181 | if (dir == "prev") {
182 | offset = -1 * offset
183 | }
184 | sliderInder.children(".active").stop().animate({
185 | left: -offset
186 | }, self.options.speed, function() {
187 | $(this).removeClass("active")
188 | });
189 | hwsliderLi.eq(index - 1).css("left", offset + "px").addClass("active").stop().animate({
190 | left: 0
191 | }, self.options.speed, function() {
192 | self.clickable = true
193 | });
194 | self.options.afterSlider.call(self);
195 | dots.removeClass("active");
196 | dots.eq(index - 1).addClass("active")
197 | } else {
198 | return false
199 | }
200 | }
201 | };
202 | $.fn.hwSlider = function(options) {
203 | var hwSlider = new HwSlider(this, options);
204 | return this.each(function() {
205 | hwSlider.init()
206 | })
207 | }
208 | })(jQuery, window, document);
209 |
--------------------------------------------------------------------------------
/source/lib/hydrogen/css/magnific-popup.css:
--------------------------------------------------------------------------------
1 | .mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;filter:alpha(opacity=65);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:.65;filter:alpha(opacity=65);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}
--------------------------------------------------------------------------------
/source/lib/hydrogen/css/salvattore.css:
--------------------------------------------------------------------------------
1 | .column{float:left}@media screen and (max-width:480px){.column{float:none;position:relative;clear:both}}.size-1of4{width:25%}.size-1of3{width:33.333%}.size-1of2{width:50%}#fh5co-board[data-columns]::before{content:'4 .column.size-1of4'}@media screen and (max-width:450px){#fh5co-board[data-columns]::before{content:'1 .column'}}@media screen and (min-width:451px) and (max-width:700px){#fh5co-board[data-columns]::before{content:'2 .column.size-1of2'}}@media screen and (min-width:701px) and (max-width:850px){#fh5co-board[data-columns]::before{content:'3 .column.size-1of3'}}@media screen and (min-width:851px){#fh5co-board[data-columns]::before{content:'4 .column.size-1of4'}}
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_1.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_10.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_11.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_12.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_13.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_14.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_15.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_16.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_17.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_18.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_18.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_19.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_19.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_2.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_20.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_20.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_21.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_22.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_22.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_23.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_23.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_24.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_24.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_25.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_25.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_26.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_26.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_27.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_27.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_28.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_28.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_29.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_29.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_3.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_30.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_30.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_4.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_5.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_6.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_7.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_8.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/images/img_9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lin-liem/weicarus/cb4bfc512f0a95d82714670a0272185f80c36b59/source/lib/hydrogen/images/img_9.jpg
--------------------------------------------------------------------------------
/source/lib/hydrogen/js/bootstrap-3.3.4.js:
--------------------------------------------------------------------------------
1 | document.write("
评论
40 | <#if !journal.disallowComment!false> 41 |