问题:我正在尝试将此列表过滤器(可在此处获得,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>
任何帮助将不胜感激!提前致谢。