217 lines
6.6 KiB
JavaScript
Raw Normal View History

2024-07-18 22:44:18 +08:00
window.$docsify = {
2024-07-19 00:56:56 +08:00
// homepage: '/redirect.html',
2024-07-18 22:44:18 +08:00
requestHeaders: {
'cache-control': 'max-age=0',
},
2024-07-19 12:52:46 +08:00
notFoundPage: 'redirect.html',
2024-07-18 22:44:18 +08:00
pagination: {
previousText: '上一节',
nextText: '下一节',
crossChapter: true,
crossChapterText: true,
},
2024-08-07 03:38:05 +08:00
repo: 'https://github.com/HIllya51/LunaTranslator',
2024-07-18 22:44:18 +08:00
alias: {
'/zh/_sidebar.md': '/zh/sidebar.md',
'/ru/_sidebar.md': '/ru/sidebar.md',
'/en/_sidebar.md': '/en/sidebar.md',
'/_navbar.md': '/navbar.md',
'/_coverpage.md': '/coverpage.md',
},
2024-07-18 22:54:27 +08:00
// loadNavbar: true,
2024-07-18 22:44:18 +08:00
loadSidebar: true,
auto2top: true,
search: {
noData: {
'/zh/': '没有结果!',
'/': 'No results!',
},
paths: 'auto',
placeholder: {
'/zh/': '搜索',
'/': 'Search',
}
},
2024-07-19 12:52:46 +08:00
executeScript: true,
2024-07-19 13:58:43 +08:00
plugins: [
function (hook, vm) {
hook.doneEach(() => {
var sidebar = document.getElementsByClassName("sidebar")[0];
var resizeBar = document.createElement('div');
resizeBar.classList.add('sidebarresizer')
sidebar.appendChild(resizeBar);
var startX, startWidth;
resizeBar.addEventListener('mousedown', function (e) {
startX = e.clientX;
startWidth = sidebar.offsetWidth;
e.preventDefault();
});
document.addEventListener('mousemove', function (e) {
if (startX) {
var newWidth = startWidth + (e.clientX - startX);
2024-07-19 14:11:16 +08:00
document.documentElement.style.setProperty('--sidebar-width', Math.min(1000, Math.max(100, newWidth)) + 'px');
2024-07-19 13:58:43 +08:00
}
});
document.addEventListener('mouseup', function () {
startX = null;
});
})
},
2024-07-26 00:21:19 +08:00
function (hook, vm) {
hook.doneEach(() => {
if (document.getElementById('manytables') == null) return
import('/manyapis.js')
})
},
2024-08-08 02:09:13 +08:00
function (hook, vm) {
hook.doneEach(() => {
if (!window.location.hostname.startsWith('docs')) return
let replacetarget = window.location.protocol + '//image.' + window.location.hostname.substring(5);
var images = document.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
images[i].src = images[i].src.replace('https://image.lunatranslator.org', replacetarget)
}
})
},
2024-09-18 12:30:18 +08:00
function (hook, vm) {
hook.doneEach(() => {
var elements = document.querySelectorAll('code');
elements.forEach(function (element) {
if (!element.innerHTML.startsWith('https://')) return
element.addEventListener('click', function () {
copyToClipboard(element.innerText)
});
});
})
},
2024-07-19 13:58:43 +08:00
]
2024-07-18 22:44:18 +08:00
}
let dropdowns = document.getElementsByClassName('dropdown')
for (let i = 0; i < dropdowns.length; i++) {
let dropdown = dropdowns[i]
dropdown.addEventListener('mouseover', function () {
2024-07-19 00:08:52 +08:00
this.getElementsByClassName('goodlinknormal')[0].classList.add('goodlinkhover')
2024-07-18 22:44:18 +08:00
let dropdownContent = this.querySelector('.dropdown-content');
dropdownContent.style.display = 'block';
});
dropdown.addEventListener('mouseout', function () {
2024-07-19 00:08:52 +08:00
this.getElementsByClassName('goodlinknormal')[0].classList.remove('goodlinkhover')
2024-07-18 22:44:18 +08:00
let dropdownContent = this.querySelector('.dropdown-content');
dropdownContent.style.display = 'none';
});
}
var currentlang = "";
const navitexts = {
zh: {
homepage: '官方网站',
downloadlink: '软件下载',
vediotutorial: '视频教学',
contactme: '交流群'
},
ru: {
homepage: 'HomePage',
downloadlink: 'Download',
vediotutorial: 'Vedio Tutorial',
contactme: 'Chat Groups'
},
en: {
homepage: 'HomePage',
downloadlink: 'Download',
vediotutorial: 'Vedio Tutorial',
contactme: 'Chat Groups'
}
}
2024-07-19 00:56:56 +08:00
function getcurrlang(url) {
for (let key in navitexts) {
if (url.includes(`/${key}/`)) {
return key
}
}
return ''
}
2024-07-19 12:52:46 +08:00
function switchlang(lang) {
window.location.href = window.location.href.replace('/' + currentlang + '/', '/' + lang + '/')
}
2024-07-18 22:44:18 +08:00
window.onpopstate = function (event) {
let url = window.location.href;
2024-08-03 12:32:41 +08:00
if (url.endsWith('.redirect')) {
window.location.href = url.substring(0, url.length - 9);
return
}
2024-07-19 00:56:56 +08:00
if (url.endsWith('/#/')) {
2024-07-19 12:52:46 +08:00
let lang = window.localStorage.currentlang ? window.localStorage.currentlang : 'zh'
window.location.href += lang + '/'
2024-07-19 00:56:56 +08:00
return
2024-07-18 22:44:18 +08:00
}
2024-07-19 00:56:56 +08:00
for (let key in navitexts) {
if (url.endsWith(`/${key}/`)) {
window.location.href += 'README'
return
}
2024-07-18 22:44:18 +08:00
}
2024-07-19 00:56:56 +08:00
let thislang = getcurrlang(url)
2024-07-19 12:52:46 +08:00
window.localStorage.currentlang = thislang
2024-07-18 22:44:18 +08:00
if (thislang != currentlang) {
currentlang = thislang
for (let key in navitexts[currentlang]) {
document.getElementById(key).innerText = navitexts[currentlang][key]
}
}
2024-08-08 02:09:13 +08:00
};
function tohomeurl() {
var hostname = window.location.hostname;
2024-09-09 00:48:35 +08:00
window.open(window.location.protocol + '//' + hostname.substring(5), '_blank');
2024-09-18 12:30:18 +08:00
}
function copyToClipboard(text) {
let url = window.location.href;
let thislang = getcurrlang(url)
const langs = {
zh: {
ok: '已复制到剪贴板!',
fail: '无法复制:',
},
en: {
ok: 'Copy to clipboard!',
fail: 'Cannot copy:',
},
ru: {
ok: 'Копировать в буфер обмена!',
fail: 'Невозможно скопировать:',
},
}
navigator.clipboard.writeText(text).then(function () {
showToast(langs[thislang].ok);
}, function (err) {
showToast(langs[thislang].fail + err);
});
}
showtoastsig = null
function showToast(message) {
var toast = document.getElementById("clickcopytoast");
toast.style.display = "block";
toast.innerHTML = message;
let thissig = Math.random()
showtoastsig = thissig
setTimeout(function () {
if (showtoastsig == thissig)
toast.style.display = "none";
}, 3000);
}