This has being discussed in other threads, I have added more to the maths github issue. This treatment of titles makes sense when handling sets of titles and deduplication is built into most operators this is where the challenge lays.
I think we need Jeremy Mario or other gurus to resolve this in the long run but a few well documented work arounds.
If the deduplication was removed from the operators and moved into the filter run it would be possible to define a different run without deduplication.
It should also be possible to uniquify items in a list by making them entries in a data tiddler (unique index) and increment a number and retrieve the nth item.
Regards
Tony
1: Row 1 Col 1 value
2: Row 1 Col 2 value3: Row 1 Col 3 value4: Row 2 Col 1 value5: Row 2 Col 2 value6: Row 2 Col 3 value7: Row 3 Col 1 value8: Row 3 Col 2 value9: Row 3 Col 3 value
and so on...
Split in 5.1.20 prerelease is like that exactly with space.
Tony
<$set name="HasDuplicates" value="one two two three [[twenty one]] [[twenty one]] [[forty six]]">
<$list filter="[subfilter<HasDuplicates>]">
</$list>
item1: one
item2: two
item3: two
item4: three
item5: twenty one
item6: twenty one
item7: forty six
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.enlist = function(source,operator,options) {
var list = $tw.utils.parseStringArray(operator.operand);
if(operator.prefix === "!") {
var results = [];
source(function(tiddler,title) {
if(list.indexOf(title) === -1) {
results.push(title);
}
});
return results;
} else {
return list;
}
};
})();
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.enlistallowduplicates = function(source,operator,options) {
var list = $tw.utils.parseStringArray(operator.operand,true);
if(operator.prefix === "!") {
var results = [];
source(function(tiddler,title) {
if(list.indexOf(title) === -1) {
results.push(title);
}
});
return results;
} else {
return list;
}
};
})();