gitbook-plugin-theme-seer
Version:
Gitbook theme for BingoPaaS docs
152 lines (132 loc) • 5.14 kB
JavaScript
require(['gitbook', 'jquery'], function(gitbook, $) {
function getRootPath() {
var pathName = window.location.pathname.substring(1);
var webName = pathName == '' ? '' : pathName.substring(0, pathName.indexOf('/'));
if (webName == "") {
return window.location.protocol + '//' + window.location.host;
}
else {
return window.location.protocol + '//' + window.location.host + '/' + webName;
}
}
//生成内容导航
function generateSectionNavigator(){
$(".page-inner .markdown-section").find("h1,h2,h3").each(function(){
var cls="anchor-h1";
if($(this).is("h2")){
cls="anchor-h2";
}
if($(this).is("h3")){
cls="anchor-h3";
}
var text = $(this).text();
var href = $(this).attr("id");
$(".book-anchor-body").append("<a id='an_"+text+"' class='anchor-text "+cls+"' title='"+text+"' href='#"+href+"'>"+text+"</a>")
});
$(".book-anchor-title").click(function () {
// $(".book-anchor-body").toggle();
});
$(".book-anchor-body>a").click(function(){
$(".book-anchor-body>a").removeClass("selected");
$(this).addClass("selected");
});
//获取hash值定向到指定位置
var hash = decodeURIComponent(location.hash);
if(hash){
hash = hash.substring(1);
$("#an_"+hash).addClass("selected");
}
}
//基础设置
function setBase(){
//标题
var $title = $(".header-inner .title");
$title.text(gitbook.state.config.title);
//搜索框
var $search = $('#book-search-input');
var placeholder = gitbook.state.config.pluginsConfig["theme-seer"]["search-placeholder"] || "输入关键字搜索"
$search.find("input").attr("placeholder",placeholder);
// $search.append("<span id='searchBtn'>搜索</span>");
$search.append("<div class='search-icon'></div>")
$search.focus();
// $("#searchBtn").click(function(e){});
//去掉gitbook-link
$(".summary .gitbook-link").hide();
$(".summary .divider").hide();
}
gitbook.events.on('start', function() {
initVersion();
});
gitbook.events.on('page.change', function() {
setBase();
generateSectionNavigator();
});
function initVersion(){
var options = gitbook.state.config.pluginsConfig["theme-seer"]["versionOptions"];
$('.version_div .current').text(options[0].text);
for(var i=0;i<options.length;i++){
$li = $(`<li data-value=${options[i].value} data-text=${options[i].text}>${options[i].text}</li>`)
$('.version_div .dropdown-menu ul').append($li);
}
$('.version_div .current-wrapper').click(function(){
$('.version_div .dropdown-menu').toggle();
});
$('.version_div .dropdown-menu ul').click(function(e){
$('.version_div .current').text($(e.target).attr("data-text"))
window.location.href = $(e.target).attr("data-value")
$('.version_div .dropdown-menu').hide();
})
}
(function(){
$('#mask').hide();
reset()
$(document).on('click','#seer-collapse',function(){
if($('.book-summary').css("display") === 'none'){
$('.book-summary').show();
$('#mask').show();
setTimeout(() => {
$('.book-summary').css({
"left": "unset",
"right": "0"
});
}, 0);
} else {
$('.book-summary').hide();
$('#mask').hide();
}
})
$(document).on('click','.book-summary',function(e){
console.log(99,window.innerWidth);
if(window.innerWidth < 1200){
$('#mask').show();
} else {
$('#mask').hide();
}
})
$(document).on('click','#mask',function(e){
$('.book-summary').hide();
$('#mask').hide();
})
})()
function reset (){
if(window.innerWidth < 1200){
$('.book-body').css("left",0)
$('.book-summary').css("left","unset");
$('.book-summary').css("right","0");
$('.book-summary').hide();
} else {
$('.book-body').css("left",$('.book-summary').outerWidth(true));
$('.book-summary').css("left",0);
$('.book-summary').show();
}
}
setTimeout(() => {
$('.book-summary').css("left",0);
if(window.innerWidth >= 1200){
$('.book-body').css("left",$('.book-summary').outerWidth(true));
}
}, 30);
$(window).resize(function () {
reset()
});
});