![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-doc/js/ |
Upload File : |
var searchQuery = location.search.replace(/^\?/, '').split('&') .reduce((ac, cr) => { var t = cr.split('='); var key = t[0]; key = key.trim(); if (!key) return ac; var value = t[1] || ''; ac[key] = value; return ac; }, {}); searchQuery.page = searchQuery.page || 'LibraryMap_LibraryMap'; function changeLocation(modifyData, name, replace) { Object.assign(searchQuery, modifyData) var newUrl = location.pathname + '?' + Object.keys(searchQuery).map(key => key + '=' + searchQuery[key]).join('&'); if (replace) window.history.replaceState(modifyData, name | 'Document', newUrl); else window.history.pushState(modifyData, name | 'Document', newUrl); // location.replace(newUrl); } /*** * @global */ window._ = absol._; /*** * @global */ window.$ = absol.$; /*** * @global */ window.$$ = absol.$$; /*** * @global */ window._g = absol._svg; var requireAsync = absol.remoteNodeRequireAsync; window.requireAsync = absol.remoteNodeRequireAsync; window.render = function render(o) { return _(o).addTo(document.body); } var tocList = require('../content/table_of_content.js') var tocElt = _({ tag: 'expgroup', }); var type2icon = { package: 'span.mdi.mdi-package', default: 'span', class: 'soan.mdi.mdi-cube-scan', 'dom-class': 'span.mdi.mdi-webpack', 'svg-class': 'span.mdi.mdi-codepen', group: 'span.mdi.mdi-package-variant' } var activeExp = null; var stateCallbacks = {}; window.addEventListener('popstate', function (event) { var state = event.state; if (!state) return; if (state.page && stateCallbacks[state.page]) { stateCallbacks[state.page](); } }); function runDocumentScript(contentElt) { var scripts = $$('script', contentElt); scripts.forEach(scriptElt => { var scriptCode = scriptElt.innerHTML; var ath = _('attachhook'); scriptElt.parentElement.replaceChild(ath, scriptElt); function render(o) { var res = _(o); ath.parentElement.insertBefore(res, ath); } ath.once('attached', function () { try { var f = new Function('absol', '_', '$', '$$', 'render', 'doc', scriptCode); f.call(window, absol, _, $, $$, render, contentElt); } catch (e) { console.error(e); } }); }); $$('a', contentElt).forEach(function (elt) { var href = elt.attr('href'); if (href && href.match(/^http(s?):\/\//)) elt.attr('target', '_blank'); }) } function makeTocTree(pElt, node, path) { path = path.concat([node.name || node.tagName]); var id = absol.string.nonAccentVietnamese(path.join('_')).replace(/[^a-zA-Z0-9_]/g, '') var name = node.name || node.tagName; var hash = location.hash; function select(doState) { if (activeExp === exp) return; if (activeExp) { activeExp.active = false; } activeExp = exp; activeExp.active = true; setTimeout(function () { absol.$.vScrollIntoView(activeExp); var focusElt = absol.$(hash, contentElt); if (focusElt) { absol.$.vScrollIntoView(focusElt); } }, 100); if (doState) changeLocation({ page: id }, name, doState === 'replace'); absol.remoteNodeRequireAsync(node.href).then(text => { if (activeExp !== exp) return; var html = marked.parse(text); contentElt.innerHTML = html; runDocumentScript(contentElt); hljs.highlightAll(); setTimeout(function () { var focusElt = absol.$(hash, contentElt); if (focusElt) { absol.$.vScrollIntoView(focusElt); } }, 100); }).catch(error => { contentElt = '<h3 color="red">Not found</h3>' }); } stateCallbacks[id] = select; var exp = _({ tag: 'exptree', props: { name: name, icon: type2icon[node.type] || type2icon.default }, on: { statuschange: function () { window.dispatchEvent(new Event('resize')); }, press: function () { if (activeExp) { activeExp.active = false; } if (node.href) { select(true); } } } }); pElt.addChild(exp); if (node.children && node.children.length > 0) { exp.status = 'open'; // node.children.sort((a, b)=>{ // if (a.name < b.name) return -1; // return 1; // }) node.children.forEach(it => makeTocTree(exp, it, path)); } if (id === searchQuery.page) select('replace'); } tocList.forEach(it => makeTocTree(tocElt, it, [])); // // tocElt.once('mousedown', function () { // var bound = tocElt.getBoundingClientRect(); // tocElt.addStyle('width', bound.width + 'px') // }); var contentElt = _('.main-content.markdown-body'); var mainElt = render({ class: 'main', child: [ { class: ['main-left', 'as-bscroller'], child: tocElt }, { class: 'main-right', child: contentElt } ] }); mainElt.addStyle('--toc-width', tocElt.getBoundingClientRect().width + 'px') /*********************************************************************************/