/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./dev/js/index.js": /*!*************************!*\ !*** ./dev/js/index.js ***! \*************************/ /***/ (() => { $(document).ready(function () { document.body.addEventListener('touchstart', function () {}, { passive: true }); var nav = $('.g-nav'); var baseurl = $("meta[property='og:baseurl']").attr('content'); var logo = $('.g-logo'); var themeStyle = $('.g-banner').attr('data-theme'); logo.css({ 'background': 'url(' + baseurl + '/assets/icons/' + themeStyle + '.svg) no-repeat center', 'background-size': '100% 100%' }); /** * Cookie Tips */ var cookieconsent_status = getCookie("cookieconsent_status"); if (cookieconsent_status) { $('.cookie-tip').removeClass('active'); } else { $('.cookie-tip').addClass('active'); } $('#accept-tos').on('click', function () { setCookie("cookieconsent_status", "allow", 365); $('.cookie-tip').removeClass('active'); }); /** * Fix table for small screens */ $("table").wrap("
"); /** * Responsive Navigation */ $('#menu-toggle').on('click', function (e) { var duration = 200; nav.slideToggle(duration); $(document).on('click', function () { nav.slideUp(duration); }); e.stopPropagation(); }); nav.on('click', function (e) { e.stopPropagation(); }); $(".g-nav li.dropdown").on("click", function () { $(".g-nav li.dropdown").not($(this)).children("ul.dropdown-menu").removeClass("show"); $(".g-nav li.dropdown").not($(this)).children("a.dropdown-toggle").removeClass("show"); $(this).children("a.dropdown-toggle").toggleClass("show"); $(this).children("ul.dropdown-menu").toggleClass("show"); }); $(document).on("click", function () { $(".g-nav li.dropdown").children("a.dropdown-toggle").removeClass("show"); $(".g-nav li.dropdown").children("ul.dropdown-menu").removeClass("show"); }); /** * Header Bar */ if ($(window).width() > 695) { var header = $('.g-header'); var headerHeight = header.outerHeight(); var navText = nav.find('a'); var scFlag = $(document).scrollTop(); var logo = $('.g-logo'); var themeStyle = $('.g-banner').attr('data-theme'); $(document).scroll(function () { var scrollTop = $(this).scrollTop(); var navClassName = 'nav-' + themeStyle; if (scrollTop > headerHeight) { if (scrollTop > 3 * headerHeight) { header.addClass('headerUp'); } header.css({ 'background-color': 'rgba(255, 255, 255, .98)', 'box-shadow': '0 1px 12px rgba(0, 0, 0, .08)' }); logo.css({ 'background': 'url(' + baseurl + '/assets/icons/' + themeStyle + '.svg) no-repeat center', 'background-size': '100% 100%' }); navText.addClass('color-f-gray'); nav.addClass(navClassName); } else { header.removeClass('headerUp'); // console.log("rm up"); $('#bttb').removeClass("active"); header.css({ 'background-color': 'transparent', 'box-shadow': 'none' }); logo.css({ 'background': 'url(' + baseurl + '/assets/icons/' + themeStyle + '.svg) no-repeat center', 'background-size': '100% 100%' }); navText.removeClass('color-f-gray'); nav.removeClass(navClassName); } // scroll action if (scFlag > scrollTop) { header.addClass('headerDown'); if (header.hasClass('headerUp')) { $('#bttb').addClass("active"); } } else { header.removeClass('headerDown'); $('#bttb').removeClass("active"); } scFlag = scrollTop; }); } else { var header = $('.g-header'); var headerHeight = header.outerHeight(); var scFlag = $(document).scrollTop(); $(document).scroll(function () { var scrollTop = $(this).scrollTop(); if (scrollTop < 100) { $('#bttb').removeClass("active"); } // scroll action if (scFlag > scrollTop && scFlag > 5) { $('#bttb').addClass("active"); } else { $('#bttb').removeClass("active"); } scFlag = scrollTop; }); } /** * List for contents */ function clickMobileList() { $('.table-of-contents').toggleClass("active"); var mode = getCookie("mode"); if (mode == "night") { $('.mobile-list .icon.list.night').toggleClass('active'); $('.mobile-list .icon.exit.night').toggleClass('active'); } else { $('.mobile-list .icon.list.day').toggleClass('active'); $('.mobile-list .icon.exit.day').toggleClass('active'); } } $('.mobile-list').bind('click', function () { clickMobileList(); }); $(".table-of-contents").on('click', function () { clickMobileList(); }); /** * Back To Top Button */ $('.bttb').bind('click', function () { $('html,body').animate({ scrollTop: 0 }, function () { $('#bttb').removeClass("active"); }); }); /** * Post Cover Resize */ function postCover(img, container) { var imgWidth = img.width(); var containerWidth = container.width(); var imgHeight = img.height(); var containerHeight = container.height(); if (imgHeight < containerHeight) { img.css({ 'width': 'auto', 'height': '100%' }); imgWidth = img.width(); containerWidth = container.width(); var marginLeft = (imgWidth - containerWidth) / 2; img.css('margin-left', '-' + marginLeft + 'px'); } else { var marginTop = (containerHeight - imgHeight) / 2; img.css('margin-top', marginTop + 'px'); } img.fadeIn(); } /** * The Post Navigator */ $('.read-next-item section').each(function () { var n = $(this).height(); var rn = $('.read-next-item').height(); $(this).css('margin-top', (rn - n) / 2 + 'px'); $(this).fadeIn(); }); $('.read-next-item img').each(function () { postCover($(this), $('.read-next-item')); // $(this).addClass("lazyload"); $(this).attr('data-src', $(this).attr('src')).removeAttr('src').addClass("lazyload"); }); /** * Pagination */ function pagination() { var total = parseInt($('#total_pages').val()); var current = parseInt($('#current_pages').val()); var baseUrl = $('#base_url').val(); var limit = 3; var link_html = ''; for (var i = current - limit; i < current; i++) { if (i > 0 && i !== 1) { link_html += '' + i + ''; } else if (i === 1) { link_html += '' + i + ''; } } link_html += '' + current + ''; for (var j = current + 1; j <= current + limit; j++) { if (j <= total) { link_html += '' + j + ''; } } $('#page-link-container').html(link_html); } pagination(); /** * Search */ function Search() { var self = this; var input = $('#search_input'); var result = $('.search_result'); input.focus(function () { $('.icon-search').css('color', '#3199DB'); result.show(); }); input.keyup(debounce(this.autoComplete)); $(document).click(function (e) { if (e.target.id === 'search_input' || e.target.className === 'search_result' || e.target.className === 'search_item') { return; } $('.icon-search').css('color', '#CAD3DC'); result.hide(); }); } Search.prototype.autoComplete = function () { var keywords = this.value.toLowerCase(); if (keywords.length) { $('.icon-search').css('color', '#3199DB'); } else { $('.icon-search').css('color', '#CAD3DC'); } var jsonfile = baseurl + '/assets/search.json'; $.getJSON(jsonfile).done(function (data) { var html = ''; for (var i in data) { var item = data[i]; var title = item.title; var tags = item.tags; var url = item.url; var k = title + tags; if (keywords !== '' && k.toLowerCase().indexOf(keywords) >= 0) { html += '' + item.title + ''; } } $('.search_result').html(html); }); }; function debounce(fn, delay) { var timer; delay = delay || 120; return function () { var ctx = this; var args = arguments; var later = function () { fn.apply(ctx, args); }; clearTimeout(timer); timer = setTimeout(later, delay); }; } new Search(); /** * Night mode */ function nightMode() { var el = $('body'); var className = 'night-mode'; var date = new Date(); var hour = date.getHours(); var mode = getCookie("mode"); if (mode == "") { // console.log(mode); if (hour <= 6 || hour >= 18) { // console.log("Start night mode"); setCookie("mode", "night", 1) } // el.addClass(className); } } if ($('#nm-switch').val() === 'true') { nightMode(); } /** * Copy and copyright */ function setClipboardData(str) { str += '\n\n著作权归作者所有。\n商业转载请联系作者获得授权,非商业转载请注明出处。\n原文: ' + location.href; $('.post-content').on('copy', function (e) { var data = window.clipboardData || e.originalEvent.clipboardData; data.setData('text/plain', str); e.preventDefault(); }); } $('.post-content').on('mouseup', function (e) { var txt = window.getSelection(); if (txt.toString().length >= 30) { setClipboardData(txt); } }); /** * TOC highlight with the corresponding content */ function locateCatelogList() { /*获取文章目录集合,可通过:header过滤器*/ var alis = $('article :header'); /*获取侧边栏目录列表集合**/ var sidebar_alis = $('.table-of-contents').find('a'); /*获取滚动条到顶部的距离*/ var scroll_height = $(window).scrollTop(); if (scroll_height > 0) { $('.g-header').addClass('headerUp'); } for (var i = 0; i < alis.length; i++) { /*获取锚点集合中的元素分别到顶点的距离*/ var a_height = $(alis[i]).offset().top - 100; if (a_height < scroll_height) { /*高亮显示*/ $(sidebar_alis).removeClass('active'); $(sidebar_alis[i]).addClass('active'); } } } locateCatelogList(); $(window).bind('scroll', locateCatelogList); /** * Day/Night mode switch button */ function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name) === 0) return c.substring(name.length, c.length); } return ""; } function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); if (!baseurl) { document.cookie = cname + "=" + cvalue + "; path=/; " + expires; } else { document.cookie = cname + "=" + cvalue + "; path=" + baseurl + "; " + expires; } } var mode = getCookie("mode"); // console.log(mode); if (mode == "night") { $(".g-nav li.mode .night").addClass("active"); $("#mode-toggle .icon-night").addClass("active"); $("body").addClass("night-mode"); $(".icon.up.night").toggleClass("active"); $(".icon.list.night").toggleClass("active"); } else { $(".g-nav li.mode .day").addClass("active"); $("#mode-toggle .icon-day").addClass("active"); $("body").removeClass("night-mode"); $(".icon.up.day").toggleClass("active"); $(".icon.list.day").toggleClass("active"); } function changeMode() { var mode = getCookie("mode"); if (mode == "") { setCookie("mode", "night", 1) $("body").addClass("night-mode"); } else if (mode == "day") { setCookie("mode", "night", 1) $("body").addClass("night-mode"); } else { setCookie("mode", "day", 1) $("body").removeClass("night-mode"); } // console.log(mode + "-->" + getCookie("mode")); if ($("#disqus_thread").length > 0) { DISQUS.reset({ reload: true }); } $(".g-nav li.mode .icon").toggleClass("active"); $("#mode-toggle .icon").toggleClass("active"); $(".icon.up.day").toggleClass("active"); $(".icon.up.night").toggleClass("active"); if ($('.table-of-contents').css('visibility') == "visible") { $(".icon.exit.day").toggleClass("active"); $(".icon.exit.night").toggleClass("active"); } else { $(".icon.list.day").toggleClass("active"); $(".icon.list.night").toggleClass("active"); } } $(".g-nav li.mode").click(function () { changeMode(); }); $("#mode-toggle").click(function () { changeMode(); }); /** * Copy code blocks */ // get all elements
var allCodeBlocksElements = $("pre");
allCodeBlocksElements.each(function (i) {
// add different id for each code block
// target
var currentId = "codeblock" + (i + 1);
$(this).attr('id', currentId);
var lang = $(this).attr("class").split(" ")[1].substring(9).toUpperCase();
if (lang == "ERS") {
lang = $(this).attr("class").split(" ")[0].substring(9).toUpperCase();
if (lang == "MERMAID2") {
text = $(this).text();
$(this).before(' ');
$(this).after('' + text + '');
} else {
$(this).wrap('');
$(this).parent().wrap('');
$(this).addClass("highlight");
//trigger
var clipButton = '' + lang + '';
$(this).before(clipButton);
}
} else {
//trigger
var clipButton = '' + lang + '';
$(this).before(clipButton);
}
});
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function (e) {
e.clearSelection();
});
$(".markdown-body .btn").hover(function () {
$(this).find(".tooltip.unfinish").addClass("active");
}, function () {
$(this).find(".tooltip.unfinish").removeClass("active");
});
$(".markdown-body .btn").click(function () {
$(this).find(".tooltip.unfinish").removeClass("active");
var finish = $(this).find(".tooltip.finish")
finish.addClass("active");
setTimeout(function () {
finish.removeClass("active");
}, 500);
});
/**
* Expand the mermaid figure
*/
$("summary").click(function (event) {
var text = $(this).next().children().text();
$(".modal .modal-content .container").html('' + text + '')
mermaid.init(undefined, $('.modal .modal-content .mermaid2'));
$('.modal').css("visibility", "visible");
$(".modal .modal-content").click(function (event) {
if (event.target.classList.contains("close")) {
$(".modal").css("visibility", "hidden");
}
event.stopPropagation();
});
event.stopPropagation();
});
$(document).click(function () {
$(".modal").css("visibility", "hidden");
});
/**
* Error image loading
*/
document.addEventListener('error', function (e) {
if (e.target.nodeName == 'IMG') { e.target.src = baseurl + '/assets/img/placeholder.webp'; }
}, true);
/**
* Alive time
*/
var alivetime_days = $(".alivetime_days")
var alivetime_hours = $(".alivetime_hours")
var alivetime_minutes = $(".alivetime_minutes")
var alivetime_seconds = $(".alivetime_seconds")
function alive_time() {
var alivestart = $("meta[name='alivestart']").attr('content');
window.setTimeout(alive_time, 1000);
// Start at
BirthDay = new Date(alivestart);
// Now at
today = new Date();
timeold = (today.getTime() - BirthDay.getTime());
secondsold = Math.floor(timeold / 1000);
e_daysold = timeold / (24 * 60 * 60 * 1000);
daysold = Math.floor(e_daysold);
e_hrsold = (e_daysold - daysold) * 24;
hrsold = Math.floor(e_hrsold);
e_minsold = (e_hrsold - hrsold) * 60;
minsold = Math.floor(e_minsold)
seconds = Math.floor((e_minsold - minsold) * 60);
alivetime_days.html(daysold)
alivetime_hours.html(hrsold)
alivetime_minutes.html(minsold)
alivetime_seconds.html(seconds)
// alivetime.html(daysold + " 天 " + hrsold + " 小时 " + minsold + " 分 " + seconds + " 秒");
}
alive_time();
});
/***/ }),
/***/ "./dev/sass/app.scss":
/*!***************************!*\
!*** ./dev/sass/app.scss ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!********************!*\
!*** ./dev/app.js ***!
\********************/
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _js_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./js/index.js */ "./dev/js/index.js");
/* harmony import */ var _js_index_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_js_index_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _sass_app_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sass/app.scss */ "./dev/sass/app.scss");
})();
/******/ })()
;
//# sourceMappingURL=app.min.js.map