first commit
This commit is contained in:
commit
09a14bf0a3
1088 files changed
+145132
No files matched your search
@@ -0,0 +1,277 @@
|
||||
var curMenu = null, menuTree = null;
|
||||
var ajaxSetting = {
|
||||
edit: {
|
||||
drag: {
|
||||
autoExpandTrigger: true,
|
||||
prev: true,
|
||||
inner: true,
|
||||
next: true
|
||||
},
|
||||
enable: true,
|
||||
showRemoveBtn: false,
|
||||
showRenameBtn: false
|
||||
},
|
||||
view: {
|
||||
showLine: false,
|
||||
showIcon: false,
|
||||
selectedMulti: false,
|
||||
dblClickExpand: false,
|
||||
addDiyDom: addDiyDom
|
||||
},
|
||||
data: {
|
||||
key: {
|
||||
name: 'title',
|
||||
children: null,
|
||||
},
|
||||
simpleData: {
|
||||
enable: true,
|
||||
idKey: "id",
|
||||
pIdKey: 'parent_id',
|
||||
rootPId: 0,
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
onClick: onClick,
|
||||
},
|
||||
};
|
||||
var loadingHandler;
|
||||
function switchNode(event, treeId, treeNode) {
|
||||
if ('pushState' in history) {
|
||||
history.pushState('', '', treeNode.url);
|
||||
getChapter(treeNode.url);
|
||||
}
|
||||
else {
|
||||
location = treeNode.url;
|
||||
}
|
||||
menuTree.expandNode(treeNode, true)
|
||||
event.preventDefault()
|
||||
}
|
||||
|
||||
function getChapter(url) {
|
||||
if (void 0 === url) {
|
||||
return;
|
||||
}
|
||||
loadingHandler = layer.open({
|
||||
type: 3,
|
||||
icon: 2,
|
||||
shade: 0.1,
|
||||
});
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: url,
|
||||
success: function (result) {
|
||||
try {
|
||||
var resultElement = $(result);
|
||||
$('#article-content').html(resultElement.find('#article-content').html());
|
||||
onContentChange();
|
||||
var hash = location.hash;
|
||||
if (hash.length > 0) {
|
||||
location.hash = '';
|
||||
location.hash = hash;
|
||||
}
|
||||
else {
|
||||
// 有时切换文档不在最上面
|
||||
$('#content_body').scrollTop(0)
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
layer.alert('文档加载失败', { icon: 2 });
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
location = url;
|
||||
},
|
||||
complete: function () {
|
||||
layer.close(loadingHandler);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function addDiyDom(treeId, treeNode) {
|
||||
var spaceWidth = 5;
|
||||
var switchObj = $("#" + treeNode.tId + "_switch"),
|
||||
icoObj = $("#" + treeNode.tId + "_ico");
|
||||
switchObj.remove();
|
||||
icoObj.before(switchObj);
|
||||
|
||||
if (treeNode.level > 1) {
|
||||
var spaceStr = "<span style='display: inline-block;width:" + (spaceWidth * treeNode.level) + "px'></span>";
|
||||
switchObj.before(spaceStr);
|
||||
}
|
||||
}
|
||||
|
||||
function initTree(data) {
|
||||
for (var i in data) {
|
||||
data[i].target = '_self';
|
||||
}
|
||||
if (null === menuTree) {
|
||||
var treeObj = $("#treeDirectory");
|
||||
$.fn.zTree.init(treeObj, ajaxSetting, data);
|
||||
menuTree = $.fn.zTree.getZTreeObj("treeDirectory");
|
||||
var nodes = menuTree.getNodesByParam('url', location.pathname + location.hash, null);
|
||||
if (nodes.length > 0) {
|
||||
if (nodes.length > 1) {
|
||||
if (menuTree.getSelectedNodes().length > 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
menuTree.selectNode(nodes[0]);
|
||||
}
|
||||
else {
|
||||
menuTree.selectNode(menuTree.getNodeByParam('id', currentCatalog.id, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onClick(event, treeId, treeNode) {
|
||||
// 未修改内容,直接切换
|
||||
switchNode(event, treeId, treeNode);
|
||||
setTimeout(function () {
|
||||
closeMenuLeft();
|
||||
}, 600);
|
||||
}
|
||||
|
||||
function parseLeftHeight() {
|
||||
$('#leftbar .layui-tab-content').css('max-height', ($('#leftbar').height() - $('#leftbar .layui-tab-title').height() - $('#leftbar .copyright').height()) + 'px');
|
||||
}
|
||||
|
||||
function onContentChange() {
|
||||
$('#content-toc').css('max-height', ($(document).height() / 2) + 'px');
|
||||
hCatalog('#article-content', '#content-toc');
|
||||
var content = $('#article-content');
|
||||
content.find('blockquote').addClass('layui-elem-quote');
|
||||
content.find('table').addClass('layui-table');
|
||||
content.find('pre code').each(function (index, item) {
|
||||
var pre = $(item).parent();
|
||||
var content = $(item).text();
|
||||
var brush = parseCodeBrush($(item).attr('class'));
|
||||
var newPre = $('<pre></pre>').addClass('brush: ' + brush).addClass('toolbar: false').text(content);
|
||||
pre.replaceWith(newPre);
|
||||
});
|
||||
SyntaxHighlighter.highlight();
|
||||
//initSearchDatas();
|
||||
$('#content_body a').each(function () {
|
||||
var url = $(this).attr('href');
|
||||
if (void 0 !== url && '#' !== url.substr(0, 1) && 'http' === url.substr(0, 4)) {
|
||||
$(this).attr('target', '_blank');
|
||||
}
|
||||
})
|
||||
setTimeout(function () {
|
||||
resizeCode();
|
||||
}, 1)
|
||||
}
|
||||
|
||||
function parseCodeBrush(brush) {
|
||||
for (var i in SyntaxHighlighter.brushes) {
|
||||
if (SyntaxHighlighter.brushes[i].aliases.indexOf(brush) > -1) {
|
||||
return brush;
|
||||
}
|
||||
}
|
||||
return 'text';
|
||||
}
|
||||
|
||||
function resizeCode() {
|
||||
var guttelines = $('.gutter .line');
|
||||
var codelines = $('.code .line');
|
||||
for (var i = 0; i < guttelines.length; i++) {
|
||||
var codeline = codelines.eq(i);
|
||||
var height = codeline.css('height');
|
||||
guttelines.eq(i).css('height', height)
|
||||
codeline.css('height', height);
|
||||
}
|
||||
}
|
||||
|
||||
// 基于这里的代码做了修改: https://blog.csdn.net/weixin_57215431/article/details/115676752
|
||||
function hCatalog(current, target) {
|
||||
var box = document.querySelector(target)
|
||||
if (!box) {
|
||||
return;
|
||||
}
|
||||
box.innerHTML = ''
|
||||
var titleTree = hTree(document.querySelector(current))
|
||||
hCreatEle(titleTree, box)
|
||||
}
|
||||
|
||||
function hCreatEle(arr, parent) {
|
||||
if (!arr.length) return
|
||||
var ol = document.createElement('ol')
|
||||
arr.forEach(function (item) {
|
||||
if ('' !== item.node.innerHTML) {
|
||||
var li = document.createElement('li')
|
||||
li.innerHTML = item.node.innerHTML
|
||||
hCreatEle(item.children, li)
|
||||
ol.appendChild(li)
|
||||
}
|
||||
})
|
||||
parent.appendChild(ol)
|
||||
}
|
||||
|
||||
function hTree(wrapNode) {
|
||||
var root = { children: [] }
|
||||
var current = root
|
||||
|
||||
for (var i = 0; i < wrapNode.children.length; ++i) {
|
||||
var item = wrapNode.children[i]
|
||||
if (item.localName.indexOf('h') === 0) {
|
||||
var obj = { node: item, children: [], parent: undefined }
|
||||
while (current !== root && current.node.localName[1] - obj.node.localName[1] !== -1) {
|
||||
current = current.parent
|
||||
}
|
||||
obj.parent = current
|
||||
obj.parent.children.push(obj)
|
||||
current = obj
|
||||
}
|
||||
}
|
||||
return root.children
|
||||
}
|
||||
|
||||
function initContentToc() {
|
||||
var isDown = false;
|
||||
var beginLeft = 0
|
||||
var beginTop = 0;
|
||||
var mouseBeginLeft = 0
|
||||
var mouseBeginTop = 0;
|
||||
|
||||
$(document).on('mousedown', '.content-toc-title', function (e) {
|
||||
var wrap = $('#content-toc-wrap');
|
||||
isDown = true;
|
||||
beginLeft = wrap[0].offsetLeft;
|
||||
beginTop = wrap[0].offsetTop;
|
||||
mouseBeginLeft = e.pageX;
|
||||
mouseBeginTop = e.pageY;
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$(document).on('mouseup', function () {
|
||||
isDown = false;
|
||||
});
|
||||
|
||||
$(document).on('mousemove', function (e) {
|
||||
if (isDown) {
|
||||
var wrap = $('#content-toc-wrap');
|
||||
wrap.css('left', (beginLeft + (e.pageX - mouseBeginLeft)) + 'px');
|
||||
wrap.css('top', (beginTop + (e.pageY - mouseBeginTop)) + 'px');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(function () {
|
||||
parseLeftHeight();
|
||||
|
||||
$(window).resize(function () {
|
||||
parseLeftHeight();
|
||||
});
|
||||
|
||||
$('body').on('click', '.ztree.showIcon li a span.button.switch', function (e) {
|
||||
return false;
|
||||
});
|
||||
|
||||
initContentToc();
|
||||
|
||||
SyntaxHighlighter.all();
|
||||
onContentChange();
|
||||
})
|
||||
|
||||
$(window).load(function () {
|
||||
$(window).resize(resizeCode);
|
||||
});
|
||||
@@ -0,0 +1,10 @@
|
||||
$.ajaxSetup({
|
||||
xhrFields: {
|
||||
withCredentials: true
|
||||
},
|
||||
});
|
||||
$(function(){
|
||||
layui.element.init();
|
||||
layui.table.init();
|
||||
layui.form.render();
|
||||
});
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
var XRegExp,SyntaxHighlighter;if(XRegExp)throw Error("can't load XRegExp twice in the same frame");!function(l){(XRegExp=function(e,t){var r,i,n,s=[],a=XRegExp.OUTSIDE_CLASS,o=0;if(XRegExp.isRegExp(e)){if(t!==l)throw TypeError("can't supply flags when constructing one RegExp from another");return m(e)}if(g)throw Error("can't call the XRegExp constructor within token definition functions");for(t=t||"",r={hasNamedCapture:!1,captureNames:[],hasFlag:function(e){return-1<t.indexOf(e)},setFlag:function(e){t+=e}};o<e.length;)(i=function(e,t,r,i){var n,s,a,o=d.length;g=!0;try{for(;o--;)if(a=d[o],r&a.scope&&(!a.trigger||a.trigger.call(i))&&(a.pattern.lastIndex=t,s=a.pattern.exec(e))&&s.index===t){n={output:a.handler.call(i,s,r),match:s};break}}catch(e){throw e}finally{g=!1}return n}(e,o,a,r))?(s.push(i.output),o+=i.match[0].length||1):(i=h.exec.call(p[a],e.slice(o)))?(s.push(i[0]),o+=i[0].length):("["===(i=e.charAt(o))?a=XRegExp.INSIDE_CLASS:"]"===i&&(a=XRegExp.OUTSIDE_CLASS),s.push(i),o++);return(n=RegExp(s.join(""),h.replace.call(t,c,"")))._xregexp={source:e,captureNames:r.hasNamedCapture?r.captureNames:null},n}).version="1.5.1",XRegExp.INSIDE_CLASS=1,XRegExp.OUTSIDE_CLASS=2;var e,o=/\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g,c=/[^gimy]+|([\s\S])(?=[\s\S]*\1)/g,t=/^(?:[?*+]|{\d+(?:,\d*)?})\??/,g=!1,d=[],h={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},a=h.exec.call(/()??/,"")[1]===l,u=(e=/^/g,h.test.call(e,""),!e.lastIndex),s=RegExp.prototype.sticky!==l,p={};function m(e,t){var r;if(XRegExp.isRegExp(e))return r=e._xregexp,e=XRegExp(e.source,f(e)+(t||"")),r&&(e._xregexp={source:r.source,captureNames:r.captureNames?r.captureNames.slice(0):null}),e;throw TypeError("type RegExp expected")}function f(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function x(e,t,r){if(Array.prototype.indexOf)return e.indexOf(t,r);for(var i=r||0;i<e.length;i++)if(e[i]===t)return i;return-1}p[XRegExp.INSIDE_CLASS]=/^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/,p[XRegExp.OUTSIDE_CLASS]=/^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/,XRegExp.addToken=function(e,t,r,i){d.push({pattern:m(e,"g"+(s?"y":"")),handler:t,scope:r||XRegExp.OUTSIDE_CLASS,trigger:i||null})},XRegExp.cache=function(e,t){var r=e+"/"+(t||"");return XRegExp.cache[r]||(XRegExp.cache[r]=XRegExp(e,t))},XRegExp.copyAsGlobal=function(e){return m(e,"g")},XRegExp.escape=function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},XRegExp.execAt=function(e,t,r,i){var n=m(t,"g"+(i&&s?"y":""));return n.lastIndex=r=r||0,e=n.exec(e),i&&e&&e.index!==r&&(e=null),t.global&&(t.lastIndex=e?n.lastIndex:0),e},XRegExp.freezeTokens=function(){XRegExp.addToken=function(){throw Error("can't run addToken after freezeTokens")}},XRegExp.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},XRegExp.iterate=function(e,t,r,i){for(var n,s=m(t,"g"),a=-1;n=s.exec(e);)t.global&&(t.lastIndex=s.lastIndex),r.call(i,n,++a,e,t),s.lastIndex===n.index&&s.lastIndex++;t.global&&(t.lastIndex=0)},XRegExp.matchChain=function(e,o){return function e(t,r){for(var i=o[r].regex?o[r]:{regex:o[r]},n=m(i.regex,"g"),s=[],a=0;a<t.length;a++)XRegExp.iterate(t[a],n,function(e){s.push(i.backref?e[i.backref]||"":e[0])});return r!==o.length-1&&s.length?e(s,r+1):s}([e],0)},RegExp.prototype.apply=function(e,t){return this.exec(t[0])},RegExp.prototype.call=function(e,t){return this.exec(t)},RegExp.prototype.exec=function(e){var t,r,i,n;if(this.global||(n=this.lastIndex),t=h.exec.apply(this,arguments)){if(!a&&1<t.length&&-1<x(t,"")&&(i=RegExp(this.source,h.replace.call(f(this),"g","")),h.replace.call((e+"").slice(t.index),i,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===l&&(t[e]=l)})),this._xregexp&&this._xregexp.captureNames)for(var s=1;s<t.length;s++)(r=this._xregexp.captureNames[s-1])&&(t[r]=t[s]);!u&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return this.global||(this.lastIndex=n),t},RegExp.prototype.test=function(e){var t;return this.global||(t=this.lastIndex),(e=h.exec.call(this,e))&&!u&&this.global&&!e[0].length&&this.lastIndex>e.index&&this.lastIndex--,this.global||(this.lastIndex=t),!!e},String.prototype.match=function(e){var t;return(e=XRegExp.isRegExp(e)?e:RegExp(e)).global?(t=h.match.apply(this,arguments),e.lastIndex=0,t):e.exec(this)},String.prototype.replace=function(t,r){var a,e,i,n=XRegExp.isRegExp(t);return n?(t._xregexp&&(a=t._xregexp.captureNames),t.global||(i=t.lastIndex)):t+="",e="[object Function]"===Object.prototype.toString.call(r)?h.replace.call(this+"",t,function(){if(a){arguments[0]=new String(arguments[0]);for(var e=0;e<a.length;e++)a[e]&&(arguments[0][a[e]]=arguments[e+1])}return n&&t.global&&(t.lastIndex=arguments[arguments.length-2]+arguments[0].length),rLine truncated
|
||||
Reference in new issue
Block a user