1

问题:我正在尝试将此列表过滤器(可在此处获得,http ://listjs.com/examples )添加到安装了插件“small_list”的 Etherpad-Lite 的主页。这个想法是这个过滤器将过滤主页上列出的所有垫。

我根本不会称自己为程序员,所以请耐心等待!但这些是我为自己解决问题而采取的步骤。我花了过去两天试图弄清楚,所以我希望那里有人会同情我。我假设任何可以帮助我的人都已经在他们的计算机上安装了 node.js,然后你可以从这里获取 etherpad-lite:https ://github.com/ether/etherpad-lite然后在 settings.json文件,取消注释:

"users": {
"admin": {
  "password": "changeme1",
  "is_admin": true
},
"user": {
  "password": "changeme1",
  "is_admin": false
} 
},

此时,您可以输入 cd etherpad-lite/bin/run.sh,它将在 localhost:9001 上运行。转到 localhost:9001/admin 并键入上面的凭据,然后快速安装插件:“small_list”。

插件文件本身位于 etherpad-lite/node_modules/ep_small_list/。据我所知,index.js 以某种方式将 div 导入到位于 etherpad-lite/src/templates/index.html 的应用程序的实际 index html 页面中。

我做了很多不同的事情来尝试让列表过滤器 (list.js) 在 small_list 插件上工作。

目前,我有这个:

var padManager = require('ep_etherpad-lite/node/db/PadManager');
var async =  require('../../src/node_modules/async');
exports.eejsBlock_indexWrapper= function(hook_name, args, cb) {
args.content += '<div id="small_list"></div><script src="/static/js/jquery.js"></script>           
<script>$(function () { $("#small_list").load("/small_list"); });</script>';};

exports.registerRoute = function(hook_name, args, cb) {
args.app.get("/small_list", function(req, res) {


    async.waterfall([
        function(callback) {
            padManager.listAllPads(callback);
        },
        function(data, callback) {
            r = '<input class="search" placeholder="Search"><button class="sort" data-sort="name">Sort by name</button><ul class="list">';
            for (p in data.padIDs){
                r += '<li><h3 class="name"><a href="/p/' + data.padIDs[p] + '">' + data.padIDs[p] + '</li>';
            }
            r += '</ul>';
            res.send(r);
        },
    ]);
});
};

我在 index.html 文件上有:

<script src="http://listjs.com/no-cdn/list.js"></script>

<script>
var options = {valueNames: [ 'name' ]};
var userList = new List("small_list", options);
</script>

任何帮助将不胜感激!提前致谢。

4

0 回答 0