179 lines
4.8 KiB
JavaScript
179 lines
4.8 KiB
JavaScript
|
/*
|
||
|
* Bolo - A stable and beautiful blogging system based in Solo.
|
||
|
* Copyright (c) 2020, https://github.com/adlered
|
||
|
*
|
||
|
* This program is free software: you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU Affero General Public License as published by
|
||
|
* the Free Software Foundation, either version 3 of the License, or
|
||
|
* (at your option) any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU Affero General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU Affero General Public License
|
||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||
|
*/
|
||
|
/**
|
||
|
* @fileoverview neoease js.
|
||
|
*
|
||
|
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||
|
* @version 1.0.0.8, Sep 6, 2012
|
||
|
*/
|
||
|
var goTop = function (acceleration) {
|
||
|
acceleration = acceleration || 0.1
|
||
|
|
||
|
var y = $(window).scrollTop()
|
||
|
var speed = 1 + acceleration
|
||
|
window.scrollTo(0, Math.floor(y / speed))
|
||
|
|
||
|
if (y > 0) {
|
||
|
var invokeFunction = 'goTop(' + acceleration + ')'
|
||
|
window.setTimeout(invokeFunction, 16)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var collapseArchive = function (it, year) {
|
||
|
var tag = true
|
||
|
if (it.className === 'collapse-ico') {
|
||
|
it.className = 'expand-ico'
|
||
|
tag = false
|
||
|
} else {
|
||
|
it.className = 'collapse-ico'
|
||
|
}
|
||
|
|
||
|
$('#archiveSide li').each(function () {
|
||
|
var $this = $(this)
|
||
|
// hide other year month archives
|
||
|
if ($this.data('year') === year) {
|
||
|
if (tag) {
|
||
|
$(this).show()
|
||
|
} else {
|
||
|
$(this).hide()
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
var getArticle = function (it, id) {
|
||
|
var $abstract = $('#abstract' + id),
|
||
|
$content = $('#content' + id)
|
||
|
|
||
|
if ($content.html() === '') {
|
||
|
$.ajax({
|
||
|
url: '/get-article-content?id=' + id,
|
||
|
type: 'GET',
|
||
|
dataType: 'html',
|
||
|
beforeSend: function () {
|
||
|
$abstract.css('background',
|
||
|
'url(/skins/bolo-NeoEase/images/ajax-loader.gif) no-repeat scroll center center transparent')
|
||
|
},
|
||
|
success: function (result, textStatus) {
|
||
|
it.className = 'collapse-ico'
|
||
|
$content.html(result)
|
||
|
$abstract.hide().css('background', 'none')
|
||
|
$content.fadeIn('slow')
|
||
|
Util.parseLanguage()
|
||
|
Util.parseMarkdown()
|
||
|
},
|
||
|
})
|
||
|
} else {
|
||
|
if (it.className === 'expand-ico') {
|
||
|
$abstract.hide()
|
||
|
$content.fadeIn()
|
||
|
it.className = 'collapse-ico'
|
||
|
} else {
|
||
|
$content.hide()
|
||
|
$abstract.fadeIn()
|
||
|
it.className = 'expand-ico'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
var goTranslate = function () {
|
||
|
window.open('http://translate.google.com/translate?sl=auto&tl=auto&u=' +
|
||
|
location.href)
|
||
|
}
|
||
|
|
||
|
$(document).ready(function () {
|
||
|
// go top icon show or hide
|
||
|
$(window).scroll(function () {
|
||
|
var y = $(window).scrollTop()
|
||
|
|
||
|
if (y > 182) {
|
||
|
var bodyH = $(window).height()
|
||
|
var top = y + bodyH - 21
|
||
|
if ($('body').height() - 58 <= y + bodyH) {
|
||
|
top = $('.footer').offset().top - 21
|
||
|
}
|
||
|
$('#goTop').fadeIn('slow').css('top', top)
|
||
|
} else {
|
||
|
$('#goTop').hide()
|
||
|
}
|
||
|
})
|
||
|
|
||
|
// archive
|
||
|
var currentYear = (new Date()).getFullYear(),
|
||
|
year = currentYear
|
||
|
$('#archiveSide li').each(function (i) {
|
||
|
var $this = $(this)
|
||
|
|
||
|
// hide other year month archives
|
||
|
if ($this.data('year') !== currentYear) {
|
||
|
$(this).hide()
|
||
|
}
|
||
|
|
||
|
// append year archive
|
||
|
if (year !== $this.data('year')) {
|
||
|
year = $this.data('year')
|
||
|
$this.before('<li class=\'archive-year\'><div onclick=\'collapseArchive(this, ' +
|
||
|
year + ')\' class=\'expand-ico\'>' + year + ' \u5e74</div></li>')
|
||
|
}
|
||
|
})
|
||
|
|
||
|
// recent comment mouse click
|
||
|
$('.recent-comments .expand-ico').click(function () {
|
||
|
if (this.className === 'expand-ico') {
|
||
|
$(this).parent().next().css({
|
||
|
'height': 'auto',
|
||
|
'white-space': 'normal',
|
||
|
})
|
||
|
this.className = 'collapse-ico'
|
||
|
} else {
|
||
|
$(this).parent().next().animate({
|
||
|
'height': '18px',
|
||
|
}, function () {
|
||
|
$(this).css('white-space', 'nowrap')
|
||
|
})
|
||
|
this.className = 'expand-ico'
|
||
|
}
|
||
|
})
|
||
|
|
||
|
// nav current
|
||
|
$('.nav ul li').each(function () {
|
||
|
var $a = $(this).find('a')
|
||
|
if ($a.attr('href') === Label.servePath + location.pathname) {
|
||
|
$(this).addClass('current')
|
||
|
} else if (/\/[0-9]+$/.test(location.pathname)) {
|
||
|
$('.nav ul li')[0].className = 'current'
|
||
|
}
|
||
|
})
|
||
|
|
||
|
Util.setTopBar()
|
||
|
Util.replaceSideEm($('.recent-comments-content'))
|
||
|
Util.buildTags('tagsSide')
|
||
|
|
||
|
// recent comments
|
||
|
$('.recent-comments .recent-comments-main').each(function () {
|
||
|
if ($(this).find('.recent-comments-content>a').height() < 30) {
|
||
|
$(this).find('.expand-ico').remove()
|
||
|
} else {
|
||
|
$(this).find('.expand-ico').parent().next().css({
|
||
|
'white-space': 'nowrap',
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
})
|