问题:我正在尝试将此列表过滤器(此处为http://listjs.com/examples)添加到Etherpad-Lite的主页,并安装了插件“small_list”。我们的想法是,此过滤器将过滤主页上列出的所有打击垫。
我根本不会称自己为程序员,所以请耐心等待!但这些是我自己试图弄清楚的步骤。我花了最近两天的时间试图解决这个问题,所以我希望那里有人会对我有些遗憾。我假设任何能帮助我的人都已经在他们的计算机上安装了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的应用程序的实际索引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>
任何帮助将不胜感激!提前致谢。