Compare commits

...

5 Commits
1.0.5 ... 1.0.7

31 changed files with 246 additions and 2764 deletions

View File

@@ -15,7 +15,7 @@ git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes
如果想要安裝比較新的dev分支可以 如果想要安裝比較新的dev分支可以
``` ```
git clone -b div https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly
``` ```
## 应用主题 ## 应用主题
@@ -29,8 +29,7 @@ theme: Butterfly
## 文档 ## 文档
可查看[这里](https://jerryc.me/posts/21cfbf15) 可查看或[这里](https://docs.jerryc.me/)或[这里](https://jerryc.me/posts/21cfbf15)
## 截图 ## 截图

View File

@@ -121,7 +121,6 @@ cdn:
css: css:
fontawesome: https://cdn.jsdelivr.net/npm/font-awesome@latest/css/font-awesome.min.css fontawesome: https://cdn.jsdelivr.net/npm/font-awesome@latest/css/font-awesome.min.css
# fontawesomeV5: https://use.fontawesome.com/releases/v5.8.1/css/all.css # fontawesomeV5: https://use.fontawesome.com/releases/v5.8.1/css/all.css
googlefont: https://fonts.googleapis.com/css?family=Titillium+Web
fancybox: https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css fancybox: https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css
js: js:
jquery: https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js jquery: https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js
@@ -241,7 +240,7 @@ valine:
verify: false # valine verify code (true/false) verify: false # valine verify code (true/false)
pageSize: 10 # comment list page size pageSize: 10 # comment list page size
avatar: monsterid # gravatar style https://valine.js.org/#/avatar avatar: monsterid # gravatar style https://valine.js.org/#/avatar
lang: en # i18n: zh-cn/en/tw lang: en # i18n: zh-cn/en
placeholder: Please leave your footprints # valine comment input placeholder(like: Please leave your footprints ) placeholder: Please leave your footprints # valine comment input placeholder(like: Please leave your footprints )
guest_info: nick,mail,link #valine comment header inf guest_info: nick,mail,link #valine comment header inf
@@ -276,10 +275,6 @@ google_site_verification:
# See: https://www.bing.com/webmaster/ # See: https://www.bing.com/webmaster/
bing_site_verification: bing_site_verification:
# Yandex Webmaster tools verification setting
# See: https://webmaster.yandex.ru/
#yandex_site_verification:
# Baidu Webmaster tools verification setting # Baidu Webmaster tools verification setting
# See: https://ziyuan.baidu.com/site/ # See: https://ziyuan.baidu.com/site/
baidu_site_verification: baidu_site_verification:
@@ -333,7 +328,7 @@ related_post:
# canvas_ribbon # canvas_ribbon
# See: https://github.com/hustcc/ribbon.js # See: https://github.com/hustcc/ribbon.js
canvas_ribbon: canvas_ribbon:
enable: false enable: true
size: 150 size: 150
alpha: 0.6 alpha: 0.6
zIndex: -1 zIndex: -1
@@ -341,7 +336,7 @@ canvas_ribbon:
canvas_ribbon_piao: canvas_ribbon_piao:
enable: true enable: false
# 避免重複網址分散seo # 避免重複網址分散seo
@@ -357,11 +352,18 @@ Open_Graph_meta: true
readmode: readmode:
enable: true enable: true
#全局字體
font: font:
enable: false enable: false
font-family: Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB,"Microsoft JhengHei", "MicrMicrosoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif font-family: Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB,"Microsoft JhengHei", "MicrMicrosoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif
code-font: consolas, Menlo, "PingFang SC", "Microsoft JhengHei","Microsoft YaHei", monospace, Helvetica Neue For Number code-font: consolas, Menlo, "PingFang SC", "Microsoft JhengHei","Microsoft YaHei", monospace, Helvetica Neue For Number
#網站名字字體
#左上角網站名字 主頁居中網站名字
blog_title_font:
#字體鏈接
font_link: https://fonts.googleapis.com/css?family=Titillium+Web
font-family: Titillium Web, PingFang SC, Hiragino Sans GB, "Microsoft JhengHei", "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif
#水平分隔綫 #水平分隔綫
hr: hr:
@@ -391,13 +393,13 @@ aside:
translate: translate:
enable: true enable: true
# 默認按鈕顯示文字 # 默認按鈕顯示文字
default: default:
#网站默认语言1: 繁體中文, 2: 简体中文 #网站默认语言1: 繁體中文, 2: 简体中文
defaultEncoding: 1 defaultEncoding: 2
#延迟时间,若不在前, 要设定延迟翻译时间, 如100表示100ms,默认为0 #延迟时间,若不在前, 要设定延迟翻译时间, 如100表示100ms,默认为0
translateDelay: 0 translateDelay: 0
#博客网址 #博客网址
cookieDomain: "https://jerryc.me/" cookieDomain: "https://xxx/"
#當文字是簡體時,按鈕顯示的文字 #當文字是簡體時,按鈕顯示的文字
msgToTraditionalChinese: "繁" msgToTraditionalChinese: "繁"
#當文字是繁體時,按鈕顯示的文字 #當文字是繁體時,按鈕顯示的文字
@@ -411,3 +413,8 @@ fireworks:
#百度推送 #百度推送
baidu_push: baidu_push:
enable: false enable: false
#https://instant.page/
#prefetch預加載
instantpage:
enable: true

1263
doc_CN.md

File diff suppressed because it is too large Load Diff

1263
doc_TW.md

File diff suppressed because it is too large Load Diff

View File

@@ -19,6 +19,7 @@ page:
sticky: Sticky sticky: Sticky
no_title: No title no_title: No title
archives: Archives
read_more: Read more read_more: Read more
post: post:
@@ -50,7 +51,6 @@ pagination:
next: Next Post next: Next Post
comment: Comment comment: Comment
relatedPosts_headline: Recommend
aside: aside:
articles: Articles articles: Articles

View File

@@ -19,6 +19,7 @@ page:
sticky: Sticky sticky: Sticky
no_title: No title no_title: No title
archives: Archives
read_more: Read more read_more: Read more
post: post:
@@ -50,7 +51,6 @@ pagination:
next: Next Post next: Next Post
comment: Comment comment: Comment
relatedPosts_headline: Recommend
aside: aside:
articles: Articles articles: Articles

View File

@@ -19,6 +19,7 @@ page:
sticky: 置顶 sticky: 置顶
no_title: 无题 no_title: 无题
archives: 时间轴
read_more: 阅读更多 read_more: 阅读更多
post: post:
@@ -51,7 +52,6 @@ pagination:
next: 下一篇 next: 下一篇
comment: 评论 comment: 评论
relatedPosts_headline: 相关推荐
aside: aside:
articles: 文章 articles: 文章

View File

@@ -21,14 +21,11 @@ sticky: 置頂
no_title: 無題 no_title: 無題
archives: 時間軸 archives: 時間軸
read_more: 閲讀更多 read_more: 閲讀更多
created_date: 發表於
update_date: 更新於
post: post:
created: 發表於 created: 發表於
updated: 更新於 updated: 更新於
wordcount: 字數總計 wordcount: 字數總計
commentcount: 評論數
min2read: "閲讀時長: %s 分鐘" min2read: "閲讀時長: %s 分鐘"
page_pv: 閲讀量 page_pv: 閲讀量
copyright: copyright:
@@ -56,7 +53,6 @@ pagination:
next: 下一篇 next: 下一篇
comment: 評論 comment: 評論
relatedPosts_headline: 相關推薦
aside: aside:
articles: 文章 articles: 文章

View File

@@ -6,7 +6,7 @@
each item in i.link_list each item in i.link_list
li.md-links-item li.md-links-item
a(href=item.link title=item.name target="_blank") a(href=item.link title=item.name target="_blank")
img.lozad(data-src=item.avatar alt=item.name onerror=`onerror=null;src='${theme.lodding_bg.flink}'` height="72px") img.lozad(data-src=item.avatar onerror=`onerror=null;src='${theme.lodding_bg.flink}'` height="72px")
div(class="md-links-title")= item.name div(class="md-links-title")= item.name
<br/> <br/>
div(class="md-links-des")=item.descr div(class="md-links-des")=item.descr

View File

@@ -57,7 +57,7 @@ if is_home()
e[i].style.height = n + "px"; e[i].style.height = n + "px";
$("#site-info").each(function () { $("#site-info").each(function () {
var x = $(this).height(); var x = $(this).height();
$(this).css({"padding-top": (n-x)/2 , "padding-bottom":(n-x)/2 }) $(this).css("top", (n-x)/2)
}) })
} }
@@ -88,4 +88,5 @@ if is_home()
if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv if theme.busuanzi.site_uv || theme.busuanzi.site_pv || theme.busuanzi.page_pv
script(async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js") script(async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js")
script(src="https://cdn.jsdelivr.net/npm/instant.page@1.2.2/instantpage.min.js" type="module") if theme.instantpage.enable
script(src="https://cdn.jsdelivr.net/npm/instant.page@1.2.2/instantpage.min.js" type="module")

View File

@@ -3,7 +3,6 @@ if theme.disqus.enable
#post-comment #post-comment
.comment_headling .comment_headling
i.fa.fa-comments.fa-fw(aria-hidden="true") i.fa.fa-comments.fa-fw(aria-hidden="true")
=" "
span= _p('comment') span= _p('comment')
include ./disqus.pug include ./disqus.pug
else if theme.laibili && theme.laibili.enable else if theme.laibili && theme.laibili.enable
@@ -11,7 +10,6 @@ else if theme.laibili && theme.laibili.enable
#post-comment #post-comment
.comment_headling .comment_headling
i.fa.fa-comments.fa-fw(aria-hidden="true") i.fa.fa-comments.fa-fw(aria-hidden="true")
=" "
span= _p('comment') span= _p('comment')
include ./laibili.pug include ./laibili.pug
else if theme.gitment && theme.gitment.enable else if theme.gitment && theme.gitment.enable
@@ -19,7 +17,6 @@ else if theme.gitment && theme.gitment.enable
#post-comment #post-comment
.comment_headling .comment_headling
i.fa.fa-comments.fa-fw(aria-hidden="true") i.fa.fa-comments.fa-fw(aria-hidden="true")
=" "
span= _p('comment') span= _p('comment')
include ./gitment.pug include ./gitment.pug
else if theme.gitalk && theme.gitalk.enable else if theme.gitalk && theme.gitalk.enable
@@ -27,7 +24,6 @@ else if theme.gitalk && theme.gitalk.enable
#post-comment #post-comment
.comment_headling .comment_headling
i.fa.fa-comments.fa-fw(aria-hidden="true") i.fa.fa-comments.fa-fw(aria-hidden="true")
=" "
span= _p('comment') span= _p('comment')
include ./gitalk.pug include ./gitalk.pug
else if theme.valine && theme.valine.enable else if theme.valine && theme.valine.enable
@@ -35,6 +31,5 @@ else if theme.valine && theme.valine.enable
#post-comment #post-comment
.comment_headling .comment_headling
i.fa.fa-comments.fa-fw(aria-hidden="true") i.fa.fa-comments.fa-fw(aria-hidden="true")
=" "
span= _p('comment') span= _p('comment')
include ./valine.pug include ./valine.pug

View File

@@ -10,50 +10,7 @@ if theme.valine && theme.valine.enable
}); });
guest_info = guest_info.length == 0 ? GUEST_INFO :guest_info; guest_info = guest_info.length == 0 ? GUEST_INFO :guest_info;
var localeName = 'tw', window.valine = new Valine({
localeMode = {
head: {
nick: '暱稱(必填)',
mail: '郵箱(必填,可以收到回復提醒)',
link: '網址(選填)',
},
tips: {
comments: '評論',
sofa: '快來做第一個評論的人吧~',
busy: '還在提交中,請稍候...',
again: '這麼簡單也能錯,也是沒誰了.'
},
ctrl: {
reply: '回覆',
ok: '好的',
sure: '確認',
cancel: '取消',
confirm: '確認',
continue: '繼續',
more: '查看更多...',
try: '再試試?',
preview: '預覽',
emoji: '表情'
},
error: {
99: '初始化失敗請檢查init中的`el`元素.',
100: '初始化失敗請檢查你的AppId和AppKey.',
401: '未經授權的操作請檢查你的AppId和AppKey.',
403: '訪問被api域名白名單拒絕請檢查你的安全域名設置.',
},
timeago: {
seconds: '秒前',
minutes: '分鐘前',
hours: '小時前',
days: '天前',
now: '剛剛'
}
};
window.valine = new Valine();
valine.installLocale(localeName,localeMode);
valine.init({
el:'#vcomment', el:'#vcomment',
notify:notify, notify:notify,
verify:verify, verify:verify,

View File

@@ -110,6 +110,9 @@ if theme.qihu_site_verification
- var preload_img = page.top_img || theme.top_img || config.top_img - var preload_img = page.top_img || theme.top_img || config.top_img
if (is_archive() && preload_archive_img) if (is_archive() && preload_archive_img)
link(rel="preload" href=url_for(preload_img) as="image" ) link(rel="preload" href=url_for(preload_archive_img) as="image" )
else if (!is_post() && preload_img) else if (!is_post() && preload_img)
link(rel="preload" href=url_for(preload_img) as="image" ) link(rel="preload" href=url_for(preload_img) as="image" )
if theme.blog_title_font.font_link
link(rel='stylesheet', href=url_for(theme.blog_title_font.font_link))

View File

@@ -7,12 +7,15 @@
- if (is_year()) pageTitle += ': ' + page.year - if (is_year()) pageTitle += ': ' + page.year
- var pageTitle_saved //- 暫時存儲pageTitle - var pageTitle_saved //- 暫時存儲pageTitle
- var pageTitle_no_include_blog_name //- 存儲pageTitle 不帶 " | "meta用 - var pageTitle_no_include_blog_name //- 存儲pageTitle 不帶 " | "meta用
- var home_subtitle_true //有subtitle
//- home時顯示config.title (JerryC),其他顯示 pageTitle。meta用 //- home時顯示config.title (JerryC),其他顯示 pageTitle。meta用
- is_home() ? pageTitle_no_include_blog_name = config.title : pageTitle_no_include_blog_name = pageTitle - is_home() ? pageTitle_no_include_blog_name = config.title : pageTitle_no_include_blog_name = pageTitle
//- 暫時存儲pageTitle //- 暫時存儲pageTitle
- pageTitle ? pageTitle_saved = pageTitle + ' | ' + config.title : pageTitle_saved = config.title - pageTitle ? pageTitle_saved = pageTitle + ' | ' + config.title : pageTitle_saved = config.title
//- 是否有 config.subtitle 是各自显示
- config.subtitle ? home_subtitle_true = ' - ' + config.subtitle : home_subtitle_true = ''
//- home時pageTitle顯示 JerryC - subtitle其他顯示 pageTitle | JerryC //- home時pageTitle顯示 JerryC - subtitle其他顯示 pageTitle | JerryC
- is_home() ? pageTitle = config.title + ' - ' + config.subtitle : pageTitle = pageTitle_saved - is_home() ? pageTitle = config.title + home_subtitle_true : pageTitle = pageTitle_saved
- var pageDescription = page.description || page.title || config.description || '' - var pageDescription = page.description || page.title || config.description || ''
- var pageKeywords = (config.keywords || []).join(',') - var pageKeywords = (config.keywords || []).join(',')

View File

@@ -14,21 +14,19 @@ else
if(page.prev) if(page.prev)
if(page.next) if(page.next)
.prev-post.pull-left .prev-post.pull-left
- var pagination_cover = page.prev.cover || theme.default_cover - var pagination_cover = page.prev.cover || random_cover()
a(href=url_for(page.prev.path)) a(href=url_for(page.prev.path))
img.prev_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` ) img.prev_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` )
.label=_p('pagination.prev') .label=_p('pagination.prev')
.prev_info .prev_info
//- i.fa.fa-chevron-left
span=page.prev.title span=page.prev.title
else else
.prev-post.pull-full .prev-post.pull-full
- var pagination_cover = page.prev.cover || theme.default_cover - var pagination_cover = page.prev.cover || random_cover()
a(href=url_for(page.prev.path)) a(href=url_for(page.prev.path))
img.prev_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`) img.prev_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
.label=_p('pagination.prev') .label=_p('pagination.prev')
.prev_info .prev_info
//- i.fa.fa-chevron-left
span=page.prev.title span=page.prev.title
@@ -36,21 +34,18 @@ else
if(page.next) if(page.next)
if(page.prev) if(page.prev)
.next-post.pull-right .next-post.pull-right
- var pagination_cover = page.next.cover || theme.default_cover - var pagination_cover = page.next.cover || random_cover()
a(href=url_for(page.next.path)) a(href=url_for(page.next.path))
img.next_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`) img.next_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
.label=_p('pagination.next') .label=_p('pagination.next')
.next_info .next_info
span=page.next.title span=page.next.title
//- i.fa.fa-chevron-right
else else
.next-post.pull-full .next-post.pull-full
- var pagination_cover = page.next.cover || theme.default_cover - var pagination_cover = page.next.cover || random_cover()
a(href=url_for(page.next.path)) a(href=url_for(page.next.path))
img.next_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`) img.next_cover.lozad(data-src=`${pagination_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
.label=_p('pagination.next') .label=_p('pagination.next')
.next_info .next_info
span=page.next.title span=page.next.title
//- i.fa.fa-chevron-right

View File

@@ -3,25 +3,25 @@ each article , index in page.posts.data
- var link = article.link || article.path - var link = article.link || article.path
if index%2 == 0 if index%2 == 0
.post_cover.is_left .post_cover.is_left
a(href=url_for(link)) a(href=url_for(link) title=article.title || _p('no_title'))
- var post_cover = article.cover - var post_cover = article.cover
- var default_post_cover = theme.default_cover - var default_post_cover = random_cover()
if (post_cover) if (post_cover)
img.post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title')) img.post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
else else
img.post_bg.lozad(data-src=`${default_post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title')) img.post_bg.lozad(data-src=`${default_post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
else else
.post_cover.is_right .post_cover.is_right
a(href=url_for(link)) a(href=url_for(link) title=article.title || _p('no_title'))
- var post_cover = article.cover - var post_cover = article.cover
- var default_post_cover = theme.default_cover - var default_post_cover = random_cover()
if (post_cover) if (post_cover)
img.post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title')) img.post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
else else
img.post_bg.lozad(data-src=`${default_post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title')) img.post_bg.lozad(data-src=`${default_post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'`)
.recent-post-info .recent-post-info
a.article-title(href=url_for(link) title=article.title || _p('no_title'))= article.title || _p('no_title') a.article-title(href=url_for(link) title= article.title || _p('no_title'))= article.title || _p('no_title')
if (article.top) if (article.top)
span.article-meta span.article-meta
i.fa.fa-thumb-tack.article-meta__icon.sticky i.fa.fa-thumb-tack.article-meta__icon.sticky

View File

@@ -1,6 +0,0 @@
.relatedPosts
.relatedPosts_headline
i.fa.fa-thumbs-up(aria-hidden="true")
span=' ' + _p('relatedPosts_headline')
.relatedPosts_list!= related_posts(page,site.posts)
.clear_both

View File

@@ -1,4 +1,5 @@
.card_widget.card-categories if site.categories.length
.card_widget.card-categories
.card-content .card-content
.item_headline .item_headline
i.fa.fa-folder-open(aria-hidden="true") i.fa.fa-folder-open(aria-hidden="true")

View File

@@ -9,7 +9,7 @@
- var link = article.link || article.path - var link = article.link || article.path
a(href=url_for(link)) a(href=url_for(link))
- var post_cover = article.cover - var post_cover = article.cover
- var default_post_cover = theme.default_cover - var default_post_cover = random_cover()
.aside_post_cover .aside_post_cover
if (post_cover) if (post_cover)
img.aside_post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title')) img.aside_post_bg.lozad(data-src=`${post_cover}` onerror=`onerror=null;src='${theme.lodding_bg.post_page}'` title=article.title || _p('no_title'))

View File

@@ -1,4 +1,5 @@
.card_widget.card-tags if site.tags.length
.card_widget.card-tags
.card-content .card-content
.item_headline .item_headline
i.fa.fa-tags(aria-hidden="true") i.fa.fa-tags(aria-hidden="true")

View File

@@ -6,7 +6,7 @@ block content
.tag-cloud__title= _p('page.tag') .tag-cloud__title= _p('page.tag')
| - | -
span.tag-cloud__amount= site.tags.length span.tag-cloud__amount= site.tags.length
.tag-cloud-tags!= tagcloud({min_font: 20, max_font: 43, amount: 200, color: true, start_color: '#A4D8FA', end_color: '#0790E8'}) .tag-cloud-tags!= tags(site.tags)
if page.comments !== false if page.comments !== false
include includes/comments/index.pug include includes/comments/index.pug
#aside_content.aside_content #aside_content.aside_content

View File

@@ -71,6 +71,6 @@ block content
include includes/pagination.pug include includes/pagination.pug
if theme.related_post && theme.related_post.enable if theme.related_post && theme.related_post.enable
include includes/related-posts.pug != related_posts(page,site.posts)
if page.comments !== false if page.comments !== false
include includes/comments/index.pug include includes/comments/index.pug

13
scripts/random_cover.js Normal file
View File

@@ -0,0 +1,13 @@
hexo.extend.helper.register('random_cover', function () {
var cover;
var num;
if (!Array.isArray(hexo.theme.config.default_cover)) {
cover = hexo.theme.config.default_cover
return cover
} else {
num = Math.floor(Math.random() * (hexo.theme.config.default_cover.length));
cover = hexo.theme.config.default_cover[num];
return cover
}
})

View File

@@ -1,4 +1,4 @@
hexo.extend.helper.register('related_posts', function(currentPost, allPosts){ hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
var relatedPosts = []; var relatedPosts = [];
currentPost.tags.forEach(function (tag) { currentPost.tags.forEach(function (tag) {
allPosts.forEach(function (post) { allPosts.forEach(function (post) {
@@ -12,7 +12,7 @@ hexo.extend.helper.register('related_posts', function(currentPost, allPosts){
var index = findItem(relatedPosts, 'path', post.path); var index = findItem(relatedPosts, 'path', post.path);
if (index != -1) { if (index != -1) {
relatedPosts[index].weight += 1; relatedPosts[index].weight += 1;
} else{ } else {
if (currentPost.path != post.path) { if (currentPost.path != post.path) {
relatedPosts.push(relatedPost); relatedPosts.push(relatedPost);
}; };
@@ -20,19 +20,40 @@ hexo.extend.helper.register('related_posts', function(currentPost, allPosts){
}; };
}); });
}); });
if (relatedPosts.length == 0) {return ''}; if (relatedPosts.length == 0) { return '' };
var result = ""; var result = "";
var limit_num = hexo.theme.config.related_post.limit || 6 var limit_num = hexo.theme.config.related_post.limit || 6
var lang = hexo.theme.config.rootConfig.language;
var headline_lang;
if (lang === 'zh-CN') {
headline_lang = '相关推荐';
} else if ( lang === 'zh-TW') {
headline_lang = '相關推薦';
} else {
headline_lang = 'Recommend';
}
relatedPosts = relatedPosts.sort(compare('weight')); relatedPosts = relatedPosts.sort(compare('weight'));
if (relatedPosts.length > 0) {
result += '<div class="relatedPosts">'
result += '<div class="relatedPosts_headline"><i class="fa fa-fw fa-thumbs-up" aria-hidden="true"></i><span>' + headline_lang + '</span></div>'
result += '<div class="relatedPosts_list">'
for (var i = 0; i < Math.min(relatedPosts.length, limit_num); i++) { for (var i = 0; i < Math.min(relatedPosts.length, limit_num); i++) {
var cover = relatedPosts[i].cover|| hexo.theme.config.default_cover|| data.butterfly.default_cover var cover = relatedPosts[i].cover || random_cover()
result += '<div class="relatedPosts_item"><a href="/' + relatedPosts[i].path + '" title="' + relatedPosts[i].title +'">';
result += '<div class="relatedPosts_item"><a href="' + hexo.theme.config.rootConfig.root + relatedPosts[i].path + '" title="' + relatedPosts[i].title + '">';
result += '<img class="relatedPosts_cover lozad" data-src="' + cover + '">'; result += '<img class="relatedPosts_cover lozad" data-src="' + cover + '">';
result += '<div class="relatedPosts_title">' + relatedPosts[i].title + '</div>'; result += '<div class="relatedPosts_title">' + relatedPosts[i].title + '</div>';
result += '</a></div>' result += '</a></div>'
}; // console.log(relatedPosts); };
result += '</div><div class="clear_both"></div></div>'
return result; return result;
}
}); });
hexo.extend.helper.register('echo', function(path){ hexo.extend.helper.register('echo', function(path){
return path; return path;
@@ -62,3 +83,15 @@ function compare (attr) {
} }
} }
function random_cover() {
var post_cover;
var num;
if (!Array.isArray(hexo.theme.config.default_cover)) {
post_cover = hexo.theme.config.default_cover
return post_cover
} else {
num = Math.floor(Math.random() * (hexo.theme.config.default_cover.length));
post_cover = hexo.theme.config.default_cover[num];
return post_cover
}
}

16
scripts/tags.js Normal file
View File

@@ -0,0 +1,16 @@
hexo.extend.helper.register('tags', function (site_tags) {
var result = "";
site_tags.sort('path').each(function (tags) {
var fontSize = Math.floor(Math.random() * 15 + 15) + "px"; //15 ~ 30
var color =
"rgb(" +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
")"; // 0,0,0 -> 200,200,200
result += '<a href="' + hexo.theme.config.rootConfig.root + tags.path + '" style="font-size:' + fontSize + ';color:' + color + '">' + tags.name + '</a>'
})
return result;
})

View File

@@ -206,7 +206,7 @@ table
#site-name, #site-name,
#aside_content .author-info__name, #aside_content .author-info__name,
#aside_content .author-info__description #aside_content .author-info__description
font-family: 'Titillium Web',Lato,PingFang SC, Hiragino Sans GB, "Microsoft JhengHei", "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif font-family: $site-name-font
@@ -351,3 +351,8 @@ table
position: fixed position: fixed
z-index: -1 z-index: -1
pointer-events: none pointer-events: none
//
img[src=""],img:not([src])
opacity: 0

View File

@@ -31,11 +31,9 @@
color: $white color: $white
#site-info #site-info
// position: absolute position: absolute
width: 100% width: 100%
// top: 43% top: 43%
padding-top: 43%
padding-bottom: 43%
#site-title, #site-title,
#site-sub-title #site-sub-title

View File

@@ -9,6 +9,7 @@ $theme-hr-color = #A4D8FA
$theme-read-mode-bg-color = #FAF9DE $theme-read-mode-bg-color = #FAF9DE
$font-family= Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif $font-family= Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif
$code-font = consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace, Helvetica Neue For Number $code-font = consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace, Helvetica Neue For Number
$site-name-font = "Titillium Web", Lato,PingFang SC, Hiragino Sans GB, "Microsoft JhengHei", "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif
//hr icon //hr icon
$hr-icon = '\f0c4' $hr-icon = '\f0c4'
$hr-icon-top = -10px $hr-icon-top = -10px
@@ -27,6 +28,10 @@ if hexo-config("font") && hexo-config("font.enable")
$font-family = convert(hexo-config("font.font-family")) || 'Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif' $font-family = convert(hexo-config("font.font-family")) || 'Lato, Helvetica Neue For Number, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif'
$code-font = convert(hexo-config("font.code-font")) || 'consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace, Helvetica Neue For Number' $code-font = convert(hexo-config("font.code-font")) || 'consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace, Helvetica Neue For Number'
if hexo-config("blog_title_font.font-family")
$site-name-font = convert(hexo-config("blog_title_font.font-family")) || '"Titillium Web",Lato,PingFang SC, Hiragino Sans GB, "Microsoft JhengHei", "Microsoft YaHei", Helvetica Neue, Helvetica, Arial, sans-serif'
if hexo-config("hr") && hexo-config("hr.enable") if hexo-config("hr") && hexo-config("hr.enable")
$hr-icon = hexo-config("hr.icon") || '\f0c4' $hr-icon = hexo-config("hr.icon") || '\f0c4'
$hr-icon-top = convert(hexo-config("hr.icon-top")) || -10px $hr-icon-top = convert(hexo-config("hr.icon-top")) || -10px
@@ -38,6 +43,7 @@ $font-color = #1F2D3D
$rem = 20px $rem = 20px
$font-family = $font-family $font-family = $font-family
$code-font = $code-font $code-font = $code-font
$site-name-font = $site-name-font
$text-line-height = 2 $text-line-height = 2
$sm = 768px $sm = 768px
$bg = 1024px $bg = 1024px

View File

@@ -94,37 +94,6 @@ $(function () {
}); });
//--------------------------------------------------------------------------------------------------------
// tags 隨機大小 顔色
var list = document.querySelectorAll(".tag-cloud .tag-cloud-tags a");
if ($(window).width() > 768) {
Array.prototype.forEach.call(list, (item, index) => {
item.style.fontSize = Math.floor(Math.random() * 20 + 15) + "px"; //15 ~ 35
item.style.color =
"rgb(" +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
")"; // 0,0,0 -> 200,200,200
});
} else {
Array.prototype.forEach.call(list, (item, index) => {
item.style.fontSize = Math.floor(Math.random() * 13 + 15) + "px"; //15 ~ 28
item.style.color =
"rgb(" +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
", " +
Math.floor(Math.random() * 201) +
")"; // 0,0,0 -> 200,200,200
});
}
//-------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------
// bookmark // bookmark
$.fancyConfirm = function (opts) { $.fancyConfirm = function (opts) {
@@ -242,10 +211,11 @@ $(function () {
} }
//--------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------
//fancybox //fancybox
var imgList = $(".recent-post-info img"); var imgList = $(".recent-post-info img").not('.no-fancybox');
if (imgList.length === 0) { if (imgList.length === 0) {
imgList = $("#post-content img"); imgList = $("#post-content img").not('.no-fancybox');
} }
for (var i = 0; i < imgList.length; i++) { for (var i = 0; i < imgList.length; i++) {
var $a = $( var $a = $(
'<a href="' + '<a href="' +
@@ -253,14 +223,13 @@ $(function () {
'" data-fancybox="group" data-caption="' + '" data-fancybox="group" data-caption="' +
imgList[i].alt + imgList[i].alt +
'" class="fancybox"></a>' '" class="fancybox"></a>'
); )
var alt = imgList[i].alt; var alt = imgList[i].alt
var $wrap = $(imgList[i]).wrap($a); var $wrap = $(imgList[i]).wrap($a)
if (alt) { if (alt) {
$wrap.after('<div class="img-alt">' + alt + "</div>"); $wrap.after('<div class="img-alt">' + alt + '</div>')
} }
} }
$().fancybox({ $().fancybox({
selector: "[data-fancybox]", selector: "[data-fancybox]",
loop: true, loop: true,
@@ -316,6 +285,7 @@ $(function () {
$(".toggle-menu *").css({ 'background-color': '#3b3a3a', 'text-shadow': 'none' }); $(".toggle-menu *").css({ 'background-color': '#3b3a3a', 'text-shadow': 'none' });
$('body').addClass("is_hidden"); $('body').addClass("is_hidden");
$('.menus').addClass("menu_open"); $('.menus').addClass("menu_open");
fixbg_menu();
} else { } else {
$(".toggle-menu").removeClass("close").addClass("open"); $(".toggle-menu").removeClass("close").addClass("open");
$("#page-header #site-name,#page-header .search").css({ 'color': '', 'text-shadow': '' }); $("#page-header #site-name,#page-header .search").css({ 'color': '', 'text-shadow': '' });
@@ -329,6 +299,7 @@ $(function () {
} }
}) })
function fixbg_menu() {
const fixScroll = (scrollEl) => { const fixScroll = (scrollEl) => {
let startY let startY
scrollEl.addEventListener('touchstart', function (event) { scrollEl.addEventListener('touchstart', function (event) {
@@ -364,6 +335,8 @@ $(function () {
} }
const scrollEl = document.querySelector(".menus"); const scrollEl = document.querySelector(".menus");
fixScroll(scrollEl) fixScroll(scrollEl)
}
$(window).on('resize', function (e) { $(window).on('resize', function (e) {
@@ -546,6 +519,18 @@ $(function () {
// Hide their respective list of subsections // Hide their respective list of subsections
.find('.toc-child').hide() .find('.toc-child').hide()
} }
if ($('.toc-link').hasClass('active')){
var active_position = $(".active").offset().top;
var sidebar_scrolltop = $("#sidebar").scrollTop();
if (active_position > (top + $(window).height() - 50)) {
$("#sidebar").scrollTop(sidebar_scrolltop + 100);
} else if (active_position < top + 50)
{
$("#sidebar").scrollTop(sidebar_scrolltop - 100);
}
}
} }
//代碼框雙擊全屏 //代碼框雙擊全屏