mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-10-04 06:22:00 +08:00
feat: 可配置 typed.js 的參數 closed #1154
fix: 修復 typeJSFn 重複賦值的 bug fix: 修復固定狀態欄後,標題有陰影的 bug fix: 修復 gallery 標籤將圖片鏈接截斷導致404無法加載圖片的 bug closed #1160 fix: 修復開啟導航欄固定後,點擊部分滾動向上的按鈕,滾動的目標部分被導航欄遮擋的 bug closed #1158 fix: 修復固定導航欄後,toc 被遮擋的 closed #1159 fix: 切換簡繁時,會改變 html 的 lang 屬性
This commit is contained in:
1 parent
929a5608d3
commit
396fb102da
7 files changed
+108
-112
No files matched your search
+42
-23
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const translate = GLOBAL_CONFIG.translate
|
||||
const snackbarData = GLOBAL_CONFIG.Snackbar
|
||||
@@ -9,16 +8,22 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
let currentEncoding = defaultEncoding
|
||||
const targetEncodingCookie = 'translate-chn-cht'
|
||||
let targetEncoding =
|
||||
saveToLocal.get(targetEncodingCookie) === undefined
|
||||
? defaultEncoding
|
||||
: Number(saveToLocal.get('translate-chn-cht'))
|
||||
saveToLocal.get(targetEncodingCookie) === undefined
|
||||
? defaultEncoding
|
||||
: Number(saveToLocal.get('translate-chn-cht'))
|
||||
let translateButtonObject
|
||||
const isSnackbar = GLOBAL_CONFIG.Snackbar !== undefined
|
||||
|
||||
function setLang () {
|
||||
document.documentElement.lang = targetEncoding === 1 ? 'zh-TW' : 'zh-CN'
|
||||
}
|
||||
|
||||
function translateText (txt) {
|
||||
if (txt === '' || txt == null) return ''
|
||||
if (currentEncoding === 1 && targetEncoding === 2) return Simplized(txt)
|
||||
else if (currentEncoding === 2 && targetEncoding === 1) { return Traditionalized(txt) } else return txt
|
||||
else if (currentEncoding === 2 && targetEncoding === 1) {
|
||||
return Traditionalized(txt)
|
||||
} else return txt
|
||||
}
|
||||
function translateBody (fobj) {
|
||||
let objs
|
||||
@@ -28,17 +33,23 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
const obj = objs.item(i)
|
||||
if (
|
||||
'||BR|HR|'.indexOf('|' + obj.tagName + '|') > 0 ||
|
||||
obj === translateButtonObject
|
||||
) { continue }
|
||||
if (obj.title !== '' && obj.title != null) { obj.title = translateText(obj.title) }
|
||||
obj === translateButtonObject
|
||||
) {
|
||||
continue
|
||||
}
|
||||
if (obj.title !== '' && obj.title != null) {
|
||||
obj.title = translateText(obj.title)
|
||||
}
|
||||
if (obj.alt !== '' && obj.alt != null) obj.alt = translateText(obj.alt)
|
||||
if (obj.placeholder !== '' && obj.placeholder != null) obj.placeholder = translateText(obj.placeholder)
|
||||
if (obj.placeholder !== '' && obj.placeholder != null) { obj.placeholder = translateText(obj.placeholder) }
|
||||
if (
|
||||
obj.tagName === 'INPUT' &&
|
||||
obj.value !== '' &&
|
||||
obj.type !== 'text' &&
|
||||
obj.type !== 'hidden'
|
||||
) { obj.value = translateText(obj.value) }
|
||||
obj.value !== '' &&
|
||||
obj.type !== 'text' &&
|
||||
obj.type !== 'hidden'
|
||||
) {
|
||||
obj.value = translateText(obj.value)
|
||||
}
|
||||
if (obj.nodeType === 3) obj.data = translateText(obj.data)
|
||||
else translateBody(obj)
|
||||
}
|
||||
@@ -48,18 +59,18 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
currentEncoding = 1
|
||||
targetEncoding = 2
|
||||
translateButtonObject.innerHTML = msgToTraditionalChinese
|
||||
saveToLocal.set(targetEncodingCookie, targetEncoding, 2)
|
||||
translateBody()
|
||||
if (isSnackbar) btf.snackbarShow(snackbarData.cht_to_chs)
|
||||
isSnackbar && btf.snackbarShow(snackbarData.cht_to_chs)
|
||||
} else if (targetEncoding === 2) {
|
||||
currentEncoding = 2
|
||||
targetEncoding = 1
|
||||
translateButtonObject.innerHTML = msgToSimplifiedChinese
|
||||
saveToLocal.set(targetEncodingCookie, targetEncoding, 2)
|
||||
translateBody()
|
||||
if (isSnackbar) btf.snackbarShow(snackbarData.chs_to_cht)
|
||||
isSnackbar && btf.snackbarShow(snackbarData.chs_to_cht)
|
||||
}
|
||||
saveToLocal.set(targetEncodingCookie, targetEncoding, 2)
|
||||
setLang()
|
||||
translateBody()
|
||||
}
|
||||
|
||||
function JTPYStr () {
|
||||
return '万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵亸亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫体余佣佥侠侣侥侦侧侨侩侪侬俣俦俨俩俪俭债倾偬偻偾偿傥傧储傩儿兑兖党兰关兴兹养兽冁内冈册写军农冢冯冲决况冻净凄凉凌减凑凛几凤凫凭凯击凼凿刍划刘则刚创删别刬刭刽刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勐勚匀匦匮区医华协单卖卢卤卧卫却卺厂厅历厉压厌厍厕厢厣厦厨厩厮县参叆叇双发变叙叠叶号叹叽吁后吓吕吗吣吨听启吴呒呓呕呖呗员呙呛呜咏咔咙咛咝咤咴咸哌响哑哒哓哔哕哗哙哜哝哟唛唝唠唡唢唣唤唿啧啬啭啮啰啴啸喷喽喾嗫呵嗳嘘嘤嘱噜噼嚣嚯团园囱围囵国图圆圣圹场坂坏块坚坛坜坝坞坟坠垄垅垆垒垦垧垩垫垭垯垱垲垴埘埙埚埝埯堑堕塆墙壮声壳壶壸处备复够头夸夹夺奁奂奋奖奥妆妇妈妩妪妫姗姜娄娅娆娇娈娱娲娴婳婴婵婶媪嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尧尴尸尽层屃屉届属屡屦屿岁岂岖岗岘岙岚岛岭岳岽岿峃峄峡峣峤峥峦崂崃崄崭嵘嵚嵛嵝嵴巅巩巯币帅师帏帐帘帜带帧帮帱帻帼幂幞干并广庄庆庐庑库应庙庞废庼廪开异弃张弥弪弯弹强归当录彟彦彻径徕御忆忏忧忾怀态怂怃怄怅怆怜总怼怿恋恳恶恸恹恺恻恼恽悦悫悬悭悯惊惧惨惩惫惬惭惮惯愍愠愤愦愿慑慭憷懑懒懔戆戋戏戗战戬户扎扑扦执扩扪扫扬扰抚抛抟抠抡抢护报担拟拢拣拥拦拧拨择挂挚挛挜挝挞挟挠挡挢挣挤挥挦捞损捡换捣据捻掳掴掷掸掺掼揸揽揿搀搁搂搅携摄摅摆摇摈摊撄撑撵撷撸撺擞攒敌敛数斋斓斗斩断无旧时旷旸昙昼昽显晋晒晓晔晕晖暂暧札术朴机杀杂权条来杨杩杰极构枞枢枣枥枧枨枪枫枭柜柠柽栀栅标栈栉栊栋栌栎栏树栖样栾桊桠桡桢档桤桥桦桧桨桩梦梼梾检棂椁椟椠椤椭楼榄榇榈榉槚槛槟槠横樯樱橥橱橹橼檐檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵氇气氢氩氲汇汉污汤汹沓沟没沣沤沥沦沧沨沩沪沵泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈浉浊测浍济浏浐浑浒浓浔浕涂涌涛涝涞涟涠涡涢涣涤润涧涨涩淀渊渌渍渎渐渑渔渖渗温游湾湿溃溅溆溇滗滚滞滟滠满滢滤滥滦滨滩滪漤潆潇潋潍潜潴澜濑濒灏灭灯灵灾灿炀炉炖炜炝点炼炽烁烂烃烛烟烦烧烨烩烫烬热焕焖焘煅煳熘爱爷牍牦牵牺犊犟状犷犸犹狈狍狝狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑玙玚玛玮环现玱玺珉珏珐珑珰珲琎琏琐琼瑶瑷璇璎瓒瓮瓯电画畅畲畴疖疗疟疠疡疬疮疯疱疴痈痉痒痖痨痪痫痴瘅瘆瘗瘘瘪瘫瘾瘿癞癣癫癯皑皱皲盏盐监盖盗盘眍眦眬着睁睐睑瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础硁硅硕硖硗硙硚确硷碍碛碜碱碹磙礼祎祢祯祷祸禀禄禅离秃秆种积称秽秾稆税稣稳穑穷窃窍窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筑筚筛筜筝筹签简箓箦箧箨箩箪箫篑篓篮篱簖籁籴类籼粜粝粤粪粮糁糇紧絷纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡翘翙翚耢耧耸耻聂聋职聍联聩聪肃肠肤肷肾肿胀胁胆胜胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腊腌腘腭腻腼腽腾膑臜舆舣舰舱舻艰艳艹艺节芈芗芜芦苁苇苈苋苌苍苎苏苘苹茎茏茑茔茕茧荆荐荙荚荛荜荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莜莱莲莳莴莶获莸莹莺莼萚萝萤营萦萧萨葱蒇蒉蒋蒌蓝蓟蓠蓣蓥蓦蔷蔹蔺蔼蕲蕴薮藁藓虏虑虚虫虬虮虽虾虿蚀蚁蚂蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蜡蝇蝈蝉蝎蝼蝾螀螨蟏衅衔补衬衮袄袅袆袜袭袯装裆裈裢裣裤裥褛褴襁襕见观觃规觅视觇览觉觊觋觌觍觎觏觐觑觞触觯詟誉誊讠计订讣认讥讦讧讨让讪讫训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷豮贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖Line truncated
|
||||
}
|
||||
@@ -71,7 +82,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
const ss = JTPYStr()
|
||||
const tt = FTPYStr()
|
||||
for (let i = 0; i < cc.length; i++) {
|
||||
if (cc.charCodeAt(i) > 10000 && ss.indexOf(cc.charAt(i)) !== -1) { str += tt.charAt(ss.indexOf(cc.charAt(i))) } else str += cc.charAt(i)
|
||||
if (cc.charCodeAt(i) > 10000 && ss.indexOf(cc.charAt(i)) !== -1) {
|
||||
str += tt.charAt(ss.indexOf(cc.charAt(i)))
|
||||
} else str += cc.charAt(i)
|
||||
}
|
||||
return str
|
||||
}
|
||||
@@ -80,17 +93,23 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
const ss = JTPYStr()
|
||||
const tt = FTPYStr()
|
||||
for (let i = 0; i < cc.length; i++) {
|
||||
if (cc.charCodeAt(i) > 10000 && tt.indexOf(cc.charAt(i)) !== -1) { str += ss.charAt(tt.indexOf(cc.charAt(i))) } else str += cc.charAt(i)
|
||||
if (cc.charCodeAt(i) > 10000 && tt.indexOf(cc.charAt(i)) !== -1) {
|
||||
str += ss.charAt(tt.indexOf(cc.charAt(i)))
|
||||
} else str += cc.charAt(i)
|
||||
}
|
||||
return str
|
||||
}
|
||||
|
||||
function translateInitialization () {
|
||||
translateButtonObject = document.getElementById('translateLink')
|
||||
if (translateButtonObject) {
|
||||
if (currentEncoding !== targetEncoding) {
|
||||
translateButtonObject.innerHTML =
|
||||
targetEncoding === 1
|
||||
? msgToSimplifiedChinese
|
||||
: msgToTraditionalChinese
|
||||
setLang()
|
||||
setTimeout(translateBody, translateDelay)
|
||||
if (targetEncoding === 1) translateButtonObject.innerHTML = msgToSimplifiedChinese
|
||||
else translateButtonObject.innerHTML = msgToTraditionalChinese
|
||||
}
|
||||
translateButtonObject.addEventListener('click', translatePage, false)
|
||||
}
|
||||
|
||||
+2
-1
@@ -122,7 +122,8 @@ const btf = {
|
||||
|
||||
scrollToDest: (pos, time = 500) => {
|
||||
const currentPos = window.pageYOffset
|
||||
if (currentPos > pos) pos = pos - 70
|
||||
const isNavFixed = document.getElementById('page-header').classList.contains('fixed')
|
||||
if (currentPos > pos || isNavFixed) pos = pos - 70
|
||||
|
||||
if ('scrollBehavior' in document.documentElement.style) {
|
||||
window.scrollTo({
|
||||
|
||||
Reference in new issue
Block a user