1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-02-12 21:19:50 +00:00

Compare commits

..

2 Commits

Author SHA1 Message Date
Jeremy Ruston
1e47b88dc7 Merge branch 'master' into wikify-operator 2025-06-03 16:39:19 +01:00
Jeremy Ruston
55cf0b2965 Add wikify operator 2024-11-07 16:26:07 +00:00
360 changed files with 838 additions and 28769 deletions

View File

@@ -2,11 +2,6 @@ name: Calculate PR build size
on:
pull_request_target:
types: [opened, reopened, synchronize]
paths:
- 'boot/**'
- 'core/**'
- 'themes/snowwhite/**'
- 'themes/vanilla/**'
jobs:
calculate-build-size:
@@ -24,7 +19,7 @@ jobs:
with:
pr_number: ${{ github.event.pull_request.number }}
repo: ${{ github.repository }}
base_ref: ${{ github.event.pull_request.base.ref }}
base_ref: ${{ github.base_ref }}
github_token: ${{ secrets.GITHUB_TOKEN }}
mode: size:calc

View File

@@ -159,13 +159,6 @@ node $TW5_BUILD_TIDDLYWIKI \
--rendertiddler $:/core/save/all-external-js tour.html text/plain \
|| exit 1
# /surveys.html surveys edition
node $TW5_BUILD_TIDDLYWIKI \
./editions/tiddlywiki-surveys \
--output $TW5_BUILD_OUTPUT \
--build index \
|| exit 1
# /share.html Custom edition for sharing via the URL
node $TW5_BUILD_TIDDLYWIKI \
./editions/share \

View File

@@ -131,14 +131,15 @@ Saving/GitService/Gitea/Caption: Gitea Saver
Saving/GitService/Gitea/Password: Personal access token for API (via Giteas web interface: `Settings | Applications | Generate New Token`)
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
Saving/TiddlySpot/BackupDir: Backup Directory
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
Saving/TiddlySpot/Backups: Backups
Saving/TiddlySpot/Caption: ~TiddlyHost Saver
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlyHost|https://tiddlyhost.com]] or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlyHost saving configuration
Saving/TiddlySpot/Caption: ~TiddlySpot Saver
Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]], or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlySpot and ~TiddlyHost saving configuration.
Saving/TiddlySpot/Filename: Upload Filename
Saving/TiddlySpot/Heading: ~TiddlyHost
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
Saving/TiddlySpot/Heading: ~TiddlySpot
Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
Saving/TiddlySpot/Password: Password
Saving/TiddlySpot/ReadOnly: Note that [[TiddlySpot|http://tiddlyspot.com]] no longer allows the creation of new sites. For new sites, you can use [[TiddlyHost|https://tiddlyhost.com]], a new hosting service that replaces ~TiddlySpot.
Saving/TiddlySpot/ServerURL: Server URL
Saving/TiddlySpot/UploadDir: Upload Directory
Saving/TiddlySpot/UserName: Wiki Name
@@ -189,8 +190,6 @@ Settings/DefaultSidebarTab/Caption: Default Sidebar Tab
Settings/DefaultSidebarTab/Hint: Specify which sidebar tab is displayed by default
Settings/DefaultMoreSidebarTab/Caption: Default More Sidebar Tab
Settings/DefaultMoreSidebarTab/Hint: Specify which More sidebar tab is displayed by default
Settings/DefaultTiddlerInfoTab/Caption: Default Tiddler Info Tab
Settings/DefaultTiddlerInfoTab/Hint: Specify which tab is displayed by default when tiddler info panel is opened
Settings/LinkToBehaviour/Caption: Tiddler Opening Behaviour
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation from //within// the story river
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation from //outside// the story river

View File

@@ -248,7 +248,8 @@ exports.compileFilter = function(filterString) {
// Create a function for the chain of operators in the operation
var operationSubFunction = function(source,widget) {
var accumulator = source,
results = [];
results = [],
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
$tw.utils.each(operation.operators,function(operator) {
var operands = [],
operatorFunction;
@@ -264,7 +265,6 @@ exports.compileFilter = function(filterString) {
}
$tw.utils.each(operator.operands,function(operand) {
if(operand.indirect) {
var currTiddlerTitle = widget && widget.getVariable("currentTiddler");
operand.value = self.getTextReference(operand.text,"",currTiddlerTitle);
} else if(operand.variable) {
var varTree = $tw.utils.parseFilterVariable(operand.text);

View File

@@ -0,0 +1,37 @@
/*\
title: $:/core/modules/filters/wikify.js
type: application/javascript
module-type: filteroperator
Filter operator wikifying each string in the input list and returning the result as a list of strings
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.wikify = function(source,operator,options) {
var output = operator.operands[0],
mode = operator.operands[1],
type = operator.operands[2],
results = [];
source(function(tiddler,title) {
var wikifier = new $tw.utils.Wikifier({
wiki: options.wiki,
widget: options.widget,
text: title,
type: type,
mode: mode,
output: output
});
results.push(wikifier.getResult());
});
return results;
};
})();

View File

@@ -44,7 +44,7 @@ UploadSaver.prototype.save = function(text,method,callback) {
}
// Construct the url if not provided
if(!url) {
url = "http://" + username + ".tiddlyhost.com/";
url = "http://" + username + ".tiddlyspot.com/store.cgi";
}
// Assemble the header
var boundary = "---------------------------" + "AaB03x";

View File

@@ -74,8 +74,9 @@ exports.startup = function() {
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
$tw.utils.copyToClipboard(event.param,{
successNotification: event.paramObject && event.paramObject.successNotification,
failureNotification: event.paramObject && event.paramObject.failureNotification
});
failureNotification: event.paramObject && event.paramObject.failureNotification,
plainText: event.paramObject && event.paramObject.plainText
},event.paramObject && event.paramObject.type);
});
// Install the tm-focus-selector message
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {

View File

@@ -265,9 +265,10 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
/*
Copy plain text to the clipboard on browsers that support it
*/
exports.copyToClipboard = function(text,options) {
options = options || {};
text = text || "";
exports.copyToClipboard = function(text,options,type) {
var text = text || "";
var options = options || {};
var type = type || "text/plain";
var textArea = document.createElement("textarea");
textArea.style.position = "fixed";
textArea.style.top = 0;
@@ -280,10 +281,16 @@ exports.copyToClipboard = function(text,options) {
textArea.style.outline = "none";
textArea.style.boxShadow = "none";
textArea.style.background = "transparent";
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
textArea.setSelectionRange(0,text.length);
textArea.addEventListener("copy",function(event) {
event.preventDefault();
if (options.plainText) {
event.clipboardData.setData("text/plain",options.plainText);
}
event.clipboardData.setData(type,text);
});
var succeeded = false;
try {
succeeded = document.execCommand("copy");

View File

@@ -143,7 +143,6 @@ Modal.prototype.display = function(title,options) {
link.setAttribute("href",tiddler.fields.help);
link.setAttribute("target","_blank");
link.setAttribute("rel","noopener noreferrer");
link.setAttribute("class","tc-tiddlylink-external");
link.appendChild(this.srcDocument.createTextNode("Help"));
modalFooterHelp.appendChild(link);
modalFooterHelp.style.float = "left";

View File

@@ -0,0 +1,108 @@
/*\
title: $:/core/modules/utils/wikifier.js
type: application/javascript
module-type: utils
A high level helper class for parsing and wikification
\*/
(function(){
/*
Options include:
wiki: wiki to be used for wikification
widget: optional widget to be used as parent of wikified text
text: text to be parsed/wikified
type: type of the text
mode: inline or block
output: text, formattedtext, html, parsetree or widgettree
*/
function Wikifier(options) {
this.wiki = options.wiki || $tw.wiki;
this.widget = options.widget || $tw.rootWidget;
this.text = options.text || "";
this.type = options.type || "";
this.mode = options.mode || "block";
this.output = options.output || "text";
// Create the parse tree
this.parser = this.wiki.parseText(this.type,this.text,{
parseAsInline: this.mode === "inline"
});
// Create the widget tree
this.widgetNode = this.wiki.makeWidget(this.parser,{
document: $tw.fakeDocument,
parentWidget: this.widget
});
// Render the widget tree to the container
this.container = $tw.fakeDocument.createElement("div");
this.widgetNode.render(this.container,null);
};
Wikifier.prototype.refresh = function(changedTiddlers) {
// Refresh the widget tree
return this.widgetNode.refresh(changedTiddlers);
};
/*
Return the result string
*/
Wikifier.prototype.getResult = function() {
var result;
switch(this.output) {
case "text":
result = this.container.textContent;
break;
case "formattedtext":
result = this.container.formattedTextContent;
break;
case "html":
result = this.container.innerHTML;
break;
case "parsetree":
result = JSON.stringify(this.parser.tree,0,$tw.config.preferences.jsonSpaces);
break;
case "widgettree":
result = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);
break;
}
return result;
};
/*
Return a string of the widget tree
*/
Wikifier.prototype.getWidgetTree = function() {
var copyNode = function(widgetNode,resultNode) {
var type = widgetNode.parseTreeNode.type;
resultNode.type = type;
switch(type) {
case "element":
resultNode.tag = widgetNode.parseTreeNode.tag;
break;
case "text":
resultNode.text = widgetNode.parseTreeNode.text;
break;
}
if(Object.keys(widgetNode.attributes || {}).length > 0) {
resultNode.attributes = {};
$tw.utils.each(widgetNode.attributes,function(attr,attrName) {
resultNode.attributes[attrName] = widgetNode.getAttribute(attrName);
});
}
if(Object.keys(widgetNode.children || {}).length > 0) {
resultNode.children = [];
$tw.utils.each(widgetNode.children,function(widgetChildNode) {
var node = {};
resultNode.children.push(node);
copyNode(widgetChildNode,node);
});
}
},
results = {};
copyNode(this.widgetNode,results);
return results;
};
exports.Wikifier = Wikifier;
})();

View File

@@ -519,3 +519,36 @@ ListJoinWidget.prototype.render = function() {}
ListJoinWidget.prototype.refresh = function() { return false; }
exports["list-join"] = ListJoinWidget;
/*
Make <$list-template> and <$list-empty> widgets that do nothing
*/
var ListTemplateWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListTemplateWidget.prototype = new Widget();
ListTemplateWidget.prototype.render = function() {}
ListTemplateWidget.prototype.refresh = function() { return false; }
exports["list-template"] = ListTemplateWidget;
var ListEmptyWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListEmptyWidget.prototype = new Widget();
ListEmptyWidget.prototype.render = function() {}
ListEmptyWidget.prototype.refresh = function() { return false; }
exports["list-empty"] = ListEmptyWidget;
var ListJoinWidget = function(parseTreeNode,options) {
// Main initialisation inherited from widget.js
this.initialise(parseTreeNode,options);
};
ListJoinWidget.prototype = new Widget();
ListJoinWidget.prototype.render = function() {}
ListJoinWidget.prototype.refresh = function() { return false; }
exports["list-join"] = ListJoinWidget;

View File

@@ -36,89 +36,22 @@ Compute the internal state of the widget
WikifyWidget.prototype.execute = function() {
// Get our parameters
this.wikifyName = this.getAttribute("name");
this.wikifyText = this.getAttribute("text");
this.wikifyType = this.getAttribute("type");
this.wikifyMode = this.getAttribute("mode","block");
this.wikifyOutput = this.getAttribute("output","text");
// Create the parse tree
this.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{
parseAsInline: this.wikifyMode === "inline"
});
// Create the widget tree
this.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{
document: $tw.fakeDocument,
parentWidget: this
});
// Render the widget tree to the container
this.wikifyContainer = $tw.fakeDocument.createElement("div");
this.wikifyWidgetNode.render(this.wikifyContainer,null);
this.wikifyResult = this.getResult();
// Create the wikifier
this.wikifier = new $tw.utils.Wikifier({
wiki: this.wiki,
widget: this,
text: this.getAttribute("text"),
type: this.getAttribute("type"),
mode: this.getAttribute("mode","block"),
output: this.getAttribute("output","text")
});
this.wikifyResult = this.wikifier.getResult();
// Set context variable
this.setVariable(this.wikifyName,this.wikifyResult);
// Construct the child widgets
this.makeChildWidgets();
};
/*
Return the result string
*/
WikifyWidget.prototype.getResult = function() {
var result;
switch(this.wikifyOutput) {
case "text":
result = this.wikifyContainer.textContent;
break;
case "formattedtext":
result = this.wikifyContainer.formattedTextContent;
break;
case "html":
result = this.wikifyContainer.innerHTML;
break;
case "parsetree":
result = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);
break;
case "widgettree":
result = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);
break;
}
return result;
};
/*
Return a string of the widget tree
*/
WikifyWidget.prototype.getWidgetTree = function() {
var copyNode = function(widgetNode,resultNode) {
var type = widgetNode.parseTreeNode.type;
resultNode.type = type;
switch(type) {
case "element":
resultNode.tag = widgetNode.parseTreeNode.tag;
break;
case "text":
resultNode.text = widgetNode.parseTreeNode.text;
break;
}
if(Object.keys(widgetNode.attributes || {}).length > 0) {
resultNode.attributes = {};
$tw.utils.each(widgetNode.attributes,function(attr,attrName) {
resultNode.attributes[attrName] = widgetNode.getAttribute(attrName);
});
}
if(Object.keys(widgetNode.children || {}).length > 0) {
resultNode.children = [];
$tw.utils.each(widgetNode.children,function(widgetChildNode) {
var node = {};
resultNode.children.push(node);
copyNode(widgetChildNode,node);
});
}
},
results = {};
copyNode(this.wikifyWidgetNode,results);
return results;
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
@@ -130,9 +63,9 @@ WikifyWidget.prototype.refresh = function(changedTiddlers) {
return true;
} else {
// Refresh the widget tree
if(this.wikifyWidgetNode.refresh(changedTiddlers)) {
if(this.wikifier.refresh(changedTiddlers)) {
// Check if there was any change
var result = this.getResult();
var result = this.wikifier.getResult();
if(result !== this.wikifyResult) {
// If so, save the change
this.wikifyResult = result;

View File

@@ -1173,7 +1173,7 @@ exports.getSubstitutedText = function(text,widget,options) {
output = $tw.utils.replaceString(output,new RegExp("\\$" + $tw.utils.escapeRegExp(substitute.name) + "\\$","mg"),substitute.value);
});
// Substitute any variable references with their values
return output.replace(/\$\((.+?)\)\$/g, function(match,varname) {
return output.replace(/\$\(([^\)\$]+)\)\$/g, function(match,varname) {
return widget.getVariable(varname,{defaultValue: ""})
});
};

View File

@@ -18,7 +18,7 @@ code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
dirty-indicator: #ff0000
download-background: #3aafaf
download-background: #66cccc
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -26,7 +26,7 @@ dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #ececec
dropzone-background: #00d900
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -52,30 +52,26 @@ notification-border: #999999
page-background: #ffffff
pre-background: #f5f5f5
pre-border: #cccccc
primary: #6387f1
primary: #7897f3
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: #ffffff
sidebar-controls-foreground: #ccc
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #aaaaaa
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #ffffff
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: <<colour tab-foreground>>
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: <<colour primary>>
sidebar-tiddler-link-foreground: #7897f3
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #eeeeee
@@ -87,10 +83,10 @@ tab-foreground: #666666
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ffd5aa
tag-foreground: #000000
tag-background: #ffeedd
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: #eeeeee
tiddler-border: #eee
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
@@ -101,7 +97,7 @@ tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: <<colour tiddler-info-background>>
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #c0c0c0
@@ -115,6 +111,5 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #cccccc
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -85,7 +85,6 @@ table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #d5ad34
tag-foreground: #ffffff
testcase-accent-level-1: #b1b3e3
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888

View File

@@ -5,11 +5,11 @@ description: High contrast and unambiguous (dark version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
alert-background: #ff0000
alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #880000
background: #000000
alert-muted-foreground: #800
background: #000
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
@@ -17,24 +17,24 @@ button-border: <<colour foreground>>
code-background: <<colour background>>
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #ff0000
download-background: #48ff48
dirty-indicator: #f00
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #868686
dropdown-tab-background: #515151
dropzone-background: #1aff1a
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #5353ff
external-link-foreground: #9595ff
external-link-foreground-visited: #00a
external-link-foreground: #00e
footnote-target-background: #4c4c4c
foreground: #ffffff
foreground: #fff
highlight-background: #ffff00
highlight-foreground: #000000
message-background: <<colour foreground>>
@@ -52,11 +52,11 @@ notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #8a8aff
primary: #00f
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #ffff00
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #00f400
stability-experimental: #ffaf1c
stability-deprecated: #ff2b2b
stability-legacy: #ceceff
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: <<colour foreground>>
@@ -85,15 +81,14 @@ tab-divider: <<colour foreground>>
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #444444
table-header-background: #444444
tag-background: #ffffff
tag-foreground: #000000
testcase-accent-level-1: #144a8c
table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #fff
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #ae0000
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -107,15 +102,14 @@ tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour foreground>>
tiddler-title-foreground: <<colour foreground>>
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour foreground>>
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -5,7 +5,7 @@ description: High contrast and unambiguous (light version)
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
alert-background: #ff4a4a
alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
@@ -18,13 +18,13 @@ code-background: <<colour background>>
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #f00
download-background: #008200
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
@@ -52,13 +52,13 @@ notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #0000ff
primary: #00f
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #606060
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: #000000
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: <<colour foreground>>
@@ -72,10 +72,6 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff0000
stability-experimental: #b37400
stability-legacy: #000075
stability-stable: #008000
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: <<colour foreground>>
@@ -92,7 +88,7 @@ tag-foreground: #fff
tiddler-background: <<colour background>>
tiddler-border: <<colour foreground>>
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #c5abf3
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
@@ -117,4 +113,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour foreground>>
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -5,30 +5,30 @@ name: Cupertino Dark
description: A macOS inspired dark palette
type: application/x-tiddler-dictionary
alert-background: #ff4b42
alert-border: #950700
alert-background: #FF453A
alert-border: #FF453A
alert-highlight: #FFD60A
alert-muted-foreground: #323234
alert-muted-foreground: <<colour muted-foreground>>
background: #282828
blockquote-bar: #8d8d8d
blockquote-bar: <<colour page-background>>
button-foreground: <<colour foreground>>
code-background: <<colour pre-background>>
code-border: <<colour pre-border>>
code-foreground: #c7c7c7
code-foreground: rgba(255, 255, 255, 0.54)
dirty-indicator: #FF453A
download-background: <<colour primary>>
download-foreground: <<colour background>>
download-foreground: <<colour foreground>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour tiddler-info-background>>
dropdown-border: <<colour dropdown-background>>
dropdown-tab-background-selected: #3F638B
dropdown-tab-background: #707070
dropdown-tab-background: #323232
dropzone-background: #30D158
external-link-background-hover: transparent
external-link-background-visited: transparent
external-link-background: transparent
external-link-foreground-hover: #9511d5
external-link-foreground-hover:
external-link-foreground-visited: #BF5AF2
external-link-foreground: #32D74B
footnote-target-background: #747474
@@ -60,36 +60,31 @@ sidebar-controls-foreground-hover: #FF9F0A
sidebar-controls-foreground: #8E8E93
sidebar-foreground-shadow: transparent
sidebar-foreground: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground-hover: #acacac
sidebar-muted-foreground: #787878
sidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
sidebar-tab-background-selected: #3F638B
sidebar-tab-background: <<colour background>>
sidebar-tab-border-selected: #313131
sidebar-tab-border: #404040
sidebar-tab-divider: #282828
sidebar-tab-foreground-selected: #d2d2d2
sidebar-tab-foreground: #d2d2d2
sidebar-tiddler-link-foreground-hover: #535353
sidebar-tiddler-link-foreground: #949494
sidebar-tab-border-selected: <<colour background>>
sidebar-tab-border: <<colour background>>
sidebar-tab-divider: <<colour background>>
sidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)
sidebar-tab-foreground: rgba(255, 255, 255, 0.54)
sidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)
sidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)
site-title-foreground: #ffffff
stability-stable: #009f00
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #6c6cff
static-alert-foreground: #B4B4B4
tab-background-selected: #3F638B
tab-background: <<colour page-background>>
tab-border-selected: <<colour page-background>>
tab-border: #4a4a4a
tab-border: <<colour page-background>>
tab-divider: <<colour page-background>>
tab-foreground-selected: #ffffff
tab-foreground: #adadad
tab-foreground-selected: rgba(255, 255, 255, 0.87)
tab-foreground: rgba(255, 255, 255, 0.54)
table-border: #464646
table-footer-background: #7f7f7f
table-header-background: <<colour table-border>>
table-footer-background: <<colour tiddler-editor-fields-odd>>
table-header-background: <<colour tiddler-editor-fields-even>>
tag-background: #48484A
tag-foreground: #323232
testcase-accent-level-1: #345173
tiddler-background: <<colour background>>
tiddler-border: transparent
tiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>
@@ -97,9 +92,9 @@ tiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover
tiddler-controls-foreground: #48484A
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image:
tiddler-editor-border: #444444
tiddler-editor-fields-even: #1f1f1f
tiddler-editor-fields-odd: #464646
tiddler-editor-border: rgba(255, 255, 255, 0.08)
tiddler-editor-fields-even: rgba(255, 255, 255, 0.1)
tiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)
tiddler-info-background: #1E1E1E
tiddler-info-border: #1E1E1E
tiddler-info-tab-background: #3F638B
@@ -116,8 +111,8 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #5f5f5f
very-muted-foreground: #3f3f3f
untagged-background: <<colour very-muted-foreground>>
very-muted-foreground: #464646
selection-background: #3F638B
selection-foreground: #ffffff
wikilist-background: <<colour page-background>>
@@ -136,4 +131,3 @@ wikilist-title: <<colour foreground>>
wikilist-title-svg: <<colour foreground>>
wikilist-toolbar-foreground: <<colour foreground>>
wikilist-url: <<colour muted-foreground>>
network-activity-foreground: <<colour primary>>

View File

@@ -20,7 +20,7 @@ code-background: #f7f7f9
code-border: #e1e1e8
code-foreground: #dd1144
dirty-indicator: #ff0000
download-background: #30b830
download-background: #34c734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -58,26 +58,22 @@ primary: #5778d8
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #a6a6ff
sidebar-controls-foreground: #eeeeee
sidebar-foreground-shadow: transparent
sidebar-foreground: #eeeeee
sidebar-muted-foreground-hover: #999999
sidebar-muted-foreground: #eeeeee
sidebar-tab-background-selected: <<colour page-background>>
sidebar-tab-background: #e0e0e0
sidebar-controls-foreground-hover: #ccf
sidebar-controls-foreground: #fff
sidebar-foreground-shadow: rgba(0,0,0, 0.5)
sidebar-foreground: #fff
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #eee
sidebar-tab-background-selected: rgba(255,255,255, 0.8)
sidebar-tab-background: rgba(255,255,255, 0.4)
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: #e4e4e4
sidebar-tab-foreground-selected: #ddddff
sidebar-tab-divider: rgba(255,255,255, 0.2)
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #aaaaff
sidebar-tiddler-link-foreground: #ddddff
site-title-foreground: #ffffff
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
sidebar-tiddler-link-foreground-hover: #aaf
sidebar-tiddler-link-foreground: #ddf
site-title-foreground: #fff
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
@@ -94,7 +90,7 @@ tag-foreground: #ffffff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #6a6aff
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #f8f8f8
tiddler-editor-border-image: #ffffff
@@ -119,4 +115,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: #11ff23

View File

@@ -22,9 +22,9 @@ diff-equal-foreground: <<colour foreground>>
diff-insert-background: #91c093
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: #d3d2cb
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #ad3434
download-background: #5eae62
download-background: #6ca16c
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -32,13 +32,14 @@ dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #E9E0C7
dropdown-tab-background: #BAB29C
dropzone-background: #00c600
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: #7474ba
external-link-foreground-hover: inherit
external-link-foreground-visited: #313163
external-link-foreground: #555592
footnote-target-background: #fff7d9
foreground: #2D2A23
highlight-background: #ffff00
highlight-foreground: #000000
@@ -70,7 +71,7 @@ sidebar-controls-foreground: #867F69
sidebar-foreground-shadow: transparent
sidebar-foreground: #867F69
sidebar-muted-foreground-hover: #706A58
sidebar-muted-foreground: #aba081
sidebar-muted-foreground: #B3A98C
sidebar-tab-background-selected: #e0d3af
sidebar-tab-background: #A6A193
sidebar-tab-border-selected: #C3BAA1
@@ -81,10 +82,6 @@ sidebar-tab-foreground: #2D2A23
sidebar-tiddler-link-foreground-hover: #433F35
sidebar-tiddler-link-foreground: #706A58
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #A6A193
tab-background-selected: #E9E0C7
tab-background: #A6A193
@@ -98,7 +95,6 @@ table-footer-background: #8A8885
table-header-background: #B0AA98
tag-background: #706A58
tag-foreground: #E3D7B7
testcase-accent-level-1: #b3adc9
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #9D947B
@@ -144,4 +140,3 @@ wikilist-toolbar-foreground: #2D2A23
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #A6A193
wikilist-button-foreground: #161512
network-activity-foreground: <<colour primary>>

View File

@@ -9,13 +9,13 @@ license: https://github.com/morhetz/gruvbox
alert-background: #cc241d
alert-border: #cc241d
alert-highlight: #d79921
alert-muted-foreground: #272321
alert-muted-foreground: #504945
background: #3c3836
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #504945
code-border: #504945
code-foreground: #fc5e4b
code-foreground: #fb4934
diff-delete-background: #fb4934
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
@@ -25,7 +25,7 @@ diff-insert-foreground: <<colour background>>
diff-invisible-background: #ffff97
diff-invisible-foreground: #444347
dirty-indicator: #fb4934
download-background: #1daf24
download-background: #b8bb26
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
@@ -46,53 +46,52 @@ highlight-background: #ffff79
highlight-foreground: #000000
menubar-background: #504945
menubar-foreground: <<colour foreground>>
message-background: #b4c9c1
message-background: #83a598
message-border: #83a598
message-foreground: #3c3836
modal-backdrop: #625a57
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #504945
modal-footer-background: #3c3836
modal-footer-border: #3c3836
modal-header-border: #3c3836
muted-foreground: #d5c4a1
network-activity-foreground: <<colour primary>>
notification-background: <<colour primary>>
notification-border: <<colour primary>>
page-background: #282828
pre-background: #504945
pre-border: #504945
primary: #da9921
primary: #d79921
select-tag-background: #665c54
select-tag-foreground: <<colour foreground>>
selection-background: #458588
selection-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #e3e0dd
sidebar-controls-foreground: #978b84
sidebar-controls-foreground-hover: #7c6f64
sidebar-controls-foreground: #504945
sidebar-foreground-shadow: transparent
sidebar-foreground: #fbf1c7
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
sidebar-muted-foreground-hover: #7c6f64
sidebar-muted-foreground: #504945
sidebar-tab-background-selected: #bdae93
sidebar-tab-background: #3c3836
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: #bdae93
sidebar-tab-divider: <<colour page-background>>
sidebar-tab-foreground-selected: <<colour page-background>>
sidebar-tab-foreground-selected: #282828
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #458588
sidebar-tiddler-link-foreground: #98971a
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #cc241d
stability-experimental: #b37d1c
stability-legacy: #529ca0
stability-stable: #649618
stability-experimental: #d79921
stability-legacy: #458588
stability-stable: #98971a
static-alert-foreground: #B48EAD
tab-background-selected: #ebdbb2
tab-background: #665c54
tab-border-selected: <<colour tab-background-selected>>
tab-border: #82746a
tab-border-selected: #665c54
tab-border: #665c54
tab-divider: #bdae93
tab-foreground-selected: #282828
tab-foreground: #ebdbb2
@@ -101,7 +100,6 @@ table-footer-background: #665c54
table-header-background: #504945
tag-background: #d3869b
tag-foreground: #282828
testcase-accent-level-1: #456d88
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #7c6f64
@@ -128,7 +126,7 @@ toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #887b75
untagged-background: #504945
very-muted-foreground: #bdae93
wikilist-background: <<colour page-background>>
wikilist-button-background: #acacac

View File

@@ -7,15 +7,15 @@ type: application/x-tiddler-dictionary
license: MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md
alert-background: #D08770
alert-border: <<colour alert-background>>
alert-highlight: #a3436f
alert-muted-foreground: #495367
alert-border: #D08770
alert-highlight: #B48EAD
alert-muted-foreground: #4C566A
background: #3b4252
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour foreground>>
code-background: #2E3440
code-border: #2E3440
code-foreground: #c7747c
code-foreground: #BF616A
diff-delete-background: #BF616A
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
@@ -48,32 +48,31 @@ menubar-background: #2E3440
menubar-foreground: #d8dee9
message-background: #2E3440
message-border: #2E3440
message-foreground: #6485aa
modal-backdrop: #435678
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #3b4252
modal-footer-background: #3b4252
modal-footer-border: #3b4252
modal-header-border: #3b4252
muted-foreground: #687693
network-activity-foreground: <<colour primary>>
muted-foreground: #4C566A
notification-background: <<colour primary>>
notification-border: #EBCB8B
page-background: #2e3440
pre-background: #2E3440
pre-border: #2E3440
primary: #7b98bb
primary: #5E81AC
select-tag-background: #3b4252
select-tag-foreground: <<colour foreground>>
selection-background: #52749e
selection-background: #5E81AC
selection-foreground: <<colour foreground>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #D8DEE9
sidebar-controls-foreground: #5e6a84
sidebar-controls-foreground: #4C566A
sidebar-foreground-shadow: transparent
sidebar-foreground: #D8DEE9
sidebar-muted-foreground-hover: #9fa8bb
sidebar-muted-foreground: #6c7b97
sidebar-muted-foreground-hover: #4C566A
sidebar-muted-foreground: #4C566A
sidebar-tab-background-selected: #ECEFF4
sidebar-tab-background: #4C566A
sidebar-tab-border-selected: <<colour tab-border-selected>>
@@ -84,40 +83,39 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #A3BE8C
sidebar-tiddler-link-foreground: #81A1C1
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff595e
stability-experimental: #f29d00
stability-legacy: #2ddbca
stability-stable: #04ff04
stability-deprecated: #bf616a
stability-experimental: #d08770
stability-legacy: #88c0d0
stability-stable: #a3be8c
static-alert-foreground: #B48EAD
tab-background-selected: #ECEFF4
tab-background: #4C566A
tab-border-selected: #4C566A
tab-border: #5c6883
tab-border: #4C566A
tab-divider: #4C566A
tab-foreground-selected: #6c7a97
tab-foreground-selected: #4C566A
tab-foreground: #D8DEE9
table-border: #4C566A
table-footer-background: #2e3440
table-header-background: #2e3440
tag-background: #A3BE8C
tag-foreground: #4C566A
testcase-accent-level-1: #455e7d
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover:
tiddler-controls-foreground-selected: #EBCB8B
tiddler-controls-foreground: #5e6a84
tiddler-controls-foreground: #4C566A
tiddler-editor-background: #2e3440
tiddler-editor-border-image: #2e3440
tiddler-editor-border: #232732
tiddler-editor-border: #3b4252
tiddler-editor-fields-even: #2e3440
tiddler-editor-fields-odd: #424a5b
tiddler-editor-fields-odd: #2e3440
tiddler-info-background: #2e3440
tiddler-info-border: #2e3440
tiddler-info-tab-background: #2e3440
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #5c6881
tiddler-subtitle-foreground: #4C566A
tiddler-title-foreground: #81A1C1
toolbar-new-button:
toolbar-options-button:
@@ -140,4 +138,4 @@ wikilist-button-open-hover: #A3BE8C
wikilist-button-reveal: #81A1C1
wikilist-button-reveal-hover: #81A1C1
wikilist-button-remove: #B48EAD
wikilist-button-remove-hover: #B48EAD
wikilist-button-remove-hover: #B48EAD

View File

@@ -11,7 +11,7 @@ alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #ffffff
blockquote-bar: <<colour muted-foreground>>
button-background: #adadad
button-background:
button-foreground:
button-border:
code-background: #f7f7f9
@@ -47,41 +47,36 @@ modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #999999
network-activity-foreground: <<colour primary>>
notification-background: #ffffdd
notification-border: #999999
page-background: #000
pre-background: #f5f5f5
pre-border: #cccccc
primary: #cc0000
select-tag-background: <<colour foreground>>
select-tag-foreground: <<colour foreground>>
select-tag-background:
select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #797979
sidebar-controls-foreground: #cacaca
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #ffffff
sidebar-foreground-shadow: rgba(255,255,255, 0.0)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #000000
sidebar-tab-background-selected: #000
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: #7c7c7c
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: #ff0909
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #ffbb99
sidebar-tiddler-link-foreground: #cc0000
site-title-foreground: <<colour tiddler-title-foreground>>
stability-deprecated: #ff0000
stability-experimental: #c07c00
stability-legacy: #0000ff
stability-stable: #008000
static-alert-foreground: #aaaaaa
tab-background-selected: #ffffff
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #bbbbbb
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
@@ -90,7 +85,6 @@ table-footer-background: #a8a8a8
table-header-background: #f0f0f0
tag-background: #ffbb99
tag-foreground: #000
testcase-accent-level-1: #9e9eff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
@@ -118,4 +112,4 @@ toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
very-muted-foreground: #888888

View File

@@ -5,24 +5,24 @@ description: Warm, relaxing earth colours
tags: $:/tags/Palette
type: application/x-tiddler-dictionary
# Background Tones
: Background Tones
base03: #002b36
base02: #073642
# Content Tones
: Content Tones
base01: #586e75
base00: #657b83
base0: #839496
base1: #93a1a1
# Background Tones
: Background Tones
base2: #eee8d5
base3: #fdf6e3
# Accent Colors
: Accent Colors
yellow: #b58900
orange: #cb4b16
@@ -33,7 +33,7 @@ blue: #268bd2
cyan: #2aa198
green: #859900
# Additional Tones (RA)
: Additional Tones (RA)
base10: #c0c4bb
violet-muted: #7c81b0
@@ -45,9 +45,9 @@ red-hot: #ff2222
blue-hot: #2298ee
green-hot: #98ee22
# Palette
: Palette
# Do not use colour macro for background and foreground
: Do not use colour macro for background and foreground
background: #fdf6e3
download-foreground: <<colour background>>
dragger-foreground: <<colour background>>
@@ -68,28 +68,24 @@ foreground: #657b83
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground: <<colour foreground>>
# base03
# base02
# base01
: base03
: base02
: base01
alert-muted-foreground: <<colour base01>>
# base00
: base00
code-foreground: <<colour base00>>
message-foreground: <<colour base00>>
tag-foreground: <<colour base00>>
# base0
: base0
sidebar-tiddler-link-foreground: <<colour base0>>
# base1
: base1
muted-foreground: <<colour base1>>
blockquote-bar: <<colour muted-foreground>>
dropdown-border: <<colour muted-foreground>>
sidebar-muted-foreground: <<colour muted-foreground>>
tiddler-title-foreground: <<colour muted-foreground>>
site-title-foreground: <<colour tiddler-title-foreground>>
# base2
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue-hot>>
stability-stable: <<colour green>>
: base2
modal-footer-background: <<colour base2>>
page-background: <<colour base2>>
modal-backdrop: <<colour page-background>>
@@ -103,31 +99,31 @@ foreground: #657b83
tag-background: <<colour base2>>
tiddler-editor-background: <<colour base2>>
tiddler-info-background: <<colour base2>>
tiddler-info-tab-background: <<colour tiddler-info-border>>
tiddler-info-tab-background: <<colour base2>>
tab-background: <<colour base2>>
dropdown-tab-background: <<colour tab-background>>
# base3
dropdown-tab-background: <<colour tab-background>>
: base3
alert-background: <<colour base3>>
message-background: <<colour base3>>
# yellow
# orange
# red
# magenta
: yellow
: orange
: red
: magenta
alert-highlight: <<colour magenta>>
# violet
: violet
external-link-foreground: <<colour violet>>
# blue
# cyan
# green
# base10
: blue
: cyan
: green
: base10
tiddler-controls-foreground: <<colour base10>>
# violet-muted
: violet-muted
external-link-foreground-visited: <<colour violet-muted>>
# blue-muted
: blue-muted
primary: <<colour blue-muted>>
download-background: #5bb83d
download-background: <<colour primary>>
tiddler-link-foreground: <<colour primary>>
alert-border: #b99e2f
diff-delete-background: <<colour red>>
diff-delete-foreground: <<colour background>>
@@ -138,7 +134,7 @@ diff-insert-foreground: <<colour background>>
diff-invisible-background: <<colour yellow>>
diff-invisible-foreground: <<colour background>>
dirty-indicator: #ff0000
dropzone-background: #008800
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
@@ -150,10 +146,14 @@ message-border: #cfd6e6
modal-border: #999999
select-tag-background:
select-tag-foreground:
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground-hover:
sidebar-muted-foreground-hover:
sidebar-tab-background: #ded8c5
sidebar-tiddler-link-foreground-hover:
stability-deprecated: <<colour red>>
stability-experimental: <<colour yellow>>
stability-legacy: <<colour blue>>
stability-stable: <<colour green>>
static-alert-foreground: #aaaaaa
tab-border: #cccccc
modal-footer-border: <<colour tab-border>>
@@ -166,7 +166,6 @@ tab-divider: #d8d8d8
sidebar-tab-divider: <<colour tab-divider>>
table-border: #dddddd
table-footer-background: #a8a8a8
testcase-accent-level-1: #bec8cc
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-editor-border-image: #ffffff
@@ -186,4 +185,3 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
network-activity-foreground: <<colour primary>>

View File

@@ -40,7 +40,7 @@ external-link-background: inherit
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-foreground: #268bd2
external-link-foreground-hover: #1d669c
external-link-foreground-hover:
external-link-foreground-visited: #268bd2
footnote-target-background: #073642
foreground: #839496
@@ -56,7 +56,6 @@ modal-footer-background: #073642
modal-footer-border: #586e75
modal-header-border: #586e75
muted-foreground: #93a1a1
network-activity-foreground: <<colour primary>>
notification-background: #002b36
notification-border: #586e75
page-background: #073642
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #93a1a1
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #eee8d5
site-title-foreground: #d33682
stability-deprecated: #aa1a9f
stability-experimental: #806000
stability-legacy: #1d669c
stability-stable: #00df11
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #93a1a1
tab-background: #073642
tab-background-selected: #002b36
@@ -99,7 +98,6 @@ table-footer-background: #073642
table-header-background: #073642
tag-background: #b58900
tag-foreground: #002b36
testcase-accent-level-1: #073642
tiddler-background: #002b36
tiddler-border: #586e75
tiddler-controls-foreground: inherit
@@ -127,4 +125,4 @@ toolbar-new-button: #839496
toolbar-options-button: #839496
toolbar-save-button: inherit
untagged-background: #586e75
very-muted-foreground: #586e75
very-muted-foreground: #586e75

View File

@@ -27,7 +27,7 @@ diff-insert-foreground: #eee8d5
diff-invisible-background: #b58900
diff-invisible-foreground: #eee8d5
dirty-indicator: #dc322f
download-background: #00910b
download-background: #859900
download-foreground: #eee8d5
dragger-background: #eee8d5
dragger-foreground: #657b83
@@ -56,7 +56,6 @@ modal-footer-background: #eee8d5
modal-footer-border: #93a1a1
modal-header-border: #93a1a1
muted-foreground: #586e75
network-activity-foreground: <<colour primary>>
notification-background: #fdf6e3
notification-border: #93a1a1
page-background: #eee8d5
@@ -82,10 +81,10 @@ sidebar-tab-foreground-selected: #586e75
sidebar-tiddler-link-foreground: #2aa198
sidebar-tiddler-link-foreground-hover: #002b36
site-title-foreground: #d33682
stability-deprecated: #d21a1a
stability-experimental: #771e00
stability-legacy: #227abb
stability-stable: #576400
stability-deprecated: #dc322f
stability-experimental: #b58900
stability-legacy: #268bd2
stability-stable: #859900
static-alert-foreground: #586e75
tab-background: #eee8d5
tab-background-selected: #fdf6e3
@@ -99,7 +98,6 @@ table-footer-background: #eee8d5
table-header-background: #eee8d5
tag-background: #b58900
tag-foreground: #fdf6e3
testcase-accent-level-1: #afc2db
tiddler-background: #fdf6e3
tiddler-border: #93a1a1
tiddler-controls-foreground: inherit

View File

@@ -94,7 +94,6 @@ table-footer-background: rgba(0,0,0,.4)
table-header-background: rgba(0,0,0,.1)
tag-background: rgb(255, 201, 102)
tag-foreground: rgb(25, 25, 25)
testcase-accent-level-1: rgb(13, 52, 99)
tiddler-background: rgb(38, 38, 38)
tiddler-border: rgba(240, 196, 117, 0.7)
tiddler-controls-foreground: rgb(128, 128, 128)

View File

@@ -69,7 +69,7 @@ select-tag-foreground:
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #aaaaaa
sidebar-foreground-shadow: #ffffff
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #acacac
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
@@ -83,7 +83,7 @@ sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: #444444
sidebar-tiddler-link-foreground: #999999
site-title-foreground: <<colour tiddler-title-foreground>>
stability-stable: #00b700
stability-stable: #008000
stability-experimental: #c07c00
stability-deprecated: #ff0000
stability-legacy: #0000ff
@@ -138,13 +138,13 @@ wikilist-title: #666666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: #aaaaaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: #009300
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: #0000ff
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: #ff0000
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888888
wikilist-droplink-dragover: #ffc0c0
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000000
wikilist-button-foreground: #000000

View File

@@ -21,6 +21,12 @@ http://$(userName)$.tiddlyspot.com/$path$/
</$reveal>
\end
<div class="tc-message-box">
<<lingo ReadOnly>>
</div>
<<lingo Description>>
|<<lingo UserName>> |<$edit-text tiddler="$:/UploadName" default="" tag="input"/> |

View File

@@ -3,7 +3,7 @@ tags: $:/tags/ControlPanel/Saving
caption: {{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}
\define lingo-base() $:/language/ControlPanel/Saving/GitService/
\define service-name() Gitea
\define service-name() ~Gitea
<<lingo Description>>

View File

@@ -1,19 +0,0 @@
caption: {{$:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/Caption}}
tags: $:/tags/ControlPanel/Settings
title: $:/core/ui/ControlPanel/Settings/DefaultTiddlerInfoTab
\whitespace trim
\define lingo-base() $:/language/ControlPanel/Settings/DefaultTiddlerInfoTab/
<$link to="$:/config/TiddlerInfo/Default" class="tc-control-panel-item">
<<lingo Hint>>
</$link>
<$select tiddler="$:/config/TiddlerInfo/Default" class="tc-select">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!is[draft]]">
<option value=<<currentTiddler>>><$transclude field="caption">
<$text text=<<currentTiddler>>/>
</$transclude>
</option>
</$list>
</$select>

View File

@@ -17,7 +17,9 @@ tags: $:/tags/EditTemplate
<$let backgroundColor=<<colour>> >
<span class="tc-tag-label tc-tag-list-item tc-small-gap-right"
data-tag-title=<<currentTiddler>>
style=`color:$(foregroundColor)$; fill:$(foregroundColor)$; background-color:$(backgroundColor)$;`
style.color=<<foregroundColor>>
style.fill=<<foregroundColor>>
style.background-color=<<backgroundColor>>
>
<$transclude tiddler=<<icon>>/>
<$view field="title" format="text"/>

View File

@@ -51,7 +51,6 @@ title: $:/core/ui/ImportListing
\end
\whitespace trim
<div class="tc-table-wrapper">
<table class="tc-import-table">
<tbody>
<tr>
@@ -130,4 +129,3 @@ title: $:/core/ui/ImportListing
</$list>
</tbody>
</table>
</div>

View File

@@ -2,26 +2,31 @@ title: $:/core/ui/SideBar/Tools
tags: $:/tags/SideBar
caption: {{$:/language/SideBar/Tools/Caption}}
\whitespace trim
\procedure lingo-base() $:/language/ControlPanel/
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
\define lingo-base() $:/language/ControlPanel/
\define config-title()
$:/config/PageControlButtons/Visibility/$(listItem)$
\end
<<lingo Basics/Version/Prompt>> <<version>>
<$let tv-config-toolbar-icons="yes"
tv-config-toolbar-text="yes"
tv-config-toolbar-class=""
>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<div class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] tc-sidebar-tools-item +[join[ ]] }}}
data-title=<<listItem>>
>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show" class="tc-tiny-gap-right"/>
<$transclude $tiddler=<<listItem>>/>
<i class="tc-tiny-gap-left tc-muted">
<$transclude $tiddler=<<listItem>> $field="description"/>
</i>
</div>
</$list>
</$let>
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<div style="position:relative;" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
</div>
</$list>
</$set>
</$set>
</$set>

View File

@@ -3,9 +3,11 @@ tags: $:/tags/Macro
\whitespace trim
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
<$button message="tm-copy-to-clipboard"
param=<<src>>
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
\procedure copy-to-clipboard-actions()
<$action-sendmessage $message="tm-copy-to-clipboard" $param=<<src>> type=<<type>> plainText=<<plain>>/>
\end copy-to-clipboard-actions
<$button actions=<<copy-to-clipboard-actions>>
class=<<class>>
style=<<style>>
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
@@ -15,12 +17,12 @@ tags: $:/tags/Macro
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
</span>
</$button>
\end
\end copy-to-clipboard
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
<div style="position: relative;">
<div style="position: absolute; bottom: 0; right: 0;">
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
<div style.position="relative">
<div style.position="absolute" style.bottom="0" style.right="0">
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
</div>
</div>
\end

View File

@@ -11,7 +11,6 @@ The ~CodeMirror plugin can be extended with ~AddOns for more functionality:
* Keymaps in the style of Emacs, Sublime Text or Vim
* Closing Brackets
* Closing Tags
* Display trailing whitespace
NOTE: This demo has the ''Sublime Text'' keymap installed.

View File

@@ -8,16 +8,11 @@
"tiddlywiki/codemirror-search-replace",
"tiddlywiki/codemirror-fullscreen-editing",
"tiddlywiki/codemirror-mode-xml",
"tiddlywiki/codemirror-mode-htmlembedded",
"tiddlywiki/codemirror-mode-htmlmixed",
"tiddlywiki/codemirror-mode-javascript",
"tiddlywiki/codemirror-mode-css",
"tiddlywiki/codemirror-mode-x-tiddlywiki",
"tiddlywiki/codemirror-mode-markdown",
"tiddlywiki/codemirror-trailingspace",
"tiddlywiki/codemirror-keymap-emacs",
"tiddlywiki/codemirror-keymap-sublime-text",
"tiddlywiki/codemirror-keymap-vim"
"tiddlywiki/codemirror-keymap-sublime-text"
],
"themes": [
"tiddlywiki/vanilla",

View File

@@ -1,30 +0,0 @@
created: 20130827080000000
list: [[Introduction to filter notation]] [[Filter Syntax]]
modified: 20250218103107943
original-modified: 20230710074511095
tags: Reference Concepts TableOfContents
title: Filters
ja-title: フィルタ
type: text/vnd.tiddlywiki
\define openAdvancedSearch()
<$action-setfield $tiddler="$:/state/tab--1498284803" text="$:/core/ui/AdvancedSearch/Filter"/>
<$action-setfield $tiddler="$:/temp/advancedsearch/input" text="[tag[Filters]]"/>
<$action-setfield $tiddler="$:/temp/advancedsearch" text="[tag[Filters]]"/>
\end
TiddlyWikiは、レコードがTiddlerであるデータベースと考えることができます。データベースは通常、どのレコードが特定のパターンに一致するかを発見する方法を提供します。~TiddlyWikiでは、これはフィルタを使用して行われます
<<.def フィルタ>>は、その<<.def "アウトプット">>として特定の[[Tiddlerセット|Title Selection]]を選択するための簡潔な表記法です。~TiddlyWikiはフィルタに遭遇するたびにアウトプットを計算します。その後、それらのTiddlerを使って、[[数を数え|CountWidget]]たり、[[リストし|ListWidget]]たりするなど、さらなる処理を行うことができます
次の例では、フィルタを<<.mlink list-links>>マクロに渡します。<<.olink2 tag tag>> <<.word フィルタ>>であるTiddlerのリストを表示します:
<<wikitext-example-without-html """<<list-links "[tag[Filters]]">>""" >>
Wiki内でTiddlerが追加や削除されると、フィルタのアウトプットが変更される可能性があります。~TiddlyWikiは即再計算し、フィルタベースのカウントやリストも自動的に更新します
''さらに詳細:''
* <$linkcatcher message="tm-navigate" actions=<<openAdvancedSearch>> >[[高度な検索|$:/AdvancedSearch]]</$linkcatcher> -- フィルタを簡単に試すことができる<<.advancedsearch-tab Filter>>タブがあります
* [[WikiTextでのフィルタされたトランスクルージョン|Transclusion in WikiText]] -- テキスト内でフィルタ結果を使用したい場合

View File

@@ -1,19 +0,0 @@
created: 20150117204109000
modified: 20250222112113766
original-modified: 20240708201746542
tags: Filters
title: Selection Constructors
ja-title: セレクションコンストラクタ
type: text/vnd.tiddlywiki
[[フィルタステップ|Filter Step]]のアウトプットはその[[オペレータ|Filter Operators]]によって異なります:
* ほとんどのオペレータは、インプットからアウトプットを派生します。たとえば、それらの多くはインプットのサブセットをアウトプットし、まさに<<.word フィルタ>>の名にふさわしく、含んでいる[[ラン|Filter Run]]の全体的なアウトプットを絞り込みます。これらのオペレータは<<.def "セレクションモディファイア">>と呼ばれます。
* いくつかのオペレータはインプットを無視し、代わりに独立したアウトプットを生成します。これらは<<.def "セレクションコンストラクタ">>と呼ばれ、完全に新しい[[セレクション|Title Selection]]を構築します。
コンストラクタの良い例は<<.olink title>>です。`[title[A]title[B]]`のアウトプットは<<.tid B>>です。しかし、<<.olink field>>オペレータはモディファイアなので、`[title[A]field:title[B]`は何もアウトプットしません。
次の[[フィルタオペレータ|filter Operator]]は<<tag>>でタグ付けされています:
<<list-links "[tag<currentTiddler>]" class:"multi-columns">>

View File

@@ -1,20 +0,0 @@
created: 20230316150731234
from-version: 5.1.23
modified: 20250303102704427
original-modified: 20230711084644541
rp-input: 前回のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルは、重複を排除せずに以前のフィルタランの出力に追加されます。
rp-purpose: 重複を排除しない和集合
tags: [[Named Filter Run Prefix]]
title: All Filter Run Prefix
ja-title: allフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":all" | - )
[["ラン"|"Filter Run"]]
"""/>
このプレフィックスにはオプションの[[ショートカット構文|Shortcut Filter Run Prefix]]であるシンボル`=run`があります

View File

@@ -1,20 +0,0 @@
created: 20230318142752854
from-version: 5.1.23
modified: 20250303103244036
original-modified: 20230711084712170
rp-purpose: フィルタステップの蓄積
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: アウトプットのタイトルは、以前のフィルターランのアウトプットを置換
tags: [[Named Filter Run Prefix]]
title: And Filter Run Prefix
ja-title: andフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":and" | - )
[["ラン"|"Filter Run"]]
"""/>
このプレフィックスにはオプションの[[ショートカット構文|Shortcut Filter Run Prefix]]であるシンボル+runがあります

View File

@@ -1,48 +0,0 @@
created: 20211130114857532
filter1: [prefix[ca]then[ca]]
filter2: [suffix[at]then[at]]
filter3: other
modified: 20250310110107153
original-modified: 20230305125250563
tags: [[Cascade Filter Run Prefix]]
title: Cascade Filter Run Prefix (Examples)
ja-title: cascadeフィルタランプレフィックス (例)
type: text/vnd.tiddlywiki
<<.op ":cascade">>フィルタランプレフィックスは、タグマクロによって生成されるタグピルで使用される各Tiddlerの配色を選択するために、~TiddlyWikiコアによって使用されます。
`:cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]`
上記の<<.op :cascade>>フィルタラン内のフィルタ式は、<<tag $:/tags/TiddlerColourFilter>>でタグ付けされたTiddlerのテキストフィールドからフィルタのリストを返します。以下を参照:
<ul>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]">
<li><pre><$text text=<<currentTiddler>>/></pre></li>
</$list>
</ul>
インプットタイトルごとに、これらのフィルタが順番に適用され、空でないリストを返す最初のフィルタが見つかるまで続きます。この空でないリストの最初の結果がそのインプットタイトルに置き換えられ、そのTiddlerの色として使用されます。
<<.operator-example 1 """[all[shadows+tiddlers]] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] +[!is[blank]limit[10]]""">>
!! 拡張例
この例では、<<.op :cascade>>フィルタランがどのように機能するかを段階的に説明します。
アウトプットがフィルタのリストを返すフィルタ式が必要です。通常、このようなフィルタ式は、一連のTiddler内のいくつかのフィールドを照会して(おそらくタグ経由で)フィルタのリストを作成します。この例を自己完結型にするために、このTiddlerの//filter1//、//filter2//、//filter3//フィールドに、3つのフィルタが格納されます。[[テキスト参照|TextReference]]と[[appendオペレータ|append Operator]]のインスタンスを使用して、フィールドをフィルタのリストに結合します。
フィルター`[{!!filter1}append{!!filter2}append{!!filter3}]`は、次のフィルタリストを生成します:
<ul>
<$list filter="[{!!filter1}append{!!filter2}append{!!filter3}]">
<li><pre><$text text=<<currentTiddler>>/></pre></li>
</$list>
</ul>
この例では、`cat can bat bug`がインプットタイトルとして使用されます。各インプットタイトルは、上記の各フィルタに対して順番に<<.op :cascade>>で評価されます。<<.op :cascade>>の内部で何が起こっているかを理解しやすくするために、次の表では、[[mapフィルタランプレフィックス|Map Filter Run Prefix]]を使用して、各フィルタの結果を示しています。
|^<<.operator-example c1.1 "cat can bat bug :map[prefix[ca]then[ca]]">>|^<<.operator-example c1.2 "cat can bat bug :map[suffix[at]then[at]]">>|^<<.operator-example c1.3 "cat can bat bug :map[[other]]">>|
上記の3つの例で"Try it"をクリックします。<<.op :cascade>>を使用すると、各行の左から右に読み取られた最初の空白以外の値が返されます。最終結果を確認するには、下の"Try it"をクリックします。
<<.operator-example c1.4 "cat can bat bug :cascade[{!!filter1}append{!!filter2}append{!!filter3}]">>

View File

@@ -1,27 +0,0 @@
created: 20211130114043280
from-version: 5.2.1
modified: 20250305112707026
original-modified: 20230710073343947
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: このフィルタランによって返されるフィルタによって変更されたインプットタイトル
rp-purpose: フィルターのリストを順に評価し、最初の結果を適用してインプットタイトルを変更
tags: [[Named Filter Run Prefix]]
title: Cascade Filter Run Prefix
ja-title: cascadeフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":cascade" | - )
[["ラン"|"Filter Run"]]
"""/>
この[[フィルタラン|Filter Run]]の[[フィルタ式|Filter Expression]]が評価され、フィルタのリストが返されます。次に、各インプットタイトルが各フィルタに対して順番に評価され、インプットタイトルは空でないリストを返す最初のフィルタの最初の結果に置き換えられます。どのフィルタもインプットタイトルの結果を返さない場合は、空の文字列に置き換えられます。
フィルタラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外の変数<<.var currentTiddler>>の値。
[[cascadeフィルタランプレフィックス (例)|Cascade Filter Run Prefix (Examples)]]

View File

@@ -1,22 +0,0 @@
created: 20230318142408662
from-version: 5.1.23
modified: 20250312102737003
original-modified: 20230322140756821
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: これまでのフィルタアウトプットが空のリストの場合、ランのアウトプットタイトルがフィルタアウトプットに[[追加|Dominant Append]]されます<br>これまでのフィルタアウトプットが空のリストでない場合、ランは無視されます
rp-purpose: フィルタランは、これまでのすべてのランのフィルタアウトプットが空のリストである場合にのみ評価されます
tags: [[Named Filter Run Prefix]]
title: Else Filter Run Prefix
ja-title: elseフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":else" | - )
[[run|"Filter Run"]]
"""/>
このプレフィックスには[[ショートカットフィルタランプレフィックス|Shortcut Filter Run Prefix]] シンボル`~run`があります
参照: [[thenフィルタランプレフィックス|Then Filter Run Prefix]] | [[thenオペレータ|then Operator]] と [[elseオペレータ|else Operator]]

View File

@@ -1,20 +0,0 @@
created: 20230318142056008
from-version: 5.1.23
modified: 20250312104032308
original-modified: 20230322140643066
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルはフィルタのアウトプットから取り除かれますそのようなTiddlerが存在する場合
rp-purpose: このフィルタランのアウトプットタイトルが前のフィルタランのアウトプットに含まれている場合は取り除かれ、含まれていない場合は無視されます
tags: [[Named Filter Run Prefix]]
title: Except Filter Run Prefix
ja-title: exceptフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":except" | - )
[[run|"Filter Run"]]
"""/>
このプレフィックスには[[ショートカットフィルタランプレフィックス|Shortcut Filter Run Prefix]]シンボル`-run`があります

View File

@@ -1,23 +0,0 @@
created: 20150124182421000
modified: 20250219114110986
original-modified: 20230710074507466
tags: [[Filter Syntax]]
title: Filter Expression
ja-title: フィルタ式
type: text/vnd.tiddlywiki
<<.def "フィルタ式">>は、[[フィルタのシンタックス|Filter Syntax]]の最も外側のレベルです。これは、[[フィルタランプレフィックス|Filter Run Prefix]]を備えた [[フィルタラン|Filter Run]]で構成されます。複数のフィルタ実行は[[ホワイトスペース|Filter Whitespace]]で区切られます。
<$railroad text="""
{ (
- |
: [[<"プレフィックス">|"Filter Run Prefix"]]
)
[["ラン"|"Filter Run"]]
+ [["ホワイトスペース"|"Filter Whitespace"]]
}
"""/>
<<.tip """上に示したように、図に開始線と終了線が1つある場合は、リンクされた上位レベルにさらに情報があることを意味します。パンくずリストはナビゲーションに使用できます""">>
<<.tip """下位レベルで使用されているように、図に開始点と終了点がない場合は、読みやすさと単純さを高めるために、上位レベルのシンタックス要素が削除されていることを意味します。パンくずリストはナビゲーションに使用できます""">>

View File

@@ -1,33 +0,0 @@
created: 20211129022707404
modified: 20250314105437481
original-modified: 20230305125338118
tags: [[Filter Filter Run Prefix]]
title: Filter Filter Run Prefix (Examples)
ja-title: filterフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
<<.operator-example 1 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]">>
<<.operator-example 2 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:lteq[2000]]">>
<<.operator-example 3 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]] :filter[get[text]length[]compare:integer:lteq[2000]]">>
<<.operator-example 4 "[tag[Features]] :filter[links[]!is[shadow]is[missing]]">>
<<.operator-example 5 "A B C D E F :filter[<index>remainder[2]compare:integer:eq[0]]" "インプットリストの要素を1つおきに返す">>
<<.operator-example 6 "[tag[shopping]] :filter[{!!quantity}compare:integer:gt[4]] :map[addprefix[ ]addprefix{!!quantity}]">>
<<.operator-example 7 "[tag[shopping]] :filter[{!!quantity}compare:integer:lteq[4]] :map[addprefix[ ]addprefix{!!quantity}]">>
!! フィルタランプレフィックス`:filter`と`:and`/`+`の比較
<<.op :filter>>フィルタランプレフィックスの機能は、<<.op :and>>プレフィックス(エイリアス<<.op +>>)と一部重複しています。上記のフィルタ式にはすべて、次の2 つのプロパティがあることに注意してください:
# フィルタ式の先頭では、インプットタイトル(つまり、`get[text]length[]`、`links[]`、`<index>remainder[2]`、`{!!quantity}`)が変換されます。
# フィルタ式の最後では、インプット項目が何らかの条件(つまり`compare`、`is`)を満たす場合にのみアウトプットに送信されます。
<<.op :filter>>プレフィックスの目的はプロパティ#1によってインプットタイトルが変換されるにもかかわらず、元のインプットタイトルを返すことです。こうすることで、"何らかの条件を満たす"チェックを元のインプット以外のものに対して実行できます。一部のフィルタ式でプロパティ#1が必要ない場合は、代わりに<<.op :and>>プレフィックスを使用できます。
| <<.op :filter>> | <<.op :and>> |
|^<<.operator-example c1.1 "[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]">>|^<<.operator-example c1.2 "[tag[HelloThere]] :and[get[text]length[]compare:integer:gteq[1000]]">>|
|^<<.operator-example c2.1 "[tag[Features]] :filter[links[]!is[shadow]is[missing]]">>|^<<.operator-example c2.2 "[tag[Features]] :and[links[]!is[shadow]is[missing]]">>|
|!結果は同じ|<|
|^<<.operator-example c3.1 "cat can bat bug :filter[suffix[at]minlength[3]]">>|^<<.operator-example c3.2 "cat can bat bug :and[suffix[at]minlength[3]]">>|

View File

@@ -1,34 +0,0 @@
created: 20211129022455873
from-version: 5.1.23
modified: 20250314105047035
original-modified: 20230710073334078
rp-input: これまでのすべてのランのフィルタアウトプット
rp-output: フィルタランが空でないインプットタイトル
rp-purpose: フィルタランアウトプットが空のリストであるすべてのインプットタイトルを除外
tags: [[Named Filter Run Prefix]]
title: Filter Filter Run Prefix
ja-title: filterフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":filter" | - )
[["ラン"|"Filter Run"]]
"""/>
これまでのフィルタアウトプットをインプットとして受け取ります。次のランはインプットの各タイトルに対して評価され、アウトプットが空のリストであるすべてのインプットタイトルが除かれます。
フィルタラン内では、<<.var currentTiddler>>変数は処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:filter[{!!price}multiply{!!cost}compare:integer:gteq[5]]`のようなフィルタランを計算に使用できるようになります。ラン外のcurrentTiddlerの値は、<<.var ..currentTiddler>>変数で使用できます。
フィルターラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外の変数`currentTiddler`の値。
* <<.var index>> - <<.from-version "5.2.1">> 現在のリスト項目の数値インデックス(リストの最初の項目はゼロです)。
* <<.var revIndex>> - <<.from-version "5.2.1">> 現在のリスト項目の逆数値インデックス(リストの最後の項目はゼロです)。
* <<.var length>> - <<.from-version "5.2.1">> インプットリストの長さの合計。
<<.tip "名前付きフィルタランプレフィックス`:filter`を、この演算子は、すべてのインプットタイトルにサブフィルタを適用し、サブフィルタから空の結果を返すタイトルを除外する[[filterオペレータ|filter Operator]]と比べてください。">>
[[filterフィルタランプレフィックス(例)|Filter Filter Run Prefix (Examples)]]

View File

@@ -1,40 +0,0 @@
created: 20150220152540000
modified: 20250223102930110
original-modified: 20240708202234843
tags: [[Filter Step]]
title: Filter Parameter
ja-title: フィルタパラメータ
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( "[" [: <-"ハード"-> /"]以外"/] "]"
|
"{" [: <-"間接"-> /"}以外"/] "}"
|
"<" [: <-"変数"-> /">以外"/] ">"
)
"""/>
[[フィルタオペレータ|Filter Operators]]のパラメーターは次のようになります:
;<<.def ハード>>
: `[パラメータ例]`
: パラメータは、角括弧内のテキストそのものです。
;<<.def ソフト>>
: <<.def 間接>>
:: `{パラメータ例}`
:: パラメータは、中括弧内の名前の[[テキスト参照|TextReference]]によって示されるテキスト、つまり、指定されたTiddlerの[[フィールド|TiddlerFields]]、または指定された[[データTiddler|DataTiddlers]]のプロパティの値です。
: <<.def 変数>>
:: `<パラメータ例>`
:: パラメータは、山括弧内の[[変数|Variables]]の現在値です。マクロパラメータは、v5.2.0まではサポートされて<<.em いません>>。
::<<.from-version "5.2.0">> リテラルマクロパラメータがサポートされています。例: `[<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>]`。
<<.note """すべての[[フィルタオペレータ|filter Operator]]の後にはパラメータ式が続く必要があります。[[パラメータの無いオペレータ|Operators without parameters]]の場合、その式は空になります(`[<currentTiddler>links[]]`のフィルタオペレータ<<.olink links>>と同様)。""">>
---
<<.from-version "5.1.23">> [[フィルタステップ|Filter Step]]では、`,`文字で区切られた複数のパラメータがサポートされます。
例えば: `[param1],[param2]`や`<param1>,{param2}`

View File

@@ -1,21 +0,0 @@
created: 20230305130600148
modified: 20250223105142349
original-modified: 20230711090913687
tags: [[Filter Expression]]
title: Filter Run Prefix
ja-title: フィルタランプレフィックス
type: text/vnd.tiddlywiki
There are 2 types of filter run prefixes that are interchangeable; [[named prefixes|Named Filter Run Prefix]] and [[shortcut prefixes|Shortcut Filter Run Prefix]].
交換可能なフィルタランプレフィックスには、[[名前付きプレフィックス|Named Filter Run Prefix]]と[[ショートカットプレフィックス|Shortcut Filter Run Prefix]]の2種類があります。
<$railroad text="""
\start none
\end none
(
- |
: [[<":名前付きプレフィクス"> /"v5.1.23以降"/ |"Named Filter Run Prefix"]] |
[[<"ショートカットプレフィックス"> /"v5.1.23以前"/ |"Shortcut Filter Run Prefix"]]
)
[[<"ラン">|"Filter Run"]]
"""/>

View File

@@ -1,29 +0,0 @@
created: 20150124182117000
modified: 20250220111652831
original-modified: 20230710074357002
tags: [[Filter Expression]]
title: Filter Run
ja-title: フィルタラン
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( "[" { [[<"フィルタステップ">|"Filter Step"]] } "]"
|
[:{/"[ ]または空白以外の文字"/}]
|
'"' [:{/'"以外の文字'/}] '"'
|
"'" [:{/"'以外の文字"/}] "'"
)
"""/>
<<.def ラン>>は[[ステップ|Filter Step]]で構成され、より大きな[[フィルタ式|Filter Expression]]に貢献する[[選択|Title Selection]]を出力します。
ステップは左から右に処理されます。最初のステップへのインプットはランへのインプットと同じです。後続の各ステップのインプットは、前のステップのアウトプットです。
図の下の3つのオプションは`HelloThere`、`"HelloThere"`、`'HelloThere'`と`"Filter Operators"`の構文と一致します。これらは`[title[...]]`の短縮形です。
引用符で囲まれたオプションは、`"An [[[[Unusual]]]] Tiddler"`のように角括弧を含むタイトルをサポートするために存在します。

View File

@@ -1,37 +0,0 @@
created: 20150124182127000
modified: 20250222110925130
original-modified: 20230710074414361
tags: [[Filter Run]]
title: Filter Step
ja-title: フィルタステップ
type: text/vnd.tiddlywiki
<<.def "フィルタステップ">>は、<<.def "フィルタラン">>内の単一の操作を表します。
プログラミング用語では、ステップのインプットがパラメータとして渡される関数呼び出しに似ています。ステップのアウトプットは、[[フィルタラン|Filter Run]]、つまりそれを含む[[フィルタ式|Filter Expression]]全体に貢献する[[タイトルセレクション|Title Selection]]です。
<$railroad text="""
\start none
\end none
[:"!"]
( / "省略の場合のデフォルト: title" /|:
( - | :[[<"オペレータ">|"Filter Operators"]] )
{ [:":" [[<"サフィックス">|"Filter Operators"]] ] } )
{ [[<"パラメータ">|"Filter Parameter"]] + "," }
"""/>
ステップの<<.def オペレータ>>は、[[フィルタオペレータ|Filter Operators]]として知られている定義済みキーワードのリストです。
多くのステップでは、ステップの実行内容をさらに定義する明示的な<<.def パラメータ>>が必要です。
<<.def サフィックス>>は、特定のオペレータの意味を拡張する追加テキスト(多くの場合、[[フィールド|TiddlerFields]]名)です。
ステップの<<.def オペレータ>>と<<.def サフィックス>>がすべて省略されている場合は、デフォルトで[[title|title Operator]]オペレータが使用されます。
<<.from-version "5.1.23">> いくつかのステップでは、`,`文字で区切られた複数の<<.def パラメータ>>を受け入れます。
認識されないオペレータは、<<.olink field>>オペレータのサフィックスであるかのように扱われます。
フィルタオペレータはプラグインによって拡張できます。
{{Selection Constructors}}

View File

@@ -1,26 +0,0 @@
created: 20140210141217955
list: [[Filter Expression]] [[Filter Run]] [[Filter Step]] [[Filter Parameter]] [[Filter Whitespace]]
modified: 20250219112710650
original-modified: 20230710074340943
tags: Filters
title: Filter Syntax
ja-title: フィルタのシンタックス
type: text/vnd.tiddlywiki
<<.preamble """[[フィルタ|Filters]]は、正式な構文の説明が役立つと思われる人向けに、[[Railroadダイアグラム|Railroad Diagrams]]を使用して示されている文法に従います。ただし、このグループのTiddlerを理解していなくても、[[フィルタの書き方を学ぶ|Introduction to filter notation]]ことができます""">>
<<.def フィルタ>>は、<<.def インプット>>を<<.def アウトプット>>に変換するためのパイプラインです。インプットとアウトプットはどちらも、Tiddlerとフィールドの[[タイトルの順序付き集合|Title Selection]]です
フィルタは、''ラン''と呼ばれる小さな構成要素から構成される''式''であり、''ラン''は''ステップ''を使用して構築されます。それぞれがインプットをアウトプットに変換します
フィルタは空のアウトプットから始まります。その実行は左から右に処理され、アウトプットが徐々に修正されます。
"フィルタのシンタックス"の記述は次で始まります:
<$railroad text="""
\start double
\end double
[[<"フィルタ式">|"Filter Expression"]]
"""/>
<<.tip "上記のようなRailroadボックスを使用して移動できます。">>

View File

@@ -1,15 +0,0 @@
created: 20150124182304000
modified: 20250510104756224
original-modified: 20230710074447240
tags: [[Filter Expression]]
title: Filter Whitespace
ja-title: フィルタホワイトスペース
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
{( "スペース" | "タブ" | "ラインフィード" | "リターン" | "垂直タブ" | "改ページ" )}
"""/>
[[フィルタ式|Filter Expression]]の各ランの間にはホワイトスペース文字が出現します。

View File

@@ -1,47 +0,0 @@
created: 20230316151518640
modified: 20250225113139787
original-modified: 20230327130626715
tags: [[Filter Run Prefix]]
title: Interchangeable Filter Run Prefixes
ja-title: 交換可能なフィルターランプレフィックス
type: text/vnd.tiddlywiki
!! 交換可能なフィルターランプレフィックス
技術的/論理的な用語で言えば:
|!ラン |!同等の名前付きプレフィックス |!解釈 |!アウトプット |
|`[run]` |`:or[run]` |重複を排除した和集合 |... OR ラン |
|`+[run]` |`:and[run]` |フィルタステップの蓄積 |... AND ラン |
|`-[run]` |`:except[run]` |差集合 |... AND NOT ラン |
|`~[run]` |`:else[run]` |それ以外 |... ELSE ラン |
|`=[run]` |`:all[run]` |重複を排除しない和集合 |... OR ラン |
ランのインプットは通常、Wiki内の[[隠し|ShadowTiddlers]]Tiddler以外のすべてのTiddlerタイトルのリストです(順不同)。<br>ただし、`+`プレフィックスによってこれを変更できます:
|プレフィックス|インプット|h
|`-`, `~`, `=`, `:intersection` あるいは、無し| 最初の[[フィルタオペレータ|Filter Operators]]によって特に指定されない限り、<$link to="all Operator">`[all[]]`</$link> Tiddlerのタイトル|
|`+`, `:filter`, `:map`, `:reduce`,`:sort` |これまでのすべてのランのフィルタアウトプット|
インプットが変化するため、`-`と`+`の両方のプレフィックスが互いに逆の動作をしないことに注意してください。
たとえば、次の2つの例では、`$:/baz`は実際に存在する場合にのみ削除されます:
* <$link to="is Operator"> `foo bar $:/baz -[is[system]]`</$link>
* <$link to="prefix Operator">`foo bar $:/baz -[prefix[$:/]]`</$link>
理由を理解するには、両方の最後のランのインプットとその`-`プレフィックスを考慮してください。
存在するかどうかに関係なく、`$:/baz`を削除するには、[[否定のフィルタオペレータ|Filter Operators]]とともに`+`プレフィックスを使用するだけです:
* <$link to="is Operator">`foo bar $:/baz +[!is[system]]`</$link>
* <$link to="prefix Operator">`foo bar $:/baz +[!prefix[$:/]]`</$link>
!! +と和集合の違い
`+`と`:intersection`の違いについては[[和集合フィルタランプレフィックス(例)|Intersection Filter Run Prefix (Examples)]]を参照してください。
!! 開発者向け
新しいフィルタランプレフィックスを作成するには、`filterrunprefix`の[[モジュールタイプ|ModuleType]]で
[[Javascriptモジュール|Modules]]を作成します。

View File

@@ -1,38 +0,0 @@
created: 20211128212902292
modified: 20250319104544220
original-modified: 20230305125354209
tags: [[Intersection Filter Run Prefix]]
title: Intersection Filter Run Prefix (Examples)
ja-title: intersectionフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
<<.operator-example 1 "A B C D :intersection[enlist[C D E F]]">>
<<.operator-example 2 "A B C D :intersection[enlist[A B C D]]">>
<<.operator-example 3 "A B C D :intersection[enlist[E F G H]]">>
<<.operator-example 4 ":intersection[enlist[A B C D]]" "最初のフィルタランでintersectionを使用することはあまり役に立ちません。結果は常に空になります。">>
!! `+`と`:intersection`の違い
プレフィックス`+`は、形式論理における"AND"として考えてください。たとえば、"条件A ''かつ'' 条件Bを満たすすべてのタイトルを取得する"などです。ただし、すべてのケースに適しているわけではありません。条件Bがインプットを置き換えるフィルタオペレータを使用する場合、プレフィックス`+`の使用は難しくなります。たとえば、2つのTiddlerに共通するタグを見つけたい場合は、次のようなフィルタ式を記述します:
* <$link to="tags Operator">`[[field Operator]tags[]] +[[compare Operator]tags[]]`</$link>
しかし、これは機能しません。2回目のフィルタランでインプットが破棄され、単一のtitle`[[compare Operator]]`で構成されるインプットに置き換えられるからです。そのため、このフィルタ式から得られる結果は、`compare Operator`Tiddlerのタグだけになります。
このような場合、必要なのは`:intersection`プレフィックスです。これまでのフィルタアウトプットを取得して、//保留し//、すべてのTiddlerタイトルをインプットとして次のフィルタランを開始します。その後、最新のフィルタランが完了すると、最新のアウトプットを取得して保留していたアウトプットと比較し、保留していたアウトプットと最新のアウトプットの両方に表示されたタイトルのみを含む新しいアウトプットを生成します。したがって、`field Operator`と`compare Operator`に共通するタグのみを取得するには、次のようなフィルタ式を記述します。
* <$link to="tags Operator">`[[field Operator]tags[]] :intersection[[compare Operator]tags[]]`</$link>
次の例では、[[field Operator]]と[[compare Operator]]を使用して、Tiddlerとそれぞれのタグを比較します。
<<.operator-example 5 "[[field Operator]tags[]]">>
<<.operator-example 6 "[[compare Operator]tags[]]">>
<<.operator-example 7 "[[field Operator]tags[]] +[[compare Operator]tags[]]" """"field Operator"Tiddlerのタグは失われるため、"compare Operator"Tiddlerのタグのみが返されます""">>
<<.operator-example 8 "[[field Operator]tags[]] :intersection[[compare Operator]tags[]]" """両方のTiddlerに共通するタグを返します""">>

View File

@@ -1,22 +0,0 @@
created: 20211128212902292
from-version: 5.1.23
modified: 20250317105829721
original-modified: 20230710073322863
rp-input: 前のフィルタランからのすべてのタイトル
rp-output: このフィルタランの結果と前のランのアウトプットの両方に存在するタイトル
rp-purpose: 前のランからのタイトルとこのフィルタのタイトルの共通部分を見つける
tags: [[Named Filter Run Prefix]]
title: Intersection Filter Run Prefix
ja-title: intersectionフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":intersection" | - )
[["ラン"|"Filter Run"]]
"""/>
前のランからのフィルタアウトプットは保留されます。`:intersection`フィルタランは、すべてのTiddlerタイトルをインプットとして開始されます。この最後のフィルタランが完了すると、最後のアウトプットが保留アウトプットと比較されます。保留アウトプットと最新アウトプットの両方に表われるタイトルのみを含む新しいアウトプットが生成されます。
[[intersectionフィルタランプレフィックス(例)|Intersection Filter Run Prefix (Examples)]]

View File

@@ -1,60 +0,0 @@
created: 20210618134753828
modified: 20250416110748088
original-modified: 20230305125405422
tags: [[Map Filter Run Prefix]]
title: Map Filter Run Prefix (Examples)
ja-title: mapフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
インプットタイトルが存在する場合はキャプションフィールドで置き換え、存在しない場合はインプットタイトルを保持します:
<<.operator-example 1 "[tag[Widgets]] :map[get[caption]else{!!title}]">>
<<.tip "上記の例は`[tag[Widgets]] :map[{!!caption}!is[blank]else{!!title}]`と同等です。フィールドを`{!!caption}`のようにテキスト参照として参照する場合、存在しない、または空のキャプションフィールドに対しては空文字列が返されることに注意してください。したがって、`else`オペレータの前に`is[blank]`のチェックが必要です。">>
買い物リストの各タイトルについて、各アイテムの購入にかかる合計コストを計算します:
<<.operator-example 2 "[tag[shopping]] :map[get[quantity]else[0]multiply{!!price}]">>
`Widget:`でタグ付けされたすべてのTiddlerのタグを取得します:
<<.operator-example 3 "[tag[Widgets]] :map:flat[tagging[]] :and[!is[blank]unique[]]">>
<<.tip "`flat`サフィックスがない場合、`:map`フィルタランは各インプットタイトルの最初の結果のみを返します">>
!! `:map`の`flat`サフィックスの有無の比較
`:map`フィルタランは、少なくともインプットと同じ数のアウトプットを返します。デフォルトでは、1つのインプット項目に対して1つのアウトプット項目が生成されます。フィルタランによってインプット項目が空の結果に変換された場合、その項目のアウトプットは空の文字列になります。フィルタランによってインプット項目が複数の項目に変換された場合、アウトプットには最初の項目のみが表われます。この動作は、`flat`サフィックスを指定することで上書きできます。`flat`サフィックスを指定すると、すべての項目がアウトプットに表れます。
| `:map` | `:map:flat` |
|^<<.operator-example m0.1 "[range[4]] :map[match[this matches nothing]]">>|^<<.operator-example m0.2 "[range[4]] :map:flat[match[this matches nothing]]">>|
|^<<.operator-example m1.1 "[range[4]] :map[range<currentTiddler>]">>|^<<.operator-example m1.2 "[range[4]] :map:flat[range<currentTiddler>]">>|
|^<<.operator-example m2.1 "[range[4]] :map[range<currentTiddler>]">>|^<<.operator-example m2.2 "[range[4]] :map:flat[range<currentTiddler>first[]]">>|
|^<<.operator-example m3.1 "[range[4]] :map[range<currentTiddler>sum[]]">>|^<<.operator-example m3.2 "[range[4]] :map:flat[range<currentTiddler>sum[]]">>|
|^<<.operator-example m4.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example m4.2 "[[1,2,3]] [[4,5]] :map:flat[split[,]]">>|
|^<<.operator-example m5.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example m5.2 "[[1,2,3]] [[4,5]] :map:flat[split[,]first[]]">>|
!! `:map`と`:and`/`+`フィルタランプレフィックスの比較
`:map`フィルタランプレフィックスの機能は、`:and` プレフィックス(別名`+`)と一部重複しています。これらは同じ結果を返す場合もありますが、少なくとも以下の場合には結果が異なります:
# `:and`フィルタランによってアイテム数が変更される(増加や減少)場合があります。`:map`フィルタランによってアイテム数が変更されることはありません。
# `:and`フィルタランのアイテム数は、[[重複排除|Dominant Append]]により減少します。`:map`ランは[[重複排除|Dominant Append]]は行われません。
# "currentTiddler"変数への明示的な参照は異なる動作をします
# TextReferenceを使用した"currentTiddler"への暗黙的な参照は異なる動作をします。
| `:map` | `:and` |
|!結果は同じ|<|
|^<<.operator-example 1.1 "[range[5]] :map[add[1]]">>|^<<.operator-example 1.2 "[range[5]] :and[add[1]]">>|
|^<<.operator-example 2.1 "[range[5]] :map[addsuffix[ hello]]">>|^<<.operator-example 2.2 "[range[5]] :and[addsuffix[ hello]]">>|
|^<<.operator-example 3.1 "[tag[shopping]] :map[get[quantity]]">>|^<<.operator-example 3.2 "[tag[shopping]] :and[get[quantity]]">>|
|!項目数が減少|<|
|^<<.operator-example 4.1 "[range[5]] :map[sum[]]">>|^<<.operator-example 4.2 "[range[5]] :and[sum[]]">>|
|^<<.operator-example 5.1 "[range[5]] :map[join[,]]">>|^<<.operator-example 5.2 "[range[5]] :and[join[,]]">>|
|!項目数が増加|<|
|^<<.operator-example 6.1 "[[1,2,3]] [[4,5]] :map[split[,]]">>|^<<.operator-example 6.2 "[[1,2,3]] [[4,5]] :and[split[,]]">>|
|!重複排除|<|
|^<<.operator-example 7.1 "[range[5]] :map[[hello]]">>|^<<.operator-example 7.2 "[range[5]] :and[[hello]]">>|
|!currentTiddler|<|
|^<<.operator-example 8.1 "[tag[shopping]] :map[<currentTiddler>]">>|^<<.operator-example 8.2 "[tag[shopping]] :and[<currentTiddler>]">>|
|^<<.operator-example 9.1 "[tag[shopping]] :map[{!!quantity}]">>|^<<.operator-example 9.2 "[tag[shopping]] :and[{!!quantity}]">>|

View File

@@ -1,35 +0,0 @@
created: 20210618133745003
from-version: 5.2.0
modified: 20250319105451115
original-modified: 20240312202834547
rp-input: 前回までのすべてのランのフィルタアウトプット
rp-output: このフィルタランの結果によって変更されたインプットタイトル
rp-purpose: 各項目に対してこのフィルタを実行した結果に基づいてインプットタイトルを変更
rp-suffix: <<.from-version "5.2.3">> フィルタランからすべての結果を返す場合は<<.value flat>>、最初の結果のみを返す場合は省略(デフォルト)
tags: [[Named Filter Run Prefix]]
title: Map Filter Run Prefix
ja-title: mapフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":map" (: ":flat" | - ) | - )
[["ラン"|"Filter Run"]]
"""/>
以前のランからの各インプットタイトルは、順番にこのランに渡されます。フィルタランはインプットタイトルを変換し、このランのアウトプットはインプットタイトルを置き換えます。たとえば、フィルタラン`[get[caption]else{!!title}]`は、タイトルが保持されるフィールドが存在しない場合以外、各インプットタイトルをそのキャプションフィールドに置き換えます。
フィルタラン内では、<<.var currentTiddler>>変数は処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:map[{!!price}multiply{!!cost}]`のようなフィルタランが計算に使用できるようになります。
フィルタラン内では、次の変数を使用できます:
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタランの外での変数`currentTiddler`の値。
* <<.var index>> - <<.from-version "5.2.1">> 現在のリスト項目の数値インデックス(リストの最初の項目はゼロ)。
* <<.var revIndex>> - <<.from-version "5.2.1">> 現在のリスト項目の逆数値インデックス(リストの最後の項目はゼロ)。
* <<.var length>> - <<.from-version "5.2.1">> インプットリストの合計の長さ。
`:map`プレフィックス付きで使用されるフィルタランは、渡された項目と少なくとも同じ数の項目を返す必要があります。フィルタランがアウトプットを返さないインプットタイトルは、空の文字列に置き換えられます。特に、[[getオペレータ|get Operator]]を使用してフィールドの値を取得する場合は、[[elseオペレータ|else Operator]] を使用してフィールド値が欠落しないようにすると役立ちます。たとえば、`[get[myfield]else[default-value]...`のようにします。
[[mapフィルタランプレフィックス(例)|Map Filter Run Prefix (Examples)]]

View File

@@ -1,38 +0,0 @@
created: 20201214044413473
modified: 20250227102948619
original-modified: 20230711090833212
tags: [[Filter Run Prefix]]
title: Named Filter Run Prefix
ja-title: 名前付きフィルタランプレフィックス
type: text/vnd.tiddlywiki
<<.from-version "5.1.23">>で、名前付きフィルタランプレフィックスが実装されました。図に示すように、`:cascade`、`:map`、`:sort`が後から追加されました。
名前付きフィルタランプレフィックスは、[[ショートカットランプレフィックス|Shortcut Filter Run Prefix]]の代わりに、[[フィルタ式|Filter Expression]]の[[ラン|Filter Run]]の前に置くことができます。
<$railroad text="""
\start none
\end none
(
[[<":all"> |"All Filter Run Prefix"]] |
[[<":and"> |"And Filter Run Prefix"]] |
[[<":cascade"> /"v5.2.1"/ |"Cascade Filter Run Prefix"]] |
[[<":else"> |"Else Filter Run Prefix"]] |
[[<":except"> |"Except Filter Run Prefix"]] |
[[<":filter"> |"Filter Filter Run Prefix"]] |
[[<":intersection"> |"Intersection Filter Run Prefix"]] |
[[<":map"> /"v5.2.0"/ |"Map Filter Run Prefix"]] |
[[<":or"> |"Or Filter Run Prefix"]] |
[[<":reduce"> |"Reduce Filter Run Prefix"]] |
[[<":sort"> /"v5.2.0"/ |"Sort Filter Run Prefix"]] |
[[<":then"> /"v5.3.0"/ |"Then Filter Run Prefix"]]) [[run|"Filter Run"]]
"""/>
<<.tip "名前付きフィルタランプレフィックス`:filter`を、すべてのインプットタイトルにサブフィルタを適用し、サブフィルタから空の結果を返すタイトルを除外する[[filterオペレータ|filter Operator]]と比較します">>
<<.tip "名前付きフィルタランプレフィックス`:reduce`を、サブフィルタを繰り返し適用してアイテムのリストを単一のアイテムに平坦化するために使用される[[reduceオペレータ|reduce Operator]]と比較します">>
<<.tip """フィルタランプレフィックス`:reduce`、`:sort`、`:map`、`:filter`内では、変数<<.var currentTiddler>>は処理中のTiddlerのタイトルに設定されます。<br>サブフィルタ外のcurrentTiddlerの値は、変数<<.var "..currentTiddler">>で使用できます <<.from-version "5.2.0">>""" >>
参照: [[交換可能なフィルターランプレフィックス|Interchangeable Filter Run Prefixes]]

View File

@@ -1,20 +0,0 @@
created: 20230318135743766
from-version: 5.1.23
modified: 20250417105150020
original-modified: 20230322140708372
rp-input: 前回のフィルタランからのすべてのタイトル
rp-output: アウトプットタイトルは主に、前回のフィルタランのアウトプットに[[重複排除して追加|Dominant Append]]されます。
rp-purpose: Tiddlerセットの重複排除した結合
tags: [[Named Filter Run Prefix]]
title: Or Filter Run Prefix
ja-title: orフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":or" | - )
[["ラン"|"Filter Run Prefix"]]
"""/>
:or プレフィックスはプレフィックスを全く使用しないのと同じです。[[フィルタランプレフィックスのショートカット|Shortcut Filter Run Prefix]]で`run`を参照してください

View File

@@ -1,29 +0,0 @@
created: 20211124151912931
modified: 20250419111355942
original-modified: 20230305125430544
tags: [[Reduce Filter Run Prefix]]
title: Reduce Filter Run Prefix (Examples)
ja-title: reduceフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
\define multiply-input() [multiply<accumulator>]
次の例では、これらのデータTiddlerを使用します:
<ul>
<$list filter="[tag[shopping]!has[draft.of]]">
<li>
''<$link><$text text=<<currentTiddler>>/></$link>'' quantity: <$text text={{!!quantity}}/>, price: <$text text={{!!price}}/>
</li>
</$list>
</ul>
<<.operator-example 1 "[tag[shopping]] :reduce[get[quantity]add<accumulator>]">>
<<.operator-example 2 "[tag[shopping]] :reduce[get[price]multiply{!!quantity}add<accumulator>]">>
<<.operator-example 3 "[tag[shopping]] :reduce[<index>compare:number:gt[0]then<accumulator>addsuffix[, ]addsuffix<currentTiddler>else<currentTiddler>]" "最初の項目に対して他の項目とは異なる動作をさせるために`<index>`を使用します。これはあくまでもデモンストレーションです。このタスクを実行するには、[[joinオペレータ|join Operator]]を使うのがよいです">>
<<.operator-example 4 "[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>]" "空のインプットは空のアウトプットを生成します">>
<<.operator-example 5 "[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>] :else[[0]]" "インプットが空の場合に確実にアウトプットするために`:else`使用します">>
<$macrocall $name=".tip" _="""[[reduceオペレータ|reduce Operator]]とは異なり、`:reduce`プレフィックスはaccumulatorの初期値を指定できないため、初期値は常に空(数学オペレータでは0として扱われます)になります。したがって`=1 =2 =3 :reduce[multiply<accumulator>]`は、6ではなく0が生成されます。accumulatorの初期値を指定する必要がある場合は、[[reduceオペレータ|reduce Operator]]を使用します。"""/>
<<.operator-example 6 "=1 =2 =3 :reduce[multiply<accumulator>]" "空の初期値は数学オペレータによって0として扱われます">>
<<.operator-example 7 "=1 =2 =3 +[reduce<multiply-input>,[1]]" "正しい結果を得るためには初期値の設定が必要な場合があります">>

View File

@@ -1,49 +0,0 @@
created: 20211124151912931
from-version: 5.1.23
modified: 20250417105804821
original-modified: 20230710073305239
rp-input: 前回のフィルタランからのすべてのフィルタアウトプット
rp-output: 累積された単一アイテム
rp-purpose: 各インプットタイトルにフィルタランを繰り返し適用して、前回までのすべてのフィルタアウトプットを単一の項目に置き換え
tags: [[Named Filter Run Prefix]]
title: Reduce Filter Run Prefix
ja-title: reduceフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":reduce" | - )
[["ラン"|"Filter Run"]]
"""/>
前回のランからの各インプットタイトルは、順番にこのランに渡されます。このランへの以前の呼び出しの結果は、変数<<.var accumulator>>を介して次の呼び出しで使用できます。このランへの最後の呼び出しの結果がアウトプットとして返されます。典型的な使用法は、各インプットタイトルの特定のフィールドの値を合計することです。
上記のように、数式を各インプットタイトルに繰り返し適用して、これまでのすべてのフィルタアウトプットを1つの項目に置き換えます。
フィルタラン内では、次の変数を使用できます:
* <<.var accumulator>> - 前回のフィルタランの結果
* <<.var currentTiddler>> - インプットタイトル
* <<.var ..currentTiddler>> - フィルタラン外での変数`currentTiddler`の値。 <<.from-version "5.2.0">>
* <<.var index>> - 現在のリスト項目の数値インデックス(リストの最初の項目は0)
* <<.var revIndex>> - 現在のリスト項目の逆の数値インデックス(リストの最後の項目は0)
* <<.var length>> - インプットリストの長さの合計
<<.tip "名前付きフィルタランプレフィックス`:reduce`を、サブフィルタを繰り返し適用して項目リストを1つの項目に平坦化するために使用される[[reduceオペレータ|reduce Operator]]`:reduce`と比べてください。">>
```
[tag[shopping]] :reduce[get[quantity]add<accumulator>]
```
は以下と同等です:
```
\define num-items() [get[quantity]add<accumulator>]
[tag[shopping]reduce<num-items>]
```
[[reduceフィルタランプレフィックス(例)|Reduce Filter Run Prefix (Examples)]]

View File

@@ -1,30 +0,0 @@
created: 20230305131705188
modified: 20250510102220175
original-modified: 20230710074438655
tags: [[Filter Run Prefix]]
title: Shortcut Filter Run Prefix
ja-title: ショートカットフィルタランプレフィックス
type: text/vnd.tiddlywiki
ショートカットのプレフィックスはタイピングが速いため、上級ユーザーによく使用されますが、経験の浅いユーザーには読みにくいという欠点があります。そのため、より詳細な情報を持つ[[名前付きプレフィックス|Named Filter Run Prefix]]が作成されました。ショートカットと名前付きフィルタランプレフィックスは、以下の表に示すように互換性があります。
<$railroad text="""
\start none
\end none
(-|:"+"|"-"|"~"|"=")
[["ラン"|"Filter Run"]]
"""/>
ランに次の内容が含まれている場合:
* プレフィックスが無い場合、アウトプットタイトルはフィルタのアウトプットに[[優先的に追加|Dominant Append]]されます
* プレフィックス`+`は、前回までのフィルタアウトプットをインプットとして受け取り、そのアウトプットはこれまでのすべてのフィルタアウトプットを<<.em "置き換え">>、次のランのインプットを形成します
* プレフィックス`-`は、アウトプットタイトルがフィルタのアウトプットから<<.em 取り除か>>れます(そのようなTiddlerが存在する場合)
* プレフィックス`~`は、フィルタアウトプットが空リストの場合、ランの結果のタイトルがフィルタアウトプットに[[優先的に追加|Dominant Append]]されます。フィルタアウトプットが空リストでない場合、ランは無視されます。<<.from-version "5.1.18">>
* プレフィックス`=`は、アウトプットタイトルが重複排除されずにフィルタのアウトプットに追加されます。<<.from-version "5.1.20">>
{{Interchangeable Filter Run Prefixes}}

View File

@@ -1,35 +0,0 @@
created: 20210428074912172
modified: 20250420104606860
original-modified: 20230315165343329
tags: [[Sort Filter Run Prefix]]
title: Sort Filter Run Prefix (Examples)
ja-title: sortフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
タイトルの長さで並べ替え:
<<.operator-example 1 "[all[tiddlers]] :sort:number[length[]] +[limit[10]]">>
タイトルの長さを逆順に並べ替え:
<<.operator-example 2 "[all[tiddlers]] :sort:number:reverse[length[]] +[limit[10]]">>
テキストの長さで並べ替え:
<<.operator-example 3 "[all[tiddlers]] :sort:number[get[text]length[]] +[limit[10]]">>
修正日の新しい順に並べ替え:
<<.operator-example 4 "[tag[Field Operators]] :sort:date[get[modified]else[19700101]] +[limit[10]]">>
タイトルで並べ替え:
<<.operator-example 5 "[tag[Field Operators]] :sort:string:casesensitive[get[caption]] +[limit[10]]">>
タイトルの逆順に並べ替え:
<<.operator-example 6 "[tag[Field Operators]] :sort:string:casesensitive,reverse[get[caption]] +[limit[10]]">>
大文字と小文字を区別してテキストとして並べ替え:
<<.operator-example 7 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:casesensitive[{!!title}]">>
大文字と小文字を区別せずにテキストとして並べ替え:
<<.operator-example 8 "Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:caseinsensitive[{!!title}]">>

View File

@@ -1,61 +0,0 @@
created: 20210428083929749
from-version: 5.2.0
modified: 20250419111702297
original-modified: 20240717120111427
rp-input: 前回までのすべてのランのフィルタアウトプット
rp-output: アウトプットタイトルは、以前のフィルタランのアウトプットを置き換え
rp-purpose: 各項目に対して実行されたこのフィルタの評価結果によってインプットタイトルを並べ替え
rp-suffix: :sortフィルタランプレフィックスはリッチサフィックスを使用します。詳細については以下を参照
rp-suffix-name: S
tags: [[Named Filter Run Prefix]]
title: Sort Filter Run Prefix
ja-title: sortフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
( ":sort" )
( ":" )
( : "string" | "alphanumeric" | "number" | "integer" | "version" | "date" )
( ":" )
{
(
(
( : "caseinsensitive" /"stringとalphanumericには必須"/ | "casesensitive" /"stringとalphanumericには必須"/)
| "reverse" /"オプション"/
)
)
+","
}
[["ラン"|"Filter Run"]]
"""/>
前回のランからインプットされた各タイトルは、今回のランに順番に渡されます。フィルタランは、インプットタイトルをソートに必要な形式に変換します。例えば、フィルタラン`[length[]]`は各インプットタイトルをその長さを表す数値に変換し、インプットタイトルを長さに基づいてソートします。
フィルタラン内では、<<.var currentTiddler>>変数が処理中のTiddlerのタイトルに設定されていることに注意してください。これにより、`:sort:number[{!!value}divide{!!cost}]`のようなフィルタランを計算に使用できます。ラン外の<<.var currentTiddler>>の値は、<<.var "..currentTiddler">>変数で使用できます。
`:sort` <<.place S>>フィルタランプレフィックスでは、複数のサフィックスを許可する拡張構文が使用されます。その一部は必須です:
```
:sort:<type>:<flaglist>[...filter run...]
```
* ''type'': 必須。項目の比較方法を決定し、''string''、''alphanumeric''、''number''、''integer''、''version''、''date''のいずれかになります。
* ''flaglist'': 次のフラグのコンマ区切りリスト:
** ''casesensitive'' または ''caseinsensitive'' (typeが`string`や`alphanumeric`のとき必須)。
*** フラグがない場合、デフォルトは: //caseinsensitive// です。
*** 明確にするために、このパラメータは常に定義する必要があります。
** フィルター実行の順序を反転するには、''reverse''を使用します(オプション)。
<<.tip """`:sort`プレフィックス付きのフィルタランは、''渡された項目と同じ数の項目が返される''ことに注意してください。特に、[[getオペレータ|get Operator]]を使用してフィールドの値を取得する場合は、[[elseオペレータ|else Operator]]を使用してフィールド値が欠落するのを防ぐと便利です。例えば`...[get[myfield]else[default-value]]`。<br><br>
''missing''エントリは''ゼロ''または''空文字列''として扱われます。
参照: <<.olink sortsub>>オペレータ
[[例|Sort Filter Run Prefix (Examples)]]

View File

@@ -1,53 +0,0 @@
created: 20230617183745774
modified: 20250504103912315
original-modified: 20230617183745774
tags: [[Then Filter Run Prefix]]
title: Then Filter Run Prefix (Examples)
ja-title: thenフィルタランプレフィックス(例)
type: text/vnd.tiddlywiki
!! 条件実行
<<.op :then>>フィルタランプレフィックスを使用すると、ネストした[[ListWidget]]や[[WikiText内のマクロ定義|Macro Definitions in WikiText]]の必要性を回避できます。
<$macrocall $name='wikitext-example-without-html'
src="""<$edit-text field="search" placeholder="Search title"/>
<$let searchTerm={{!!search}}>
<$list filter="[<searchTerm>minlength[3]] :then[!is[system]search:title<searchTerm>]" template="$:/core/ui/ListItemTemplate"/>
</$let>"""/>
!! 条件(サブ)フィルタ
<<.op :then>>フィルターランプレフィックスを<<.op :else>>プレフィックスと組み合わせて条件フィルタを作成できます。この例では、<<.var searchSubfilter>>内の検索に使用されるフィールドは[[$:/temp/searchFields]]の値に依存し、<<.var sortSubfilter>>による並べ替え順序は[[$:/temp/searchSort]]の値に依存します。これらのTiddlerの値を設定するには、チェックボックスを使用します。
<<.tip "サブフィルタ内の各フィルタランは、<<.olink subfilter>>オペレータのインプットをインプットとして受け取ることに注意してください">>
<<.olink then>>と<<.olink else>>オペレータはサブフィルタを呼び出したり追加のフィルタステップを実行できないため、このようなアプリケーションには使用できません。
<$macrocall $name='wikitext-example-without-html'
src="""<$checkbox tiddler="$:/temp/searchSort"
field="text"
checked="chrono" unchecked="alpha" default="alpha">
時系列順に並べ替え(新しい順)
</$checkbox><br/>
<$checkbox tiddler="$:/temp/searchFields"
field="text"
checked="title" unchecked="default" default="title">
<<.field title>>のみを検索
</$checkbox><p/>
<$let searchSubfilter="[{$:/temp/searchFields}match[default]] :then[search[prefix]] :else[search:title[prefix]]"
sortSubfilter="[{$:/temp/searchSort}match[chrono]] :then[!nsort[modified]] :else[sort[title]]"
limit=10 >
<$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>subfilter<sortSubfilter>first<limit>]">
<$link/> (<$text text={{{ [{!!modified}format:date[YYYY-0MM-0DD]] }}} />)<br/>
</$list>
<$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>rest<limit>count[]]">
... and <<currentTiddler>> more.
</$list>
</$let>"""/>
時系列順に並べ替える(新しい順)
検索titleのみ

View File

@@ -1,41 +0,0 @@
created: 20210618133745003
from-version: 5.3.0
modified: 20250423104147235
original-modified: 20230710074225410
rp-input: <<.olink すべて>>のTiddlerタイトル
rp-output: フィルタランのアウトプットは、空のリストでない限り、前回までのランのアウトプットを置き換えます(以下を参照)。
rp-purpose: フィルタランへのインプットをそのアウトプットで置き換え、インプットがある場合にのみランを評価
search:
tags: [[Named Filter Run Prefix]]
title: Then Filter Run Prefix
ja-title: thenフィルタランプレフィックス
type: text/vnd.tiddlywiki
<$railroad text="""
\start none
\end none
":then"
[["ラン"|"Filter Run"]]
"""/>
<<.op :then>>フィルターランプレフィックスは、前回までのすべてのフィルタランの結果をそのアウトプットに置き換えるために使用されます。
前回までのすべてのランの結果が空のリストの場合、<<.op :then>>プレフィックス付きフィルタランは評価されません。
<<.op :then>>プレフィックス付きフィルタランのアウトプット自体が空のリストである場合、前回までのすべてのフィルタランの結果は変更されずに渡されます。
<<.tip "空の文字列項目が1つ含まれるリストは空のリストではないことに注意してください。">>
!! <<.op :then>>ランプレフィックスと<<.olink then>>オペレータの比較
<<.op then>>オペレータと<<.op :then>>プレフィックス付きフィルタランの主な違いは、オペレータはインプット[[タイトルリスト|Title List]]の//各項目//をそのパラメータで置き換えるのに対し、<<.op :then>>オペレータは//インプットリスト全体//をそのラン結果で置き換える点です。
|doc-op-comparison tc-center|k
| !<<.op :then>>フィルタランプレフィックス | !<<.op then>>オペレータ |
|^<<.operator-example m1-1 "[tag[WikiText]] :then[[true]]">>|^<<.operator-example m1-2 "[tag[WikiText]then[true]]">><p>これらを同等にするには、追加のフィルタステップを追加します:</p> <<.operator-example m1-3 "[tag[WikiText]count[]compare:number:gt[0]then[true]]">>|
[[thenフィルタランプレフィックス(例)|Then Filter Run Prefix (Examples)]]
参照: [[elseフィルタランプレフィックス|Else Filter Run Prefix]] | [[thenオペレータ|then Operator]] と [[elseオペレータ|else Operator]]

View File

@@ -8,53 +8,42 @@ description: Under development
//[[See GitHub for detailed change history of this release|https://github.com/TiddlyWiki/TiddlyWiki5/compare/v5.3.6...master]]//
This is a minor bug fix release before introducing the major changes planned for v5.4.0. Those changes do involve some minor breaks in backwards compatibility so this release is intended to be a stable point for users before they upgrade.
! Major Improvements
! Translation improvements
* Chinese
* French
* German
* Japanese
! Plugin Improvements
! Widget Improvements
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8816">> 'disabled' attribute to SelectWidget and BrowseWidget
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8819">> 'tabindex' attribute to BrowseWidget, RangeWidget, CheckboxWidget and RadioWidget
*
! Filter Improvements
*
! Usability Improvements
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8783">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/commit/028c80782d105beb90f5d58a7f22e865c7e8c6f4">>) [[Hidden Setting: Default Type for Missing Tiddlers]]
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8837">> [[incorrect|https://localizejs.com/articles/why-using-flag-icons-can-confuse-your-users/]] use of national flags to represent languages
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8078">> vertical spacing of sidebar "Tools" tab when displayed in the story river, and add some utility CSS classes
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9102">> control panel setting to specify the default tiddler info tab
! Palette Improvements
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8783"> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/commit/028c80782d105beb90f5d58a7f22e865c7e8c6f4">>) [[Hidden Setting: Default Type for Missing Tiddlers]]
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8661">> DiffTextWidget colours to several core palettes
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8807">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8911">>) Flexoki palette with additional colours
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9007">> Vanilla palette with resolvable #RRGGBB values
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9053">> test case palette entries to the remaining core palettes
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9020">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9020">>) ~SolarizedLight and ~SolarizedDark palettes to improve readability of stability badges and the download button
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9016">> Nord palette to improve accessibility and make the editor border visible
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9009">> ~ContrastDark palette to improve accessibility
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9018">> ~SolarFlare palette, fix plugin button hover and sidebar icon hover
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9017">> Rocker palette, make toolbar buttons visible, sidebar tabs adjusted
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9014">> ~GruvboxDark palette, improve accessibility contrast, add network activity
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9013">> ~DesertSand palette, fix some errors, make values resolvable
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9012">> ~DarkPhotos palette, make colours resolvable
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9011">> Cupertino dark palette
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9010">> ~ContrastLight palette, slightly improved contrast
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9008">> Blanca palette with resolvable values, add missing indices, slight colour adjustments
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8837">> [[incorrect|https://localizejs.com/articles/why-using-flag-icons-can-confuse-your-users/]] use of national flags to represent languages
! Hackability Improvements
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8768">> several macros such as [[colour-picker Macro]], [[dumpvariables Macro]], [[image-picker Macro]], [[translink Macro]], [[tree Macro]] and [[list-links-draggable Macro]] to use the newer syntax
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8780">> rendered plain text template to support more languages
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8816">> 'disabled' attribute to SelectWidget and BrowseWidget
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8819">> 'tabindex' attribute to BrowseWidget, RangeWidget, CheckboxWidget and RadioWidget
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8821">> the editor link dropdown to use newer syntax
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8911">> support for images in AVIF format
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9076">> a CSS class to the import table
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9098">> a CSS class to help style links in modals
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8912">> support for custom MIME types to the [[WidgetMessage: tm-copy-to-clipboard]]
! Bug Fixes
@@ -74,49 +63,31 @@ This is a minor bug fix release before introducing the major changes planned for
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/8955">> refresh problem with "save" button
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8721">> [[list-tagged-draggable Macro]] to use the "caption" field if available
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8959">> problem with missing expandable arrow in [[toc-selective-expandable|Table-of-Contents Macros]]
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/5930">> the default value does not work for the CheckboxWidget if it is bound to an index in a data tiddler
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/5930">> the default value does not working for the CheckboxWidget if it is bound to an index in a data tiddler
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/8970">> [[median Operator]] to order values as numbers, not strings
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/8958">> red screen of embarrassment error with moduleproperty filter operator
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/issues/8946">> red screen of embarrassment when using a [[startup action|StartupActions]] with the [[now Macro]]
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9026">> some download file types not being specified
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9032">> configuration filter in $:/AdvancedSearch "Standard" tab
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9025">> stringification of derived fields for [[tiddlywiki.files Files]]
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8739">> broken tag pill styling in edit mode after v5.3.3
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/9105">> adding external themes to the [[Highlight Plugin]]
! Node.js Improvements
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8789">> incorrect redirect when combining a custom [[path-prefix|WebServer Parameter: path-prefix]] with manual HTTP Basic Authentication via the [[/login-basic|WebServer API: Force Basic Authentication Login]] endpoint
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/55dbce10f461c41240d2c6ee5a49bd6ed0edc15b">> crash loading large files
! Performance Improvements
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/issues/8952">> plugin editions to use the external core
! Developer Improvements
* <<.link-badge-updated "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8978">> Widget.prototype.addEventListener not overwriting old listeners
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/7596">> configurations for [[dprint|https://dprint.dev/]] and [[eslint|https://eslint.org/]] (partially reverted in [[#8987|https://github.com/TiddlyWiki/TiddlyWiki5/pull/8987]])
*
! Acknowledgements
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
<<.contributors """
bobjtls
DesignThinkerer
flibbles
galenhuntington
hoelzro
IchijikuIchigo
jbaldus
jeremyredhead
jrbntt
jryans
kookma
Leilei332
linonetwo
matthewsalmon
michaeljmcd
opn
pmario
@@ -124,5 +95,4 @@ Rhys-T
saqimtiaz
well-noted
xcazin
yaisog
""">>

View File

@@ -3,16 +3,20 @@
"plugins": [
"tiddlywiki/browser-sniff",
"tiddlywiki/help",
"tiddlywiki/stacked-view",
"tiddlywiki/powered-by-tiddlywiki",
"tiddlywiki/internals",
"tiddlywiki/highlight",
"tiddlywiki/bibtex",
"tiddlywiki/savetrail",
"tiddlywiki/external-attachments",
"tiddlywiki/dynaview",
"tiddlywiki/dynannotate",
"tiddlywiki/codemirror",
"tiddlywiki/menubar",
"tiddlywiki/jszip",
"tiddlywiki/confetti",
"tiddlywiki/dynannotate",
"tiddlywiki/tour"
],
"themes": [

View File

@@ -0,0 +1,21 @@
title: Operators/Wikify/TextMode
description: Simple wikify operator
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\parsermode inline
<$text text={{{ [subfilter{Filter}] }}}/>
+
title: Filter
[{Text}wikify[html],[inline],[text/vnd.tiddlywiki]]
+
title: Text
This is ''the text'' that is __wikified__
+
title: ExpectedResult
This is &lt;strong&gt;the text&lt;/strong&gt; that is &lt;u&gt;wikified&lt;/u&gt;

View File

@@ -0,0 +1,64 @@
title: Operators/Wikify/ParseTreeMode
description: Simple wikify operator
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\parsermode inline
<$text text={{{ [subfilter{Filter}] }}}/>
+
title: Filter
[{Text}wikify[parsetree],[inline],[text/vnd.tiddlywiki]]
+
title: Text
This is ''the text'' that is __wikified__
+
title: ExpectedResult
[
{
"type": "text",
"text": "This is ",
"start": 0,
"end": 8
},
{
"type": "element",
"tag": "strong",
"children": [
{
"type": "text",
"text": "the text",
"start": 10,
"end": 18
}
],
"start": 8,
"end": 20,
"rule": "bold"
},
{
"type": "text",
"text": " that is ",
"start": 20,
"end": 29
},
{
"type": "element",
"tag": "u",
"children": [
{
"type": "text",
"text": "wikified",
"start": 31,
"end": 39
}
],
"start": 29,
"end": 41,
"rule": "underscore"
}
]

View File

@@ -0,0 +1,21 @@
title: Operators/Wikify/TextMode
description: Simple wikify operator
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\parsermode inline
<$text text={{{ [subfilter{Filter}] }}}/>
+
title: Filter
[{Text}wikify[text],[inline],[text/vnd.tiddlywiki]]
+
title: Text
This is ''the text'' that is __wikified__
+
title: ExpectedResult
This is the text that is wikified

View File

@@ -7,9 +7,9 @@ title: Output
\whitespace trim
<$set name="var with spaces" value="spaces">
<$let project="TiddlyWiki" disabled="true" $tiddler="Getting Started" var-with-dashes="dashes">
<$let project="TiddlyWiki" disabled="true" var-with-dashes="dashes">
<div class=`$(project)$
${ [[Hello]addsuffix[There]] }$` attrib=`myvalue` otherattrib=`$(1)$` blankattrib=`` quoted="here" disabled=```$(disabled)$``` dollar=`p-$($tiddler)$-s` dashes=`$(var-with-dashes)$` spaces=`$(var with spaces)$`>
${ [[Hello]addsuffix[There]] }$` attrib=`myvalue` otherattrib=`$(1)$` blankattrib=`` quoted="here" disabled=```$(disabled)$``` dashes=`$(var-with-dashes)$` spaces=`$(var with spaces)$`>
</div>
</$let>
</$set>
@@ -18,4 +18,4 @@ ${ [[Hello]addsuffix[There]] }$` attrib=`myvalue` otherattrib=`$(1)$` blankattri
title: ExpectedResult
<p><div attrib="myvalue" blankattrib="" class="TiddlyWiki
HelloThere" dashes="dashes" disabled="true" dollar="p-Getting Started-s" otherattrib="" quoted="here" spaces="spaces"></div></p>
HelloThere" dashes="dashes" disabled="true" otherattrib="" quoted="here" spaces="spaces"></div></p>

View File

@@ -1139,15 +1139,6 @@ Tests the filtering mechanism.
// Non string properties should get toStringed.
expect(wiki.filterTiddlers("[[$:/core/modules/commands/init.js]moduleproperty[info]]").join(" ")).toBe('{"name":"init","synchronous":true}');
});
it("should minimize unnecessary variable lookup", function() {
var widget = wiki.makeWidget();
var getVar = spyOn(widget, "getVariableInfo").and.callThrough();
expect(wiki.filterTiddlers("[all[]prefix[anything]]", widget).length).toBe(0);
// We didn't use any indirect operands or variables.
// No variable lookup should have occurred.
expect(getVar).not.toHaveBeenCalled();
});
}
});

Some files were not shown because too many files have changed in this diff Show More