mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-05-03 07:54:10 +00:00

* remove blks first try * dprint.json seems to be OK, some forgotten functions * add some more space-after-keyword settings * server remove blks * add **/files to dprint exclude * dprint.js fixes a typo * add boot.js and bootprefix.js to dprint exclude * dprint change dprint.json * add dprint fmt as script * remove jslint comments * fix whitespace * fix whitespace * remove function-wrapper from geospatial plugin * fix whitespace * add function wrapper to dyannotate-startup * remove dpring.json
75 lines
1.5 KiB
JavaScript
75 lines
1.5 KiB
JavaScript
/*\
|
|
title: $:/core/modules/macros/csvtiddlers.js
|
|
type: application/javascript
|
|
module-type: macro
|
|
|
|
Macro to output tiddlers matching a filter to CSV
|
|
|
|
\*/
|
|
|
|
"use strict";
|
|
|
|
/*
|
|
Information about this macro
|
|
*/
|
|
|
|
exports.name = "csvtiddlers";
|
|
|
|
exports.params = [
|
|
{name: "filter"},
|
|
{name: "format"},
|
|
];
|
|
|
|
/*
|
|
Run the macro
|
|
*/
|
|
exports.run = function(filter,format) {
|
|
var self = this,
|
|
tiddlers = this.wiki.filterTiddlers(filter),
|
|
tiddler,
|
|
fields = [],
|
|
t,f;
|
|
// Collect all the fields
|
|
for(t=0;t<tiddlers.length; t++) {
|
|
tiddler = this.wiki.getTiddler(tiddlers[t]);
|
|
if(tiddler) {
|
|
for(f in tiddler.fields) {
|
|
if(fields.indexOf(f) === -1) {
|
|
fields.push(f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// Sort the fields and bring the standard ones to the front
|
|
fields.sort();
|
|
"title text modified modifier created creator".split(" ").reverse().forEach(function(value,index) {
|
|
var p = fields.indexOf(value);
|
|
if(p !== -1) {
|
|
fields.splice(p,1);
|
|
fields.unshift(value)
|
|
}
|
|
});
|
|
// Output the column headings
|
|
var output = [], row = [];
|
|
fields.forEach(function(value) {
|
|
row.push(quoteAndEscape(value))
|
|
});
|
|
output.push(row.join(","));
|
|
// Output each tiddler
|
|
for(var t=0;t<tiddlers.length; t++) {
|
|
row = [];
|
|
tiddler = this.wiki.getTiddler(tiddlers[t]);
|
|
if(tiddler) {
|
|
for(f=0; f<fields.length; f++) {
|
|
row.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || "" : ""));
|
|
}
|
|
}
|
|
output.push(row.join(","));
|
|
}
|
|
return output.join("\n");
|
|
};
|
|
|
|
function quoteAndEscape(value) {
|
|
return "\"" + value.replace(/"/mg,"\"\"") + "\"";
|
|
}
|