mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2026-01-22 19:04:38 +00:00
Compare commits
61 Commits
wikify-ope
...
system-inf
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4b4057a76 | ||
|
|
d09d32bc15 | ||
|
|
8e4a1efa71 | ||
|
|
37d670d11e | ||
|
|
793ce6c190 | ||
|
|
4445efaf71 | ||
|
|
039bb2c826 | ||
|
|
f91380ed13 | ||
|
|
cd480de280 | ||
|
|
2137444d5a | ||
|
|
ea3c601319 | ||
|
|
5d0d2b1369 | ||
|
|
413f14ea9d | ||
|
|
96dc7c7084 | ||
|
|
aa8aafb6ce | ||
|
|
7a1b39accb | ||
|
|
00493a2eed | ||
|
|
9a1e761ec0 | ||
|
|
a661b9a5de | ||
|
|
117e88e604 | ||
|
|
b1bbd9c90a | ||
|
|
288e4ab65c | ||
|
|
9ce649d96a | ||
|
|
c0f823cd1d | ||
|
|
1228a9db77 | ||
|
|
83bacbb5c6 | ||
|
|
856b95671e | ||
|
|
ca776c8a8b | ||
|
|
ca29a95b0e | ||
|
|
ca7dbe2261 | ||
|
|
d4e190cbbc | ||
|
|
294803862a | ||
|
|
7a93126b1e | ||
|
|
b789b3d80a | ||
|
|
ee55ab636b | ||
|
|
cc1a01c08f | ||
|
|
75e89a150d | ||
|
|
e1d6b4863c | ||
|
|
dae6ae85ca | ||
|
|
a3b8c7c586 | ||
|
|
c25df5ce50 | ||
|
|
29f0a91f4b | ||
|
|
7b9153122c | ||
|
|
867b129e0e | ||
|
|
2c5c9cf033 | ||
|
|
05e08cd63b | ||
|
|
bedf9eb56f | ||
|
|
45a3889164 | ||
|
|
f4979dcdfd | ||
|
|
e824f72591 | ||
|
|
f724d1df4f | ||
|
|
66bdd32db9 | ||
|
|
0cb7f0ead0 | ||
|
|
8837a0f405 | ||
|
|
05db1bcb2c | ||
|
|
ff9e92b1cc | ||
|
|
f1b33c02f7 | ||
|
|
2871bd543b | ||
|
|
c117bfd2c5 | ||
|
|
0b5ed7893f | ||
|
|
44617232a7 |
7
.github/workflows/pr-check-build-size.yml
vendored
7
.github/workflows/pr-check-build-size.yml
vendored
@@ -2,6 +2,11 @@ name: Calculate PR build size
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened, synchronize]
|
||||
paths:
|
||||
- 'boot/**'
|
||||
- 'core/**'
|
||||
- 'themes/snowwhite/**'
|
||||
- 'themes/vanilla/**'
|
||||
|
||||
jobs:
|
||||
calculate-build-size:
|
||||
@@ -19,7 +24,7 @@ jobs:
|
||||
with:
|
||||
pr_number: ${{ github.event.pull_request.number }}
|
||||
repo: ${{ github.repository }}
|
||||
base_ref: ${{ github.base_ref }}
|
||||
base_ref: ${{ github.event.pull_request.base.ref }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
mode: size:calc
|
||||
|
||||
|
||||
@@ -131,15 +131,14 @@ Saving/GitService/Gitea/Caption: Gitea Saver
|
||||
Saving/GitService/Gitea/Password: Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)
|
||||
Saving/TiddlySpot/Advanced/Heading: Advanced Settings
|
||||
Saving/TiddlySpot/BackupDir: Backup Directory
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
|
||||
Saving/TiddlySpot/Backups: Backups
|
||||
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/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/Filename: Upload Filename
|
||||
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/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/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
|
||||
@@ -190,6 +189,8 @@ 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
|
||||
@@ -251,3 +252,6 @@ ViewTemplateSubtitle/Caption: View Template Subtitle
|
||||
ViewTemplateSubtitle/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the subtitle of a tiddler.
|
||||
ViewTemplateTags/Caption: View Template Tags
|
||||
ViewTemplateTags/Hint: This rule cascade is used by the default view template to dynamically choose the template for displaying the tags area of a tiddler.
|
||||
WikiInformation/Caption: Wiki Information
|
||||
WikiInformation/Hint: This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
|
||||
WikiInformation/Drag/Caption: Drag this link to copy this tool to another wiki
|
||||
@@ -248,8 +248,7 @@ exports.compileFilter = function(filterString) {
|
||||
// Create a function for the chain of operators in the operation
|
||||
var operationSubFunction = function(source,widget) {
|
||||
var accumulator = source,
|
||||
results = [],
|
||||
currTiddlerTitle = widget && widget.getVariable("currentTiddler");
|
||||
results = [];
|
||||
$tw.utils.each(operation.operators,function(operator) {
|
||||
var operands = [],
|
||||
operatorFunction;
|
||||
@@ -265,6 +264,7 @@ 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);
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
/*\
|
||||
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;
|
||||
};
|
||||
|
||||
})();
|
||||
@@ -44,7 +44,7 @@ UploadSaver.prototype.save = function(text,method,callback) {
|
||||
}
|
||||
// Construct the url if not provided
|
||||
if(!url) {
|
||||
url = "http://" + username + ".tiddlyspot.com/store.cgi";
|
||||
url = "http://" + username + ".tiddlyhost.com/";
|
||||
}
|
||||
// Assemble the header
|
||||
var boundary = "---------------------------" + "AaB03x";
|
||||
|
||||
@@ -74,9 +74,8 @@ 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,
|
||||
plainText: event.paramObject && event.paramObject.plainText
|
||||
},event.paramObject && event.paramObject.type);
|
||||
failureNotification: event.paramObject && event.paramObject.failureNotification
|
||||
});
|
||||
});
|
||||
// Install the tm-focus-selector message
|
||||
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {
|
||||
|
||||
@@ -265,10 +265,9 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
|
||||
/*
|
||||
Copy plain text to the clipboard on browsers that support it
|
||||
*/
|
||||
exports.copyToClipboard = function(text,options,type) {
|
||||
var text = text || "";
|
||||
var options = options || {};
|
||||
var type = type || "text/plain";
|
||||
exports.copyToClipboard = function(text,options) {
|
||||
options = options || {};
|
||||
text = text || "";
|
||||
var textArea = document.createElement("textarea");
|
||||
textArea.style.position = "fixed";
|
||||
textArea.style.top = 0;
|
||||
@@ -281,16 +280,10 @@ exports.copyToClipboard = function(text,options,type) {
|
||||
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");
|
||||
|
||||
@@ -143,6 +143,7 @@ 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";
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
/*\
|
||||
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;
|
||||
|
||||
})();
|
||||
@@ -519,36 +519,3 @@ 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;
|
||||
|
||||
@@ -36,22 +36,89 @@ Compute the internal state of the widget
|
||||
WikifyWidget.prototype.execute = function() {
|
||||
// Get our parameters
|
||||
this.wikifyName = this.getAttribute("name");
|
||||
// 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();
|
||||
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();
|
||||
// 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
|
||||
*/
|
||||
@@ -63,9 +130,9 @@ WikifyWidget.prototype.refresh = function(changedTiddlers) {
|
||||
return true;
|
||||
} else {
|
||||
// Refresh the widget tree
|
||||
if(this.wikifier.refresh(changedTiddlers)) {
|
||||
if(this.wikifyWidgetNode.refresh(changedTiddlers)) {
|
||||
// Check if there was any change
|
||||
var result = this.wikifier.getResult();
|
||||
var result = this.getResult();
|
||||
if(result !== this.wikifyResult) {
|
||||
// If so, save the change
|
||||
this.wikifyResult = result;
|
||||
|
||||
@@ -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: ""})
|
||||
});
|
||||
};
|
||||
|
||||
@@ -18,7 +18,7 @@ code-background: #f7f7f9
|
||||
code-border: #e1e1e8
|
||||
code-foreground: #dd1144
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #66cccc
|
||||
download-background: #3aafaf
|
||||
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: rgba(0,200,0,0.7)
|
||||
dropzone-background: #00d900
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
@@ -52,26 +52,30 @@ notification-border: #999999
|
||||
page-background: #ffffff
|
||||
pre-background: #f5f5f5
|
||||
pre-border: #cccccc
|
||||
primary: #7897f3
|
||||
primary: #6387f1
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #ccc
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||
sidebar-controls-foreground: #aaaaaa
|
||||
sidebar-foreground-shadow: #ffffff
|
||||
sidebar-foreground: #acacac
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: #c0c0c0
|
||||
sidebar-muted-foreground: #aaaaaa
|
||||
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:
|
||||
sidebar-tab-foreground-selected: <<colour tab-foreground>>
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #444444
|
||||
sidebar-tiddler-link-foreground: #7897f3
|
||||
sidebar-tiddler-link-foreground: <<colour primary>>
|
||||
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
|
||||
@@ -83,10 +87,10 @@ tab-foreground: #666666
|
||||
table-border: #dddddd
|
||||
table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #ffeedd
|
||||
tag-foreground: #000
|
||||
tag-background: #ffd5aa
|
||||
tag-foreground: #000000
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: #eee
|
||||
tiddler-border: #eeeeee
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
tiddler-controls-foreground-selected: #444444
|
||||
tiddler-controls-foreground: #cccccc
|
||||
@@ -97,7 +101,7 @@ tiddler-editor-fields-even: #e0e8e0
|
||||
tiddler-editor-fields-odd: #f0f4f0
|
||||
tiddler-info-background: #f8f8f8
|
||||
tiddler-info-border: #dddddd
|
||||
tiddler-info-tab-background: #f8f8f8
|
||||
tiddler-info-tab-background: <<colour tiddler-info-background>>
|
||||
tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: #c0c0c0
|
||||
@@ -111,5 +115,6 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
untagged-background: #cccccc
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -85,6 +85,7 @@ 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
|
||||
|
||||
@@ -5,11 +5,11 @@ description: High contrast and unambiguous (dark version)
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #f00
|
||||
alert-background: #ff0000
|
||||
alert-border: <<colour background>>
|
||||
alert-highlight: <<colour foreground>>
|
||||
alert-muted-foreground: #800
|
||||
background: #000
|
||||
alert-muted-foreground: #880000
|
||||
background: #000000
|
||||
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: #f00
|
||||
download-background: #080
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #48ff48
|
||||
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 foreground>>
|
||||
dropdown-tab-background: <<colour foreground>>
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
dropdown-tab-background-selected: #868686
|
||||
dropdown-tab-background: #515151
|
||||
dropzone-background: #1aff1a
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-visited: #00a
|
||||
external-link-foreground: #00e
|
||||
external-link-foreground-visited: #5353ff
|
||||
external-link-foreground: #9595ff
|
||||
footnote-target-background: #4c4c4c
|
||||
foreground: #fff
|
||||
foreground: #ffffff
|
||||
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: #00f
|
||||
primary: #8a8aff
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: <<colour background>>
|
||||
sidebar-controls-foreground-hover: #ffff00
|
||||
sidebar-controls-foreground: <<colour foreground>>
|
||||
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||
sidebar-foreground: <<colour foreground>>
|
||||
@@ -72,6 +72,10 @@ 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>>
|
||||
@@ -81,14 +85,15 @@ tab-divider: <<colour foreground>>
|
||||
tab-foreground-selected: <<colour foreground>>
|
||||
tab-foreground: <<colour background>>
|
||||
table-border: #dddddd
|
||||
table-footer-background: #a8a8a8
|
||||
table-header-background: #f0f0f0
|
||||
tag-background: #fff
|
||||
tag-foreground: #000
|
||||
table-footer-background: #444444
|
||||
table-header-background: #444444
|
||||
tag-background: #ffffff
|
||||
tag-foreground: #000000
|
||||
testcase-accent-level-1: #144a8c
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour foreground>>
|
||||
tiddler-controls-foreground-hover: #ddd
|
||||
tiddler-controls-foreground-selected: #fdd
|
||||
tiddler-controls-foreground-selected: #ae0000
|
||||
tiddler-controls-foreground: <<colour foreground>>
|
||||
tiddler-editor-background: <<colour background>>
|
||||
tiddler-editor-border-image: <<colour foreground>>
|
||||
@@ -102,14 +107,15 @@ 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>>
|
||||
@@ -5,7 +5,7 @@ description: High contrast and unambiguous (light version)
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #f00
|
||||
alert-background: #ff4a4a
|
||||
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: #080
|
||||
download-background: #008200
|
||||
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 foreground>>
|
||||
dropdown-tab-background-selected: <<colour background>>
|
||||
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: #00f
|
||||
primary: #0000ff
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: <<colour background>>
|
||||
sidebar-controls-foreground-hover: #606060
|
||||
sidebar-controls-foreground: <<colour foreground>>
|
||||
sidebar-foreground-shadow: rgba(0,0,0, 0)
|
||||
sidebar-foreground-shadow: #000000
|
||||
sidebar-foreground: <<colour foreground>>
|
||||
sidebar-muted-foreground-hover: #444444
|
||||
sidebar-muted-foreground: <<colour foreground>>
|
||||
@@ -72,6 +72,10 @@ 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>>
|
||||
@@ -88,7 +92,7 @@ tag-foreground: #fff
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour foreground>>
|
||||
tiddler-controls-foreground-hover: #ddd
|
||||
tiddler-controls-foreground-selected: #fdd
|
||||
tiddler-controls-foreground-selected: #c5abf3
|
||||
tiddler-controls-foreground: <<colour foreground>>
|
||||
tiddler-editor-background: <<colour background>>
|
||||
tiddler-editor-border-image: <<colour foreground>>
|
||||
@@ -113,3 +117,4 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: <<colour foreground>>
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -5,30 +5,30 @@ name: Cupertino Dark
|
||||
description: A macOS inspired dark palette
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
alert-background: #FF453A
|
||||
alert-border: #FF453A
|
||||
alert-background: #ff4b42
|
||||
alert-border: #950700
|
||||
alert-highlight: #FFD60A
|
||||
alert-muted-foreground: <<colour muted-foreground>>
|
||||
alert-muted-foreground: #323234
|
||||
background: #282828
|
||||
blockquote-bar: <<colour page-background>>
|
||||
blockquote-bar: #8d8d8d
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: <<colour pre-background>>
|
||||
code-border: <<colour pre-border>>
|
||||
code-foreground: rgba(255, 255, 255, 0.54)
|
||||
code-foreground: #c7c7c7
|
||||
dirty-indicator: #FF453A
|
||||
download-background: <<colour primary>>
|
||||
download-foreground: <<colour foreground>>
|
||||
download-foreground: <<colour background>>
|
||||
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: #323232
|
||||
dropdown-tab-background: #707070
|
||||
dropzone-background: #30D158
|
||||
external-link-background-hover: transparent
|
||||
external-link-background-visited: transparent
|
||||
external-link-background: transparent
|
||||
external-link-foreground-hover:
|
||||
external-link-foreground-hover: #9511d5
|
||||
external-link-foreground-visited: #BF5AF2
|
||||
external-link-foreground: #32D74B
|
||||
footnote-target-background: #747474
|
||||
@@ -60,31 +60,36 @@ 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: rgba(255, 255, 255, 0.54)
|
||||
sidebar-muted-foreground: rgba(255, 255, 255, 0.38)
|
||||
sidebar-muted-foreground-hover: #acacac
|
||||
sidebar-muted-foreground: #787878
|
||||
sidebar-tab-background-selected: #3F638B
|
||||
sidebar-tab-background: <<colour background>>
|
||||
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)
|
||||
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
|
||||
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: <<colour page-background>>
|
||||
tab-border: #4a4a4a
|
||||
tab-divider: <<colour page-background>>
|
||||
tab-foreground-selected: rgba(255, 255, 255, 0.87)
|
||||
tab-foreground: rgba(255, 255, 255, 0.54)
|
||||
tab-foreground-selected: #ffffff
|
||||
tab-foreground: #adadad
|
||||
table-border: #464646
|
||||
table-footer-background: <<colour tiddler-editor-fields-odd>>
|
||||
table-header-background: <<colour tiddler-editor-fields-even>>
|
||||
table-footer-background: #7f7f7f
|
||||
table-header-background: <<colour table-border>>
|
||||
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>>
|
||||
@@ -92,9 +97,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: 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-editor-border: #444444
|
||||
tiddler-editor-fields-even: #1f1f1f
|
||||
tiddler-editor-fields-odd: #464646
|
||||
tiddler-info-background: #1E1E1E
|
||||
tiddler-info-border: #1E1E1E
|
||||
tiddler-info-tab-background: #3F638B
|
||||
@@ -111,8 +116,8 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: <<colour very-muted-foreground>>
|
||||
very-muted-foreground: #464646
|
||||
untagged-background: #5f5f5f
|
||||
very-muted-foreground: #3f3f3f
|
||||
selection-background: #3F638B
|
||||
selection-foreground: #ffffff
|
||||
wikilist-background: <<colour page-background>>
|
||||
@@ -131,3 +136,4 @@ wikilist-title: <<colour foreground>>
|
||||
wikilist-title-svg: <<colour foreground>>
|
||||
wikilist-toolbar-foreground: <<colour foreground>>
|
||||
wikilist-url: <<colour muted-foreground>>
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -20,7 +20,7 @@ code-background: #f7f7f9
|
||||
code-border: #e1e1e8
|
||||
code-foreground: #dd1144
|
||||
dirty-indicator: #ff0000
|
||||
download-background: #34c734
|
||||
download-background: #30b830
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -58,22 +58,26 @@ primary: #5778d8
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
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-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-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: rgba(255,255,255, 0.2)
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-divider: #e4e4e4
|
||||
sidebar-tab-foreground-selected: #ddddff
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: #aaf
|
||||
sidebar-tiddler-link-foreground: #ddf
|
||||
site-title-foreground: #fff
|
||||
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
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: #ffffff
|
||||
tab-background: #d8d8d8
|
||||
@@ -90,7 +94,7 @@ tag-foreground: #ffffff
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: #888888
|
||||
tiddler-controls-foreground-selected: #444444
|
||||
tiddler-controls-foreground-selected: #6a6aff
|
||||
tiddler-controls-foreground: #cccccc
|
||||
tiddler-editor-background: #f8f8f8
|
||||
tiddler-editor-border-image: #ffffff
|
||||
@@ -115,3 +119,4 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: #11ff23
|
||||
@@ -22,9 +22,9 @@ diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: #91c093
|
||||
diff-insert-foreground: <<colour foreground>>
|
||||
diff-invisible-background:
|
||||
diff-invisible-foreground: <<colour muted-foreground>>
|
||||
diff-invisible-foreground: #d3d2cb
|
||||
dirty-indicator: #ad3434
|
||||
download-background: #6ca16c
|
||||
download-background: #5eae62
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -32,14 +32,13 @@ dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: #E9E0C7
|
||||
dropdown-tab-background: #BAB29C
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
dropzone-background: #00c600
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-hover: #7474ba
|
||||
external-link-foreground-visited: #313163
|
||||
external-link-foreground: #555592
|
||||
footnote-target-background: #fff7d9
|
||||
foreground: #2D2A23
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
@@ -71,7 +70,7 @@ sidebar-controls-foreground: #867F69
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #867F69
|
||||
sidebar-muted-foreground-hover: #706A58
|
||||
sidebar-muted-foreground: #B3A98C
|
||||
sidebar-muted-foreground: #aba081
|
||||
sidebar-tab-background-selected: #e0d3af
|
||||
sidebar-tab-background: #A6A193
|
||||
sidebar-tab-border-selected: #C3BAA1
|
||||
@@ -82,6 +81,10 @@ 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
|
||||
@@ -95,6 +98,7 @@ 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
|
||||
@@ -140,3 +144,4 @@ 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>>
|
||||
@@ -9,13 +9,13 @@ license: https://github.com/morhetz/gruvbox
|
||||
alert-background: #cc241d
|
||||
alert-border: #cc241d
|
||||
alert-highlight: #d79921
|
||||
alert-muted-foreground: #504945
|
||||
alert-muted-foreground: #272321
|
||||
background: #3c3836
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: #504945
|
||||
code-border: #504945
|
||||
code-foreground: #fb4934
|
||||
code-foreground: #fc5e4b
|
||||
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: #b8bb26
|
||||
download-background: #1daf24
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
@@ -46,52 +46,53 @@ highlight-background: #ffff79
|
||||
highlight-foreground: #000000
|
||||
menubar-background: #504945
|
||||
menubar-foreground: <<colour foreground>>
|
||||
message-background: #83a598
|
||||
message-background: #b4c9c1
|
||||
message-border: #83a598
|
||||
message-foreground: #3c3836
|
||||
modal-backdrop: <<colour foreground>>
|
||||
modal-backdrop: #625a57
|
||||
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: #d79921
|
||||
primary: #da9921
|
||||
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: #7c6f64
|
||||
sidebar-controls-foreground: #504945
|
||||
sidebar-controls-foreground-hover: #e3e0dd
|
||||
sidebar-controls-foreground: #978b84
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #fbf1c7
|
||||
sidebar-muted-foreground-hover: #7c6f64
|
||||
sidebar-muted-foreground: #504945
|
||||
sidebar-muted-foreground-hover: <<colour sidebar-controls-foreground-hover>>
|
||||
sidebar-muted-foreground: <<colour sidebar-controls-foreground>>
|
||||
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: #282828
|
||||
sidebar-tab-foreground-selected: <<colour page-background>>
|
||||
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: #d79921
|
||||
stability-legacy: #458588
|
||||
stability-stable: #98971a
|
||||
stability-experimental: #b37d1c
|
||||
stability-legacy: #529ca0
|
||||
stability-stable: #649618
|
||||
static-alert-foreground: #B48EAD
|
||||
tab-background-selected: #ebdbb2
|
||||
tab-background: #665c54
|
||||
tab-border-selected: #665c54
|
||||
tab-border: #665c54
|
||||
tab-border-selected: <<colour tab-background-selected>>
|
||||
tab-border: #82746a
|
||||
tab-divider: #bdae93
|
||||
tab-foreground-selected: #282828
|
||||
tab-foreground: #ebdbb2
|
||||
@@ -100,6 +101,7 @@ 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
|
||||
@@ -126,7 +128,7 @@ toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #504945
|
||||
untagged-background: #887b75
|
||||
very-muted-foreground: #bdae93
|
||||
wikilist-background: <<colour page-background>>
|
||||
wikilist-button-background: #acacac
|
||||
|
||||
@@ -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: #D08770
|
||||
alert-highlight: #B48EAD
|
||||
alert-muted-foreground: #4C566A
|
||||
alert-border: <<colour alert-background>>
|
||||
alert-highlight: #a3436f
|
||||
alert-muted-foreground: #495367
|
||||
background: #3b4252
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-foreground: <<colour foreground>>
|
||||
code-background: #2E3440
|
||||
code-border: #2E3440
|
||||
code-foreground: #BF616A
|
||||
code-foreground: #c7747c
|
||||
diff-delete-background: #BF616A
|
||||
diff-delete-foreground: <<colour foreground>>
|
||||
diff-equal-background:
|
||||
@@ -48,31 +48,32 @@ menubar-background: #2E3440
|
||||
menubar-foreground: #d8dee9
|
||||
message-background: #2E3440
|
||||
message-border: #2E3440
|
||||
message-foreground: #547599
|
||||
modal-backdrop: <<colour foreground>>
|
||||
message-foreground: #6485aa
|
||||
modal-backdrop: #435678
|
||||
modal-background: <<colour background>>
|
||||
modal-border: #3b4252
|
||||
modal-footer-background: #3b4252
|
||||
modal-footer-border: #3b4252
|
||||
modal-header-border: #3b4252
|
||||
muted-foreground: #4C566A
|
||||
muted-foreground: #687693
|
||||
network-activity-foreground: <<colour primary>>
|
||||
notification-background: <<colour primary>>
|
||||
notification-border: #EBCB8B
|
||||
page-background: #2e3440
|
||||
pre-background: #2E3440
|
||||
pre-border: #2E3440
|
||||
primary: #5E81AC
|
||||
primary: #7b98bb
|
||||
select-tag-background: #3b4252
|
||||
select-tag-foreground: <<colour foreground>>
|
||||
selection-background: #5E81AC
|
||||
selection-background: #52749e
|
||||
selection-foreground: <<colour foreground>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #D8DEE9
|
||||
sidebar-controls-foreground: #4C566A
|
||||
sidebar-controls-foreground: #5e6a84
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: #D8DEE9
|
||||
sidebar-muted-foreground-hover: #4C566A
|
||||
sidebar-muted-foreground: #4C566A
|
||||
sidebar-muted-foreground-hover: #9fa8bb
|
||||
sidebar-muted-foreground: #6c7b97
|
||||
sidebar-tab-background-selected: #ECEFF4
|
||||
sidebar-tab-background: #4C566A
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
@@ -83,39 +84,40 @@ 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: #bf616a
|
||||
stability-experimental: #d08770
|
||||
stability-legacy: #88c0d0
|
||||
stability-stable: #a3be8c
|
||||
stability-deprecated: #ff595e
|
||||
stability-experimental: #f29d00
|
||||
stability-legacy: #2ddbca
|
||||
stability-stable: #04ff04
|
||||
static-alert-foreground: #B48EAD
|
||||
tab-background-selected: #ECEFF4
|
||||
tab-background: #4C566A
|
||||
tab-border-selected: #4C566A
|
||||
tab-border: #4C566A
|
||||
tab-border: #5c6883
|
||||
tab-divider: #4C566A
|
||||
tab-foreground-selected: #4C566A
|
||||
tab-foreground-selected: #6c7a97
|
||||
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: #4C566A
|
||||
tiddler-controls-foreground: #5e6a84
|
||||
tiddler-editor-background: #2e3440
|
||||
tiddler-editor-border-image: #2e3440
|
||||
tiddler-editor-border: #3b4252
|
||||
tiddler-editor-border: #232732
|
||||
tiddler-editor-fields-even: #2e3440
|
||||
tiddler-editor-fields-odd: #2e3440
|
||||
tiddler-editor-fields-odd: #424a5b
|
||||
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: #4C566A
|
||||
tiddler-subtitle-foreground: #5c6881
|
||||
tiddler-title-foreground: #81A1C1
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
@@ -138,4 +140,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
|
||||
@@ -11,7 +11,7 @@ alert-highlight: #881122
|
||||
alert-muted-foreground: #b99e2f
|
||||
background: #ffffff
|
||||
blockquote-bar: <<colour muted-foreground>>
|
||||
button-background:
|
||||
button-background: #adadad
|
||||
button-foreground:
|
||||
button-border:
|
||||
code-background: #f7f7f9
|
||||
@@ -47,36 +47,41 @@ 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:
|
||||
select-tag-foreground:
|
||||
select-tag-background: <<colour foreground>>
|
||||
select-tag-foreground: <<colour foreground>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #ffffff
|
||||
sidebar-controls-foreground-hover: #797979
|
||||
sidebar-controls-foreground: #cacaca
|
||||
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: #000
|
||||
sidebar-tab-background-selected: #000000
|
||||
sidebar-tab-background: <<colour tab-background>>
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border-selected: #7c7c7c
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: <<colour tab-divider>>
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground-selected: #ff0909
|
||||
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: #cccccc
|
||||
tab-border: #bbbbbb
|
||||
tab-divider: #d8d8d8
|
||||
tab-foreground-selected: <<colour tab-foreground>>
|
||||
tab-foreground: #666666
|
||||
@@ -85,6 +90,7 @@ 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
|
||||
@@ -112,4 +118,4 @@ toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
very-muted-foreground: #888888
|
||||
@@ -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,24 +68,28 @@ 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
|
||||
# base2
|
||||
stability-deprecated: <<colour red>>
|
||||
stability-experimental: <<colour yellow>>
|
||||
stability-legacy: <<colour blue-hot>>
|
||||
stability-stable: <<colour green>>
|
||||
modal-footer-background: <<colour base2>>
|
||||
page-background: <<colour base2>>
|
||||
modal-backdrop: <<colour page-background>>
|
||||
@@ -99,31 +103,31 @@ foreground: #657b83
|
||||
tag-background: <<colour base2>>
|
||||
tiddler-editor-background: <<colour base2>>
|
||||
tiddler-info-background: <<colour base2>>
|
||||
tiddler-info-tab-background: <<colour base2>>
|
||||
tiddler-info-tab-background: <<colour tiddler-info-border>>
|
||||
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
|
||||
tiddler-controls-foreground: <<colour base10>>
|
||||
: violet-muted
|
||||
external-link-foreground-visited: <<colour violet-muted>>
|
||||
: blue-muted
|
||||
primary: <<colour blue-muted>>
|
||||
download-background: <<colour primary>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
|
||||
# blue
|
||||
# cyan
|
||||
# green
|
||||
# base10
|
||||
tiddler-controls-foreground: <<colour base10>>
|
||||
# violet-muted
|
||||
external-link-foreground-visited: <<colour violet-muted>>
|
||||
# blue-muted
|
||||
primary: <<colour blue-muted>>
|
||||
download-background: #5bb83d
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
alert-border: #b99e2f
|
||||
diff-delete-background: <<colour red>>
|
||||
diff-delete-foreground: <<colour background>>
|
||||
@@ -134,7 +138,7 @@ diff-insert-foreground: <<colour background>>
|
||||
diff-invisible-background: <<colour yellow>>
|
||||
diff-invisible-foreground: <<colour background>>
|
||||
dirty-indicator: #ff0000
|
||||
dropzone-background: rgba(0,200,0,0.7)
|
||||
dropzone-background: #008800
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
@@ -146,14 +150,10 @@ message-border: #cfd6e6
|
||||
modal-border: #999999
|
||||
select-tag-background:
|
||||
select-tag-foreground:
|
||||
sidebar-controls-foreground-hover:
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
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,6 +166,7 @@ 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
|
||||
@@ -185,3 +186,4 @@ toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
network-activity-foreground: <<colour primary>>
|
||||
@@ -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:
|
||||
external-link-foreground-hover: #1d669c
|
||||
external-link-foreground-visited: #268bd2
|
||||
footnote-target-background: #073642
|
||||
foreground: #839496
|
||||
@@ -56,6 +56,7 @@ 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
|
||||
@@ -81,10 +82,10 @@ sidebar-tab-foreground-selected: #93a1a1
|
||||
sidebar-tiddler-link-foreground: #2aa198
|
||||
sidebar-tiddler-link-foreground-hover: #eee8d5
|
||||
site-title-foreground: #d33682
|
||||
stability-deprecated: #dc322f
|
||||
stability-experimental: #b58900
|
||||
stability-legacy: #268bd2
|
||||
stability-stable: #859900
|
||||
stability-deprecated: #aa1a9f
|
||||
stability-experimental: #806000
|
||||
stability-legacy: #1d669c
|
||||
stability-stable: #00df11
|
||||
static-alert-foreground: #93a1a1
|
||||
tab-background: #073642
|
||||
tab-background-selected: #002b36
|
||||
@@ -98,6 +99,7 @@ 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
|
||||
@@ -125,4 +127,4 @@ toolbar-new-button: #839496
|
||||
toolbar-options-button: #839496
|
||||
toolbar-save-button: inherit
|
||||
untagged-background: #586e75
|
||||
very-muted-foreground: #586e75
|
||||
very-muted-foreground: #586e75
|
||||
@@ -27,7 +27,7 @@ diff-insert-foreground: #eee8d5
|
||||
diff-invisible-background: #b58900
|
||||
diff-invisible-foreground: #eee8d5
|
||||
dirty-indicator: #dc322f
|
||||
download-background: #859900
|
||||
download-background: #00910b
|
||||
download-foreground: #eee8d5
|
||||
dragger-background: #eee8d5
|
||||
dragger-foreground: #657b83
|
||||
@@ -56,6 +56,7 @@ 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
|
||||
@@ -81,10 +82,10 @@ sidebar-tab-foreground-selected: #586e75
|
||||
sidebar-tiddler-link-foreground: #2aa198
|
||||
sidebar-tiddler-link-foreground-hover: #002b36
|
||||
site-title-foreground: #d33682
|
||||
stability-deprecated: #dc322f
|
||||
stability-experimental: #b58900
|
||||
stability-legacy: #268bd2
|
||||
stability-stable: #859900
|
||||
stability-deprecated: #d21a1a
|
||||
stability-experimental: #771e00
|
||||
stability-legacy: #227abb
|
||||
stability-stable: #576400
|
||||
static-alert-foreground: #586e75
|
||||
tab-background: #eee8d5
|
||||
tab-background-selected: #fdf6e3
|
||||
@@ -98,6 +99,7 @@ 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
|
||||
|
||||
@@ -94,6 +94,7 @@ 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)
|
||||
|
||||
@@ -69,7 +69,7 @@ select-tag-foreground:
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: #000000
|
||||
sidebar-controls-foreground: #aaaaaa
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||
sidebar-foreground-shadow: #ffffff
|
||||
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: #008000
|
||||
stability-stable: #00b700
|
||||
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: green
|
||||
wikilist-button-open-hover: #009300
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-reveal-hover: #0000ff
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-button-remove-hover: #ff0000
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888888
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-droplink-dragover: #ffc0c0
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000000
|
||||
wikilist-button-foreground: #000000
|
||||
@@ -21,12 +21,6 @@ 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"/> |
|
||||
|
||||
@@ -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>>
|
||||
|
||||
|
||||
19
core/ui/ControlPanel/Settings/DefaultTiddlerInfoTab.tid
Normal file
19
core/ui/ControlPanel/Settings/DefaultTiddlerInfoTab.tid
Normal file
@@ -0,0 +1,19 @@
|
||||
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>
|
||||
@@ -17,9 +17,7 @@ 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>>
|
||||
style.fill=<<foregroundColor>>
|
||||
style.background-color=<<backgroundColor>>
|
||||
style=`color:$(foregroundColor)$; fill:$(foregroundColor)$; background-color:$(backgroundColor)$;`
|
||||
>
|
||||
<$transclude tiddler=<<icon>>/>
|
||||
<$view field="title" format="text"/>
|
||||
|
||||
@@ -51,6 +51,7 @@ title: $:/core/ui/ImportListing
|
||||
\end
|
||||
|
||||
\whitespace trim
|
||||
<div class="tc-table-wrapper">
|
||||
<table class="tc-import-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
@@ -129,3 +130,4 @@ title: $:/core/ui/ImportListing
|
||||
</$list>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -2,31 +2,26 @@ title: $:/core/ui/SideBar/Tools
|
||||
tags: $:/tags/SideBar
|
||||
caption: {{$:/language/SideBar/Tools/Caption}}
|
||||
|
||||
\define lingo-base() $:/language/ControlPanel/
|
||||
\define config-title()
|
||||
$:/config/PageControlButtons/Visibility/$(listItem)$
|
||||
\end
|
||||
\whitespace trim
|
||||
|
||||
\procedure lingo-base() $:/language/ControlPanel/
|
||||
\function config-title() [[$:/config/PageControlButtons/Visibility/$(listItem)$]substitute[]]
|
||||
|
||||
<<lingo Basics/Version/Prompt>> <<version>>
|
||||
|
||||
<$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>
|
||||
<$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>
|
||||
|
||||
122
core/ui/WikiInformation.tid
Normal file
122
core/ui/WikiInformation.tid
Normal file
@@ -0,0 +1,122 @@
|
||||
title: $:/core/ui/ControlPanel/WikiInformation
|
||||
tags: $:/tags/ControlPanel/Info
|
||||
caption: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
|
||||
subtitle: <%if [[$:/language/ControlPanel/WikiInformation/Caption]is[shadow]] %>{{$:/language/ControlPanel/WikiInformation/Caption}}<%else%>Wiki Information<%endif%>
|
||||
|
||||
\procedure lingo-base() $:/language/ControlPanel/WikiInformation/
|
||||
|
||||
<!--
|
||||
A custom implementation of the lingo macro that works even if this tiddler has been copied to an earlier version of TiddlyWiki that doesn't include the necessary lingo tiddlers in the core.
|
||||
-->
|
||||
|
||||
\procedure intrinsic-lingo-Hint()
|
||||
This page summarises high level information about the configuration of this ~TiddlyWiki. It is designed to enable users to quickly share relevant aspects of the configuration of their ~TiddlyWiki with others, for example when seeking help in one of the forums. No private or personal information is included, and nothing is shared without being explicitly copied and pasted elsewhere
|
||||
\end intrinsic-lingo-Hint
|
||||
|
||||
\procedure intrinsic-lingo-Drag/Caption()
|
||||
Drag this link to copy this tool to another wiki
|
||||
\end intrinsic-lingo-Drag/Caption
|
||||
|
||||
\procedure lingo(title,mode:"inline")
|
||||
<%if [<title>addprefix<lingo-base>is[shadow]] %>
|
||||
<$transclude $tiddler={{{ [<title>addprefix<lingo-base>] }}} $mode=<<mode>>/>
|
||||
<%else%>
|
||||
<$transclude $variable={{{ [<title>addprefix[intrinsic-lingo-]] }}} $mode=<<mode>>/>
|
||||
<%endif%>
|
||||
\end lingo
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\procedure capture-item(label,value)
|
||||
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<label>addsuffix[: ]addsuffix<value>addsuffix<crlf>] }}}/>
|
||||
\end capture-item
|
||||
|
||||
\procedure capture-item-wikified(label,value)
|
||||
<$wikify name="text" text=<<value>> mode="inline">
|
||||
<$transclude
|
||||
$variable="capture-item"
|
||||
label=<<label>>
|
||||
value=<<text>>
|
||||
/>
|
||||
</$wikify>
|
||||
\end capture-item-wikified
|
||||
|
||||
\procedure capture-wiki-info(tempWikiInfo)
|
||||
<$transclude $variable="capture-item-wikified" label="TiddlyWiki Version" value="<<version>>"/>
|
||||
<$transclude $variable="capture-item" label="Current palette" value={{$:/palette}}/>
|
||||
<$transclude $variable="capture-item" label="Current theme" value={{$:/theme}}/>
|
||||
<$transclude $variable="capture-item" label="Current layout" value={{$:/layout}}/>
|
||||
<$transclude $variable="capture-item" label="Browser language setting" value={{$:/info/browser/language}}/>
|
||||
<$transclude $variable="capture-item" label="Default type for missing tiddlers" value={{$:/config/DefaultMissingType}}/>
|
||||
<$transclude $variable="capture-item" label="Auto save setting" value={{$:/config/AutoSave}}/>
|
||||
<$transclude $variable="capture-item" label="Code wrapping setting" value={{$:/themes/tiddlywiki/vanilla/options/codewrapping}}/>
|
||||
<$transclude $variable="capture-item" label="Sticky titles setting" value={{$:/themes/tiddlywiki/vanilla/options/stickytitles}}/>
|
||||
<$transclude $variable="capture-item" label="Sidebar layout setting" value={{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}}/>
|
||||
<$transclude $variable="capture-item" label="Auto focus field setting for new tiddlers" value={{$:/config/AutoFocus}}/>
|
||||
<$transclude $variable="capture-item" label="Current storyview setting" value={{$:/view}}/>
|
||||
<$transclude $variable="capture-item" label="Toolbar text setting" value={{$:/config/Toolbar/Text}}/>
|
||||
<$transclude $variable="capture-item" label="Toolbar icon setting" value={{$:/config/Toolbar/Icons}}/>
|
||||
<$transclude $variable="capture-item" label="Button class setting" value={{$:/config/Toolbar/ButtonClass}}/>
|
||||
<$transclude $variable="capture-item" label="Navigation address bar setting" value={{$:/config/Navigation/UpdateAddressBar}}/>
|
||||
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from outside the story river" value={{$:/config/Navigation/openLinkFromOutsideRiver}}/>
|
||||
<$transclude $variable="capture-item" label="Tiddler opening behaviour setting for navigations from within the story river" value={{$:/config/Navigation/openLinkFromInsideRiver}}/>
|
||||
<$transclude $variable="capture-item" label="CamelCase linking setting" value={{$:/config/WikiParserRules/Inline/wikilink}}/>
|
||||
<$transclude $variable="capture-item" label="Keyboard shortcuts that have been customised" value={{{ [all[tiddlers]prefix[$:/config/shortcuts]] +[join[,]] }}}/>
|
||||
<$transclude $variable="capture-item" label="Disabled plugins" value={{{ [all[tiddlers]prefix[$:/config/Plugins/Disabled/]] :filter[{!!text}match[yes]] :map[<currentTiddler>removeprefix[$:/config/Plugins/Disabled/]] +[join[,]] }}}/>
|
||||
<$transclude $variable="capture-item" label="Plugins" value={{{ [has[plugin-type]sort[]] :filter[<currentTiddler>addprefix[$:/config/Plugins/Disabled/]get[text]else[no]!match[yes]] :map[{!!version}addprefix[ - ]addprefix<currentTiddler>] +[addprefix[ ]addprefix<crlf>join[]] }}}/>
|
||||
\end capture-wiki-info
|
||||
|
||||
\procedure template-header()
|
||||
<details><summary>Wiki Information</summary><pre><code>
|
||||
|
||||
\end template-header
|
||||
|
||||
\procedure template-footer()
|
||||
|
||||
</code></pre></details>
|
||||
\end template-footer
|
||||
|
||||
\procedure display-wiki-info-modal()
|
||||
<$let
|
||||
tempWikiInfo="$:/temp/wiki-info"
|
||||
crlf={{{ [charcode[13],[10]] }}}
|
||||
>
|
||||
<$action-sendmessage
|
||||
$message="tm-modal"
|
||||
$param="$:/core/ui/ControlPanel/WikiInformation"
|
||||
isModal="yes"
|
||||
tempWikiInfo=<<tempWikiInfo>>
|
||||
/>
|
||||
<$action-deletetiddler $tiddler=<<tempWikiInfo>>/>
|
||||
<$action-setfield $tiddler=<<tempWikiInfo>> text=<<template-header>>/>
|
||||
<$transclude
|
||||
$variable="capture-wiki-info"
|
||||
tempWikiInfo=<<tempWikiInfo>>
|
||||
/>
|
||||
<$action-setfield $tiddler=<<tempWikiInfo>> text={{{ [<tempWikiInfo>get[text]addsuffix<template-footer>] }}}/>
|
||||
</$let>
|
||||
\end display-wiki-info-modal
|
||||
|
||||
\procedure story-content()
|
||||
<<lingo title:"Hint" mode:"block">>
|
||||
|
||||
<$button>
|
||||
<<display-wiki-info-modal>>
|
||||
Click to generate wiki information report
|
||||
</$button>
|
||||
|
||||
<$link to=<<thisTiddler>>>
|
||||
<<lingo title:"Drag/Caption" mode:"inline">>
|
||||
</$link>
|
||||
\end story-content
|
||||
|
||||
\procedure modal-content()
|
||||
<p>
|
||||
<$transclude $variable="copy-to-clipboard" src={{{ [<tempWikiInfo>get[text]] }}}/>
|
||||
</p>
|
||||
<p>
|
||||
<$edit-text tiddler=<<tempWikiInfo>> tag="textarea" disabled="yes" class="tc-max-width"/>
|
||||
</p>
|
||||
\end modal-content
|
||||
|
||||
<$transclude $variable={{{ [<isModal>match[yes]then[modal-content]else[story-content]] }}} $mode="block"/>
|
||||
@@ -3,11 +3,9 @@ tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\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>>
|
||||
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
|
||||
<$button message="tm-copy-to-clipboard"
|
||||
param=<<src>>
|
||||
class=<<class>>
|
||||
style=<<style>>
|
||||
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
|
||||
@@ -17,12 +15,12 @@ tags: $:/tags/Macro
|
||||
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
|
||||
</span>
|
||||
</$button>
|
||||
\end copy-to-clipboard
|
||||
\end
|
||||
|
||||
\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>>/>
|
||||
\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>>/>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
|
||||
@@ -11,6 +11,7 @@ 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.
|
||||
|
||||
|
||||
@@ -8,11 +8,16 @@
|
||||
"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-keymap-sublime-text"
|
||||
"tiddlywiki/codemirror-trailingspace",
|
||||
"tiddlywiki/codemirror-keymap-emacs",
|
||||
"tiddlywiki/codemirror-keymap-sublime-text",
|
||||
"tiddlywiki/codemirror-keymap-vim"
|
||||
],
|
||||
"themes": [
|
||||
"tiddlywiki/vanilla",
|
||||
|
||||
30
editions/ja-JP/tiddlers/concepts/Filters.tid
Normal file
30
editions/ja-JP/tiddlers/concepts/Filters.tid
Normal file
@@ -0,0 +1,30 @@
|
||||
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]] -- テキスト内でフィルタ結果を使用したい場合
|
||||
19
editions/ja-JP/tiddlers/concepts/Selection Constructors.tid
Normal file
19
editions/ja-JP/tiddlers/concepts/Selection Constructors.tid
Normal file
@@ -0,0 +1,19 @@
|
||||
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">>
|
||||
@@ -0,0 +1,20 @@
|
||||
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`があります
|
||||
@@ -0,0 +1,20 @@
|
||||
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があります
|
||||
@@ -0,0 +1,48 @@
|
||||
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}]">>
|
||||
@@ -0,0 +1,27 @@
|
||||
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)]]
|
||||
@@ -0,0 +1,22 @@
|
||||
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]]
|
||||
@@ -0,0 +1,20 @@
|
||||
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`があります
|
||||
23
editions/ja-JP/tiddlers/filters/syntax/Filter Expression.tid
Normal file
23
editions/ja-JP/tiddlers/filters/syntax/Filter Expression.tid
Normal file
@@ -0,0 +1,23 @@
|
||||
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 """下位レベルで使用されているように、図に開始点と終了点がない場合は、読みやすさと単純さを高めるために、上位レベルのシンタックス要素が削除されていることを意味します。パンくずリストはナビゲーションに使用できます""">>
|
||||
@@ -0,0 +1,33 @@
|
||||
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]]">>|
|
||||
@@ -0,0 +1,34 @@
|
||||
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)]]
|
||||
40
editions/ja-JP/tiddlers/filters/syntax/Filter Parameter.tid
Normal file
40
editions/ja-JP/tiddlers/filters/syntax/Filter Parameter.tid
Normal file
@@ -0,0 +1,40 @@
|
||||
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}`
|
||||
21
editions/ja-JP/tiddlers/filters/syntax/Filter Run Prefix.tid
Normal file
21
editions/ja-JP/tiddlers/filters/syntax/Filter Run Prefix.tid
Normal file
@@ -0,0 +1,21 @@
|
||||
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"]]
|
||||
"""/>
|
||||
29
editions/ja-JP/tiddlers/filters/syntax/Filter Run.tid
Normal file
29
editions/ja-JP/tiddlers/filters/syntax/Filter Run.tid
Normal file
@@ -0,0 +1,29 @@
|
||||
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"`のように角括弧を含むタイトルをサポートするために存在します。
|
||||
37
editions/ja-JP/tiddlers/filters/syntax/Filter Step.tid
Normal file
37
editions/ja-JP/tiddlers/filters/syntax/Filter Step.tid
Normal file
@@ -0,0 +1,37 @@
|
||||
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}}
|
||||
26
editions/ja-JP/tiddlers/filters/syntax/Filter Syntax.tid
Normal file
26
editions/ja-JP/tiddlers/filters/syntax/Filter Syntax.tid
Normal file
@@ -0,0 +1,26 @@
|
||||
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ボックスを使用して移動できます。">>
|
||||
15
editions/ja-JP/tiddlers/filters/syntax/Filter Whitespace.tid
Normal file
15
editions/ja-JP/tiddlers/filters/syntax/Filter Whitespace.tid
Normal file
@@ -0,0 +1,15 @@
|
||||
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]]の各ランの間にはホワイトスペース文字が出現します。
|
||||
@@ -0,0 +1,47 @@
|
||||
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]]を作成します。
|
||||
@@ -0,0 +1,38 @@
|
||||
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に共通するタグを返します""">>
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
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)]]
|
||||
@@ -0,0 +1,60 @@
|
||||
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}]">>|
|
||||
@@ -0,0 +1,35 @@
|
||||
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)]]
|
||||
@@ -0,0 +1,38 @@
|
||||
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]]
|
||||
@@ -0,0 +1,20 @@
|
||||
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`を参照してください
|
||||
@@ -0,0 +1,29 @@
|
||||
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]]" "正しい結果を得るためには初期値の設定が必要な場合があります">>
|
||||
@@ -0,0 +1,49 @@
|
||||
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)]]
|
||||
@@ -0,0 +1,30 @@
|
||||
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}}
|
||||
@@ -0,0 +1,35 @@
|
||||
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}]">>
|
||||
@@ -0,0 +1,61 @@
|
||||
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)]]
|
||||
@@ -0,0 +1,53 @@
|
||||
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のみ
|
||||
@@ -0,0 +1,41 @@
|
||||
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]]
|
||||
|
||||
@@ -8,42 +8,53 @@ description: Under development
|
||||
|
||||
//[[See GitHub for detailed change history of this release|https://github.com/TiddlyWiki/TiddlyWiki5/compare/v5.3.6...master]]//
|
||||
|
||||
|
||||
! Major Improvements
|
||||
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.
|
||||
|
||||
! Translation improvements
|
||||
|
||||
* Chinese
|
||||
* French
|
||||
* German
|
||||
* Japanese
|
||||
|
||||
! Plugin Improvements
|
||||
|
||||
|
||||
! Widget Improvements
|
||||
|
||||
*
|
||||
|
||||
! Filter 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
|
||||
|
||||
! 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-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/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-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-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
|
||||
|
||||
! 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/8912">> support for custom MIME types to the [[WidgetMessage: tm-copy-to-clipboard]]
|
||||
* <<.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
|
||||
|
||||
! Bug Fixes
|
||||
|
||||
@@ -63,31 +74,49 @@ description: Under development
|
||||
* <<.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 working 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 work 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
|
||||
@@ -95,4 +124,5 @@ Rhys-T
|
||||
saqimtiaz
|
||||
well-noted
|
||||
xcazin
|
||||
yaisog
|
||||
""">>
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"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": [
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
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 <strong>the text</strong> that is <u>wikified</u>
|
||||
@@ -1,64 +0,0 @@
|
||||
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"
|
||||
}
|
||||
]
|
||||
@@ -1,21 +0,0 @@
|
||||
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
|
||||
@@ -7,9 +7,9 @@ title: Output
|
||||
|
||||
\whitespace trim
|
||||
<$set name="var with spaces" value="spaces">
|
||||
<$let project="TiddlyWiki" disabled="true" var-with-dashes="dashes">
|
||||
<$let project="TiddlyWiki" disabled="true" $tiddler="Getting Started" var-with-dashes="dashes">
|
||||
<div class=`$(project)$
|
||||
${ [[Hello]addsuffix[There]] }$` attrib=`myvalue` otherattrib=`$(1)$` blankattrib=`` quoted="here" disabled=```$(disabled)$``` dashes=`$(var-with-dashes)$` spaces=`$(var with spaces)$`>
|
||||
${ [[Hello]addsuffix[There]] }$` attrib=`myvalue` otherattrib=`$(1)$` blankattrib=`` quoted="here" disabled=```$(disabled)$``` dollar=`p-$($tiddler)$-s` 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" otherattrib="" quoted="here" spaces="spaces"></div></p>
|
||||
HelloThere" dashes="dashes" disabled="true" dollar="p-Getting Started-s" otherattrib="" quoted="here" spaces="spaces"></div></p>
|
||||
@@ -1139,6 +1139,15 @@ 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();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -5,4 +5,4 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWiki is a rich, interactive tool for manipulating complex data with structure that doesn't easily fit into conventional tools like spreadsheets or wordprocessors.
|
||||
|
||||
See [[tiddlywiki.com|https://tiddlywiki.com]] for more details
|
||||
See [[tiddlywiki.com|https://tiddlywiki.com]] for more details.
|
||||
@@ -6,7 +6,27 @@ tags: Welcome
|
||||
title: HelloThere
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
!!.tc-hero-heading ''Welcome to TiddlyWiki, a unique [[non-linear|Philosophy of Tiddlers]] notebook for [[capturing|Creating and editing tiddlers]], [[organising|Structuring TiddlyWiki]] and [[sharing|Sharing your tiddlers with others]] complex information''
|
||||
<h2
|
||||
style="
|
||||
background: red;
|
||||
padding: 0.5em;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border-radius: 0.5em;
|
||||
box-shadow: 0 1px 3px 0 #d4d4d5, 0 0 0 1px #d4d4d5;
|
||||
background-image: linear-gradient(90deg, rgb(34, 132, 224), rgb(95, 174, 248), rgb(34, 132, 224));
|
||||
">
|
||||
Make Something of Your Notes
|
||||
</h2>
|
||||
|
||||
<h2
|
||||
class="tc-hero-heading"
|
||||
style="
|
||||
text-align: center;
|
||||
">
|
||||
Welcome to TiddlyWiki, a unique [[non-linear|Philosophy of Tiddlers]] notebook for [[capturing|Creating and editing tiddlers]], [[organising|Structuring TiddlyWiki]] and [[sharing|Sharing your tiddlers with others]] complex information
|
||||
</h2>
|
||||
|
||||
Use it to keep your [[to-do list|TaskManagementExample]], to plan an [[essay or novel|"TiddlyWiki for Scholars" by Alberto Molina]], or to organise your wedding. Record every thought that crosses your brain, or build a flexible and responsive website.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
caption: copy-to-clipboard
|
||||
created: 20171216104754967
|
||||
modified: 20250127133558352
|
||||
modified: 20171216104941967
|
||||
tags: Macros [[Core Macros]]
|
||||
title: copy-to-clipboard Macro
|
||||
type: text/vnd.tiddlywiki
|
||||
@@ -15,9 +15,5 @@ The <<.def copy-to-clipboard>> [[macro|Macros]] displays a button that copies sp
|
||||
: Optional CSS classes to be assigned to the button (defaults to `tc-btn-invisible`)
|
||||
;style
|
||||
: Optional CSS styles to be assigned to the button
|
||||
;type
|
||||
: <<.from-version "5.3.7">> MIME type of the text to be copied, defaults to `text/plain`
|
||||
;plain
|
||||
: <<.from-version "5.3.7">> Additional plain text to be copied when `type` attribute isn't `text/plain`
|
||||
|
||||
<<.macro-examples "copy-to-clipboard">>
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
created: 20171216104946277
|
||||
modified: 20250127134344834
|
||||
modified: 20171216105109641
|
||||
tags: [[copy-to-clipboard Macro]] [[Macro Examples]]
|
||||
title: copy-to-clipboard Macro (Examples)
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<$macrocall $name=".example" n="1" eg="""<<copy-to-clipboard "Mary had a little lamb">>"""/>
|
||||
<$macrocall $name=".example" n="2" eg="""<$transclude $variable="copy-to-clipboard" src={{$:/SiteTitle}}/>"""/>
|
||||
|
||||
In the following examples, press <kbd>ctrl-V</kbd> / <kbd>cmd-V</kbd> in tiddlywiki after copying to see its effects.
|
||||
|
||||
<$macrocall $name=".example" n="3" eg="""<<copy-to-clipboard src:"<em>Test</em>" type:"text/html" plain:"Test">> """/>
|
||||
<$macrocall $name=".example" n="4" eg="""<<copy-to-clipboard src:"The ''quick'' //brown// __fox__ jumps over a `lazy` @@dog@@." type:"text/vnd.tiddlywiki" plain:"The quick brown box jumps over a lazy dog.">> """/>
|
||||
<$macrocall $name=".example" n="5" eg="""<$transclude $variable="copy-to-clipboard" src=<<jsontiddlers filter:"[tag[Concepts]]">> type="text/vnd.tiddler"/>"""/>
|
||||
<$macrocall $name=".example" n="2" eg="""<$macrocall $name="copy-to-clipboard" src={{$:/SiteTitle}}/>"""/>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
caption: tm-open-window
|
||||
caption: tm-close-window
|
||||
created: 20220228140417116
|
||||
modified: 20230723220539648
|
||||
tags: Messages
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
caption: tm-copy-to-clipboard
|
||||
created: 20171215150056004
|
||||
modified: 20250127134445040
|
||||
modified: 20240523174013095
|
||||
tags: Messages
|
||||
title: WidgetMessage: tm-copy-to-clipboard
|
||||
type: text/vnd.tiddlywiki
|
||||
@@ -13,8 +13,6 @@ It requires the following properties on the `event` object:
|
||||
|param |Text to be copied to the clipboard |
|
||||
|successNotification |<<.from-version "5.3.4">> Optional title of tiddler containing notification to be used if the operation succeeds |
|
||||
|failureNotification |<<.from-version "5.3.4">> Optional title of tiddler containing notification to be used if the operation fails |
|
||||
|type |<<.from-version "5.3.7">> MIME type of the text to be copied, defaults to `text/plain` |
|
||||
|plainText |<<.from-version "5.3.7">> Additional plain text to be copied when `type` attribute isn't `text/plain` |
|
||||
|
||||
This message is usually generated with the ButtonWidget. It is handled by the TiddlyWiki core.
|
||||
|
||||
|
||||
@@ -55,6 +55,15 @@ The following example will view the core version of the tiddler [[$:/DefaultTidd
|
||||
|
||||
'>>
|
||||
|
||||
To transclude a subtiddler with codeblock visual style, wrap it with pre, and set the mode and format attributes:
|
||||
|
||||
<<wikitext-example-without-html '
|
||||
<pre>
|
||||
<$view tiddler="$:/core" subtiddler="$:/core/ui/ControlPanel/ViewTemplateTags" mode=block format=text/>
|
||||
</pre>
|
||||
|
||||
'>>
|
||||
|
||||
! Examples
|
||||
|
||||
Given this [[Saturday]] example tiddler:
|
||||
|
||||
@@ -81,6 +81,7 @@ NewMarkdown/Hint: Erstelle einen neuen "Markdown" Tiddler
|
||||
NewTiddler/Caption: Neuer Tiddler
|
||||
NewTiddler/Hint: Erstelle einen neuen Tiddler
|
||||
OpenWindow/Caption: Öffne in neuem Fenster
|
||||
OpenControlPanel/Hint: Öffne das Control-Panel
|
||||
OpenWindow/Hint: Öffne diesen Tiddler in einem neuen Fenster
|
||||
Palette/Caption: Palette
|
||||
Palette/Hint: Wähle eine Farbpalette
|
||||
|
||||
@@ -131,15 +131,14 @@ Saving/GitService/Gitea/Caption: Gitea Saver
|
||||
Saving/GitService/Gitea/Password: Persönlicher "Zugriffs-Token" (siehe: Gitea’s web Seite: `Settings | Applications | Generate New Token`)
|
||||
Saving/TiddlySpot/Advanced/Heading: Erweiterte Einstellungen
|
||||
Saving/TiddlySpot/BackupDir: Verzeichnis für das "Backup"
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost Control Panel
|
||||
Saving/TiddlySpot/Backups: "Backups"
|
||||
Saving/TiddlySpot/Caption: Speichern auf ~TiddlySpot
|
||||
Saving/TiddlySpot/Description: Diese Einstellungen sind nur für [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]], und kompatible Server aktiv! [[Diese Beschreibung|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] enthält weitergehende Informationen.
|
||||
Saving/TiddlySpot/Caption: Speichern auf ~TiddlyHost
|
||||
Saving/TiddlySpot/Description: Diese Einstellungen sind nur für [[TiddlyHost|https://tiddlyhost.com]], und kompatible Server aktiv! [[Diese Beschreibung|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] enthält weitergehende Informationen.
|
||||
Saving/TiddlySpot/Filename: Dateiname für den "Upload"
|
||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||
Saving/TiddlySpot/Heading: ~TiddlyHost
|
||||
Saving/TiddlySpot/Hint: //Die Standard-Server-URL ist `http://<wikiname>.tiddlyspot.com/store.cgi` und kann im Feld 'Server-URL' verändert werden. zB: http://example.com/store.php//
|
||||
Saving/TiddlySpot/Password: Passwort
|
||||
Saving/TiddlySpot/ReadOnly: ~TiddlySpot wurde durch https://tiddlyhost.com ersetzt. Neue Wikis können nur noch unter ~TiddlyHost erstellt werden. Bestehende Projekte können mit bekanntem Passwort gespeichert werden. Genaue Informationen finden Sie unter: http://tiddlyspot.com/
|
||||
Saving/TiddlySpot/ServerURL: Server-URL
|
||||
Saving/TiddlySpot/UploadDir: Verzeichnis für den "Upload"
|
||||
Saving/TiddlySpot/UserName: Name des Wikis
|
||||
@@ -187,9 +186,11 @@ Settings/ToolbarButtons/Hint: Standard Toolbar Button Erscheinungsbild:
|
||||
Settings/ToolbarButtons/Icons/Description: Icon anzeigen
|
||||
Settings/ToolbarButtons/Text/Description: Text anzeigen
|
||||
Settings/DefaultSidebarTab/Caption: Standard Sidebar Tab
|
||||
Settings/DefaultSidebarTab/Hint: Definition, welcher "Sidebar Tab" standardmäßig aktiv ist.
|
||||
Settings/DefaultSidebarTab/Hint: Definition, welcher "Sidebar Tab" standardmäßig aktiv ist
|
||||
Settings/DefaultMoreSidebarTab/Caption: Standard "Mehr Sidebar Tab"
|
||||
Settings/DefaultMoreSidebarTab/Hint: Definition, welcher "Mehr Sidebar Tab" standardmäßig aktiv ist.
|
||||
Settings/DefaultMoreSidebarTab/Hint: Definition, welcher "Mehr Sidebar Tab" standardmäßig aktiv ist
|
||||
Settings/DefaultTiddlerInfoTab/Caption: Standard Tiddler Info Tab
|
||||
Settings/DefaultTiddlerInfoTab/Hint: Definition, welcher Tab in der Tiddler Info Section standardmäßig aktiv ist
|
||||
Settings/LinkToBehaviour/Caption: Tiddler Öffnen
|
||||
Settings/LinkToBehaviour/InsideRiver/Hint: Navigation bei Klicks //innerhalb// der Story
|
||||
Settings/LinkToBehaviour/OutsideRiver/Hint: Navigation bei Klicks //außerhalb// der Story
|
||||
@@ -246,4 +247,8 @@ Tools/Download/Full/Caption: Herunterladen des ''gesamten Wikis''
|
||||
ViewTemplateBody/Caption: View Template Text
|
||||
ViewTemplateBody/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Textbereich auszuwählen.
|
||||
ViewTemplateTitle/Caption: View Template Titel
|
||||
ViewTemplateTitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Titel auszuwählen.
|
||||
ViewTemplateTitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um die Vorlage für den Tiddler Titel auszuwählen.
|
||||
ViewTemplateSubtitle/Caption: View Template Subtitle
|
||||
ViewTemplateSubtitle/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um den "Sub-Titel" für den Tidddler Kopf auszuwählen.
|
||||
ViewTemplateTags/Caption: View Template Tags
|
||||
ViewTemplateTags/Hint: Diese Filter-Kaskade wird vom "View Template" dazu verwendet, um das Template für den Tag auszuwählen
|
||||
|
||||
@@ -65,6 +65,10 @@ sidebar-tab-foreground-selected: Seitenleiste Reiter Vordergrund für selectiert
|
||||
sidebar-tab-foreground: Seitenleiste Reiter Vordergrund
|
||||
sidebar-tiddler-link-foreground-hover: Seitenleiste Tiddler Link Vordergrund (hover)
|
||||
sidebar-tiddler-link-foreground: Seitenleiste Tiddler Link Vordergrund
|
||||
stability-stable: Label für Stabilitäts-Level "stabil"
|
||||
stability-experimental: Label für Stabilitäts-Level "experimentell"
|
||||
stability-deprecated: Label für Stabilitäts-Level "abgekündigt"
|
||||
stability-legacy: Label für Stabilitäts-Level "veraltet"
|
||||
site-title-foreground: Wiki Titel Vordergrund
|
||||
static-alert-foreground: Statische Warnung Vordergrund
|
||||
testcase-accent-level-1: Test Beispiel Akzent Farbe nicht "verschachtelt" - Ebene 1
|
||||
|
||||
@@ -9,6 +9,10 @@ Sequentielle Abarbeitung von Befehlen aus einem Filter.
|
||||
|
||||
Beispiele
|
||||
|
||||
`--commands "[enlist:raw{$:/build-commands-as-text}]"`
|
||||
```
|
||||
--commands "[enlist:raw{$:/build-commands-as-text}]"
|
||||
```
|
||||
|
||||
`--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]"`
|
||||
```
|
||||
--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget<currentTiddler>]"
|
||||
```
|
||||
@@ -133,14 +133,13 @@ Saving/GitService/Gitea/Password: 个人存取令牌的 API (通过 Gitea 的 We
|
||||
Saving/TiddlySpot/Advanced/Heading: 高级设置
|
||||
Saving/TiddlySpot/BackupDir: 备份文件夹
|
||||
Saving/TiddlySpot/Backups: 备份
|
||||
Saving/TiddlySpot/Caption: ~TiddlySpot 保存模块
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlySpot 控制台
|
||||
Saving/TiddlySpot/Description: 这些设置只适用于保存到 [[TiddlySpot|http://tiddlyspot.com]]、[[TiddlyHost|https://tiddlyhost.com]],或兼容的远程服务器。有关 ~TiddlySpot 和 ~TiddlyHost 的保存设置信息,请参阅[[此处|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]]。
|
||||
Saving/TiddlySpot/Caption: ~TiddlyHost 保存模块
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost 控制台
|
||||
Saving/TiddlySpot/Description: 这些设置只适用于保存到 [[TiddlyHost|https://tiddlyhost.com]],或兼容的远程服务器。有关 ~TiddlyHost 的保存设置信息,请参阅[[此处|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]]
|
||||
Saving/TiddlySpot/Filename: 上传文件名
|
||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||
Saving/TiddlySpot/Hint: //默认之服务器网址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改为定制之服务器网址,例如 `http://example.com/store.php`。//
|
||||
Saving/TiddlySpot/Heading: ~TiddlyHost
|
||||
Saving/TiddlySpot/Hint: //默认之服务器网址 `http://<wikiname>.tiddlyhost.com/`,可改为定制之服务器网址,例如 `http://example.com/store.php`。//
|
||||
Saving/TiddlySpot/Password: 密码
|
||||
Saving/TiddlySpot/ReadOnly: 请注意,[[TiddlySpot|http://tiddlyspot.com]] 不再允许创建新网站。对于新网站,您可以使用 [[TiddlyHost|https://tiddlyhost.com]],一个新的取代 ~TiddlySpot 的讬管服务 。
|
||||
Saving/TiddlySpot/ServerURL: 服务器网址
|
||||
Saving/TiddlySpot/UploadDir: 上传文件夹
|
||||
Saving/TiddlySpot/UserName: 用户
|
||||
|
||||
@@ -92,6 +92,10 @@ Plugins/PluginWillRequireReload: (需要重新載入)
|
||||
Plugins/Plugins/Caption: 插件
|
||||
Plugins/Plugins/Hint: 插件
|
||||
Plugins/Reinstall/Caption: 重新安裝
|
||||
Plugins/Stability/Deprecated: 已棄用
|
||||
Plugins/Stability/Experimental: 實驗性
|
||||
Plugins/Stability/Legacy: 陳舊
|
||||
Plugins/Stability/Stable: 穩定
|
||||
Plugins/Themes/Caption: 佈景主題
|
||||
Plugins/Themes/Hint: 佈景主題插件
|
||||
Plugins/Update/Caption: 更新
|
||||
@@ -129,14 +133,13 @@ Saving/GitService/Gitea/Password: 個人存取權杖的 API (通過 Gitea 的 We
|
||||
Saving/TiddlySpot/Advanced/Heading: 進階設定
|
||||
Saving/TiddlySpot/BackupDir: 備份資料夾
|
||||
Saving/TiddlySpot/Backups: 備份
|
||||
Saving/TiddlySpot/Caption: ~TiddlySpot 儲存模組
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlySpot 控制台
|
||||
Saving/TiddlySpot/Description: 這些設定只適用於儲存到 [[TiddlySpot|http://tiddlyspot.com]]、[[TiddlyHost|https://tiddlyhost.com]],或相容的遠端伺服器。有關 ~TiddlySpot 和 ~TiddlyHost 的儲存設定資訊,請參閱[[此處|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]]。
|
||||
Saving/TiddlySpot/Caption: ~TiddlyHost 儲存模組
|
||||
Saving/TiddlySpot/ControlPanel: ~TiddlyHost 控制台
|
||||
Saving/TiddlySpot/Description: 這些設定只適用於儲存到 [[TiddlyHost|https://tiddlyhost.com]],或相容的遠端伺服器。有關 ~TiddlyHost 的儲存設定資訊,請參閱[[此處|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]]
|
||||
Saving/TiddlySpot/Filename: 上傳檔名
|
||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
||||
Saving/TiddlySpot/Hint: //預設之伺服器網址 `http://<wikiname>.tiddlyspot.com/store.cgi`,可改為自訂之伺服器網址,例如 `http://example.com/store.php`。//
|
||||
Saving/TiddlySpot/Heading: ~TiddlyHost
|
||||
Saving/TiddlySpot/Hint: //預設之伺服器網址 `http://<wikiname>.tiddlyhost.com/`,可改為自訂之伺服器網址,例如 `http://example.com/store.php`。//
|
||||
Saving/TiddlySpot/Password: 密碼
|
||||
Saving/TiddlySpot/ReadOnly: 請注意,[[TiddlySpot|http://tiddlyspot.com]] 不再允許建立新網站。對於新網站,您可以使用 [[TiddlyHost|https://tiddlyhost.com]],一個新的取代 ~TiddlySpot 的託管服務 。
|
||||
Saving/TiddlySpot/ServerURL: 伺服器網址
|
||||
Saving/TiddlySpot/UploadDir: 上傳資料夾
|
||||
Saving/TiddlySpot/UserName: 帳號
|
||||
@@ -152,6 +155,8 @@ Settings/DefaultSidebarTab/Caption: 預設側邊欄頁籤
|
||||
Settings/DefaultSidebarTab/Hint: 指定預設顯示的側邊欄頁籤
|
||||
Settings/DefaultMoreSidebarTab/Caption: 更多側邊欄的預設頁籤
|
||||
Settings/DefaultMoreSidebarTab/Hint: 指定預設顯示的更多側欄頁籤
|
||||
Settings/DefaultTiddlerInfoTab/Caption: 預設條目資訊頁籤
|
||||
Settings/DefaultTiddlerInfoTab/Hint: 當條目資訊面板開啟時,指定預設開啟的頁籤
|
||||
Settings/EditorToolbar/Caption: 編輯器工具列
|
||||
Settings/EditorToolbar/Hint: 啟用或停用編輯器工具列︰
|
||||
Settings/EditorToolbar/Description: 顯示編輯器工具列
|
||||
@@ -186,6 +191,8 @@ Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description: 以 引用連
|
||||
Settings/PerformanceInstrumentation/Caption: 效能檢測
|
||||
Settings/PerformanceInstrumentation/Hint: 在瀏覽器的開發人員主控台,顯示效能統計資訊。需要重新載入才能生效。
|
||||
Settings/PerformanceInstrumentation/Description: 啟用效能檢測
|
||||
Settings/RecentLimit/Caption: "最近" 頁籤限制
|
||||
Settings/RecentLimit/Hint: 在側邊欄 "最新" 頁籤下顯示的最多條目數量
|
||||
Settings/ToolbarButtonStyle/Caption: 工具列按鈕樣式
|
||||
Settings/ToolbarButtonStyle/Hint: 選擇工具列按鈕的樣式:
|
||||
Settings/ToolbarButtonStyle/Styles/Borderless: 無邊框
|
||||
@@ -201,10 +208,10 @@ Settings/TitleLinks/No/Description: 不顯示條目標題為鏈接
|
||||
Settings/TitleLinks/Yes/Description: 顯示條目標題為鏈接
|
||||
SocialCard/Caption: 社交媒體卡
|
||||
SocialCard/Domain/Prompt: 顯示連結的網域名稱(例如 ''tiddlywiki.com'')
|
||||
SocialCard/Hint: 社交和訊息服務使用此資訊來顯示線上託管時指向此 TiddlyWiki 的連結的預覽卡
|
||||
SocialCard/PreviewUrl/Prompt: 用於預覽此 TiddlyWiki 圖像的完整網址
|
||||
SocialCard/Hint: 社交和訊息服務使用此資訊來顯示線上託管時指向此 ~TiddlyWiki 的連結的預覽卡
|
||||
SocialCard/PreviewUrl/Prompt: 用於預覽此 ~TiddlyWiki 圖像的完整網址
|
||||
SocialCard/PreviewUrl/Preview: 預覽圖像:
|
||||
SocialCard/Url/Prompt: 此 TiddlyWiki 的完整網址
|
||||
SocialCard/Url/Prompt: 此 ~TiddlyWiki 的完整網址
|
||||
StoryTiddler/Caption: 故事條目
|
||||
StoryTiddler/Hint: 此規則級聯用於動態選擇範本,以便在故事河中顯示條目。
|
||||
StoryView/Caption: 檢視模式
|
||||
|
||||
@@ -26,6 +26,8 @@ Tags/ClearInput/Caption: 清除輸入
|
||||
Tags/ClearInput/Hint: 清除標籤輸入
|
||||
Tags/Dropdown/Caption: 標籤清單
|
||||
Tags/Dropdown/Hint: 顯示標籤清單
|
||||
Tags/EmptyMessage: (找不到標籤)
|
||||
Tags/EmptyMessage/System: (找不到系統標籤)
|
||||
Title/BadCharacterWarning: 請注意,避免在條目名稱中使用這些字元:<<bad-chars>>
|
||||
Title/Exists/Prompt: 目標條目已經存在
|
||||
Title/Relink/Prompt: 將在其他條目的 //tags// 和 //list// 欄位中的 ''<$text text=<<fromTitle>>/>'' 改為 ''<$text text=<<toTitle>>/>''
|
||||
|
||||
@@ -6,6 +6,8 @@ Filter/Hint: 以[[篩選表達式|https://tiddlywiki.com/static/Filters.html]]
|
||||
Filter/Matches: //<small><<resultCount>> 個條目符合條件</small>//
|
||||
Matches: //<small><<resultCount>> 個條目符合條件</small>//
|
||||
Matches/All: 所有匹配:
|
||||
Matches/NoMatch: //無匹配//
|
||||
Matches/NoResult: //找不到//
|
||||
Matches/Title: 條目名稱匹配:
|
||||
Search: 搜尋
|
||||
Search/TooShort: 搜尋文字太短
|
||||
|
||||
@@ -615,3 +615,7 @@ Galen Huntington, @galenhuntington, 2025/01/19
|
||||
@bob.jansen@cultconv.com, 2025/03/22
|
||||
|
||||
Matthew Salmon, @matthewsalmon, 2025/04/24
|
||||
|
||||
@jbaldus, 2025/05/28
|
||||
|
||||
Wu Peiyuan, @s793016, 2025/06/10
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "tiddlywiki",
|
||||
"preferGlobal": "true",
|
||||
"preferGlobal": true,
|
||||
"version": "5.3.7-prerelease",
|
||||
"author": "Jeremy Ruston <jeremy@jermolene.com>",
|
||||
"description": "a non-linear personal web notebook",
|
||||
|
||||
@@ -1,3 +1 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(y){"use strict";var b=/[\w$]+/;y.registerHelper("hint","anyword",function(e,r){for(var t=r&&r.word||b,o=r&&r.range||500,i=e.getCursor(),n=e.getLine(i.line),f=i.ch,s=f;s&&t.test(n.charAt(s-1));)--s;for(var a=s!=f&&n.slice(s,f),c=r&&r.list||[],l={},d=new RegExp(t.source,"g"),u=-1;u<=1;u+=2)for(var p=i.line,g=Math.min(Math.max(p+u*o,e.firstLine()),e.lastLine())+u;p!=g;p+=u)for(var h,m=e.getLine(p);h=d.exec(m);)p==i.line&&h[0]===a||a&&0!=h[0].lastIndexOf(a,0)||Object.prototype.hasOwnProperty.call(l,h[0])||(l[h[0]]=!0,c.push(h[0]));return{list:c,from:y.Pos(i.line,s),to:y.Pos(i.line,f)}})});
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(y){"use strict";var b=/[\w$]+/;y.registerHelper("hint","anyword",function(e,r){for(var t=r&&r.word||b,o=r&&r.range||500,i=e.getCursor(),n=e.getLine(i.line),f=i.ch,s=f;s&&t.test(n.charAt(s-1));)--s;for(var a=s!=f&&n.slice(s,f),c=r&&r.list||[],l={},d=new RegExp(t.source,"g"),u=-1;u<=1;u+=2)for(var p=i.line,g=Math.min(Math.max(p+u*o,e.firstLine()),e.lastLine())+u;p!=g;p+=u)for(var h,m=e.getLine(p);h=d.exec(m);)p==i.line&&h[0]===a||a&&0!=h[0].lastIndexOf(a,0)||Object.prototype.hasOwnProperty.call(l,h[0])||(l[h[0]]=!0,c.push(h[0]));return{list:c,from:y.Pos(i.line,s),to:y.Pos(i.line,f)}})});
|
||||
@@ -1,3 +1 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../../mode/css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/css/css"],e):e(CodeMirror)}(function(f){"use strict";var p={active:1,after:1,before:1,checked:1,default:1,disabled:1,empty:1,enabled:1,"first-child":1,"first-letter":1,"first-line":1,"first-of-type":1,focus:1,hover:1,"in-range":1,indeterminate:1,invalid:1,lang:1,"last-child":1,"last-of-type":1,link:1,not:1,"nth-child":1,"nth-last-child":1,"nth-last-of-type":1,"nth-of-type":1,"only-of-type":1,"only-child":1,optional:1,"out-of-range":1,placeholder:1,"read-only":1,"read-write":1,required:1,root:1,selection:1,target:1,valid:1,visited:1};f.registerHelper("hint","css",function(e){var t=e.getCursor(),r=e.getTokenAt(t),o=f.innerMode(e.getMode(),r.state);if("css"==o.mode.name){if("keyword"==r.type&&0=="!important".indexOf(r.string))return{list:["!important"],from:f.Pos(t.line,r.start),to:f.Pos(t.line,r.end)};var i=r.start,s=t.ch,n=r.string.slice(0,s-i);/[^\w$_-]/.test(n)&&(n="",i=s=t.ch);var a=f.resolveMode("text/css"),d=[],l=o.state.state;return"pseudo"==l||"variable-3"==r.type?c(p):"block"==l||"maybeprop"==l?c(a.propertyKeywords):"prop"==l||"parens"==l||"at"==l||"params"==l?(c(a.valueKeywords),c(a.colorKeywords)):"media"!=l&&"media_parens"!=l||(c(a.mediaTypes),c(a.mediaFeatures)),d.length?{list:d,from:f.Pos(t.line,i),to:f.Pos(t.line,s)}:void 0}function c(e){for(var t in e)n&&0!=t.lastIndexOf(n,0)||d.push(t)}})});
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../../mode/css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/css/css"],e):e(CodeMirror)}(function(l){"use strict";var c={active:1,after:1,before:1,checked:1,default:1,disabled:1,empty:1,enabled:1,"first-child":1,"first-letter":1,"first-line":1,"first-of-type":1,focus:1,hover:1,"in-range":1,indeterminate:1,invalid:1,lang:1,"last-child":1,"last-of-type":1,link:1,not:1,"nth-child":1,"nth-last-child":1,"nth-last-of-type":1,"nth-of-type":1,"only-of-type":1,"only-child":1,optional:1,"out-of-range":1,placeholder:1,"read-only":1,"read-write":1,required:1,root:1,selection:1,target:1,valid:1,visited:1};l.registerHelper("hint","css",function(e){var t=e.getCursor(),r=e.getTokenAt(t),e=l.innerMode(e.getMode(),r.state);if("css"==e.mode.name){if("keyword"==r.type&&0=="!important".indexOf(r.string))return{list:["!important"],from:l.Pos(t.line,r.start),to:l.Pos(t.line,r.end)};var o=r.start,i=t.ch,s=r.string.slice(0,i-o),n=(/[^\w$_-]/.test(s)&&(s="",o=i=t.ch),l.resolveMode("text/css")),a=[],e=e.state.state;return"pseudo"==e||"variable-3"==r.type?d(c):"block"==e||"maybeprop"==e?d(n.propertyKeywords):"prop"==e||"parens"==e||"at"==e||"params"==e?(d(n.valueKeywords),d(n.colorKeywords)):"media"!=e&&"media_parens"!=e||(d(n.mediaTypes),d(n.mediaFeatures)),a.length?{list:a,from:l.Pos(t.line,o),to:l.Pos(t.line,i)}:void 0}function d(e){for(var t in e)s&&0!=t.lastIndexOf(s,0)||a.push(t)}})});
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(f){var c=f.Pos;function g(t,e){for(var r=0,n=t.length;r<n;++r)e(t[r])}function r(t,e,r,n){var i=t.getCursor(),o=r(t,i);if(!/\b(?:string|comment)\b/.test(o.type)){var s=f.innerMode(t.getMode(),o.state);if("json"!==s.mode.helperType){o.state=s.state,/^[\w$_]*$/.test(o.string)?o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)):o={start:i.ch,end:i.ch,string:"",state:o.state,type:"."==o.string?"property":null};for(var a=o;"property"==a.type;){if("."!=(a=r(t,c(i.line,a.start))).string)return;a=r(t,c(i.line,a.start));var l=l||[];l.push(a)}return{list:function(t,e,r,n){var i=[],o=t.string,s=n&&n.globalScope||window;function a(t){0!=t.lastIndexOf(o,0)||function(t,e){if(Array.prototype.indexOf)return-1!=t.indexOf(e);for(var r=t.length;r--;)if(t[r]===e)return 1}(i,t)||i.push(t)}function l(t){"string"==typeof t?g(y,a):t instanceof Array?g(h,a):t instanceof Function&&g(v,a),function(t,e){if(Object.getOwnPropertyNames&&Object.getPrototypeOf)for(var r=t;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(e);else for(var n in t)e(n)}(t,a)}if(e&&e.length){var f,c=e.pop();for(c.type&&0===c.type.indexOf("variable")?(n&&n.additionalContext&&(f=n.additionalContext[c.string]),n&&!1===n.useGlobalScope||(f=f||s[c.string])):"string"==c.type?f="":"atom"==c.type?f=1:"function"==c.type&&(null==s.jQuery||"$"!=c.string&&"jQuery"!=c.string||"function"!=typeof s.jQuery?null!=s._&&"_"==c.string&&"function"==typeof s._&&(f=s._()):f=s.jQuery());null!=f&&e.length;)f=f[e.pop().string];null!=f&&l(f)}else{for(var p=t.state.localVars;p;p=p.next)a(p.name);for(var u=t.state.context;u;u=u.prev)for(p=u.vars;p;p=p.next)a(p.name);for(p=t.state.globalVars;p;p=p.next)a(p.name);if(n&&null!=n.additionalContext)for(var d in n.additionalContext)a(d);n&&!1===n.useGlobalScope||l(s),g(r,a)}return i}(o,l,e,n),from:c(i.line,o.start),to:c(i.line,o.end)}}}}function n(t,e){var r=t.getTokenAt(e);return e.ch==r.start+1&&"."==r.string.charAt(0)?(r.end=r.start,r.string=".",r.type="property"):/^\.[\w$_]*$/.test(r.string)&&(r.type="property",r.start++,r.string=r.string.replace(/\./,"")),r}f.registerHelper("hint","javascript",function(t,e){return r(t,i,function(t,e){return t.getTokenAt(e)},e)}),f.registerHelper("hint","coffeescript",function(t,e){return r(t,o,n,e)});var y="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),h="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),v="prototype apply call bind".split(" "),i="break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield".split(" "),o="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ")});
|
||||
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(f){var c=f.Pos;function g(t,e){for(var r=0,n=t.length;r<n;++r)e(t[r])}function r(t,e,r,n){var i=t.getCursor(),o=r(t,i);if(!/\b(?:string|comment)\b/.test(o.type)){var s=f.innerMode(t.getMode(),o.state);if("json"!==s.mode.helperType){o.state=s.state,/^[\w$_]*$/.test(o.string)?o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)):o={start:i.ch,end:i.ch,string:"",state:o.state,type:"."==o.string?"property":null};for(var a=o;"property"==a.type;){if("."!=(a=r(t,c(i.line,a.start))).string)return;var a=r(t,c(i.line,a.start)),l=l||[];l.push(a)}return{list:function(t,e,r,n){var i=[],o=t.string,s=n&&n.globalScope||window;function a(t){0!=t.lastIndexOf(o,0)||function(t,e){if(Array.prototype.indexOf)return-1!=t.indexOf(e);for(var r=t.length;r--;)if(t[r]===e)return 1}(i,t)||i.push(t)}function l(t){"string"==typeof t?g(y,a):t instanceof Array?g(h,a):t instanceof Function&&g(v,a);var e=a;if(Object.getOwnPropertyNames&&Object.getPrototypeOf)for(var r=t;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(e);else for(var n in t)e(n)}if(e&&e.length){var f,c=e.pop();for(c.type&&0===c.type.indexOf("variable")?(n&&n.additionalContext&&(f=n.additionalContext[c.string]),n&&!1===n.useGlobalScope||(f=f||s[c.string])):"string"==c.type?f="":"atom"==c.type?f=1:"function"==c.type&&(null==s.jQuery||"$"!=c.string&&"jQuery"!=c.string||"function"!=typeof s.jQuery?null!=s._&&"_"==c.string&&"function"==typeof s._&&(f=s._()):f=s.jQuery());null!=f&&e.length;)f=f[e.pop().string];null!=f&&l(f)}else{for(var p=t.state.localVars;p;p=p.next)a(p.name);for(var u=t.state.context;u;u=u.prev)for(p=u.vars;p;p=p.next)a(p.name);for(p=t.state.globalVars;p;p=p.next)a(p.name);if(n&&null!=n.additionalContext)for(var d in n.additionalContext)a(d);n&&!1===n.useGlobalScope||l(s),g(r,a)}return i}(o,l,e,n),from:c(i.line,o.start),to:c(i.line,o.end)}}}}function n(t,e){t=t.getTokenAt(e);return e.ch==t.start+1&&"."==t.string.charAt(0)?(t.end=t.start,t.string=".",t.type="property"):/^\.[\w$_]*$/.test(t.string)&&(t.type="property",t.start++,t.string=t.string.replace(/\./,"")),t}f.registerHelper("hint","javascript",function(t,e){return r(t,i,function(t,e){return t.getTokenAt(e)},e)}),f.registerHelper("hint","coffeescript",function(t,e){return r(t,o,n,e)});var y="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),h="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),v="prototype apply call bind".split(" "),i="break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield".split(" "),o="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ")});
|
||||
@@ -1,36 +1 @@
|
||||
.CodeMirror-hints {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
|
||||
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
border-radius: 3px;
|
||||
border: 1px solid silver;
|
||||
|
||||
background: white;
|
||||
font-size: 90%;
|
||||
font-family: monospace;
|
||||
|
||||
max-height: 20em;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.CodeMirror-hint {
|
||||
margin: 0;
|
||||
padding: 0 4px;
|
||||
border-radius: 2px;
|
||||
white-space: pre;
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.CodeMirror-hint-active {
|
||||
background: #08f;
|
||||
color: white;
|
||||
}
|
||||
.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid silver;background:#fff;font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto;box-sizing:border-box}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}li.CodeMirror-hint-active{background:#08f;color:#fff}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(H){"use strict";var R=H.Pos;function z(t,e,r){return r?0<=t.indexOf(e):0==t.lastIndexOf(e,0)}H.registerHelper("hint","xml",function(t,e){var r=e&&e.schemaInfo,n=e&&e.quoteChar||'"',s=e&&e.matchInMiddle;if(r){var i=t.getCursor(),o=t.getTokenAt(i);if(o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)),(p=H.innerMode(t.getMode(),o.state)).mode.xmlCurrentTag){var a,l,g,c=[],f=!1,h=/\btag\b/.test(o.type)&&!/>$/.test(o.string),u=h&&/^\w/.test(o.string);u?(M=t.getLine(i.line).slice(Math.max(0,o.start-2),o.start),(g=/<\/$/.test(M)?"close":/<$/.test(M)?"open":null)&&(l=o.start-("close"==g?2:1))):h&&"<"==o.string?g="open":h&&"</"==o.string&&(g="close");var d=p.mode.xmlCurrentTag(p.state);if(!h&&!d||g){u&&(a=o.string),f=g;var p,m=p.mode.xmlCurrentContext?p.mode.xmlCurrentContext(p.state):[],v=(p=m.length&&m[m.length-1])&&r[p],y=p?v&&v.children:r["!top"];if(y&&"close"!=g)for(var x=0;x<y.length;++x)a&&!z(y[x],a,s)||c.push("<"+y[x]);else if("close"!=g)for(var C in r)!r.hasOwnProperty(C)||"!top"==C||"!attrs"==C||a&&!z(C,a,s)||c.push("<"+C);p&&(!a||"close"==g&&z(p,a,s))&&c.push("</"+p+">")}else{var b=(v=d&&r[d.name])&&v.attrs,O=r["!attrs"];if(!b&&!O)return;if(b){if(O){var w={};for(var A in O)O.hasOwnProperty(A)&&(w[A]=O[A]);for(var A in b)b.hasOwnProperty(A)&&(w[A]=b[A]);b=w}}else b=O;if("string"==o.type||"="==o.string){var M,P,$,I,T,j=(M=t.getRange(R(i.line,Math.max(0,i.ch-60)),R(i.line,"string"==o.type?o.start:o.end))).match(/([^\s\u00a0=<>\"\']+)=$/);if(!j||!b.hasOwnProperty(j[1])||!(P=b[j[1]]))return;"function"==typeof P&&(P=P.call(this,t)),"string"==o.type&&(a=o.string,$=0,/['"]/.test(o.string.charAt(0))&&(n=o.string.charAt(0),a=o.string.slice(1),$++),I=o.string.length,/['"]/.test(o.string.charAt(I-1))&&(n=o.string.charAt(I-1),a=o.string.substr($,I-2)),!$||(T=t.getLine(i.line)).length>o.end&&T.charAt(o.end)==n&&o.end++,f=!0);var q=function(t){if(t)for(var e=0;e<t.length;++e)a&&!z(t[e],a,s)||c.push(n+t[e]+n);return k()};return P&&P.then?P.then(q):q(P)}for(var L in"attribute"==o.type&&(a=o.string,f=!0),b)!b.hasOwnProperty(L)||a&&!z(L,a,s)||c.push(L)}return k()}}function k(){return{list:c,from:f?R(i.line,null==l?o.start:l):i,to:f?R(i.line,o.end):i}}})});
|
||||
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function($){"use strict";var I=$.Pos;function T(t,e,r){return r?0<=t.indexOf(e):0==t.lastIndexOf(e,0)}$.registerHelper("hint","xml",function(t,e){var r=e&&e.schemaInfo,n=e&&e.quoteChar||'"',s=e&&e.matchInMiddle;if(r){var i=t.getCursor(),o=t.getTokenAt(i);if(o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start)),(e=$.innerMode(t.getMode(),o.state)).mode.xmlCurrentTag){var a,l=[],g=!1,c=/\btag\b/.test(o.type)&&!/>$/.test(o.string),f=c&&/^\w/.test(o.string),h=(f?(O=t.getLine(i.line).slice(Math.max(0,o.start-2),o.start),(M=/<\/$/.test(O)?"close":/<$/.test(O)?"open":null)&&(a=o.start-("close"==M?2:1))):c&&"<"==o.string?M="open":c&&"</"==o.string&&(M="close"),e.mode.xmlCurrentTag(e.state));if(!c&&!h||M){f&&(A=o.string);var g=M,c=e.mode.xmlCurrentContext?e.mode.xmlCurrentContext(e.state):[],u=(e=c.length&&c[c.length-1])&&r[e],d=e?u&&u.children:r["!top"];if(d&&"close"!=M)for(var p=0;p<d.length;++p)A&&!T(d[p],A,s)||l.push("<"+d[p]);else if("close"!=M)for(var m in r)!r.hasOwnProperty(m)||"!top"==m||"!attrs"==m||A&&!T(m,A,s)||l.push("<"+m);e&&(!A||"close"==M&&T(e,A,s))&&l.push("</"+e+">")}else{var y,x=(u=h&&r[h.name])&&u.attrs,v=r["!attrs"];if(!x&&!v)return;if(x){if(v){var C,b={};for(C in v)v.hasOwnProperty(C)&&(b[C]=v[C]);for(C in x)x.hasOwnProperty(C)&&(b[C]=x[C]);x=b}}else x=v;if("string"==o.type||"="==o.string){var O,w,A,M,f=(O=t.getRange(I(i.line,Math.max(0,i.ch-60)),I(i.line,"string"==o.type?o.start:o.end))).match(/([^\s\u00a0=<>\"\']+)=$/);if(!f||!x.hasOwnProperty(f[1])||!(w=x[f[1]]))return;"function"==typeof w&&(w=w.call(this,t)),"string"==o.type&&(A=o.string,/['"]/.test(o.string.charAt(c=0))&&(n=o.string.charAt(0),A=o.string.slice(1),c++),M=o.string.length,/['"]/.test(o.string.charAt(M-1))&&(n=o.string.charAt(M-1),A=o.string.substr(c,M-2)),c&&(e=t.getLine(i.line)).length>o.end&&e.charAt(o.end)==n&&o.end++,g=!0);h=function(t){if(t)for(var e=0;e<t.length;++e)A&&!T(t[e],A,s)||l.push(n+t[e]+n);return P()};return w&&w.then?w.then(h):h(w)}for(y in"attribute"==o.type&&(A=o.string,g=!0),x)!x.hasOwnProperty(y)||A&&!T(y,A,s)||l.push(y)}return P()}}function P(){return{list:l,from:g?I(i.line,null==a?o.start:a):i,to:g?I(i.line,o.end):i}}})});
|
||||
@@ -1,3 +1 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(C){var r={pairs:"()[]{}''\"\"",closeBefore:")]}'\":;>",triples:"",explode:"[]{}"},x=C.Pos;function P(e,t){return"pairs"==t&&"string"==typeof e?e:"object"==typeof e&&null!=e[t]?e[t]:r[t]}C.defineOption("autoCloseBrackets",!1,function(e,t,r){r&&r!=C.Init&&(e.removeKeyMap(i),e.state.closeBrackets=null),t&&(n(P(t,"pairs")),e.state.closeBrackets=t,e.addKeyMap(i))});var i={Backspace:function(e){var t=k(e);if(!t||e.getOption("disableInput"))return C.Pass;for(var r=P(t,"pairs"),n=e.listSelections(),i=0;i<n.length;i++){if(!n[i].empty())return C.Pass;var a=s(e,n[i].head);if(!a||r.indexOf(a)%2!=0)return C.Pass}for(i=n.length-1;0<=i;i--){var o=n[i].head;e.replaceRange("",x(o.line,o.ch-1),x(o.line,o.ch+1),"+delete")}},Enter:function(n){var e=k(n),t=e&&P(e,"explode");if(!t||n.getOption("disableInput"))return C.Pass;for(var i=n.listSelections(),r=0;r<i.length;r++){if(!i[r].empty())return C.Pass;var a=s(n,i[r].head);if(!a||t.indexOf(a)%2!=0)return C.Pass}n.operation(function(){var e=n.lineSeparator()||"\n";n.replaceSelection(e+e,null),n.execCommand("goCharLeft"),i=n.listSelections();for(var t=0;t<i.length;t++){var r=i[t].head.line;n.indentLine(r,null,!0),n.indentLine(r+1,null,!0)}})}};function n(e){for(var t=0;t<e.length;t++){var r=e.charAt(t),n="'"+r+"'";i[n]||(i[n]=function(t){return function(e){return function(i,e){var t=k(i);if(!t||i.getOption("disableInput"))return C.Pass;var r=P(t,"pairs"),n=r.indexOf(e);if(-1==n)return C.Pass;for(var a,o=P(t,"closeBefore"),s=P(t,"triples"),l=r.charAt(n+1)==e,c=i.listSelections(),f=n%2==0,h=0;h<c.length;h++){var u,d=c[h],p=d.head,g=i.getRange(p,x(p.line,p.ch+1));if(f&&!d.empty())u="surround";else if(!l&&f||g!=e)if(l&&1<p.ch&&0<=s.indexOf(e)&&i.getRange(x(p.line,p.ch-2),p)==e+e){if(2<p.ch&&/\bstring/.test(i.getTokenTypeAt(x(p.line,p.ch-2))))return C.Pass;u="addFour"}else if(l){var v=0==p.ch?" ":i.getRange(x(p.line,p.ch-1),p);if(C.isWordChar(g)||v==e||C.isWordChar(v))return C.Pass;u="both"}else{if(!f||!(0===g.length||/\s/.test(g)||-1<o.indexOf(g)))return C.Pass;u="both"}else u=l&&function(e,t){var r=e.getTokenAt(x(t.line,t.ch+1));return/\bstring/.test(r.type)&&r.start==t.ch&&(0==t.ch||!/\bstring/.test(e.getTokenTypeAt(t)))}(i,p)?"both":0<=s.indexOf(e)&&i.getRange(p,x(p.line,p.ch+3))==e+e+e?"skipThree":"skip";if(a){if(a!=u)return C.Pass}else a=u}var m=n%2?r.charAt(n-1):e,b=n%2?e:r.charAt(n+1);i.operation(function(){if("skip"==a)i.execCommand("goCharRight");else if("skipThree"==a)for(var e=0;e<3;e++)i.execCommand("goCharRight");else if("surround"==a){for(var t=i.getSelections(),e=0;e<t.length;e++)t[e]=m+t[e]+b;i.replaceSelections(t,"around"),t=i.listSelections().slice();for(e=0;e<t.length;e++)t[e]=(r=t[e],n=0<C.cmpPos(r.anchor,r.head),{anchor:new x(r.anchor.line,r.anchor.ch+(n?-1:1)),head:new x(r.head.line,r.head.ch+(n?1:-1))});i.setSelections(t)}else"both"==a?(i.replaceSelection(m+b,null),i.triggerElectric(m+b),i.execCommand("goCharLeft")):"addFour"==a&&(i.replaceSelection(m+m+m+m,"before"),i.execCommand("goCharRight"));var r,n})}(e,t)}}(r))}}function k(e){var t=e.state.closeBrackets;return t&&!t.override&&e.getModeAt(e.getCursor()).closeBrackets||t}function s(e,t){var r=e.getRange(x(t.line,t.ch-1),x(t.line,t.ch+1));return 2==r.length?r:null}n(r.pairs+"`")});
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(S){var n={pairs:"()[]{}''\"\"",closeBefore:")]}'\":;>",triples:"",explode:"[]{}"},k=S.Pos;function y(e,t){return"pairs"==t&&"string"==typeof e?e:("object"==typeof e&&null!=e[t]?e:n)[t]}S.defineOption("autoCloseBrackets",!1,function(e,t,n){n&&n!=S.Init&&(e.removeKeyMap(i),e.state.closeBrackets=null),t&&(r(y(t,"pairs")),e.state.closeBrackets=t,e.addKeyMap(i))});var i={Backspace:function(e){var t=O(e);if(!t||e.getOption("disableInput"))return S.Pass;for(var n=y(t,"pairs"),r=e.listSelections(),i=0;i<r.length;i++){if(!r[i].empty())return S.Pass;var a=s(e,r[i].head);if(!a||n.indexOf(a)%2!=0)return S.Pass}for(i=r.length-1;0<=i;i--){var o=r[i].head;e.replaceRange("",k(o.line,o.ch-1),k(o.line,o.ch+1),"+delete")}},Enter:function(r){var e=O(r),t=e&&y(e,"explode");if(!t||r.getOption("disableInput"))return S.Pass;for(var i=r.listSelections(),n=0;n<i.length;n++){if(!i[n].empty())return S.Pass;var a=s(r,i[n].head);if(!a||t.indexOf(a)%2!=0)return S.Pass}r.operation(function(){var e=r.lineSeparator()||"\n";r.replaceSelection(e+e,null),m(r,-1),i=r.listSelections();for(var t=0;t<i.length;t++){var n=i[t].head.line;r.indentLine(n,null,!0),r.indentLine(n+1,null,!0)}})}};function r(e){for(var t=0;t<e.length;t++){var n=e.charAt(t),r="'"+n+"'";i[r]||(i[r]=function(P){return function(e){var i=e,t=P,e=O(i);if(!e||i.getOption("disableInput"))return S.Pass;var n=y(e,"pairs"),r=n.indexOf(t);if(-1==r)return S.Pass;for(var a,o=y(e,"closeBefore"),s=y(e,"triples"),l=n.charAt(r+1)==t,c=i.listSelections(),h=r%2==0,f=0;f<c.length;f++){var u,d=c[f],p=d.head,g=i.getRange(p,k(p.line,p.ch+1));if(h&&!d.empty())u="surround";else if(!l&&h||g!=t)if(l&&1<p.ch&&0<=s.indexOf(t)&&i.getRange(k(p.line,p.ch-2),p)==t+t){if(2<p.ch&&/\bstring/.test(i.getTokenTypeAt(k(p.line,p.ch-2))))return S.Pass;u="addFour"}else if(l){d=0==p.ch?" ":i.getRange(k(p.line,p.ch-1),p);if(S.isWordChar(g)||d==t||S.isWordChar(d))return S.Pass;u="both"}else{if(!h||!(0===g.length||/\s/.test(g)||-1<o.indexOf(g)))return S.Pass;u="both"}else u=l&&function(e,t){var n=e.getTokenAt(k(t.line,t.ch+1));return/\bstring/.test(n.type)&&n.start==t.ch&&(0==t.ch||!/\bstring/.test(e.getTokenTypeAt(t)))}(i,p)?"both":0<=s.indexOf(t)&&i.getRange(p,k(p.line,p.ch+3))==t+t+t?"skipThree":"skip";if(a){if(a!=u)return S.Pass}else a=u}var v=r%2?n.charAt(r-1):t,b=r%2?t:n.charAt(r+1);i.operation(function(){if("skip"==a)m(i,1);else if("skipThree"==a)m(i,3);else if("surround"==a){for(var e=i.getSelections(),t=0;t<e.length;t++)e[t]=v+e[t]+b;i.replaceSelections(e,"around");for(e=i.listSelections().slice(),t=0;t<e.length;t++)e[t]=(n=e[t],r=void 0,r=0<S.cmpPos(n.anchor,n.head),{anchor:new k(n.anchor.line,n.anchor.ch+(r?-1:1)),head:new k(n.head.line,n.head.ch+(r?1:-1))});i.setSelections(e)}else"both"==a?(i.replaceSelection(v+b,null),i.triggerElectric(v+b),m(i,-1)):"addFour"==a&&(i.replaceSelection(v+v+v+v,"before"),m(i,1));var n,r})}}(n))}}function O(e){var t=e.state.closeBrackets;return t&&!t.override&&e.getModeAt(e.getCursor()).closeBrackets||t}function m(e,t){for(var n=[],r=e.listSelections(),i=0,a=0;a<r.length;a++){var o=r[a],o=(o.head==e.getCursor()&&(i=a),o.head.ch||0<t?{line:o.head.line,ch:o.head.ch+t}:{line:o.head.line-1});n.push({anchor:o,head:o})}e.setSelections(n,i)}function s(e,t){e=e.getRange(k(t.line,t.ch-1),k(t.line,t.ch+1));return 2==e.length?e:null}r(n.pairs+"`")});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user