Van
2019-02-11 01:06:43 +08:00
parent dd015bb41e
commit d7e9db917c
289 changed files with 4122 additions and 2277 deletions

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#list articles as article>
<div class="page-header page-header-m">
<h3><a href="${article.articlePermalink}">${article.articleTitle}</a></h3>

View File

@@ -1,5 +1,25 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<#include "macro-comments.ftl">
<#include "../../common-template/macro-comment_script.ftl">
<!DOCTYPE html>
<html>
<head>
@@ -80,7 +100,7 @@
</div>
</div>
<#include "footer.ftl">
<@comment_script oId=article.oId>
<@comment_script oId=article.oId commentable=article.commentable>
page.tips.externalRelevantArticlesDisplayCount = "${externalRelevantArticlesDisplayCount}";
<#if 0 != randomArticlesDisplayCount>
page.loadRandomArticles('<h4 class="ft-gray">${randomArticlesLabel}</h4>');

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>

View File

@@ -1,3 +1,20 @@
/**
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2019, b3log.org & hacpai.com
*
* 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/>.
*/
body.top-navbar {
padding-top: 60px;
}
@@ -47,66 +64,11 @@ a:hover {
}
/* emotions */
.em00, .em01, .em02, .em03, .em04, .em05, .em06, .em07, .em08, .em09, .em10, .em11, .em12, .em13, .em14 {
cursor: pointer;
background-image: url("../images/emotions/emotions-ease.png");
float: left;
height: 24px;
margin-right: 5px;
width: 24px;
transition: all .2s ease-out;
-webkit-transition: all .2s ease-out;
-moz-transition: all .2s ease-out;
}
#emotions span:hover {
transform: scale(1.2) rotate(360deg);
-webkit-transform: scale(1.2) rotate(360deg);
-moz-transform: scale(1.2) rotate(360deg);
}
.em01 {
background-position: -24px 0;
}
.em02 {
background-position: -48px 0;
}
.em03 {
background-position: -72px 0;
}
.em04 {
background-position: -96px 1px;
}
.em05 {
background-position: 0 -24px;
}
.em06 {
background-position: -24px -24px;
}
.em07 {
background-position: -48px -24px;
}
.em08 {
background-position: -72px -24px;
}
.em09 {
background-position: -96px -24px;
}
.em10 {
background-position: 0 -48px;
}
.em11 {
background-position: -24px -48px ;
}
.em12 {
background-position: -48px -48px;
}
.em13 {
background-position: -72px -48px;
}
.em14 {
background-position: -96px -48px;
}
/* emotions */
.form-actions-m{

View File

@@ -1 +1 @@
body.top-navbar{padding-top:60px}a:hover{text-decoration:none;color:#00B}.page-header a{color:#000}.page-header a:hover{color:#9a9a9a}.page-header-m{margin:20px 0 5px}.page-header-bottom{margin:0 0 5px;font-size:12px;color:#585858}.article-tags{color:#676767;font-size:12px}.article-tags a{text-decoration:none}#footer{margin-top:20px}#footer .container{padding:10px 15px 10px}.pagination-btn{margin-top:20px}.em00,.em01,.em02,.em03,.em04,.em05,.em06,.em07,.em08,.em09,.em10,.em11,.em12,.em13,.em14{cursor:pointer;background-image:url("../images/emotions/emotions-ease.png");float:left;height:24px;margin-right:5px;width:24px;transition:all .2s ease-out;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.em01{background-position:-24px 0}.em02{background-position:-48px 0}.em03{background-position:-72px 0}.em04{background-position:-96px 1px}.em05{background-position:0 -24px}.em06{background-position:-24px -24px}.em07{background-position:-48px -24px}.em08{background-position:-72px -24px}.em09{background-position:-96px -24px}.em10{background-position:0 -48px}.em11{background-position:-24px -48px}.em12{background-position:-48px -48px}.em13{background-position:-72px -48px}.em14{background-position:-96px -48px}.form-actions-m{padding-left:0!important;padding-bottom:0;margin-bottom:0;background-color:#f1f1f1}.article-relative{background-color:#fcfcfc;box-shadow:0 0 2px #d5d5d5;padding:5px 0 5px 20px}.article-relative:hover{background-color:#fff;box-shadow:0 0 4px #d5d5d5}.article-relative ul{list-style:none}.article-comments{margin-bottom:20px;position:relative}.comment-body-ref{position:absolute;left:86px;width:80%}.bs-docs-example{padding:20px;*padding-top:0;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-bottom:20px}.bs-docs-example-child{padding:5px;*padding-top:0;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}#tags.other-main{list-style:none}#tags li{float:left;height:38px}#tags a{margin:3px 6px;padding:3px 12px;background-color:#fcfcfc;box-shadow:0 0 2px #d5d5d5;float:left}#tags a:hover{text-shadow:0 0 2px;text-decoration:none;box-shadow:0 0 4px #d5d5d5;color:#769abb}.tags1,.tags1:visited{font-size:12px;color:#a7a7a7}.tags2,.tags2:visited{font-size:14px;color:#808080}.tags3,.tags3:visited{font-size:16px;color:#595959}.tags4,.tags4:visited{font-size:18px;color:#323232}.tags5,.tags5:visited{font-size:20px;color:#0a0a0a}
#tags.other-main,.article-relative ul{list-style:none}#tags a:hover,.article-tags a,a:hover{text-decoration:none}body.top-navbar{padding-top:60px}a:hover{color:#00B}.page-header a{color:#000}.page-header a:hover{color:#9A9A9A}.page-header-m{margin:20px 0 5px}.page-header-bottom{margin:0 0 5px;font-size:12px;color:#585858}#footer,.pagination-btn{margin-top:20px}.article-tags{color:#676767;font-size:12px}#footer .container{padding:10px 15px}#emotions span:hover{transform:scale(1.2) rotate(360deg);-webkit-transform:scale(1.2) rotate(360deg);-moz-transform:scale(1.2) rotate(360deg)}.form-actions-m{padding-left:0!important;padding-bottom:0;margin-bottom:0;background-color:#f1f1f1}.article-relative{background-color:#FCFCFC;box-shadow:0 0 2px #D5D5D5;padding:5px 0 5px 20px}.article-relative:hover{background-color:#fff;box-shadow:0 0 4px #D5D5D5}.article-comments{margin-bottom:20px;position:relative}.comment-body-ref{position:absolute;left:86px;width:80%}.bs-docs-example{padding:20px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-bottom:20px}.bs-docs-example-child{padding:5px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}#tags li{float:left;height:38px}#tags a{margin:3px 6px;padding:3px 12px;background-color:#FCFCFC;box-shadow:0 0 2px #D5D5D5;float:left}#tags a:hover{text-shadow:0 0 2px;box-shadow:0 0 4px #D5D5D5;color:#769abb}.tags1,.tags1:visited{font-size:12px;color:#a7a7a7}.tags2,.tags2:visited{font-size:14px;color:grey}.tags3,.tags3:visited{font-size:16px;color:#595959}.tags4,.tags4:visited{font-size:18px;color:#323232}.tags5,.tags5:visited{font-size:20px;color:#0a0a0a}

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<footer id="footer">
<div class="navbar-inner">
<div class="container">

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<header id="banner" class="navbar navbar-fixed-top" role="banner" style="z-index: 9;">
<div class="navbar-inner">
<div class="container">

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>

View File

@@ -1,3 +1,20 @@
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2019, b3log.org & hacpai.com
*
* 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/>.
*/
var bootstyle = {
getCurrentPage: function () {
var $next = $(".pagination-btn");

View File

@@ -1,6 +1 @@
var bootstyle={getCurrentPage:function(){var $next=$(".pagination-btn");if($next.length>0){window.currentPage=$next.data("page");}},setNavCurrent:function(){$(".nav li a").each(function(){var $this=$(this);var path1=latkeConfig.servePath+location.pathname,path2=latkeConfig.servePath+location.pathname.substr(0,location.pathname.length-1);if($this.attr("href")===path1||$this.attr("href")===path2){$this.parent().addClass("active");}else if(/\/[0-9]+$/.test(location.pathname)){$(".nav li")[0].className="current";}});},setCommentEmotions:function(){$(".comments").each(function(){$(this).html(Util.replaceEmString($(this).html()));});},init:function(){this.getCurrentPage();this.setNavCurrent();this.setCommentEmotions();}};$(function(){bootstyle.init();})
var getNextPage=function(){var $more=$(".pagination-btn");currentPage+=1;var path="/articles/";if(location.pathname.indexOf("tags")>-1){var tagsPathnaem=location.pathname.split("/tags/");var tags=tagsPathnaem[1].split("/");path="/articles/tags/"+tags[0]+"/";}else if(location.pathname.indexOf("archives")>-1){var archivesPathname=location.pathname.split("/archives/");var archives=archivesPathname[1].split("/");path="/articles/archives/"+archives[0]+"/"+archives[1]+"/";}
var nextLabel='',btn_background='';$.ajax({url:latkeConfig.servePath+path+currentPage,type:"GET",beforeSend:function(){nextLabel=$more.text();btn_background=$more.css('background');$more.text(' ').css("background","url("+latkeConfig.staticServePath+"/skins/ease/images/ajax-loader.gif) no-repeat scroll center center #fefefe");},success:function(result,textStatus){var pagination=result.rslts.pagination;for(var i=0;i<result.rslts.articles.length;i++){var article=result.rslts.articles[i];var articleHTML=new Array();articleHTML.push('<div class="page-header page-header-m">');articleHTML.push('<h3><a href="'+article.articlePermalink+'">'+article.articleTitle+'</a></h3>');articleHTML.push('</div>');articleHTML.push('<div class="page-header-bottom"><span>');articleHTML.push('<li class="icon-time"></li>');if(article.hasUpdated){articleHTML.push(Util.toDate(article.articleUpdateDate,' yyyy-MM-dd HH:mm '));}else{articleHTML.push(Util.toDate(article.articleCreateDate,' yyyy-MM-dd HH:mm '));}
articleHTML.push('</span><span><li class="icon-user"></li>');articleHTML.push('<a href="/authors/'+article.authorId+'" title="'+Label.authorLabel+': '+article.authorName+'"> ');articleHTML.push(article.authorName);articleHTML.push(' </a>');articleHTML.push('</span><div class="pull-right"><span>');articleHTML.push('<li class="icon-eye-open"></li>');articleHTML.push('<a href="'+article.articlePermalink+'"> ');articleHTML.push(article.articleViewCount+' '+Label.viewLabel);articleHTML.push(' </a>');articleHTML.push('</span><span><li class="icon-comment"></li>');articleHTML.push('<a href="'+article.articlePermalink+'#comments"> '+article.articleCommentCount+' '+Label.commentLabel+' </a>');articleHTML.push('</span></div></div>');articleHTML.push(article.articleAbstract);articleHTML.push('<div class="article-tags">');articleHTML.push('<li class="icon-tags"></li>'+Label.tag1Label);var articleTags=article.articleTags.split(',');for(var j=0;j<articleTags.length;j++){var articleTag=articleTags[j];articleHTML.push('<span>');articleHTML.push('<a href="'+latkeConfig.servePath+'/tags/'+articleTag+'">');articleHTML.push(articleTag);articleHTML.push('</a></span>');}
articleHTML.push('</div>');$more.before(articleHTML.join(''));}
if(pagination.paginationPageCount===currentPage){$more.remove();}else{$more.text(nextLabel).css("background",'');}}});};
var bootstyle={getCurrentPage:function(){var a=$(".pagination-btn");0<a.length&&(window.currentPage=a.data("page"))},setNavCurrent:function(){$(".nav li a").each(function(){var a=$(this),t=latkeConfig.servePath+location.pathname,e=latkeConfig.servePath+location.pathname.substr(0,location.pathname.length-1);a.attr("href")===t||a.attr("href")===e?a.parent().addClass("active"):/\/[0-9]+$/.test(location.pathname)&&($(".nav li")[0].className="current")})},setCommentEmotions:function(){$(".comments").each(function(){$(this).html(Util.replaceEmString($(this).html()))})},init:function(){this.getCurrentPage(),this.setNavCurrent(),this.setCommentEmotions()}};$(function(){bootstyle.init()});var getNextPage=function(){var c=$(".pagination-btn");currentPage+=1;var a="/articles/";if(-1<location.pathname.indexOf("tags"))a="/articles/tags/"+location.pathname.split("/tags/")[1].split("/")[0]+"/";else if(-1<location.pathname.indexOf("archives")){var t=location.pathname.split("/archives/")[1].split("/");a="/articles/archives/"+t[0]+"/"+t[1]+"/"}var h="";$.ajax({url:latkeConfig.servePath+a+currentPage,type:"GET",beforeSend:function(){h=c.text(),c.css("background"),c.text(" ").css("background","url("+latkeConfig.staticServePath+"/skins/ease/images/ajax-loader.gif) no-repeat scroll center center #fefefe")},success:function(a,t){for(var e=a.rslts.pagination,s=0;s<a.rslts.articles.length;s++){var i=a.rslts.articles[s],n=new Array;n.push('<div class="page-header page-header-m">'),n.push('<h3><a href="'+i.articlePermalink+'">'+i.articleTitle+"</a></h3>"),n.push("</div>"),n.push('<div class="page-header-bottom"><span>'),n.push('<li class="icon-time"></li>'),i.hasUpdated?n.push(Util.toDate(i.articleUpdateDate," yyyy-MM-dd HH:mm ")):n.push(Util.toDate(i.articleCreateDate," yyyy-MM-dd HH:mm ")),n.push('</span><span><li class="icon-user"></li>'),n.push('<a href="/authors/'+i.authorId+'" title="'+Label.authorLabel+": "+i.authorName+'"> '),n.push(i.authorName),n.push(" </a>"),n.push('</span><div class="pull-right"><span>'),n.push('<li class="icon-eye-open"></li>'),n.push('<a href="'+i.articlePermalink+'"> '),n.push(i.articleViewCount+" "+Label.viewLabel),n.push(" </a>"),n.push('</span><span><li class="icon-comment"></li>'),n.push('<a href="'+i.articlePermalink+'#comments"> '+i.articleCommentCount+" "+Label.commentLabel+" </a>"),n.push("</span></div></div>"),n.push(i.articleAbstract),n.push('<div class="article-tags">'),n.push('<li class="icon-tags"></li>'+Label.tag1Label);for(var r=i.articleTags.split(","),l=0;l<r.length;l++){var o=r[l];n.push("<span>"),n.push('<a href="'+latkeConfig.servePath+"/tags/"+o+'">'),n.push(o),n.push("</a></span>")}n.push("</div>"),c.before(n.join(""))}e.paginationPageCount===currentPage?c.remove():c.text(h).css("background","")}})};

View File

@@ -1,17 +1,19 @@
#
# Copyright (c) 2009, 2010, 2011, B3log Team
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2019, b3log.org & hacpai.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 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.
#
# http://www.apache.org/licenses/LICENSE-2.0
# 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.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 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/>.
#
#

View File

@@ -1,17 +1,19 @@
#
# Copyright (c) 2009, 2010, 2011, B3log Team
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2019, b3log.org & hacpai.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 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.
#
# http://www.apache.org/licenses/LICENSE-2.0
# 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.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 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/>.
#
#

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#macro comments commentList article>
<!-- comments -->
<div id="comments" class="comments article-comments">
@@ -25,7 +44,7 @@
<i class="icon-time"></i>
${comment.commentDate?string("yyyy-MM-dd HH:mm:ss")}
<i class="icon-comment"></i>
<a rel="nofollow" href="javascript:replyTo('${comment.oId}');">${replyLabel}</a>
<a rel="nofollow" href="javascript:page.toggleEditor('${comment.oId}', '${comment.commentName}');">${replyLabel}</a>
</span>
</h4>
${comment.commentContent}
@@ -39,119 +58,9 @@
<!-- Leave a comment -->
<#if article.commentable>
<form class="well form-horizontal" id="commentForm">
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" id="commentName" placeholder="${commentNameLabel}">
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i></span>
<input type="text" id="commentEmail" placeholder="${commentEmailLabel}">
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-globe"></i></span>
<input type="text" id="commentURL" placeholder="${commentURLLabel}">
</div>
</div>
<div class="control-group">
<span id="emotions">
<span class="em00" title="${em00Label}"></span>
<span class="em01" title="${em01Label}"></span>
<span class="em02" title="${em02Label}"></span>
<span class="em03" title="${em03Label}"></span>
<span class="em04" title="${em04Label}"></span>
<span class="em05" title="${em05Label}"></span>
<span class="em06" title="${em06Label}"></span>
<span class="em07" title="${em07Label}"></span>
<span class="em08" title="${em08Label}"></span>
<span class="em09" title="${em09Label}"></span>
<span class="em10" title="${em10Label}"></span>
<span class="em11" title="${em11Label}"></span>
<span class="em12" title="${em12Label}"></span>
<span class="em13" title="${em13Label}"></span>
<span class="em14" title="${em14Label}"></span>
</span>
<div>
<textarea rows="7" cols="96" id="comment" class="input-block-level"></textarea>
</div>
</div>
<div class="control-group">
<div class="input-prepend">
<span class="add-on"><i class="icon-check"></i></span>
<input type="text" id="commentValidate"/>
<img id="captcha" alt="validate" src="${servePath}/captcha.do" class="img-polaroid" style="margin-left: 5px;" />
</div>
</div>
<div class="form-actions form-actions-m pagination-right">
<span class="pull-left text-error" id="commentErrorTip"></span>
<button id="submitCommentButton" type="button" onclick="page.submitComment();" class="btn btn-primary">${submmitCommentLabel}</button>
</div>
</form>
<textarea rows="3" placeholder="${postCommentsLabel}" id="comment" class="input-block-level"></textarea>
<#if externalRelevantArticlesDisplayCount?? && 0 != externalRelevantArticlesDisplayCount>
<div id="externalRelevantArticles" class="article-relative"></div>
</#if>
</#if>
</#macro>
<#macro comment_script oId>
<script type="text/javascript" src="${staticServePath}/js/page${miniPostfix}.js?${staticResourceVersion}" charset="utf-8"></script>
<script type="text/javascript">
var page = new Page({
"nameTooLongLabel": "${nameTooLongLabel}",
"mailCannotEmptyLabel": "${mailCannotEmptyLabel}",
"mailInvalidLabel": "${mailInvalidLabel}",
"commentContentCannotEmptyLabel": "${commentContentCannotEmptyLabel}",
"captchaCannotEmptyLabel": "${captchaCannotEmptyLabel}",
"captchaErrorLabel": "${captchaErrorLabel}",
"loadingLabel": "${loadingLabel}",
"oId": "${oId}",
"skinDirName": "${skinDirName}",
"blogHost": "${blogHost}",
"randomArticles1Label": "${randomArticlesLabel}",
"externalRelevantArticles1Label": "${externalRelevantArticlesLabel}"
});
var addComment = function (result, state) {
var html = new Array();
html.push('<div class="media bs-docs-example-child" id="'+result.oId+'">');
html.push('<a class="pull-left" href="#" target="_blank">');
html.push('<img class="media-object img-polaroid" data-src="holder.js/64x64" style="width: 64px; height: 64px;" src="'+result.commentThumbnailURL+'">');
html.push('</a>');
html.push('<div class="media-body" id="'+result.oId+'">');
html.push('<h4 class="media-heading">');
html.push(result.replyNameHTML);
if (state !== "") {
var commentOriginalCommentName = $("#" + page.currentCommentId + " .media-heading a").first().text();
html.push('&nbsp;<i class="icon-share-alt"></i>');
html.push('&nbsp;<a href="${servePath}' + result.commentSharpURL.split("#")[0] + '#' + page.currentCommentId + '"'
+ 'onmouseover="page.showComment(this, \'' + page.currentCommentId + '\', 20);"'
+ 'onmouseout="page.hideComment(\'' + page.currentCommentId + '\')">'+commentOriginalCommentName+'</a>');
}
html.push('<span class="pull-right" style="font-size: 12px;font-weight: normal;color: #676767;">');
html.push('<i class="icon-time"></i> '+ result.commentDate.substring(0, 19));
html.push('&nbsp;<i class="icon-comment"></i>&nbsp;');
html.push('<a rel="nofollow" href="javascript:replyTo(\''+result.oId+'\');">${replyLabel}</a>');
html.push('</span>');
html.push('</h4>');
html.push(Util.replaceEmString($("#comment" + state).val().replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\n/g,"<br/>")));
return html.join('');
}
var replyTo = function (id) {
var commentFormHTML = "<form class='well form-horizontal' id='replyForm'>";
page.addReplyForm(id, commentFormHTML,'</form>');
};
(function () {
page.load();
// emotions
page.replaceCommentsEm("#comments .article-body");
<#nested>
})();
</script>
</#macro>

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#macro head title>
<meta charset="utf-8" />
<title>${title}</title>

View File

@@ -1,5 +1,25 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<#include "macro-comments.ftl">
<#include "../../common-template/macro-comment_script.ftl">
<!DOCTYPE html>
<html>
<head>
@@ -20,6 +40,6 @@
</div>
</div>
<#include "footer.ftl">
<@comment_script oId=page.oId></@comment_script>
<@comment_script oId=page.oId commentable=page.commentable></@comment_script>
</body>
</html>

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#if "" != noticeBoard>
<section class="widget-1 widget">
<div class="widget-inner">

View File

@@ -1,17 +1,19 @@
#
# Copyright (C) 2009, 2010, 2011, B3log Team
# Solo - A small and beautiful blogging system written in Java.
# Copyright (c) 2010-2019, b3log.org & hacpai.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 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.
#
# http://www.apache.org/licenses/LICENSE-2.0
# 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.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 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/>.
#
#

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>

View File

@@ -1,3 +1,22 @@
<#--
Solo - A small and beautiful blogging system written in Java.
Copyright (c) 2010-2019, b3log.org & hacpai.com
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/>.
-->
<#include "macro-head.ftl">
<!DOCTYPE html>
<html>