diff --git a/core/language/en-GB/Filters.multids b/core/language/en-GB/Filters.multids
index 652b78f3c..45f8991fc 100644
--- a/core/language/en-GB/Filters.multids
+++ b/core/language/en-GB/Filters.multids
@@ -11,3 +11,4 @@ SystemTiddlers: System tiddlers
ShadowTiddlers: Shadow tiddlers
OverriddenShadowTiddlers: Overridden shadow tiddlers
SystemTags: System tags
+TypedTiddlers: Non wiki-text tiddlers
\ No newline at end of file
diff --git a/core/language/en-GB/Misc.multids b/core/language/en-GB/Misc.multids
index 9fc58aa59..819d77ec4 100644
--- a/core/language/en-GB/Misc.multids
+++ b/core/language/en-GB/Misc.multids
@@ -9,7 +9,7 @@ ConfirmDeleteTiddler: Do you wish to delete the tiddler "<$text text=<
>/>
ConfirmOverwriteTiddler: Do you wish to overwrite the tiddler "<$text text=<>/>"?
ConfirmEditShadowTiddler: You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit "<$text text=<>/>"?
DefaultNewTiddlerTitle: New Tiddler
-DropMessage: Drop here (or click escape to cancel)
+DropMessage: Drop here (or use the 'Escape' key to cancel)
Encryption/ConfirmClearPassword: Do you wish to clear the password? This will remove the encryption applied when saving this wiki
Encryption/PromptSetPassword: Set a new password for this TiddlyWiki
InvalidFieldName: Illegal characters in field name "<$text text=<>/>". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)
diff --git a/core/modules/filters.js b/core/modules/filters.js
index 15dde5f75..8fbcac587 100644
--- a/core/modules/filters.js
+++ b/core/modules/filters.js
@@ -13,8 +13,8 @@ Adds tiddler filtering methods to the $tw.Wiki object.
"use strict";
/*
-Parses an operation within a filter string
- results: Array of array of operator nodes into which results should be inserted
+Parses an operation (i.e. a run) within a filter string
+ operators: Array of array of operator nodes into which results should be inserted
filterString: filter string
p: start position within the string
Returns the new start position, after the parsed operation
@@ -108,7 +108,7 @@ exports.parseFilter = function(filterString) {
p = 0, // Current position in the filter string
match;
var whitespaceRegExp = /(\s+)/mg,
- operandRegExp = /((?:\+|\-)?)(?:(\[)|("(?:[^"])*")|('(?:[^'])*')|([^\s\[\]]+))/mg;
+ operandRegExp = /((?:\+|\-)?)(?:(\[)|(?:"([^"]*)")|(?:'([^']*)')|([^\s\[\]]+))/mg;
while(p < filterString.length) {
// Skip any whitespace
whitespaceRegExp.lastIndex = p;
@@ -202,6 +202,7 @@ exports.compileFilter = function(filterString) {
if(operator.variable) {
operand = widget.getVariable(operator.operand,{defaultValue: ""});
}
+ // Invoke the appropriate filteroperator module
results = operatorFunction(accumulator,{
operator: operator.operator,
operand: operand,
diff --git a/core/modules/wiki.js b/core/modules/wiki.js
index ec56d97b7..bfc0f146a 100755
--- a/core/modules/wiki.js
+++ b/core/modules/wiki.js
@@ -524,7 +524,7 @@ exports.sortByList = function(array,listTitle) {
if(!array || array.length === 0) {
return [];
} else {
- var titles = [], t, title;
+ var t, title, titles = [], unlisted = [];
// First place any entries that are present in the list
for(t=0; t
+<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/MoreSideBar/Drafts.tid b/core/ui/MoreSideBar/Drafts.tid
index 736445868..30e4ec222 100644
--- a/core/ui/MoreSideBar/Drafts.tid
+++ b/core/ui/MoreSideBar/Drafts.tid
@@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Drafts
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/Drafts/Caption}}
-<$list filter="[has[draft.of]sort[title]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter={{$:/core/Filters/Drafts!!filter}} template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/MoreSideBar/Missing.tid b/core/ui/MoreSideBar/Missing.tid
index b8382da6a..f04d5250c 100644
--- a/core/ui/MoreSideBar/Missing.tid
+++ b/core/ui/MoreSideBar/Missing.tid
@@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Missing
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/Missing/Caption}}
-<$list filter="[all[missing]sort[title]]" template="$:/core/ui/MissingTemplate"/>
+<$list filter={{$:/core/Filters/Missing!!filter}} template="$:/core/ui/MissingTemplate"/>
diff --git a/core/ui/MoreSideBar/Orphans.tid b/core/ui/MoreSideBar/Orphans.tid
index 9485e887f..28660471d 100644
--- a/core/ui/MoreSideBar/Orphans.tid
+++ b/core/ui/MoreSideBar/Orphans.tid
@@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Orphans
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/Orphans/Caption}}
-<$list filter="[all[orphans]sort[title]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter={{$:/core/Filters/Orphans!!filter}} template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/MoreSideBar/Shadows.tid b/core/ui/MoreSideBar/Shadows.tid
index d7ca78493..f403c7f4c 100644
--- a/core/ui/MoreSideBar/Shadows.tid
+++ b/core/ui/MoreSideBar/Shadows.tid
@@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/Shadows
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/Shadows/Caption}}
-<$list filter="[all[shadows]sort[title]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/MoreSideBar/System.tid b/core/ui/MoreSideBar/System.tid
index 8ad930887..932e68085 100644
--- a/core/ui/MoreSideBar/System.tid
+++ b/core/ui/MoreSideBar/System.tid
@@ -2,4 +2,4 @@ title: $:/core/ui/MoreSideBar/System
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/System/Caption}}
-<$list filter="[is[system]sort[title]]" template="$:/core/ui/ListItemTemplate"/>
+<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template="$:/core/ui/ListItemTemplate"/>
diff --git a/core/ui/MoreSideBar/Tags.tid b/core/ui/MoreSideBar/Tags.tid
index b3499b527..268bca137 100644
--- a/core/ui/MoreSideBar/Tags.tid
+++ b/core/ui/MoreSideBar/Tags.tid
@@ -16,7 +16,7 @@ caption: {{$:/language/SideBar/Tags/Caption}}
$set>
-<$list filter="[tags[]!is[system]sort[title]]">
+<$list filter={{$:/core/Filters/AllTags!!filter}}>
<$transclude tiddler="$:/core/ui/TagTemplate"/>
diff --git a/core/ui/MoreSideBar/Types.tid b/core/ui/MoreSideBar/Types.tid
index deb52e17f..a23d729bb 100644
--- a/core/ui/MoreSideBar/Types.tid
+++ b/core/ui/MoreSideBar/Types.tid
@@ -2,7 +2,7 @@ title: $:/core/ui/MoreSideBar/Types
tags: $:/tags/MoreSideBar
caption: {{$:/language/SideBar/Types/Caption}}
-<$list filter="[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]">
+<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>