如何创建一个列出最近评论的 Blogger 静态页面?
How Do I Create a Blogger Static Page Listing Recent Comments?
我有一个由 Blogger 托管的博客。 http://www.rocketstackrank.com
我想为 "Recent Comments" 添加一个标签,因为我认为 "Comments widget" 被埋在一边,无论如何都没有显示足够的评论。我在想,如果我给人们一个列出几十条评论的特定页面,就会有更多人回复他们。
理想情况下,我会以某种方式重新调整现有的最近评论小部件的用途。我对 HTML、CSS、JQuery 等感到满意。否则,我打算编写一个 C# 应用程序来使用 Blogger API 来提取评论和然后动态创建页面。 (并且手动 运行 该程序每天一次左右。)
但肯定有更好的方法。
为评论创建新的静态页面并在 "HTML" 模式下编辑页面。
然后你可以粘贴这样的脚本来显示最近的评论:
<script>
//<![CDATA[
function showrecentcomments(json) {
for (var i = 0; i < numcomments; i++) {
var entry = json.feed.entry[i];
var alturl;
if (i == json.feed.entry.length) {
break;
}
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
flagAnon = !1;
break;
} else {
// anonymous commenter
alturl = "http:\/\/www.rocketstackrank.com\/?showComment=#";
flagAnon = !0;
}
}
var postlink = alturl.split("?showComment=");
postlink = postlink[0];
if ("content" in entry) {
var comment = entry.content.$t;
} else
if ("summary" in entry) {
var comment = entry.summary.$t;
} else var comment = "";
var re = /<\S[^>]*>/g;
comment = comment.replace(re, "");
if (!standardstyling) document.write('<div class="bbrecpost">');
if (standardstyling) document.write('<br/>');
if (flagAnon = !1) {
document.write('<a href="' + alturl + '" style="text-decoration:none">' + entry.author[0].name.$t + ':' + '</a> ');
} else {
document.write('<a href="' + alturl + '" style="text-decoration:none">' + entry.author[0].name.$t + ':' + '</a> ');
}
if (showposttitle == true) document.write(' in ' + posttitle);
if (!standardstyling) document.write('</div><div class="bbrecpostsum">');
if (standardstyling) document.write('<div class="txtmsg"><br/></div>');
if (comment.length < numchars) {
if (standardstyling) document.write('<span style="word-break: break-word;">');
document.write(comment);
if (standardstyling) document.write('</span>');
} else {
if (standardstyling) document.write('<span style="word-break: break-word;">');
comment = comment.substring(0, numchars);
var quoteEnd = comment.lastIndexOf(" ");
comment = comment.substring(0, quoteEnd);
document.write(comment + '...<a href="' + alturl + '">(Read more)</a>');
if (standardstyling) document.write('</span>');
}
if (!standardstyling) document.write('</div>');
if (standardstyling) document.write('<br/>');
}
if (!standardstyling) document.write('<div class="bbwidgetfooter">');
if (standardstyling) document.write('<div style="height:6px;width:100%;"></div>');
if (!standardstyling) document.write('</div>');
}
// Params
var numcomments = 5;
var showposttitle = false;
var numchars = 70;
var standardstyling = true;
//]]>
</script>
<script src='//www.rocketstackrank.com/feeds/comments/summary?max-results=5&alt=json-in-script&callback=showrecentcomments'></script>
确保参数 numcomments = INTEGER
(在脚本中)等于回调脚本中的 max-results=INTEGER
。
使用参数 numchars = INTEGER
可以设置评论预览的长度。
发布您的页面,保持 Blogger 编辑器处于 HTML 模式。
作为最后的建议,根据需要检查 HTML 输出和样式,并根据要显示的内容检查 add/remove 对象。
我有一个由 Blogger 托管的博客。 http://www.rocketstackrank.com
我想为 "Recent Comments" 添加一个标签,因为我认为 "Comments widget" 被埋在一边,无论如何都没有显示足够的评论。我在想,如果我给人们一个列出几十条评论的特定页面,就会有更多人回复他们。
理想情况下,我会以某种方式重新调整现有的最近评论小部件的用途。我对 HTML、CSS、JQuery 等感到满意。否则,我打算编写一个 C# 应用程序来使用 Blogger API 来提取评论和然后动态创建页面。 (并且手动 运行 该程序每天一次左右。)
但肯定有更好的方法。
为评论创建新的静态页面并在 "HTML" 模式下编辑页面。
然后你可以粘贴这样的脚本来显示最近的评论:
<script>
//<![CDATA[
function showrecentcomments(json) {
for (var i = 0; i < numcomments; i++) {
var entry = json.feed.entry[i];
var alturl;
if (i == json.feed.entry.length) {
break;
}
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
flagAnon = !1;
break;
} else {
// anonymous commenter
alturl = "http:\/\/www.rocketstackrank.com\/?showComment=#";
flagAnon = !0;
}
}
var postlink = alturl.split("?showComment=");
postlink = postlink[0];
if ("content" in entry) {
var comment = entry.content.$t;
} else
if ("summary" in entry) {
var comment = entry.summary.$t;
} else var comment = "";
var re = /<\S[^>]*>/g;
comment = comment.replace(re, "");
if (!standardstyling) document.write('<div class="bbrecpost">');
if (standardstyling) document.write('<br/>');
if (flagAnon = !1) {
document.write('<a href="' + alturl + '" style="text-decoration:none">' + entry.author[0].name.$t + ':' + '</a> ');
} else {
document.write('<a href="' + alturl + '" style="text-decoration:none">' + entry.author[0].name.$t + ':' + '</a> ');
}
if (showposttitle == true) document.write(' in ' + posttitle);
if (!standardstyling) document.write('</div><div class="bbrecpostsum">');
if (standardstyling) document.write('<div class="txtmsg"><br/></div>');
if (comment.length < numchars) {
if (standardstyling) document.write('<span style="word-break: break-word;">');
document.write(comment);
if (standardstyling) document.write('</span>');
} else {
if (standardstyling) document.write('<span style="word-break: break-word;">');
comment = comment.substring(0, numchars);
var quoteEnd = comment.lastIndexOf(" ");
comment = comment.substring(0, quoteEnd);
document.write(comment + '...<a href="' + alturl + '">(Read more)</a>');
if (standardstyling) document.write('</span>');
}
if (!standardstyling) document.write('</div>');
if (standardstyling) document.write('<br/>');
}
if (!standardstyling) document.write('<div class="bbwidgetfooter">');
if (standardstyling) document.write('<div style="height:6px;width:100%;"></div>');
if (!standardstyling) document.write('</div>');
}
// Params
var numcomments = 5;
var showposttitle = false;
var numchars = 70;
var standardstyling = true;
//]]>
</script>
<script src='//www.rocketstackrank.com/feeds/comments/summary?max-results=5&alt=json-in-script&callback=showrecentcomments'></script>
确保参数 numcomments = INTEGER
(在脚本中)等于回调脚本中的 max-results=INTEGER
。
使用参数 numchars = INTEGER
可以设置评论预览的长度。
发布您的页面,保持 Blogger 编辑器处于 HTML 模式。
作为最后的建议,根据需要检查 HTML 输出和样式,并根据要显示的内容检查 add/remove 对象。