mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-07-06 12:02:49 +00:00
Merge branch 'master' into publishing-framework
This commit is contained in:
commit
f1d76a1eee
@ -130,7 +130,7 @@ Saving/TiddlySpot/Filename: Upload Filename
|
|||||||
Saving/TiddlySpot/Heading: ~TiddlySpot
|
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/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//
|
||||||
Saving/TiddlySpot/Password: Password
|
Saving/TiddlySpot/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 which replaces ~TiddlySpot.
|
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/ServerURL: Server URL
|
||||||
Saving/TiddlySpot/UploadDir: Upload Directory
|
Saving/TiddlySpot/UploadDir: Upload Directory
|
||||||
Saving/TiddlySpot/UserName: Wiki Name
|
Saving/TiddlySpot/UserName: Wiki Name
|
||||||
|
@ -3,6 +3,8 @@ title: $:/language/EditTemplate/
|
|||||||
Body/External/Hint: This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself
|
Body/External/Hint: This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself
|
||||||
Body/Placeholder: Type the text for this tiddler
|
Body/Placeholder: Type the text for this tiddler
|
||||||
Body/Preview/Type/Output: output
|
Body/Preview/Type/Output: output
|
||||||
|
Body/Preview/Type/DiffShadow: differences from shadow (if any)
|
||||||
|
Body/Preview/Type/DiffCurrent: differences from current
|
||||||
Field/Remove/Caption: remove field
|
Field/Remove/Caption: remove field
|
||||||
Field/Remove/Hint: Remove field
|
Field/Remove/Hint: Remove field
|
||||||
Field/Dropdown/Caption: field list
|
Field/Dropdown/Caption: field list
|
||||||
|
@ -19,8 +19,8 @@ All parameters are optional with safe defaults, and can be specified in any orde
|
|||||||
* ''username'' - optional username for basic authentication
|
* ''username'' - optional username for basic authentication
|
||||||
* ''password'' - optional password for basic authentication
|
* ''password'' - optional password for basic authentication
|
||||||
* ''authenticated-user-header'' - optional name of header to be used for trusted authentication
|
* ''authenticated-user-header'' - optional name of header to be used for trusted authentication
|
||||||
* ''readers'' - comma separated list of principals allowed to read from this wiki
|
* ''readers'' - comma-separated list of principals allowed to read from this wiki
|
||||||
* ''writers'' - comma separated list of principals allowed to write to this wiki
|
* ''writers'' - comma-separated list of principals allowed to write to this wiki
|
||||||
* ''csrf-disable'' - set to "yes" to disable CSRF checks (defaults to "no")
|
* ''csrf-disable'' - set to "yes" to disable CSRF checks (defaults to "no")
|
||||||
* ''sse-enabled'' - set to "yes" to enable Server-sent events (defaults to "no")
|
* ''sse-enabled'' - set to "yes" to enable Server-sent events (defaults to "no")
|
||||||
* ''sitemap'' - optional sitemap describing how the tiddlers will be served. See [[Publishing]] for more details
|
* ''sitemap'' - optional sitemap describing how the tiddlers will be served. See [[Publishing]] for more details
|
||||||
@ -31,7 +31,7 @@ All parameters are optional with safe defaults, and can be specified in any orde
|
|||||||
* ''tls-key'' - pathname of TLS key file (relative to wiki folder)
|
* ''tls-key'' - pathname of TLS key file (relative to wiki folder)
|
||||||
* ''debug-level'' - optional debug level; set to "debug" to view request details (defaults to "none")
|
* ''debug-level'' - optional debug level; set to "debug" to view request details (defaults to "none")
|
||||||
* ''gzip'' - set to "yes" to enable gzip compression for some http endpoints (defaults to "no")
|
* ''gzip'' - set to "yes" to enable gzip compression for some http endpoints (defaults to "no")
|
||||||
* ''use-browser-cache'' - set to "yes" to allow the browser to cache responses to save bandwith (defaults to "no")
|
* ''use-browser-cache'' - set to "yes" to allow the browser to cache responses to save bandwidth (defaults to "no")
|
||||||
|
|
||||||
For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.
|
For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
title: $:/language/Import/
|
title: $:/language/Import/
|
||||||
|
|
||||||
Editor/Import/Heading: Import images and insert into the editor.
|
Editor/Import/Heading: Import images and insert them into the editor.
|
||||||
Imported/Hint: The following tiddlers were imported:
|
Imported/Hint: The following tiddlers were imported:
|
||||||
Listing/Cancel/Caption: Cancel
|
Listing/Cancel/Caption: Cancel
|
||||||
Listing/Hint: These tiddlers are ready to import:
|
Listing/Hint: These tiddlers are ready to import:
|
||||||
@ -23,7 +23,11 @@ Upgrader/Plugins/Suppressed/Incompatible: Blocked incompatible or obsolete plugi
|
|||||||
Upgrader/Plugins/Suppressed/Version: Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>).
|
Upgrader/Plugins/Suppressed/Version: Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>).
|
||||||
Upgrader/Plugins/Upgraded: Upgraded plugin from <<incoming>> to <<upgraded>>.
|
Upgrader/Plugins/Upgraded: Upgraded plugin from <<incoming>> to <<upgraded>>.
|
||||||
Upgrader/State/Suppressed: Blocked temporary state tiddler.
|
Upgrader/State/Suppressed: Blocked temporary state tiddler.
|
||||||
|
Upgrader/System/Disabled: Disabled system tiddler.
|
||||||
Upgrader/System/Suppressed: Blocked system tiddler.
|
Upgrader/System/Suppressed: Blocked system tiddler.
|
||||||
Upgrader/System/Warning: Core module tiddler.
|
Upgrader/System/Warning: Core module tiddler.
|
||||||
Upgrader/System/Alert: You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable.
|
Upgrader/System/Alert: You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable.
|
||||||
Upgrader/ThemeTweaks/Created: Migrated theme tweak from <$text text=<<from>>/>.
|
Upgrader/ThemeTweaks/Created: Migrated theme tweak from <$text text=<<from>>/>.
|
||||||
|
Upgrader/Tiddler/Disabled: Disabled tiddler.
|
||||||
|
Upgrader/Tiddler/Selected: User selected.
|
||||||
|
Upgrader/Tiddler/Unselected: Unselected tiddler.
|
||||||
|
@ -34,7 +34,7 @@ exports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:
|
|||||||
|
|
||||||
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");
|
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");
|
||||||
|
|
||||||
exports.htmlBlockElements = "address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video".split(",");
|
exports.htmlBlockElements = "address,article,aside,audio,blockquote,canvas,dd,details,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,nav,ol,p,pre,section,summary,table,tfoot,ul,video".split(",");
|
||||||
|
|
||||||
exports.htmlUnsafeElements = "script".split(",");
|
exports.htmlUnsafeElements = "script".split(",");
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ function FramedEngine(options) {
|
|||||||
{name: "input",handlerObject: this,handlerMethod: "handleInputEvent"},
|
{name: "input",handlerObject: this,handlerMethod: "handleInputEvent"},
|
||||||
{name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"},
|
{name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"},
|
||||||
{name: "focus",handlerObject: this,handlerMethod: "handleFocusEvent"}
|
{name: "focus",handlerObject: this,handlerMethod: "handleFocusEvent"}
|
||||||
|
|
||||||
]);
|
]);
|
||||||
// Add drag and drop event listeners if fileDrop is enabled
|
// Add drag and drop event listeners if fileDrop is enabled
|
||||||
if(this.widget.isFileDropEnabled) {
|
if(this.widget.isFileDropEnabled) {
|
||||||
|
@ -381,7 +381,6 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return EditTextWidget;
|
return EditTextWidget;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.editTextWidgetFactory = editTextWidgetFactory;
|
exports.editTextWidgetFactory = editTextWidgetFactory;
|
||||||
|
23
core/modules/editor/operations/text/insert-text.js
Normal file
23
core/modules/editor/operations/text/insert-text.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/editor/operations/text/insert-text.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: texteditoroperation
|
||||||
|
|
||||||
|
Text editor operation insert text at the caret position. If there is a selection it is replaced.
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
exports["insert-text"] = function(event,operation) {
|
||||||
|
operation.replacement = event.paramObject.text;
|
||||||
|
operation.cutStart = operation.selStart;
|
||||||
|
operation.cutEnd = operation.selEnd;
|
||||||
|
operation.newSelStart = operation.selStart + operation.replacement.length;
|
||||||
|
operation.newSelEnd = operation.newSelStart;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
@ -17,10 +17,21 @@ exports.filter = function(operationSubFunction,options) {
|
|||||||
return function(results,source,widget) {
|
return function(results,source,widget) {
|
||||||
if(results.length > 0) {
|
if(results.length > 0) {
|
||||||
var resultsToRemove = [];
|
var resultsToRemove = [];
|
||||||
results.each(function(result) {
|
results.each(function(title) {
|
||||||
var filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget);
|
var filtered = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{
|
||||||
|
getVariable: function(name) {
|
||||||
|
switch(name) {
|
||||||
|
case "currentTiddler":
|
||||||
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return widget.getVariable("currentTiddler");
|
||||||
|
default:
|
||||||
|
return widget.getVariable(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
if(filtered.length === 0) {
|
if(filtered.length === 0) {
|
||||||
resultsToRemove.push(result);
|
resultsToRemove.push(title);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
results.remove(resultsToRemove);
|
results.remove(resultsToRemove);
|
||||||
|
@ -23,6 +23,8 @@ exports.reduce = function(operationSubFunction,options) {
|
|||||||
switch(name) {
|
switch(name) {
|
||||||
case "currentTiddler":
|
case "currentTiddler":
|
||||||
return "" + title;
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return widget.getVariable("currentTiddler");
|
||||||
case "accumulator":
|
case "accumulator":
|
||||||
return "" + accumulator;
|
return "" + accumulator;
|
||||||
case "index":
|
case "index":
|
||||||
|
@ -30,6 +30,8 @@ exports.sort = function(operationSubFunction,options) {
|
|||||||
switch(name) {
|
switch(name) {
|
||||||
case "currentTiddler":
|
case "currentTiddler":
|
||||||
return "" + title;
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return widget.getVariable("currentTiddler");
|
||||||
default:
|
default:
|
||||||
return widget.getVariable(name);
|
return widget.getVariable(name);
|
||||||
}
|
}
|
||||||
|
@ -323,6 +323,9 @@ exports.compileFilter = function(filterString) {
|
|||||||
} else if(typeof source === "object") { // Array or hashmap
|
} else if(typeof source === "object") { // Array or hashmap
|
||||||
source = self.makeTiddlerIterator(source);
|
source = self.makeTiddlerIterator(source);
|
||||||
}
|
}
|
||||||
|
if(!widget) {
|
||||||
|
widget = $tw.rootWidget;
|
||||||
|
}
|
||||||
var results = new $tw.utils.LinkedList();
|
var results = new $tw.utils.LinkedList();
|
||||||
$tw.utils.each(operationFunctions,function(operationFunction) {
|
$tw.utils.each(operationFunctions,function(operationFunction) {
|
||||||
operationFunction(results,source,widget);
|
operationFunction(results,source,widget);
|
||||||
|
27
core/modules/filters/deserializers.js
Normal file
27
core/modules/filters/deserializers.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/filters/deserializers.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: filteroperator
|
||||||
|
|
||||||
|
Filter operator for returning the names of the deserializers in this wiki
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Export our filter function
|
||||||
|
*/
|
||||||
|
exports.deserializers = function(source,operator,options) {
|
||||||
|
var results = [];
|
||||||
|
$tw.utils.each($tw.Wiki.tiddlerDeserializerModules,function(deserializer,type) {
|
||||||
|
results.push(type);
|
||||||
|
});
|
||||||
|
results.sort();
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
@ -20,7 +20,18 @@ exports.filter = function(source,operator,options) {
|
|||||||
results = [],
|
results = [],
|
||||||
target = operator.prefix !== "!";
|
target = operator.prefix !== "!";
|
||||||
source(function(tiddler,title) {
|
source(function(tiddler,title) {
|
||||||
var list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),options.widget);
|
var list = filterFn.call(options.wiki,options.wiki.makeTiddlerIterator([title]),{
|
||||||
|
getVariable: function(name) {
|
||||||
|
switch(name) {
|
||||||
|
case "currentTiddler":
|
||||||
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return options.widget.getVariable("currentTiddler");
|
||||||
|
default:
|
||||||
|
return options.widget.getVariable(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
if((list.length > 0) === target) {
|
if((list.length > 0) === target) {
|
||||||
results.push(title);
|
results.push(title);
|
||||||
}
|
}
|
||||||
|
25
core/modules/filters/format/titlelist.js
Normal file
25
core/modules/filters/format/titlelist.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/filters/format/titlelist.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: formatfilteroperator
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Export our filter function
|
||||||
|
*/
|
||||||
|
exports.titlelist = function(source,operand,options) {
|
||||||
|
var results = [];
|
||||||
|
source(function(tiddler,title) {
|
||||||
|
if(title && title.length) {
|
||||||
|
results.push($tw.utils.stringifyList([title]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
@ -31,6 +31,8 @@ exports.reduce = function(source,operator,options) {
|
|||||||
switch(name) {
|
switch(name) {
|
||||||
case "currentTiddler":
|
case "currentTiddler":
|
||||||
return "" + title;
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return options.widget.getVariable("currentTiddler");
|
||||||
case "accumulator":
|
case "accumulator":
|
||||||
return "" + accumulator;
|
return "" + accumulator;
|
||||||
case "index":
|
case "index":
|
||||||
|
@ -27,9 +27,12 @@ exports.sortsub = function(source,operator,options) {
|
|||||||
iterator(options.wiki.getTiddler(title),title);
|
iterator(options.wiki.getTiddler(title),title);
|
||||||
},{
|
},{
|
||||||
getVariable: function(name) {
|
getVariable: function(name) {
|
||||||
if(name === "currentTiddler") {
|
switch(name) {
|
||||||
return title;
|
case "currentTiddler":
|
||||||
} else {
|
return "" + title;
|
||||||
|
case "..currentTiddler":
|
||||||
|
return options.widget.getVariable("currentTiddler");
|
||||||
|
default:
|
||||||
return options.widget.getVariable(name);
|
return options.widget.getVariable(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -295,7 +295,7 @@ KeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) {
|
|||||||
event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? "meta" :
|
event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey ? "meta" :
|
||||||
event.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? "meta-ctrl" :
|
event.metaKey && event.ctrlKey && !event.shiftKey && !event.altKey ? "meta-ctrl" :
|
||||||
event.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? "meta-ctrl-shift" :
|
event.metaKey && event.ctrlKey && event.shiftKey && !event.altKey ? "meta-ctrl-shift" :
|
||||||
event.metaKey && event.ctrlKey & event.shiftKey && event.altKey ? "meta-ctrl-alt-shift" : "normal";
|
event.metaKey && event.ctrlKey && event.shiftKey && event.altKey ? "meta-ctrl-alt-shift" : "normal";
|
||||||
};
|
};
|
||||||
|
|
||||||
KeyboardManager.prototype.getShortcutTiddlerList = function() {
|
KeyboardManager.prototype.getShortcutTiddlerList = function() {
|
||||||
|
@ -36,7 +36,7 @@ exports.parse = function() {
|
|||||||
// Move past the pragma invocation
|
// Move past the pragma invocation
|
||||||
this.parser.pos = this.matchRegExp.lastIndex;
|
this.parser.pos = this.matchRegExp.lastIndex;
|
||||||
// Parse the filter terminated by a line break
|
// Parse the filter terminated by a line break
|
||||||
var reMatch = /(.*)(\r?\n)|$/mg;
|
var reMatch = /(.*)(?:$|\r?\n)/mg;
|
||||||
reMatch.lastIndex = this.parser.pos;
|
reMatch.lastIndex = this.parser.pos;
|
||||||
var match = reMatch.exec(this.parser.source);
|
var match = reMatch.exec(this.parser.source);
|
||||||
this.parser.pos = reMatch.lastIndex;
|
this.parser.pos = reMatch.lastIndex;
|
||||||
|
@ -82,7 +82,7 @@ exports.startup = function() {
|
|||||||
var onlyThrottledTiddlersHaveChanged = true;
|
var onlyThrottledTiddlersHaveChanged = true;
|
||||||
for(var title in changes) {
|
for(var title in changes) {
|
||||||
var tiddler = $tw.wiki.getTiddler(title);
|
var tiddler = $tw.wiki.getTiddler(title);
|
||||||
if(!tiddler || !(tiddler.hasField("draft.of") || tiddler.hasField("throttle.refresh"))) {
|
if(!$tw.wiki.isVolatileTiddler(title) && (!tiddler || !(tiddler.hasField("draft.of") || tiddler.hasField("throttle.refresh")))) {
|
||||||
onlyThrottledTiddlersHaveChanged = false;
|
onlyThrottledTiddlersHaveChanged = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -601,7 +601,10 @@ SaveTiddlerTask.prototype.run = function(callback) {
|
|||||||
tiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);
|
tiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);
|
||||||
this.syncer.logger.log("Dispatching 'save' task:",this.title);
|
this.syncer.logger.log("Dispatching 'save' task:",this.title);
|
||||||
if(tiddler) {
|
if(tiddler) {
|
||||||
this.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {
|
this.syncer.syncadaptor.saveTiddler(tiddler,{
|
||||||
|
changeCount: changeCount,
|
||||||
|
tiddlerInfo: self.syncer.tiddlerInfo[self.title]
|
||||||
|
},function(err,adaptorInfo,revision) {
|
||||||
// If there's an error, exit without changing any internal state
|
// If there's an error, exit without changing any internal state
|
||||||
if(err) {
|
if(err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
@ -615,8 +618,6 @@ SaveTiddlerTask.prototype.run = function(callback) {
|
|||||||
};
|
};
|
||||||
// Invoke the callback
|
// Invoke the callback
|
||||||
callback(null);
|
callback(null);
|
||||||
},{
|
|
||||||
tiddlerInfo: self.syncer.tiddlerInfo[self.title]
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.syncer.logger.log(" Not Dispatching 'save' task:",this.title,"tiddler does not exist");
|
this.syncer.logger.log(" Not Dispatching 'save' task:",this.title,"tiddler does not exist");
|
||||||
@ -633,7 +634,9 @@ function DeleteTiddlerTask(syncer,title) {
|
|||||||
DeleteTiddlerTask.prototype.run = function(callback) {
|
DeleteTiddlerTask.prototype.run = function(callback) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.syncer.logger.log("Dispatching 'delete' task:",this.title);
|
this.syncer.logger.log("Dispatching 'delete' task:",this.title);
|
||||||
this.syncer.syncadaptor.deleteTiddler(this.title,function(err) {
|
this.syncer.syncadaptor.deleteTiddler(this.title,{
|
||||||
|
tiddlerInfo: self.syncer.tiddlerInfo[this.title]
|
||||||
|
},function(err,adaptorInfo) {
|
||||||
// If there's an error, exit without changing any internal state
|
// If there's an error, exit without changing any internal state
|
||||||
if(err) {
|
if(err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
@ -642,8 +645,6 @@ DeleteTiddlerTask.prototype.run = function(callback) {
|
|||||||
delete self.syncer.tiddlerInfo[self.title];
|
delete self.syncer.tiddlerInfo[self.title];
|
||||||
// Invoke the callback
|
// Invoke the callback
|
||||||
callback(null);
|
callback(null);
|
||||||
},{
|
|
||||||
tiddlerInfo: self.syncer.tiddlerInfo[this.title]
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,8 +12,8 @@ Upgrader module that suppresses certain system tiddlers that shouldn't be import
|
|||||||
/*global $tw: false */
|
/*global $tw: false */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var DONT_IMPORT_LIST = ["$:/StoryList","$:/HistoryList"],
|
var DONT_IMPORT_LIST = ["$:/Import"],
|
||||||
DONT_IMPORT_PREFIX_LIST = ["$:/temp/","$:/state/","$:/Import"],
|
UNSELECT_PREFIX_LIST = ["$:/temp/","$:/state/","$:/StoryList","$:/HistoryList"],
|
||||||
WARN_IMPORT_PREFIX_LIST = ["$:/core/modules/"];
|
WARN_IMPORT_PREFIX_LIST = ["$:/core/modules/"];
|
||||||
|
|
||||||
exports.upgrade = function(wiki,titles,tiddlers) {
|
exports.upgrade = function(wiki,titles,tiddlers) {
|
||||||
@ -26,11 +26,10 @@ exports.upgrade = function(wiki,titles,tiddlers) {
|
|||||||
tiddlers[title] = Object.create(null);
|
tiddlers[title] = Object.create(null);
|
||||||
messages[title] = $tw.language.getString("Import/Upgrader/System/Suppressed");
|
messages[title] = $tw.language.getString("Import/Upgrader/System/Suppressed");
|
||||||
} else {
|
} else {
|
||||||
for(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {
|
for(var t=0; t<UNSELECT_PREFIX_LIST.length; t++) {
|
||||||
var prefix = DONT_IMPORT_PREFIX_LIST[t];
|
var prefix = UNSELECT_PREFIX_LIST[t];
|
||||||
if(title.substr(0,prefix.length) === prefix) {
|
if(title.substr(0,prefix.length) === prefix) {
|
||||||
tiddlers[title] = Object.create(null);
|
messages[title] = $tw.language.getString("Import/Upgrader/Tiddler/Unselected");
|
||||||
messages[title] = $tw.language.getString("Import/Upgrader/State/Suppressed");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {
|
for(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {
|
||||||
|
@ -22,6 +22,10 @@ exports.domContains = function(a,b) {
|
|||||||
!!(a.compareDocumentPosition(b) & 16);
|
!!(a.compareDocumentPosition(b) & 16);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.domMatchesSelector = function(node,selector) {
|
||||||
|
return node.matches ? node.matches(selector) : node.msMatchesSelector(selector);
|
||||||
|
};
|
||||||
|
|
||||||
exports.removeChildren = function(node) {
|
exports.removeChildren = function(node) {
|
||||||
while(node.hasChildNodes()) {
|
while(node.hasChildNodes()) {
|
||||||
node.removeChild(node.firstChild);
|
node.removeChild(node.firstChild);
|
||||||
|
@ -27,8 +27,11 @@ CreateTiddlerWidget.prototype = new Widget();
|
|||||||
Render this widget into the DOM
|
Render this widget into the DOM
|
||||||
*/
|
*/
|
||||||
CreateTiddlerWidget.prototype.render = function(parent,nextSibling) {
|
CreateTiddlerWidget.prototype.render = function(parent,nextSibling) {
|
||||||
|
this.parentDomNode = parent;
|
||||||
this.computeAttributes();
|
this.computeAttributes();
|
||||||
this.execute();
|
this.execute();
|
||||||
|
// Render children
|
||||||
|
this.renderChildren(parent,nextSibling);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -44,7 +47,8 @@ CreateTiddlerWidget.prototype.execute = function() {
|
|||||||
this.actionTemplate = this.getAttribute("$template");
|
this.actionTemplate = this.getAttribute("$template");
|
||||||
this.useTemplate = !!this.actionTemplate;
|
this.useTemplate = !!this.actionTemplate;
|
||||||
this.actionOverwrite = this.getAttribute("$overwrite","no");
|
this.actionOverwrite = this.getAttribute("$overwrite","no");
|
||||||
|
// Construct the child widgets
|
||||||
|
this.makeChildWidgets();
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -86,18 +90,20 @@ CreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {
|
|||||||
if (!this.hasBase && this.useTemplate) {
|
if (!this.hasBase && this.useTemplate) {
|
||||||
title = this.wiki.generateNewTitle(this.actionTemplate);
|
title = this.wiki.generateNewTitle(this.actionTemplate);
|
||||||
} else if (!this.hasBase && !this.useTemplate) {
|
} else if (!this.hasBase && !this.useTemplate) {
|
||||||
// If NO $basetitle AND NO $template use initial title
|
// If no $basetitle and no $template then use initial title
|
||||||
// DON'T overwrite any stuff
|
|
||||||
title = this.wiki.generateNewTitle(title);
|
title = this.wiki.generateNewTitle(title);
|
||||||
}
|
}
|
||||||
var templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};
|
var templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};
|
||||||
var tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));
|
this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));
|
||||||
|
var draftTitle = this.wiki.generateDraftTitle(title);
|
||||||
if(this.actionSaveTitle) {
|
if(this.actionSaveTitle) {
|
||||||
this.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable("currentTiddler"));
|
this.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable("currentTiddler"));
|
||||||
}
|
}
|
||||||
if(this.actionSaveDraftTitle) {
|
if(this.actionSaveDraftTitle) {
|
||||||
this.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable("currentTiddler"));
|
this.wiki.setTextReference(this.actionSaveDraftTitle,draftTitle,this.getVariable("currentTiddler"));
|
||||||
}
|
}
|
||||||
|
this.setVariable("createTiddler-title",title);
|
||||||
|
this.setVariable("createTiddler-draftTitle",draftTitle);
|
||||||
return true; // Action was invoked
|
return true; // Action was invoked
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -47,17 +47,24 @@ EventWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
domNode.addEventListener(type,function(event) {
|
domNode.addEventListener(type,function(event) {
|
||||||
var selector = self.getAttribute("selector"),
|
var selector = self.getAttribute("selector"),
|
||||||
actions = self.getAttribute("actions-"+type),
|
actions = self.getAttribute("actions-"+type),
|
||||||
|
stopPropagation = self.getAttribute("stopPropagation","onaction"),
|
||||||
selectedNode = event.target,
|
selectedNode = event.target,
|
||||||
selectedNodeRect,
|
selectedNodeRect,
|
||||||
catcherNodeRect,
|
catcherNodeRect,
|
||||||
variables = {};
|
variables = {};
|
||||||
|
// Firefox can fire dragover and dragenter events on text nodes instead of their parents
|
||||||
|
if(selectedNode.nodeType === 3) {
|
||||||
|
selectedNode = selectedNode.parentNode;
|
||||||
|
}
|
||||||
if(selector) {
|
if(selector) {
|
||||||
// Search ancestors for a node that matches the selector
|
// Search ancestors for a node that matches the selector
|
||||||
while(!selectedNode.matches(selector) && selectedNode !== domNode) {
|
while(!$tw.utils.domMatchesSelector(selectedNode,selector) && selectedNode !== domNode) {
|
||||||
selectedNode = selectedNode.parentNode;
|
selectedNode = selectedNode.parentNode;
|
||||||
}
|
}
|
||||||
// If we found one, copy the attributes as variables, otherwise exit
|
// If we found one, copy the attributes as variables, otherwise exit
|
||||||
if(selectedNode.matches(selector)) {
|
if($tw.utils.domMatchesSelector(selectedNode,selector)) {
|
||||||
|
// Only set up variables if we have actions to invoke
|
||||||
|
if(actions) {
|
||||||
$tw.utils.each(selectedNode.attributes,function(attribute) {
|
$tw.utils.each(selectedNode.attributes,function(attribute) {
|
||||||
variables["dom-" + attribute.name] = attribute.value.toString();
|
variables["dom-" + attribute.name] = attribute.value.toString();
|
||||||
});
|
});
|
||||||
@ -79,6 +86,7 @@ EventWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
catcherNodeRect = self.domNode.getBoundingClientRect();
|
catcherNodeRect = self.domNode.getBoundingClientRect();
|
||||||
variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString();
|
variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString();
|
||||||
variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString();
|
variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -106,6 +114,8 @@ EventWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
variables["event-detail"] = event.detail.toString();
|
variables["event-detail"] = event.detail.toString();
|
||||||
}
|
}
|
||||||
self.invokeActionString(actions,self,event,variables);
|
self.invokeActionString(actions,self,event,variables);
|
||||||
|
}
|
||||||
|
if((actions && stopPropagation === "onaction") || stopPropagation === "always") {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
return true;
|
return true;
|
||||||
|
@ -44,26 +44,35 @@ KeyboardWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
classes.push("tc-keyboard");
|
classes.push("tc-keyboard");
|
||||||
domNode.className = classes.join(" ");
|
domNode.className = classes.join(" ");
|
||||||
// Add a keyboard event handler
|
// Add a keyboard event handler
|
||||||
domNode.addEventListener("keydown",function (event) {
|
$tw.utils.addEventListeners(domNode,[
|
||||||
if($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {
|
{name: "keydown", handlerObject: this, handlerMethod: "handleChangeEvent"}
|
||||||
var handled = self.invokeActions(self,event);
|
]);
|
||||||
if(self.actions) {
|
// Insert element
|
||||||
self.invokeActionString(self.actions,self,event);
|
parent.insertBefore(domNode,nextSibling);
|
||||||
|
this.renderChildren(domNode,null);
|
||||||
|
this.domNodes.push(domNode);
|
||||||
|
};
|
||||||
|
|
||||||
|
KeyboardWidget.prototype.handleChangeEvent = function(event) {
|
||||||
|
if($tw.keyboardManager.checkKeyDescriptors(event,this.keyInfoArray)) {
|
||||||
|
var handled = this.invokeActions(this,event);
|
||||||
|
if(this.actions) {
|
||||||
|
var variables = {
|
||||||
|
"event-key": event.key,
|
||||||
|
"event-code": event.code,
|
||||||
|
"modifier": $tw.keyboardManager.getEventModifierKeyDescriptor(event)
|
||||||
|
};
|
||||||
|
this.invokeActionString(this.actions,this,event,variables);
|
||||||
}
|
}
|
||||||
self.dispatchMessage(event);
|
this.dispatchMessage(event);
|
||||||
if(handled || self.actions || self.message) {
|
if(handled || this.actions || this.message) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},false);
|
}
|
||||||
// Insert element
|
|
||||||
parent.insertBefore(domNode,nextSibling);
|
|
||||||
this.renderChildren(domNode,null);
|
|
||||||
this.domNodes.push(domNode);
|
|
||||||
};
|
|
||||||
|
|
||||||
KeyboardWidget.prototype.dispatchMessage = function(event) {
|
KeyboardWidget.prototype.dispatchMessage = function(event) {
|
||||||
this.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable("currentTiddler")});
|
this.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable("currentTiddler")});
|
||||||
|
@ -522,10 +522,15 @@ NavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {
|
|||||||
});
|
});
|
||||||
// Give the active upgrader modules a chance to process the incoming tiddlers
|
// Give the active upgrader modules a chance to process the incoming tiddlers
|
||||||
var messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);
|
var messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);
|
||||||
|
// Deselect any disabled, but _not_ suppressed tiddlers
|
||||||
|
var systemMessage = $tw.language.getString("Import/Upgrader/Tiddler/Unselected");
|
||||||
$tw.utils.each(messages,function(message,title) {
|
$tw.utils.each(messages,function(message,title) {
|
||||||
newFields["message-" + title] = message;
|
newFields["message-" + title] = message;
|
||||||
|
if (message.indexOf(systemMessage) !== -1) {
|
||||||
|
newFields["selection-" + title] = "unchecked";
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// Deselect any suppressed tiddlers
|
// Deselect suppressed tiddlers ... they have been removed and can't be selected anymore
|
||||||
$tw.utils.each(importData.tiddlers,function(tiddler,title) {
|
$tw.utils.each(importData.tiddlers,function(tiddler,title) {
|
||||||
if($tw.utils.count(tiddler) === 0) {
|
if($tw.utils.count(tiddler) === 0) {
|
||||||
newFields["selection-" + title] = "unchecked";
|
newFields["selection-" + title] = "unchecked";
|
||||||
@ -557,10 +562,12 @@ NavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {
|
|||||||
NavigatorWidget.prototype.handlePerformImportEvent = function(event) {
|
NavigatorWidget.prototype.handlePerformImportEvent = function(event) {
|
||||||
var self = this,
|
var self = this,
|
||||||
importTiddler = this.wiki.getTiddler(event.param),
|
importTiddler = this.wiki.getTiddler(event.param),
|
||||||
importData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),
|
importData,
|
||||||
importReport = [];
|
importReport = [];
|
||||||
// Add the tiddlers to the store
|
|
||||||
importReport.push($tw.language.getString("Import/Imported/Hint") + "\n");
|
importReport.push($tw.language.getString("Import/Imported/Hint") + "\n");
|
||||||
|
// If you need to modify the import tiddler payload then consider th-importing-tiddler instead
|
||||||
|
importTiddler = $tw.hooks.invokeHook("th-before-importing",importTiddler);
|
||||||
|
importData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),
|
||||||
$tw.utils.each(importData.tiddlers,function(tiddlerFields) {
|
$tw.utils.each(importData.tiddlers,function(tiddlerFields) {
|
||||||
var title = tiddlerFields.title;
|
var title = tiddlerFields.title;
|
||||||
if(title && importTiddler && importTiddler.fields["selection-" + title] !== "unchecked") {
|
if(title && importTiddler && importTiddler.fields["selection-" + title] !== "unchecked") {
|
||||||
@ -569,7 +576,10 @@ NavigatorWidget.prototype.handlePerformImportEvent = function(event) {
|
|||||||
} else {
|
} else {
|
||||||
var tiddler = new $tw.Tiddler(tiddlerFields);
|
var tiddler = new $tw.Tiddler(tiddlerFields);
|
||||||
}
|
}
|
||||||
|
// th-importing-tiddler doesn't allow user interaction by default
|
||||||
|
// If you want to use the default UI then use: $:/core/modules/upgraders/ instead
|
||||||
tiddler = $tw.hooks.invokeHook("th-importing-tiddler",tiddler);
|
tiddler = $tw.hooks.invokeHook("th-importing-tiddler",tiddler);
|
||||||
|
// Add the tiddlers to the store
|
||||||
self.wiki.addTiddler(tiddler);
|
self.wiki.addTiddler(tiddler);
|
||||||
importReport.push("# [[" + tiddler.fields.title + "]]");
|
importReport.push("# [[" + tiddler.fields.title + "]]");
|
||||||
}
|
}
|
||||||
|
@ -569,9 +569,10 @@ Widget.prototype.invokeActions = function(triggeringWidget,event) {
|
|||||||
// For each child widget
|
// For each child widget
|
||||||
for(var t=0; t<this.children.length; t++) {
|
for(var t=0; t<this.children.length; t++) {
|
||||||
var child = this.children[t];
|
var child = this.children[t];
|
||||||
|
// Rerender the child to ensure the attribute values are up to date
|
||||||
|
child.refreshSelf();
|
||||||
// Invoke the child if it is an action widget
|
// Invoke the child if it is an action widget
|
||||||
if(child.invokeAction) {
|
if(child.invokeAction) {
|
||||||
child.refreshSelf();
|
|
||||||
if(child.invokeAction(triggeringWidget,event)) {
|
if(child.invokeAction(triggeringWidget,event)) {
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
|
@ -221,6 +221,10 @@ exports.isTemporaryTiddler = function(title) {
|
|||||||
return title && title.indexOf("$:/temp/") === 0;
|
return title && title.indexOf("$:/temp/") === 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.isVolatileTiddler = function(title) {
|
||||||
|
return title && title.indexOf("$:/temp/volatile/") === 0;
|
||||||
|
};
|
||||||
|
|
||||||
exports.isImageTiddler = function(title) {
|
exports.isImageTiddler = function(title) {
|
||||||
var tiddler = this.getTiddler(title);
|
var tiddler = this.getTiddler(title);
|
||||||
if(tiddler) {
|
if(tiddler) {
|
||||||
@ -1505,6 +1509,13 @@ exports.invokeUpgraders = function(titles,tiddlers) {
|
|||||||
|
|
||||||
// Determine whether a plugin by title is dynamically loadable
|
// Determine whether a plugin by title is dynamically loadable
|
||||||
exports.doesPluginRequireReload = function(title) {
|
exports.doesPluginRequireReload = function(title) {
|
||||||
|
var tiddler = this.getTiddler(title);
|
||||||
|
if(tiddler && tiddler.fields.type === "application/json" && tiddler.fields["plugin-type"]) {
|
||||||
|
if(tiddler.fields["plugin-type"] === "import") {
|
||||||
|
// The import plugin never requires reloading
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));
|
return this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1568,4 +1579,3 @@ exports.unslugify = function(slug) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/Blanca
|
title: $:/palettes/Blanca
|
||||||
name: Blanca
|
name: Blanca
|
||||||
|
color-scheme: light
|
||||||
description: A clean white palette to let you focus
|
description: A clean white palette to let you focus
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/Blue
|
title: $:/palettes/Blue
|
||||||
name: Blue
|
name: Blue
|
||||||
|
color-scheme: light
|
||||||
description: A blue theme
|
description: A blue theme
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/Muted
|
title: $:/palettes/Muted
|
||||||
name: Muted
|
name: Muted
|
||||||
|
color-scheme: light
|
||||||
description: Bright tiddlers on a muted background
|
description: Bright tiddlers on a muted background
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/ContrastLight
|
title: $:/palettes/ContrastLight
|
||||||
name: Contrast (Light)
|
name: Contrast (Light)
|
||||||
|
color-scheme: light
|
||||||
description: High contrast and unambiguous (light version)
|
description: High contrast and unambiguous (light version)
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/ContrastDark
|
title: $:/palettes/ContrastDark
|
||||||
name: Contrast (Dark)
|
name: Contrast (Dark)
|
||||||
|
color-scheme: dark
|
||||||
description: High contrast and unambiguous (dark version)
|
description: High contrast and unambiguous (dark version)
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/CupertinoDark
|
title: $:/palettes/CupertinoDark
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
|
color-scheme: dark
|
||||||
name: Cupertino Dark
|
name: Cupertino Dark
|
||||||
description: A macOS inspired dark palette
|
description: A macOS inspired dark palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -5,6 +5,7 @@ name: DarkPhotos
|
|||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
title: $:/palettes/DarkPhotos
|
title: $:/palettes/DarkPhotos
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
color-scheme: light
|
||||||
|
|
||||||
alert-background: #ffe476
|
alert-background: #ffe476
|
||||||
alert-border: #b99e2f
|
alert-border: #b99e2f
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/DesertSand
|
title: $:/palettes/DesertSand
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
|
color-scheme: light
|
||||||
name: Desert Sand
|
name: Desert Sand
|
||||||
description: A desert sand palette
|
description: A desert sand palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/GruvboxDark
|
title: $:/palettes/GruvboxDark
|
||||||
name: Gruvbox Dark
|
name: Gruvbox Dark
|
||||||
|
color-scheme: dark
|
||||||
description: Retro groove color scheme
|
description: Retro groove color scheme
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/Nord
|
title: $:/palettes/Nord
|
||||||
name: Nord
|
name: Nord
|
||||||
|
color-scheme: dark
|
||||||
description: An arctic, north-bluish color palette.
|
description: An arctic, north-bluish color palette.
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/Rocker
|
title: $:/palettes/Rocker
|
||||||
name: Rocker
|
name: Rocker
|
||||||
|
color-scheme: dark
|
||||||
description: A dark theme
|
description: A dark theme
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
title: $:/palettes/SolarFlare
|
title: $:/palettes/SolarFlare
|
||||||
name: Solar Flare
|
name: Solar Flare
|
||||||
|
color-scheme: light
|
||||||
description: Warm, relaxing earth colours
|
description: Warm, relaxing earth colours
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
@ -4,6 +4,7 @@ type: application/x-tiddler-dictionary
|
|||||||
description: Precision dark colors for machines and people
|
description: Precision dark colors for machines and people
|
||||||
license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE
|
license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE
|
||||||
name: SolarizedDark
|
name: SolarizedDark
|
||||||
|
color-scheme: dark
|
||||||
|
|
||||||
alert-background: #073642
|
alert-background: #073642
|
||||||
alert-border: #93a1a1
|
alert-border: #93a1a1
|
||||||
|
@ -4,6 +4,7 @@ type: application/x-tiddler-dictionary
|
|||||||
description: Precision colors for machines and people
|
description: Precision colors for machines and people
|
||||||
license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE
|
license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE
|
||||||
name: SolarizedLight
|
name: SolarizedLight
|
||||||
|
color-scheme: light
|
||||||
|
|
||||||
alert-background: #eee8d5
|
alert-background: #eee8d5
|
||||||
alert-border: #586e75
|
alert-border: #586e75
|
||||||
|
@ -3,6 +3,7 @@ tags: $:/tags/Palette
|
|||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
description: Cold, spartan day colors
|
description: Cold, spartan day colors
|
||||||
name: Spartan Day
|
name: Spartan Day
|
||||||
|
color-scheme: light
|
||||||
|
|
||||||
alert-background: <<colour background>>
|
alert-background: <<colour background>>
|
||||||
alert-border: <<colour very-muted-foreground>>
|
alert-border: <<colour very-muted-foreground>>
|
||||||
|
@ -3,6 +3,7 @@ tags: $:/tags/Palette
|
|||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
description: Dark spartan colors
|
description: Dark spartan colors
|
||||||
name: Spartan Night
|
name: Spartan Night
|
||||||
|
color-scheme: dark
|
||||||
|
|
||||||
alert-background: <<colour background>>
|
alert-background: <<colour background>>
|
||||||
alert-border: <<colour very-muted-foreground>>
|
alert-border: <<colour very-muted-foreground>>
|
||||||
|
@ -4,6 +4,7 @@ author: Thomas Elmiger
|
|||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
name: Twilight
|
name: Twilight
|
||||||
description: Delightful, soft darkness.
|
description: Delightful, soft darkness.
|
||||||
|
color-scheme: dark
|
||||||
|
|
||||||
alert-background: rgb(255, 255, 102)
|
alert-background: rgb(255, 255, 102)
|
||||||
alert-border: rgb(232, 232, 125)
|
alert-border: rgb(232, 232, 125)
|
||||||
|
@ -3,6 +3,7 @@ name: Vanilla
|
|||||||
description: Pale and unobtrusive
|
description: Pale and unobtrusive
|
||||||
tags: $:/tags/Palette
|
tags: $:/tags/Palette
|
||||||
type: application/x-tiddler-dictionary
|
type: application/x-tiddler-dictionary
|
||||||
|
color-scheme: light
|
||||||
|
|
||||||
alert-background: #ffe476
|
alert-background: #ffe476
|
||||||
alert-border: #b99e2f
|
alert-border: #b99e2f
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
title: $:/core/ui/EditTemplate/body/preview/diffs-current
|
title: $:/core/ui/EditTemplate/body/preview/diffs-current
|
||||||
tags: $:/tags/EditPreview
|
tags: $:/tags/EditPreview
|
||||||
caption: differences from current
|
caption: {{$:/language/EditTemplate/Body/Preview/Type/DiffCurrent}}
|
||||||
list-after: $:/core/ui/EditTemplate/body/preview/output
|
list-after: $:/core/ui/EditTemplate/body/preview/output
|
||||||
|
|
||||||
<$list filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>
|
<$list filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
title: $:/core/ui/EditTemplate/body/preview/diffs-shadow
|
title: $:/core/ui/EditTemplate/body/preview/diffs-shadow
|
||||||
tags: $:/tags/EditPreview
|
tags: $:/tags/EditPreview
|
||||||
caption: differences from shadow (if any)
|
caption: {{$:/language/EditTemplate/Body/Preview/Type/DiffShadow}}
|
||||||
list-after: $:/core/ui/EditTemplate/body/preview/output
|
list-after: $:/core/ui/EditTemplate/body/preview/output
|
||||||
|
|
||||||
<$list filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>
|
<$list filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>
|
||||||
|
@ -14,7 +14,7 @@ color:$(foregroundColor)$;
|
|||||||
\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:"tags")
|
\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:"tags")
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
|
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
|
||||||
<span style=<<tag-styles>> class="tc-tag-label tc-tag-list-item">
|
<span style=<<tag-styles>> class="tc-tag-label tc-tag-list-item tc-small-gap-right">
|
||||||
<$transclude tiddler="""$icon$"""/><$view field="title" format="text" />
|
<$transclude tiddler="""$icon$"""/><$view field="title" format="text" />
|
||||||
<$button class="tc-btn-invisible tc-remove-tag-button" style=<<tag-styles>>><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter="-[{!!title}]"/>{{$:/core/images/close-button}}</$button>
|
<$button class="tc-btn-invisible tc-remove-tag-button" style=<<tag-styles>>><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter="-[{!!title}]"/>{{$:/core/images/close-button}}</$button>
|
||||||
</span>
|
</span>
|
||||||
|
@ -16,7 +16,7 @@ condition: [<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]
|
|||||||
<$list filter="[<importTitle>links[]] :reduce[get[type]prefix[image]then<replacement-text-image>else<replacement-text-file>search-replace[$title$],<currentTiddler>addprefix<accumulator>]" variable="imageTitle">
|
<$list filter="[<importTitle>links[]] :reduce[get[type]prefix[image]then<replacement-text-image>else<replacement-text-file>search-replace[$title$],<currentTiddler>addprefix<accumulator>]" variable="imageTitle">
|
||||||
<$action-sendmessage
|
<$action-sendmessage
|
||||||
$message="tm-edit-text-operation"
|
$message="tm-edit-text-operation"
|
||||||
$param="replace-selection"
|
$param="insert-text"
|
||||||
text=<<imageTitle>>
|
text=<<imageTitle>>
|
||||||
/>
|
/>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -12,6 +12,24 @@ title: $:/core/ui/ImportListing
|
|||||||
</$list>
|
</$list>
|
||||||
\end
|
\end
|
||||||
|
|
||||||
|
\define selectionInfo()
|
||||||
|
\whitespace trim
|
||||||
|
<$set name="escUnselected" value={{{[{$:/language/Import/Upgrader/Tiddler/Unselected}escaperegexp[]addprefix[(?g)]]}}}>
|
||||||
|
<$list filter="[all[current]get<messageField>regexp<escUnselected>]" variable="ignore">
|
||||||
|
<$text text={{{[all[current]get<selectionField>match[checked]then{$:/language/Import/Upgrader/Tiddler/Selected}else[]]}}}/>
|
||||||
|
</$list>
|
||||||
|
</$set>
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define libraryInfo()
|
||||||
|
\whitespace trim
|
||||||
|
<$set name="escUnselected" value={{{[{$:/language/Import/Upgrader/Tiddler/Unselected}escaperegexp[]addprefix[(?g)]]}}}>
|
||||||
|
<$list filter="[all[current]get<messageField>!regexp<escUnselected>]" variable="ignore">
|
||||||
|
<$text text={{{[all[current]get<messageField>]}}}/>
|
||||||
|
</$list>
|
||||||
|
</$set>
|
||||||
|
\end
|
||||||
|
|
||||||
\define selectionField() selection-$(payloadTiddler)$
|
\define selectionField() selection-$(payloadTiddler)$
|
||||||
|
|
||||||
\define renameField() rename-$(payloadTiddler)$
|
\define renameField() rename-$(payloadTiddler)$
|
||||||
@ -69,7 +87,8 @@ title: $:/core/ui/ImportListing
|
|||||||
</$reveal>
|
</$reveal>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<$view field=<<messageField>>/>
|
<<selectionInfo>>
|
||||||
|
<<libraryInfo>>
|
||||||
<<overWriteWarning>>
|
<<overWriteWarning>>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -5,6 +5,7 @@ description: {{$:/language/Buttons/AdvancedSearch/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define advanced-search-button(class)
|
\define advanced-search-button(class)
|
||||||
|
\whitespace trim
|
||||||
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/advanced-search-button}}
|
{{$:/core/images/advanced-search-button}}
|
||||||
|
@ -3,11 +3,14 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}
|
caption: {{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}
|
||||||
description: {{$:/language/Buttons/CloseAll/Hint}}
|
description: {{$:/language/Buttons/CloseAll/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button message="tm-close-all-tiddlers" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button message="tm-close-all-tiddlers" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/close-all-button}}
|
{{$:/core/images/close-all-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/CloseAll/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -5,6 +5,7 @@ description: {{$:/language/Buttons/ControlPanel/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define control-panel-button(class)
|
\define control-panel-button(class)
|
||||||
|
\whitespace trim
|
||||||
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/options-button}}
|
{{$:/core/images/options-button}}
|
||||||
|
@ -10,7 +10,9 @@ description: {{$:/language/Buttons/Encryption/Hint}}
|
|||||||
{{$:/core/images/locked-padlock}}
|
{{$:/core/images/locked-padlock}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
@ -20,7 +22,9 @@ description: {{$:/language/Buttons/Encryption/Hint}}
|
|||||||
{{$:/core/images/unlocked-padlock}}
|
{{$:/core/images/unlocked-padlock}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
|
@ -3,12 +3,15 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}
|
caption: {{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}
|
||||||
description: {{$:/language/Buttons/FoldAll/Hint}}
|
description: {{$:/language/Buttons/FoldAll/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$action-sendmessage $message="tm-fold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
<$action-sendmessage $message="tm-fold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||||
{{$:/core/images/fold-all-button}}
|
{{$:/core/images/fold-all-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/FoldAll/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -3,11 +3,14 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}
|
caption: {{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}
|
||||||
description: {{$:/language/Buttons/FullScreen/Hint}}
|
description: {{$:/language/Buttons/FullScreen/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button message="tm-full-screen" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button message="tm-full-screen" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/full-screen-button}}
|
{{$:/core/images/full-screen-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/FullScreen/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -3,11 +3,14 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}
|
caption: {{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}
|
||||||
description: {{$:/language/Buttons/Home/Hint}}
|
description: {{$:/language/Buttons/Home/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button message="tm-home" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button message="tm-home" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/home-button}}
|
{{$:/core/images/home-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Home/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Home/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -3,13 +3,16 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}
|
caption: {{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}
|
||||||
description: {{$:/language/Buttons/Import/Hint}}
|
description: {{$:/language/Buttons/Import/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<div class="tc-file-input-wrapper">
|
<div class="tc-file-input-wrapper">
|
||||||
<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/import-button}}
|
{{$:/core/images/import-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Import/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Import/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>
|
<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>
|
||||||
|
@ -16,7 +16,6 @@ $(languagePluginTitle)$/icon
|
|||||||
</$set>
|
</$set>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
<$text text=" "/>
|
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>
|
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -5,12 +5,15 @@ description: {{$:/language/Buttons/Manager/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define manager-button(class)
|
\define manager-button(class)
|
||||||
|
\whitespace trim
|
||||||
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/list}}
|
{{$:/core/images/list}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Manager/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
\end
|
\end
|
||||||
|
@ -3,6 +3,7 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}
|
caption: {{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}
|
||||||
description: {{$:/language/Buttons/More/Hint}}
|
description: {{$:/language/Buttons/More/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
\define config-title()
|
\define config-title()
|
||||||
$:/config/PageControlButtons/Visibility/$(listItem)$
|
$:/config/PageControlButtons/Visibility/$(listItem)$
|
||||||
\end
|
\end
|
||||||
@ -11,7 +12,9 @@ $:/config/PageControlButtons/Visibility/$(listItem)$
|
|||||||
{{$:/core/images/down-arrow}}
|
{{$:/core/images/down-arrow}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/More/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/More/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button><$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="below" animate="yes">
|
</$button><$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="below" animate="yes">
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@ description: {{$:/language/Buttons/NewImage/Hint}}
|
|||||||
{{$:/core/images/new-image-button}}
|
{{$:/core/images/new-image-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/NewImage/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
|
@ -5,12 +5,15 @@ description: {{$:/language/Buttons/NewJournal/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define journalButton()
|
\define journalButton()
|
||||||
|
\whitespace trim
|
||||||
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>
|
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/new-journal-button}}
|
{{$:/core/images/new-journal-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/NewJournal/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
\end
|
\end
|
||||||
|
@ -9,6 +9,8 @@ description: {{$:/language/Buttons/NewTiddler/Hint}}
|
|||||||
{{$:/core/images/new-button}}
|
{{$:/core/images/new-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/NewTiddler/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
|
@ -9,7 +9,6 @@ description: {{$:/language/Buttons/Palette/Hint}}
|
|||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/palette}}
|
{{$:/core/images/palette}}
|
||||||
</$list>
|
</$list>
|
||||||
<$text text=" "/>
|
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>
|
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -3,11 +3,14 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}
|
caption: {{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}
|
||||||
description: {{$:/language/Buttons/Print/Hint}}
|
description: {{$:/language/Buttons/Print/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button message="tm-print" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button message="tm-print" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/print-button}}
|
{{$:/core/images/print-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Print/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Print/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -3,11 +3,14 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}
|
caption: {{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}
|
||||||
description: {{$:/language/Buttons/Refresh/Hint}}
|
description: {{$:/language/Buttons/Refresh/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button message="tm-browser-refresh" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button message="tm-browser-refresh" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/refresh-button}}
|
{{$:/core/images/refresh-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Refresh/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -3,6 +3,7 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}
|
caption: {{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}
|
||||||
description: {{$:/language/Buttons/SaveWiki/Hint}}
|
description: {{$:/language/Buttons/SaveWiki/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}>
|
<$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}>
|
||||||
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
|
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
|
||||||
@ -12,7 +13,9 @@ description: {{$:/language/Buttons/SaveWiki/Hint}}
|
|||||||
{{$:/core/images/save-button}}
|
{{$:/core/images/save-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/SaveWiki/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</span>
|
</span>
|
||||||
</$button>
|
</$button>
|
@ -14,7 +14,6 @@ $:/core/images/storyview-$(storyview)$
|
|||||||
<$transclude tiddler=<<icon>>/>
|
<$transclude tiddler=<<icon>>/>
|
||||||
</$set>
|
</$set>
|
||||||
</$list>
|
</$list>
|
||||||
<$text text=" "/>
|
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>
|
<span class="tc-btn-text"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -5,12 +5,15 @@ description: {{$:/language/Buttons/TagManager/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define control-panel-button(class)
|
\define control-panel-button(class)
|
||||||
|
\whitespace trim
|
||||||
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/tag-button}}
|
{{$:/core/images/tag-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/TagManager/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
\end
|
\end
|
||||||
|
@ -9,7 +9,6 @@ description: {{$:/language/Buttons/Theme/Hint}}
|
|||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/theme-button}}
|
{{$:/core/images/theme-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$text text=" "/>
|
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>
|
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -11,7 +11,9 @@ description: {{$:/language/Buttons/Timestamp/Hint}}
|
|||||||
{{$:/core/images/timestamp-on}}
|
{{$:/core/images/timestamp-on}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Timestamp/On/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
@ -22,7 +24,9 @@ description: {{$:/language/Buttons/Timestamp/Hint}}
|
|||||||
{{$:/core/images/timestamp-off}}
|
{{$:/core/images/timestamp-off}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
|
@ -3,12 +3,15 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}
|
caption: {{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}
|
||||||
description: {{$:/language/Buttons/UnfoldAll/Hint}}
|
description: {{$:/language/Buttons/UnfoldAll/Hint}}
|
||||||
|
|
||||||
|
\whitespace trim
|
||||||
<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$action-sendmessage $message="tm-unfold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
<$action-sendmessage $message="tm-unfold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||||
{{$:/core/images/unfold-all-button}}
|
{{$:/core/images/unfold-all-button}}
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>
|
<span class="tc-btn-text">
|
||||||
|
<$text text={{$:/language/Buttons/UnfoldAll/Caption}}/>
|
||||||
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
</$button>
|
</$button>
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Clone/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Clone/Caption}}/>
|
<$text text={{$:/language/Buttons/Clone/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/CloseOthers/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>
|
<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Edit/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Edit/Caption}}/>
|
<$text text={{$:/language/Buttons/Edit/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -11,7 +11,6 @@ description: {{$:/language/Buttons/FoldOthers/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>
|
<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -12,7 +12,6 @@ description: {{$:/language/Buttons/Fold/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Fold/Caption}}/>
|
<$text text={{$:/language/Buttons/Fold/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
@ -26,7 +25,6 @@ description: {{$:/language/Buttons/Fold/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Unfold/Caption}}/>
|
<$text text={{$:/language/Buttons/Unfold/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -5,6 +5,7 @@ description: {{$:/language/Buttons/Info/Hint}}
|
|||||||
|
|
||||||
\whitespace trim
|
\whitespace trim
|
||||||
\define button-content()
|
\define button-content()
|
||||||
|
\whitespace trim
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/info-button}}
|
{{$:/core/images/info-button}}
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -13,7 +13,6 @@ $:/config/ViewToolbarButtons/Visibility/$(listItem)$
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/More/Caption}}/>
|
<$text text={{$:/language/Buttons/More/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -10,6 +10,7 @@ description: {{$:/language/Buttons/NewHere/Hint}}
|
|||||||
</$set>
|
</$set>
|
||||||
\end
|
\end
|
||||||
\define newHereButton()
|
\define newHereButton()
|
||||||
|
\whitespace trim
|
||||||
<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
{{$:/core/images/new-here-button}}
|
{{$:/core/images/new-here-button}}
|
||||||
|
@ -8,6 +8,7 @@ description: {{$:/language/Buttons/NewJournalHere/Hint}}
|
|||||||
[[$(currentTiddlerTag)$]] $(journalTags)$
|
[[$(currentTiddlerTag)$]] $(journalTags)$
|
||||||
\end
|
\end
|
||||||
\define journalButton()
|
\define journalButton()
|
||||||
|
\whitespace trim
|
||||||
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>
|
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>
|
||||||
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
|
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
|
||||||
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalButtonTags>>/>
|
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalButtonTags>>/>
|
||||||
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/OpenWindow/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>
|
<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Permalink/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Permalink/Caption}}/>
|
<$text text={{$:/language/Buttons/Permalink/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Permaview/Hint}}
|
|||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||||
<span class="tc-btn-text">
|
<span class="tc-btn-text">
|
||||||
<$text text=" "/>
|
|
||||||
<$text text={{$:/language/Buttons/Permaview/Caption}}/>
|
<$text text={{$:/language/Buttons/Permaview/Caption}}/>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
|
@ -6,6 +6,7 @@ $baseFilename$$(extension)$
|
|||||||
\end
|
\end
|
||||||
|
|
||||||
\define exportButton(exportFilter:"[!is[system]sort[title]]",lingoBase,baseFilename:"tiddlers")
|
\define exportButton(exportFilter:"[!is[system]sort[title]]",lingoBase,baseFilename:"tiddlers")
|
||||||
|
\whitespace trim
|
||||||
<$vars hint={{{ [<__lingoBase__>addsuffix[Hint]get[text]] }}} caption={{{ [<__lingoBase__>addsuffix[Caption]get[text]] }}}>
|
<$vars hint={{{ [<__lingoBase__>addsuffix[Hint]get[text]] }}} caption={{{ [<__lingoBase__>addsuffix[Caption]get[text]] }}}>
|
||||||
<span class="tc-popup-keep"><$button popup=<<qualify "$:/state/popup/export">> tooltip=<<hint>> aria-label=<<caption>> class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
<span class="tc-popup-keep"><$button popup=<<qualify "$:/state/popup/export">> tooltip=<<hint>> aria-label=<<caption>> class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||||
|
@ -69,7 +69,7 @@ Returns a revision ID.
|
|||||||
Retrieves status information from the server. This method is optional.
|
Retrieves status information from the server. This method is optional.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|callback |Callback function invoked with parameters `err,isLoggedIn,username,isReadOnly` |
|
|callback |Callback function invoked with parameters `err,isLoggedIn,username,isReadOnly,isAnonymous,isPollingDisabled` |
|
||||||
|
|
||||||
!! `login(username,password,callback)`
|
!! `login(username,password,callback)`
|
||||||
|
|
||||||
@ -128,33 +128,40 @@ The syncer will use the `getUpdatedTiddlers()` method in preference to the `getS
|
|||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|callback |Callback function invoked with parameter `err,tiddlers`, where `tiddlers` is an array of tiddler field objects |
|
|callback |Callback function invoked with parameter `err,tiddlers`, where `tiddlers` is an array of tiddler field objects |
|
||||||
|
|
||||||
!! `saveTiddler(tiddler,callback)`
|
!! `saveTiddler(tiddler,options,callback)`
|
||||||
|
|
||||||
Saves a tiddler to the server.
|
Saves a tiddler to the server.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|tiddler |Tiddler to be saved |
|
|tiddler |Tiddler to be saved |
|
||||||
|
|options |See below |
|
||||||
|callback |Callback function invoked with parameter `err,adaptorInfo,revision` |
|
|callback |Callback function invoked with parameter `err,adaptorInfo,revision` |
|
||||||
|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler |
|
|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler |
|
||||||
|
|
||||||
!! `loadTiddler(title,callback)`
|
!! `loadTiddler(title,options,callback)`
|
||||||
|
|
||||||
Loads a tiddler from the server.
|
Loads a tiddler from the server.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|title |Title of tiddler to be retrieved |
|
|title |Title of tiddler to be retrieved |
|
||||||
|
|options |See below |
|
||||||
|callback |Callback function invoked with parameter `err,tiddlerFields` |
|
|callback |Callback function invoked with parameter `err,tiddlerFields` |
|
||||||
|
|
||||||
!! `deleteTiddler(title,callback,options)`
|
!! `deleteTiddler(title,options,callback)`
|
||||||
|
|
||||||
Delete a tiddler from the server.
|
Delete a tiddler from the server.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|title |Title of tiddler to be deleted |
|
|title |Title of tiddler to be deleted |
|
||||||
|callback |Callback function invoked with parameter `err` |
|
|
||||||
|options |See below |
|
|options |See below |
|
||||||
|
|callback |Callback function invoked with parameter `err` |
|
||||||
|
|
||||||
The options parameter contains the following properties:
|
!!! Options
|
||||||
|
|
||||||
|
<<.from-version "5.2.0">> The signature of syncadaptor functions that accept callbacks has been changed so that the callback is always the last argument. A check for the old order of arguments means that this change is backwards compatible. The new order should be prefered when updating or writing new plugins.
|
||||||
|
|
||||||
|
The options parameter may contain the following properties, depending on the method called.
|
||||||
|
|
||||||
|!Property |!Description |
|
|!Property |!Description |
|
||||||
|
|changeCount |The //new// changeCount value for this tiddler |
|
||||||
|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler |
|
|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler |
|
||||||
|
68
editions/dev/tiddlers/new/Hook_ th-before-importing.tid
Normal file
68
editions/dev/tiddlers/new/Hook_ th-before-importing.tid
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
created: 20210203184649726
|
||||||
|
modified: 20210208152038746
|
||||||
|
tags: HookMechanism
|
||||||
|
title: Hook: th-before-importing
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
This hook allows plugins to inspect or modify the `importTiddler` object ''before'' any tiddlers are imported. It is invoked after the final "Import" button is clicked, but ''before'' the selected tiddlers are being imported into the store.
|
||||||
|
|
||||||
|
''Intended Usecases'':
|
||||||
|
|
||||||
|
* Manipulate the import "selection state"
|
||||||
|
* Eg: create a customized "log-tiddler" that contains a heading, that should only be written once
|
||||||
|
|
||||||
|
''Important'':
|
||||||
|
|
||||||
|
* This hook ''should not'' be used to manpulate the `importTiddler.fields.text` element!
|
||||||
|
* If you want to give the users a possibility to verify the imported data, use ùpgraders like: `$:/core/modules/upgraders/` instead
|
||||||
|
* If you need to manipulate the imported tiddler content, without default user interaction, consider: [[Hook: th-importing-tiddler]] instead
|
||||||
|
|
||||||
|
The hook is part of the `NavigatorWidget.prototype.handlePerformImportEvent` function.
|
||||||
|
|
||||||
|
Hook function parameters:
|
||||||
|
|
||||||
|
* ''importTiddler'': an object, that contains information about "selected / unselected" tiddlers and more
|
||||||
|
|
||||||
|
Return value:
|
||||||
|
|
||||||
|
* ''importTiddler'': object
|
||||||
|
|
||||||
|
The hook must return the `importTiddler` object. For many usecases the object will be returned unmodified.
|
||||||
|
|
||||||
|
''Example code how to implement a hook in your project''
|
||||||
|
|
||||||
|
```
|
||||||
|
/*\
|
||||||
|
title: $:/plugins/<author>/<plugin>/th-before-importing.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: startup
|
||||||
|
|
||||||
|
YOUR DISCRCRIPTION COMES HERE!
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false, exports: true */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Export name and synchronous status
|
||||||
|
exports.name = "<yournamecomesherewithoutspaces>";
|
||||||
|
exports.platforms = ["browser"];
|
||||||
|
exports.after = ["startup"];
|
||||||
|
exports.synchronous = true;
|
||||||
|
|
||||||
|
// Define your variables here!
|
||||||
|
|
||||||
|
exports.startup = function() {
|
||||||
|
$tw.hooks.addHook("th-before-importing",function(importTiddler) {
|
||||||
|
|
||||||
|
// YOUR CODE !
|
||||||
|
|
||||||
|
return importTiddler;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
```
|
@ -1,11 +1,13 @@
|
|||||||
created: 20170209130829546
|
created: 20170209130829546
|
||||||
modified: 20171010115148355
|
modified: 20210203190724491
|
||||||
tags: HookMechanism
|
tags: HookMechanism
|
||||||
title: Hook: th-importing-tiddler
|
title: Hook: th-importing-tiddler
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
This hook allows plugins to inspect or modify tiddlers as they are imported via the import mechanism. It is invoked when the final "Import" button is clicked, and the selected tiddlers are being imported into the store.
|
This hook allows plugins to inspect or modify tiddlers as they are imported via the import mechanism. It is invoked when the final "Import" button is clicked, and the selected tiddlers are being imported into the store.
|
||||||
|
|
||||||
|
The hook is part of the `NavigatorWidget.prototype.handlePerformImportEvent` function.
|
||||||
|
|
||||||
Use this hook if you want to process each imported tiddler after they have been extracted from the files. See [[Hook: th-importing-file]] if you want to control how tiddlers are extracted from files during an import.
|
Use this hook if you want to process each imported tiddler after they have been extracted from the files. See [[Hook: th-importing-file]] if you want to control how tiddlers are extracted from files during an import.
|
||||||
|
|
||||||
Hook function parameters:
|
Hook function parameters:
|
||||||
|
@ -144,7 +144,7 @@ type: text/vnd.tiddlywiki
|
|||||||
* <<contributor NicolasPetton>>
|
* <<contributor NicolasPetton>>
|
||||||
* <<contributor OdinJorna>>
|
* <<contributor OdinJorna>>
|
||||||
* <<contributor pmario>>
|
* <<contributor pmario>>
|
||||||
* <<contributor saqimtias>>
|
* <<contributor saqimtiaz>>
|
||||||
* <<contributor simonbaird>>
|
* <<contributor simonbaird>>
|
||||||
* <<contributor slaymaker1907>>
|
* <<contributor slaymaker1907>>
|
||||||
* <<contributor twMat>>
|
* <<contributor twMat>>
|
||||||
|
@ -809,6 +809,16 @@ function runTests(wiki) {
|
|||||||
expect(wiki.filterTiddlers("'-' +[escapecss[]]").join(",")).toBe("\\-");
|
expect(wiki.filterTiddlers("'-' +[escapecss[]]").join(",")).toBe("\\-");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should handle the format operator", function() {
|
||||||
|
expect(wiki.filterTiddlers("[[Hello There]] [[GettingStarted]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]] GettingStarted");
|
||||||
|
expect(wiki.filterTiddlers("[title[Hello There]] +[format:titlelist[]]").join(" ")).toBe("[[Hello There]]");
|
||||||
|
expect(wiki.filterTiddlers("[title[HelloThere]] +[format:titlelist[]]").join(" ")).toBe("HelloThere");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should handle the deserializers operator", function() {
|
||||||
|
expect(wiki.filterTiddlers("[deserializers[]]").join(",")).toBe("application/javascript,application/json,application/x-tiddler,application/x-tiddler-html-div,application/x-tiddlers,text/css,text/html,text/plain");
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -702,6 +702,19 @@ describe("Widget module", function() {
|
|||||||
expect(wrapper.innerHTML).toBe("<p>Don't forget me.</p>");
|
expect(wrapper.innerHTML).toBe("<p>Don't forget me.</p>");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/** Special case. \import should parse correctly, even if it's
|
||||||
|
* the only line in the tiddler. Technically doesn't cause a
|
||||||
|
* visual difference, but may affect plugins if it doesn't.
|
||||||
|
*/
|
||||||
|
it("should work when import pragma is standalone", function() {
|
||||||
|
var wiki = new $tw.Wiki();
|
||||||
|
var text = "\\import [prefix[XXX]]";
|
||||||
|
var parseTreeNode = parseText(text,wiki);
|
||||||
|
// Test the resulting parse tree node, since there is no
|
||||||
|
// rendering which may expose a problem.
|
||||||
|
expect(parseTreeNode.children[0].attributes.filter.value).toBe('[prefix[XXX]]');
|
||||||
|
});
|
||||||
|
|
||||||
/** This test reproduces issue #4504.
|
/** This test reproduces issue #4504.
|
||||||
*
|
*
|
||||||
* The importvariable widget was creating redundant copies into
|
* The importvariable widget was creating redundant copies into
|
||||||
|
4
editions/tw5.com/tiddlers/$__key-test.tid
Normal file
4
editions/tw5.com/tiddlers/$__key-test.tid
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
created: 20210525102327864
|
||||||
|
modified: 20210525102327884
|
||||||
|
title: $:/key-test
|
||||||
|
type: text/vnd.tiddlywiki
|
11
editions/tw5.com/tiddlers/$__key-test_action.tid
Normal file
11
editions/tw5.com/tiddlers/$__key-test_action.tid
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
created: 20210525102659716
|
||||||
|
modified: 20210525102701077
|
||||||
|
title: $:/key-test/action
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
<$vars tv-wikilinks="no">
|
||||||
|
|
||||||
|
* event-key:
|
||||||
|
* event-code:
|
||||||
|
* modifier:
|
||||||
|
</$vars>
|
66
editions/tw5.com/tiddlers/Key Codes (Example 1).tid
Normal file
66
editions/tw5.com/tiddlers/Key Codes (Example 1).tid
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
created: 20210427092418146
|
||||||
|
modified: 20210525130708186
|
||||||
|
tags: KeyboardWidget
|
||||||
|
title: Key Codes (Example 1)
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
\define key-test() $:/key-test
|
||||||
|
|
||||||
|
\import [[Keyboard Codes (Macros)]]
|
||||||
|
|
||||||
|
\define keys()
|
||||||
|
backspace tab clear return enter pause escape space
|
||||||
|
page_up page_down end home printscreen insert delete
|
||||||
|
|
||||||
|
left up right down results in: ArrowLeft ArrowUp ArrowRight ArrowDown
|
||||||
|
|
||||||
|
0 1 2 3
|
||||||
|
shift+0 shift+1 shift+2 shift+3 results in: = ! " with modifierKey: shift
|
||||||
|
ctrl+0 ctrl+1 ctrl+2 ctrl+3
|
||||||
|
alt+0 alt+1 alt+2 alt+3
|
||||||
|
|
||||||
|
ctrl+alt+0 ctrl+alt+1 ctrl+alt+2 ctrl+alt+3
|
||||||
|
alt+shift+0 alt+shift+1 alt+shift+2 alt+shift+3
|
||||||
|
ctrl+shift+0 ctrl+shift+1 ctrl+shift+2 ctrl+shift+3 INFO: ctrl-shift-0 is eaten by windows!!
|
||||||
|
ctrl+alt+shift+0 ctrl+alt+shift+1 ctrl+alt+shift+2 ctrl+alt+shift+3
|
||||||
|
|
||||||
|
a s d
|
||||||
|
shift+a shift+s shift+d
|
||||||
|
ctrl+a ctrl+s ctrl+d
|
||||||
|
alt+a alt+s alt+d
|
||||||
|
|
||||||
|
ctrl+shift+a ctrl+shift+s ctrl+shift+d
|
||||||
|
alt+shift+a alt+shift+s alt+shift+d
|
||||||
|
ctrl+alt+a ctrl+alt+s ctrl+alt+d
|
||||||
|
ctrl+alt+shift+a ctrl+alt+shift+s ctrl+alt+shift+d
|
||||||
|
|
||||||
|
numpad0 numpad1 numpad2 numpad3
|
||||||
|
|
||||||
|
multiply add separator subtract decimal divide
|
||||||
|
|
||||||
|
f1 f2 f3
|
||||||
|
|
||||||
|
semicolon equals comma dash period slash backquote openbracket backslash closebracket quote
|
||||||
|
\end
|
||||||
|
|
||||||
|
! Key Codes
|
||||||
|
|
||||||
|
{{$:/key-test/action}}
|
||||||
|
|
||||||
|
! Input Area
|
||||||
|
|
||||||
|
Depending on your OS and browser keyboard settings, some combinations may be "eaten" by the OS, or the browser!
|
||||||
|
|
||||||
|
--> <$keyboard key={{{ [enlist<keys>join[ ]] }}} actions=<<actionKey>> >
|
||||||
|
<$edit-text tiddler=<<key-test>> placeholder="- Click here. Try keys from list below -" tag=input focus />
|
||||||
|
</$keyboard> <--
|
||||||
|
|
||||||
|
!! Keys to be used
|
||||||
|
|
||||||
|
<pre><code><$vars tv-wikilinks="no"><<keys>></$vars></code></pre>
|
||||||
|
|
||||||
|
All possible keys can be found at: [[Keyboard Codes]]
|
||||||
|
|
||||||
|
! Example Code
|
||||||
|
|
||||||
|
<<showCode>>
|
43
editions/tw5.com/tiddlers/Key Codes (Example).tid
Normal file
43
editions/tw5.com/tiddlers/Key Codes (Example).tid
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
created: 20210427130002905
|
||||||
|
modified: 20210525130748774
|
||||||
|
tags: KeyboardWidget
|
||||||
|
title: Key Codes (Example)
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
\define key-test() $:/key-test
|
||||||
|
|
||||||
|
\import [[Keyboard Codes (Macros)]]
|
||||||
|
|
||||||
|
\define keys()
|
||||||
|
1 2 3
|
||||||
|
shift+1 shift+2 shift+3
|
||||||
|
a s d
|
||||||
|
f1 f2 f3
|
||||||
|
\end
|
||||||
|
|
||||||
|
! Key Codes
|
||||||
|
|
||||||
|
{{$:/key-test/action}}
|
||||||
|
|
||||||
|
! Input Area
|
||||||
|
|
||||||
|
Depending on your OS and browser keyboard settings, some combinations may be "eaten" by the OS, or the browser
|
||||||
|
|
||||||
|
--> <$keyboard key={{{ [enlist<keys>join[ ]] }}} actions=<<actionKey>> >
|
||||||
|
<$edit-text tiddler=<<key-test>> placeholder="- Click here to try keys -" tag=input />
|
||||||
|
</$keyboard> <--
|
||||||
|
|
||||||
|
|
||||||
|
!! Keys to be tested
|
||||||
|
|
||||||
|
<$list filter="[enlist<keys>]"><kbd><<currentTiddler>></kbd>, </$list>
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
All usable keys can be found at: [[Keyboard Codes]]
|
||||||
|
|
||||||
|
A more advanced example can be found at: [[Key Codes (Example 1)]]
|
||||||
|
|
||||||
|
! Code
|
||||||
|
|
||||||
|
<<showCode>>
|
50
editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid
Normal file
50
editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
created: 20210429084127864
|
||||||
|
modified: 20210525130830934
|
||||||
|
tags:
|
||||||
|
title: Keyboard Codes (Macros)
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
\define key-test-prefix() $:/key-test
|
||||||
|
|
||||||
|
\define codeState() $:/state/code/$(currentTiddler)$
|
||||||
|
|
||||||
|
\define getText()
|
||||||
|
<$vars tv-wikilinks="no">
|
||||||
|
|
||||||
|
* event-key: ''$(event-key)$''
|
||||||
|
* event-code: ''$(event-code)$''
|
||||||
|
* modifier: ''$(modifier)$''
|
||||||
|
</$vars>
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define pinDetails()
|
||||||
|
<$action-setfield $tiddler=<<codeState>> text="open"/>
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define unpinDetails()
|
||||||
|
<$action-deletetiddler $tiddler=<<codeState>> />
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define toggleDetails(text)
|
||||||
|
<$list filter="[<codeState>!has[title]]" variable="ignore">
|
||||||
|
<$button class="tc-btn-invisible" actions=<<pinDetails>> >$text$ {{$:/core/images/unfold-button}}</$button>
|
||||||
|
</$list>
|
||||||
|
<$list filter="[<codeState>has[title]]" variable="ignore">
|
||||||
|
<$button class="tc-btn-invisible" actions=<<unpinDetails>> >$text$ {{$:/core/images/fold-button}}</$button>
|
||||||
|
</$list>
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define actionKey()
|
||||||
|
<$action-setfield $tiddler="$:/key-test/action" text=<<getText>> />
|
||||||
|
\end
|
||||||
|
|
||||||
|
\define showCode()
|
||||||
|
|
||||||
|
''<<toggleDetails """Toggle this tiddler code""">>''
|
||||||
|
|
||||||
|
<$list filter="[<codeState>has[title]]" variable=ignore>
|
||||||
|
<pre><code><$view /></code></pre>
|
||||||
|
</$list>
|
||||||
|
\end
|
||||||
|
|
||||||
|
<pre><code><$view /></code></pre>
|
31
editions/tw5.com/tiddlers/Keyboard Codes.tid
Normal file
31
editions/tw5.com/tiddlers/Keyboard Codes.tid
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
created: 20210427090945829
|
||||||
|
modified: 20210525103712235
|
||||||
|
tags: KeyboardWidget
|
||||||
|
title: Keyboard Codes
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
! All Key Codes known by the KeyboardWidget
|
||||||
|
|
||||||
|
<kbd>cancel</kbd>, <kbd>help</kbd>, <kbd>backspace</kbd>, <kbd>tab</kbd>, <kbd>clear</kbd>, <kbd>return</kbd>, <kbd>enter</kbd>, <kbd>pause</kbd>, <kbd>escape</kbd>, <kbd>space</kbd>,
|
||||||
|
<kbd>page_up</kbd>, <kbd>page_down</kbd>, <kbd>end</kbd>, <kbd>home</kbd>, <kbd>left</kbd>, <kbd>up</kbd>, <kbd>right</kbd>, <kbd>down</kbd>, <kbd>printscreen</kbd>, <kbd>insert</kbd>, <kbd>delete</kbd>
|
||||||
|
|
||||||
|
<kbd>0</kbd>, <kbd>1</kbd>, <kbd>2</kbd>, <kbd>3</kbd>, <kbd>4</kbd>, <kbd>5</kbd>, <kbd>6</kbd>, <kbd>7</kbd>, <kbd>8</kbd>, <kbd>9</kbd>
|
||||||
|
|
||||||
|
<kbd>a</kbd>, <kbd>b</kbd>, <kbd>c</kbd>, <kbd>d</kbd>, <kbd>e</kbd>, <kbd>f</kbd>, <kbd>g</kbd>, <kbd>h</kbd>, <kbd>i</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd>, <kbd>m</kbd>, <kbd>n</kbd>, <kbd>o</kbd>, <kbd>p</kbd>, <kbd>q</kbd>, <kbd>r</kbd>, <kbd>s</kbd>, <kbd>t</kbd>, <kbd>u</kbd>, <kbd>v</kbd>, <kbd>w</kbd>, <kbd>x</kbd>, <kbd>y</kbd>, <kbd>z</kbd>
|
||||||
|
|
||||||
|
<kbd>numpad0</kbd>, <kbd>numpad1</kbd>, <kbd>numpad2</kbd>, <kbd>numpad3</kbd>, <kbd>numpad4</kbd>, <kbd>numpad5</kbd>, <kbd>numpad6</kbd>, <kbd>numpad7</kbd>, <kbd>numpad8</kbd>, <kbd>numpad9</kbd>
|
||||||
|
|
||||||
|
<kbd>multiply</kbd>, <kbd>add</kbd>, <kbd>separator</kbd>, <kbd>subtract</kbd>, <kbd>decimal</kbd>, <kbd>divide</kbd>
|
||||||
|
|
||||||
|
<kbd>f1</kbd>, <kbd>f2</kbd>, <kbd>f3</kbd>, <kbd>f4</kbd>, <kbd>f5</kbd>, <kbd>f6</kbd>, <kbd>f7</kbd>, <kbd>f8</kbd>, <kbd>f9</kbd>, <kbd>f10</kbd>, <kbd>f11</kbd>, <kbd>f12</kbd><br/>
|
||||||
|
<kbd>f13</kbd>, <kbd>f14</kbd>, <kbd>f15</kbd>, <kbd>f16</kbd>, <kbd>f17</kbd>, <kbd>f18</kbd>, <kbd>f19</kbd>, <kbd>f20</kbd>, <kbd>f21</kbd>, <kbd>f22</kbd>, <kbd>f23</kbd>, <kbd>f24</kbd>
|
||||||
|
|
||||||
|
<kbd>firefoxsemicolon</kbd>, <kbd>firefoxequals</kbd>, <kbd>firefoxminus</kbd>
|
||||||
|
|
||||||
|
<kbd>semicolon</kbd>, <kbd>equals</kbd>, <kbd>comma</kbd>, <kbd>dash</kbd>, <kbd>period</kbd>, <kbd>slash</kbd>, <kbd>backquote</kbd>, <kbd>openbracket</kbd>, <kbd>backslash</kbd>, <kbd>closebracket</kbd>, <kbd>quote</kbd>
|
||||||
|
|
||||||
|
<kbd>shift</kbd>, <kbd>ctrl</kbd>, <kbd>alt</kbd>, <kbd>meta</kbd>
|
||||||
|
|
||||||
|
! Examples
|
||||||
|
|
||||||
|
<<list-links "[tag[KeyboardWidget]prefix[Key Codes (Example]]">>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user