mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2025-09-15 12:58:48 +08:00
improvement: 首頁社交圖標左右邊距調整 feat: 文章版權增加圖標 improvement: 重構 main.js 代碼 improvement: 優化 pjax 下的性能 fix: 修復子目錄下,pjax 跳轉 404 錯誤 feat: getScript 增加 attribute 配置 improvement: 優化手機端 toc 打開和關閉特效 improvement: 文章進入特效改為 transform, 優化 stylus improvement: 目錄側邊欄出現滾動條時,元素不會被擠壓 feat: 文章左右對齊 improvement: 處理 waline 的 url 後面多 / 導致跨域的問題 fix: 修復夜間模式下,小屏幕的toc 滾動條顏色不明顯的 bug fix: 修復設置字體超過17px時,toc 裏面的邊框異常的 bug improvement: 優化語言文件部分用詞 improvement: disqus 和 disqusjs 的評論數獲取不到時,顯示為 0 improvement: disqusjs 的評論數改為 api 獲取 improvement: 代碼優化 improvement: 更新 plugins.yml
66 lines
1.5 KiB
JavaScript
66 lines
1.5 KiB
JavaScript
/**
|
|
* Butterfly
|
|
* galleryGroup and gallery
|
|
* {% galleryGroup [name] [descr] [url] [img] %}
|
|
*
|
|
* {% gallery [button],%}
|
|
* {% gallery url,[url],[button]%}
|
|
*/
|
|
|
|
'use strict'
|
|
|
|
const urlFor = require('hexo-util').url_for.bind(hexo)
|
|
|
|
const gallery = (args, content) => {
|
|
args = args.join(' ').split(',')
|
|
let button = false
|
|
let type = 'data'
|
|
let dataStr = ''
|
|
|
|
if (args[0] === 'url') {
|
|
[type, dataStr, button] = args // url,[link],[lazyload]
|
|
} else {
|
|
[button] = args // [lazyload]
|
|
const regex = /!\[(.*?)\]\(([^\s]*)\s*(?:["'](.*?)["']?)?\s*\)/g
|
|
let m
|
|
const arr = []
|
|
while ((m = regex.exec(content)) !== null) {
|
|
if (m.index === regex.lastIndex) {
|
|
regex.lastIndex++
|
|
}
|
|
arr.push({
|
|
url: m[2],
|
|
alt: m[1],
|
|
title: m[3]
|
|
})
|
|
}
|
|
|
|
dataStr = JSON.stringify(arr)
|
|
}
|
|
|
|
return `<div class="gallery-container" data-type="${type}" data-button="${button}">
|
|
<div class="gallery-data">${dataStr}</div>
|
|
<div class="gallery-items">
|
|
</div>
|
|
</div>`
|
|
}
|
|
|
|
const galleryGroup = args => {
|
|
const [name, descr, url, img] = args
|
|
const imgUrl = urlFor(img)
|
|
const urlLink = urlFor(url)
|
|
|
|
return `<figure class="gallery-group">
|
|
<img class="gallery-group-img no-lightbox" src='${imgUrl}' alt="Group Image Gallery">
|
|
<figcaption>
|
|
<div class="gallery-group-name">${name}</div>
|
|
<p>${descr}</p>
|
|
<a href='${urlLink}'></a>
|
|
</figcaption>
|
|
</figure>
|
|
`
|
|
}
|
|
|
|
hexo.extend.tag.register('gallery', gallery, { ends: true })
|
|
hexo.extend.tag.register('galleryGroup', galleryGroup)
|