让NodeBB作为你的博客的评论引擎/小部件

・8 分钟阅读

  • 源代码名称: nodebb-plugin-blog-comments
  • 源代码网址: https://www.github.com/psychobunny/nodebb-plugin-blog-comments
  • nodebb-plugin-blog-comments的文档
  • nodebb-plugin-blog-comments的源代码下载
  • Git URL:
    git://www.github.com/psychobunny/nodebb-plugin-blog-comments.git
  • Git Clone代码到本地:
    git clone https://www.github.com/psychobunny/nodebb-plugin-blog-comments
  • Subversion代码到本地:
    $ svn co --depth empty https://www.github.com/psychobunny/nodebb-plugin-blog-comments
                              Checked out revision 1.
                              $ cd repo
                              $ svn up trunk
              
  • NodeBB博客评论

    让NodeBB充当博客的评论引擎小部件,当前支持ghost和wordPress ,pencilBlue支持有独立的repo ,如果你想查看其他CMS/blog系统的支持,请在我们的跟踪器上提交问题。

    文章被发布到一个论坛类别,并将获得一个标记,将它链接到原始文章。

    :0.3 x中的新增内容

    • 修复了几个服务器崩溃(特别是在发布时)
    • NodeBB 0,6 x+和Ghost 0510兼容
    • 添加了对Ghost的标签支持
    • 添加评论支持

    屏幕快照

    blog comments

    安装

    首先安装插件:

    
    npm install nodebb-plugin-blog-comments
    
    
    
    

    激活ACP中的插件并重新启动NodeBB ,确保你在博客上写了正确的网址。

    Ghost安装

    yourtheme/post.hbs中粘贴任何内容,在{{#post}}{{/post}}之间,所有你必须编辑的是3(nbb.url )行-将网址放在论坛页面的NodeBB主页上。

    <aid="nodebb-comments"></a>
    <scripttype="text/javascript">var nbb = {};nbb.url='//your.nodebb.com'; // EDIT THISnbb.cid=1; // OPTIONAL. Forces a Category ID in NodeBB.// Omit it to fallback to specified IDs in the admin panel.(function() {nbb.articleID='{{../post.id}}'; nbb.title='{{../post.title}}';nbb.tags= [{{#../post.tags}}"{{name}}",{{/../post.tags}}];nbb.script=document.createElement('script'); nbb.script.type='text/javascript'; nbb.script.async=true;nbb.script.src=nbb.url+'/plugins/nodebb-plugin-blog-comments/lib/ghost.js';(document.getElementsByTagName('head')[0] ||document.getElementsByTagName('body')[0]).appendChild(nbb.script);})();</script>
    <scriptid="nbb-markdown"type="text/markdown">{{../post.markdown}}</script>
    <noscript>Please enable JavaScript to view comments</noscript>

    如果你愿意,你可以移动 <a id="nodebb-comments"></a> 到你想要放置实际注释小部件的位置。

    Wordpress安装

    首先,安装WordPress JSON应用程序接口插件。

    替换内容 /wp-content/themes/YOUR_THEME/comments.php 使用以下(旧的comments.php,以防万一):

    <?php
    if ( post_password_required() )
     return;
    ?>
    <aid="nodebb-comments"></a>
    <scripttype="text/javascript">var nodeBBURL ='//your.nodebb.com', wordpressURL ='<?php get_site_url(); ?>', articleID ='<?php echo the_ID(); ?>', categoryID =1; // OPTIONAL. Forces a Category ID in NodeBB.// Omit it to fallback to specified IDs in the admin panel.(function() {var nbb =document.createElement('script'); nbb.type='text/javascript'; nbb.async=true;nbb.src= nodeBBURL +'/plugins/nodebb-plugin-blog-comments/lib/wordpress.js';(document.getElementsByTagName('head')[0] ||document.getElementsByTagName('body')[0]).appendChild(nbb);})();</script>
    <noscript>Please enable JavaScript to view comments</noscript>

    常规-PHP例子

    将此粘贴到你想要加载评论系统的任何位置。所有你必须编辑的是第3(nodeBBURL )行,将网址放在论坛页面的NodeBB主页上,你还可以使用任何模板引擎(HBS,生态... ... )而不仅仅是PHP 。

     <aid="nodebb-comments"></a>
     <scripttype="text/javascript">var nodeBBURL ='//your.nodebb.com',<?php  echo "articleID = " .getId().";"; $obj =newstdClass(); $obj->title_plain =""; $obj->url=""; $obj->tags = []; $obj->markDownContent=""; $obj->cid =1; // OPTIONAL. Forces a Category ID in NodeBB.// Omit it to fallback to specified IDs in the admin panel. echo "var articleData =" .json_encode($obj).";";?> (function() {var nbb =document.createElement('script'); nbb.type='text/javascript'; nbb.async=true;nbb.src= nodeBBURL +'/plugins/nodebb-plugin-blog-comments/lib/generalphp.js'; (document.getElementsByTagName('head')[0] ||document.getElementsByTagName('body')[0]).appendChild(nbb); })();</script><noscript>Please enable JavaScript to view comments</noscript>

    你的网站上必须有getId()功能,例如:

    对于PHP网站

    <?phpfunctiongetId(){$id=0;// unique id for each page of your websitereturn$id; }?>

    如果没有此标识,则可以使用此函数从URL生成唯一标识:

    <?phpfunctiongetId(){return stringToInteger($_SERVER['REQUEST_URI']); }functionstringToInteger($string) {$string=md5($string);$output='1';for ($i=0; $i<strlen($string); $i++) {$output.= (string) ord($string[$i]); }return (int) $output; }?>

    注释计数器

    你可以选择使用以下代码将"#评论"计数器放置在页面的任意位置:

    <spanid="nodebb-comments-count"></span> Comments

    将来的版本中将提供一种查询另一个单独页面上的注释数量的机制。

    作者和类别信息

    要使用NodeBB的类别和作者信息(而不是使用Ghost 的用户/标签系统),此插件会搜索两个元素:

    Published by <spanid="nodebb-comments-author"></span> in <spanid="nodebb-comments-category"></span>

    发布

    你还可以在NodeBB中创建publishers组,以允许一组常规用户拥有发布权限。

    多博客

    你可以在ACP中使用逗号分隔的博客条目来支持从单独的博客网络发布到你的论坛。你也可以选择将每个博客放在自己的专用类别中,或者将它们全部放到一个类别中。

    使用此插件的站点

    • nodeBB的Blog (Ghost),
    • The Unknown Artist Hour (Ghost),
    • Burn after compiling (Wordpress ),
    • Strange Adventures In (Ghost )

    请提交你的网站以添加你的网站:)

    待办事项

    • 重新发布(现在你只需编辑文章和发布的博客)。
    • 从适当的插件中提取CSS文件? 将自定义CSS加载到样式小部件的能力。
    讨论
    Fansisi profile image