Jon*_*ert 5 html csv json bookmarks datatables
我有数百个多年来收集的书签,我想将它们放入一个可搜索的表格中,其中包含类别、类型、描述等额外信息。
我的第一次尝试是手动将它们放入一个 JSON 文件中,然后使用 DataTables 插件来显示它们,但是,这既乏味又耗时。
第二次尝试是使用 Wordpress 并使用高级自定义字段来执行此操作,但仍然很乏味。
显然,我可以将我的书签导出为 HTML 文件,我正在考虑编辑和设置此文件的样式以满足我的需要,但它绝对是庞大的,并且还包含大量无关信息。我一直在尝试使用此文件的 CSV 转换将其导入到各种 Wordpress 插件中,这些插件说它们提供了这个确切的功能以了解其有效性。我也试过用 firefox 的备份做类似的事情,该备份导出到 JSON 文件,但再次没有运气。
我知道我将不得不手动输入一些信息,但我正在努力将工作量减少大约三分之一。我会以错误的方式解决这个问题吗?甚至有可能吗?只是想知道是否有人尝试过做同样的事情以及他们是如何做到的。
这是一个可爱的挑战,谢谢。基本上,我所做的是将导出的书签保存为 HTML,然后创建一个带有空表的简单页面。然后我的 JS 这样做:
$(function() {
var example = $("#example").DataTable({
"responsive": true,
"columns": [
{
"title": "Title",
"data": "text"
},{
"title": "Date added",
"data": "date",
"render": function(d){
return moment(d, "X").format("DD/MM/YYYY");
}
},{
"title": "URI",
"data": "href",
"render": function(d){
return $("<a></a>",{
"text": d,
"href": d
}).prop("outerHTML");
}
}
],
"initComplete": function(settings, json) {
$.get("bookmarks_12_2_16.html", function( data ) {
$(data).find("dl").children("dt").children("a").each(function(k, v){
if(!~~$(v).attr("href").indexOf("http")){
example.row.add({
"href": $(v).attr("href"),
"text": $(v).text(),
"date": $(v).attr("add_date")
});
}
});
example.draw();
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
基本上它get是 HTML 并遍历dts 中的s dl,如果href是http或https,则将其添加到具有正确日期的表中(您的日期功能可能必须有所不同,因为我在英国和我'正在使用momentjs)。希望有帮助。