From 1ddc3ab037bab8cefa0b0173367335ea31d665a5 Mon Sep 17 00:00:00 2001 From: Nicolas Petton Date: Fri, 21 May 2021 09:51:15 +0200 Subject: [PATCH 01/32] Add throttling for changed tiddlers prefixed with $:/temp/volatile/ (#5458) --- core/modules/startup/render.js | 2 +- core/modules/wiki.js | 5 ++++- editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/modules/startup/render.js b/core/modules/startup/render.js index fa4d21003..682291365 100644 --- a/core/modules/startup/render.js +++ b/core/modules/startup/render.js @@ -82,7 +82,7 @@ exports.startup = function() { var onlyThrottledTiddlersHaveChanged = true; for(var title in changes) { 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; } } diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 81459dbc1..6aa6c7ced 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -221,6 +221,10 @@ exports.isTemporaryTiddler = function(title) { return title && title.indexOf("$:/temp/") === 0; }; +exports.isVolatileTiddler = function(title) { + return title && title.indexOf("$:/temp/volatile/") === 0; +}; + exports.isImageTiddler = function(title) { var tiddler = this.getTiddler(title); if(tiddler) { @@ -1549,4 +1553,3 @@ exports.slugify = function(title,options) { }; })(); - diff --git a/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid b/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid index 3453bf2b4..e7fb28939 100644 --- a/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid +++ b/editions/tw5.com/tiddlers/mechanisms/RefreshThrottling.tid @@ -1,5 +1,5 @@ created: 20191013095916159 -modified: 20191014093837558 +modified: 20210203231820284 tags: RefreshMechanism title: RefreshThrottling type: text/vnd.tiddlywiki @@ -11,6 +11,7 @@ The rules governing refresh throttling are: * When a change notification occurs, throttling will only take place if all of the modified tiddlers meet at least one of these criteria: ** Has the field `draft.of` ** Has the field `throttle.refresh` +** Has a title prefixed with `$:/temp/volatile/` * If the refresh cycle is to be throttled, a timer is set for the internal specified in [[$:/config/Drafts/TypingTimeout|Hidden Setting: Typing Refresh Delay]] (cancelling any preciously set timer) ** When the timer fires, the refresh cycle is triggered, passing the aggregated titles of all the deferred refresh cycles From 270ead47012525d757947b9ee171184af28d2567 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Fri, 21 May 2021 10:43:20 +0200 Subject: [PATCH 02/32] Eventcatcher: Fixed FF and IE bugs, added stopPropagation attribute (#5711) --- core/modules/utils/dom/dom.js | 4 ++ core/modules/widgets/eventcatcher.js | 52 +++++++++++-------- .../tiddlers/widgets/EventCatcherWidget.tid | 3 +- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index df4c93b73..299011136 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -22,6 +22,10 @@ exports.domContains = function(a,b) { !!(a.compareDocumentPosition(b) & 16); }; +exports.domMatchesSelector = function(node,selector) { + return node.matches ? node.matches(selector) : node.msMatchesSelector(selector); +}; + exports.removeChildren = function(node) { while(node.hasChildNodes()) { node.removeChild(node.firstChild); diff --git a/core/modules/widgets/eventcatcher.js b/core/modules/widgets/eventcatcher.js index c014f8997..0b32689a1 100644 --- a/core/modules/widgets/eventcatcher.js +++ b/core/modules/widgets/eventcatcher.js @@ -47,38 +47,46 @@ EventWidget.prototype.render = function(parent,nextSibling) { domNode.addEventListener(type,function(event) { var selector = self.getAttribute("selector"), actions = self.getAttribute("actions-"+type), + stopPropagation = self.getAttribute("stopPropagation","onaction"), selectedNode = event.target, selectedNodeRect, catcherNodeRect, variables = {}; + // Firefox can fire dragover and dragenter events on text nodes instead of their parents + if(selectedNode.nodeType === 3) { + selectedNode = selectedNode.parentNode; + } if(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; } // If we found one, copy the attributes as variables, otherwise exit - if(selectedNode.matches(selector)) { - $tw.utils.each(selectedNode.attributes,function(attribute) { - variables["dom-" + attribute.name] = attribute.value.toString(); - }); - //Add a variable with a popup coordinate string for the selected node - variables["tv-popup-coords"] = "(" + selectedNode.offsetLeft + "," + selectedNode.offsetTop +"," + selectedNode.offsetWidth + "," + selectedNode.offsetHeight + ")"; - - //Add variables for offset of selected node - variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); - variables["tv-selectednode-posy"] = selectedNode.offsetTop.toString(); - variables["tv-selectednode-width"] = selectedNode.offsetWidth.toString(); - variables["tv-selectednode-height"] = selectedNode.offsetHeight.toString(); + 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) { + variables["dom-" + attribute.name] = attribute.value.toString(); + }); + //Add a variable with a popup coordinate string for the selected node + variables["tv-popup-coords"] = "(" + selectedNode.offsetLeft + "," + selectedNode.offsetTop +"," + selectedNode.offsetWidth + "," + selectedNode.offsetHeight + ")"; - //Add variables for event X and Y position relative to selected node - selectedNodeRect = selectedNode.getBoundingClientRect(); - variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); - variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); + //Add variables for offset of selected node + variables["tv-selectednode-posx"] = selectedNode.offsetLeft.toString(); + variables["tv-selectednode-posy"] = selectedNode.offsetTop.toString(); + variables["tv-selectednode-width"] = selectedNode.offsetWidth.toString(); + variables["tv-selectednode-height"] = selectedNode.offsetHeight.toString(); - //Add variables for event X and Y position relative to event catcher node - catcherNodeRect = self.domNode.getBoundingClientRect(); - variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); - variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); + //Add variables for event X and Y position relative to selected node + selectedNodeRect = selectedNode.getBoundingClientRect(); + variables["event-fromselected-posx"] = (event.clientX - selectedNodeRect.left).toString(); + variables["event-fromselected-posy"] = (event.clientY - selectedNodeRect.top).toString(); + + //Add variables for event X and Y position relative to event catcher node + catcherNodeRect = self.domNode.getBoundingClientRect(); + variables["event-fromcatcher-posx"] = (event.clientX - catcherNodeRect.left).toString(); + variables["event-fromcatcher-posy"] = (event.clientY - catcherNodeRect.top).toString(); + } } else { return false; } @@ -106,6 +114,8 @@ EventWidget.prototype.render = function(parent,nextSibling) { variables["event-detail"] = event.detail.toString(); } self.invokeActionString(actions,self,event,variables); + } + if((actions && stopPropagation === "onaction") || stopPropagation === "always") { event.preventDefault(); event.stopPropagation(); return true; diff --git a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid index 33aa06db8..aeda1450f 100644 --- a/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/EventCatcherWidget.tid @@ -1,5 +1,5 @@ created: 20201123113532200 -modified: 20201202200719126 +modified: 20210520162813234 tags: Widgets title: EventCatcherWidget type: text/vnd.tiddlywiki @@ -30,6 +30,7 @@ The content of the `<$eventcatcher>` widget is displayed normally. |actions-* |Action strings to be invoked when a matching event is trapped. Each event is mapped to an action attribute name of the form actions-event where event represents the type of the event. For example: `actions-click` or `actions-dblclick` | |tag |Optional. The HTML element the widget creates to capture the events, defaults to:
» `span` when parsed in inline-mode
» `div` when parsed in block-mode | |class |Optional. A CSS class name (or names) to be assigned to the widget HTML element | +|stopPropagation |<<.from-version "5.1.24">> Optional. Set to "always" to always stop event propagation even if there are no corresponding actions to invoke, "never" to never stop event propagation, or the default value "onaction" with which event propagation is only stopped if there are corresponding actions that are invoked. | ! Variables From 81b5fe944a8ebdb27b9972d3fa7093fe5f5ce68c Mon Sep 17 00:00:00 2001 From: Joshua Fontany Date: Fri, 21 May 2021 02:11:23 -0700 Subject: [PATCH 03/32] extend lookup op flexibility with 2 parameters (#5315) --- core/modules/filters/lookup.js | 39 ++++++++++++++++--- .../examples/lookup Operator (Examples).tid | 5 ++- .../tiddlers/filters/lookup Operator.tid | 36 ++++++++++++----- 3 files changed, 63 insertions(+), 17 deletions(-) diff --git a/core/modules/filters/lookup.js b/core/modules/filters/lookup.js index 2174e8c47..4af4ac681 100644 --- a/core/modules/filters/lookup.js +++ b/core/modules/filters/lookup.js @@ -5,9 +5,11 @@ module-type: filteroperator Filter operator that looks up values via a title prefix -[lookup:[]] +[lookup::[],[]] -Prepends the prefix to the selected items and returns the specified field value +Prepends the prefix to the selected items and returns the specified +field or index value. If the 2nd suffix does not exist, it defaults to field. +If the second operand is missing it defaults to "text" for fields, and "0" for indexes \*/ (function(){ @@ -20,10 +22,35 @@ Prepends the prefix to the selected items and returns the specified field value Export our filter function */ exports.lookup = function(source,operator,options) { - var results = []; - source(function(tiddler,title) { - results.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix || ''); - }); + var results = [], + suffixes = operator.suffixes || [], + defaultSuffix = suffixes[0] ? (suffixes[0][0] || "") : "", + indexSuffix = (suffixes[1] && suffixes[1][0] === "index") ? true : false, + target; + if(operator.operands.length == 2) { + target = operator.operands[1] + } else { + target = indexSuffix ? "0": "text"; + } + if(indexSuffix) { + source(function(tiddler,title) { + var targetTitle = operator.operands[0] + title; + var data = options.wiki.extractTiddlerDataItem(targetTitle,target,defaultSuffix); + results.push(data); + }); + } else { + source(function(tiddler,title) { + var targetTitle = operator.operands[0] + title; + var targetTiddler = options.wiki.getTiddler(targetTitle); + if(targetTiddler) { + var value = targetTiddler.getFieldString(target); + if(value == "" && defaultSuffix !== "") { + value = defaultSuffix; + } + results.push(value); + } + }); + } return results; }; diff --git a/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid b/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid index 052e1d2bd..e923e8d5c 100644 --- a/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +++ b/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid @@ -1,7 +1,10 @@ created: 20170907144257037 -modified: 20170907144559822 +modified: 20201224034837935 title: lookup Operator (Examples) type: text/vnd.tiddlywiki <<.operator-example 1 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button">> <<.operator-example 2 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup:show[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button, this time with a default value">> +<<.operator-example 3 "[all[tiddlers]has[plugin-type]removeprefix[$:/plugins/tiddlywiki/]lookup:missing-description:field[$:/plugins/tiddlywiki/],[description]]" "Retrieve the description of all plugin-tiddlers that are in the `$:/plugins/tiddlywiki/` namespace.">> +<<.operator-example 4 "OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[HelloThere]]" "Lookup the original tiddler path on disk for the [[Hello There]] tiddler.">> +<<.operator-example 5 "OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[MissingTiddler]]" "Lookup the original tiddler path on disk for the [[MissingTiddler]] tiddler.">> diff --git a/editions/tw5.com/tiddlers/filters/lookup Operator.tid b/editions/tw5.com/tiddlers/filters/lookup Operator.tid index 9cbd6d5b5..4262564a4 100644 --- a/editions/tw5.com/tiddlers/filters/lookup Operator.tid +++ b/editions/tw5.com/tiddlers/filters/lookup Operator.tid @@ -1,24 +1,40 @@ caption: lookup created: 20170907103639431 -modified: 20170907144703051 +modified: 20210116081305739 op-input: a [[selection of titles|Title Selection]] -op-output: the lookup values corresponding to each input title -op-parameter: prefix applied to input titles to yield title of lookup tiddler from which value is retrieved -op-parameter-name: P -op-purpose: applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved -op-suffix: the default value to be used for missing lookups -op-suffix-name: D +op-output: the lookup values corresponding to each lookup tiddler +op-parameter: prefix applied to input titles to yield title of lookup tiddler from which value is retrieved. Now accepts 1 or 2 parameters, see below for details +op-parameter-name: P, T +op-purpose: applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index. +op-suffix: the default value to be used for missing lookups. This operator can now accept a second suffix, see below for details +op-suffix-name: D, I tags: [[Filter Operators]] title: lookup Operator type: text/vnd.tiddlywiki <<.from-version "5.1.15">> -The action of this operator is as follows: +The action of this operator is as follows with 1 parameter: * Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles -* Transclude the value of each of those tiddlers -** Substitute the default value for missing or empty tiddlers +* Transclude the value of the `text` field each of those tiddlers +** Substitute the default value for missing or empty values +* Return the list of values + +<<.from-version "5.1.24">> + +The action of this operator is as follows with 2 parameters: + +If there are two parameters provided, use the second parameter as the target field or index. + +<<.note """If there is only one parameter given, the filter checks for a second suffix equal to "index". If this suffix is found, the default target index is "0". +In all other cases, the default target field is "text".""">> + +Then: + +* Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles +* Transclude the value of the target field or index +** Substitute the default value for missing or empty values * Return the list of values <<.operator-examples "lookup">> From 0003d70132995bfd5e0005692438f2f8e04b27b3 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Fri, 21 May 2021 11:35:40 +0200 Subject: [PATCH 04/32] New text operation insert-text (#5707) --- .../editor/operations/text/insert-text.js | 23 +++++++++++++++++ core/ui/EditorToolbar/file-import.tid | 2 +- .../WidgetMessage_ tm-edit-text-operation.tid | 25 ++++++++++++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 core/modules/editor/operations/text/insert-text.js diff --git a/core/modules/editor/operations/text/insert-text.js b/core/modules/editor/operations/text/insert-text.js new file mode 100644 index 000000000..784714968 --- /dev/null +++ b/core/modules/editor/operations/text/insert-text.js @@ -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; +}; + +})(); diff --git a/core/ui/EditorToolbar/file-import.tid b/core/ui/EditorToolbar/file-import.tid index 742597102..d8024f3d8 100644 --- a/core/ui/EditorToolbar/file-import.tid +++ b/core/ui/EditorToolbar/file-import.tid @@ -16,7 +16,7 @@ condition: [!has[type]] [type[text/vnd.tiddlywiki] <$list filter="[links[]] :reduce[get[type]prefix[image]thenelsesearch-replace[$title$],addprefix]" variable="imageTitle"> <$action-sendmessage $message="tm-edit-text-operation" - $param="replace-selection" + $param="insert-text" text=<> /> diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid index a41207120..ab8d61e6d 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-text-operation.tid @@ -1,6 +1,6 @@ caption: tm-edit-text-operation created: 20160424211339792 -modified: 20180630073432471 +modified: 20210520053923011 tags: Messages title: WidgetMessage: tm-edit-text-operation type: text/vnd.tiddlywiki @@ -93,6 +93,27 @@ Saves the text of the current //selection// into the provided <<.param "tiddler" \end +\define makeLinkDescription() +
+ +Creates a wiki text link to the tiddler specified in <<.param "text">>. If there is a selection, it is used as the text of the link. + +|!Name |!Description | +|text |Tiddler title to which the link will be created | + +
+\end + +\define insertTextDescription() +
+ +Inserts the text specified in <<.param "text">> at the caret position. If there is a selection, it is replaced. + +|!Name |!Description | +|text |Text to be inserted | + +
+\end A `tm-edit-text-operation` invokes one of the available operations on a __surrounding__ text editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the `event` object are required: @@ -114,6 +135,8 @@ At this point the following text operations have been implemented: |<<.def "wrap-lines">>|<> | |<<.def "wrap-selection">>|<> | |<<.def "save-selection">>|<> | +|<<.def "make-link">>|<> | +|<<.def "insert-text">>|<>| !Example From 10b20657ccb88ec0b12c1e789f78e76ceead1add Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Sat, 22 May 2021 11:50:11 +0200 Subject: [PATCH 05/32] Deserializers[] filter operator (#5673) --- core/modules/filters/deserializers.js | 27 +++++++++++++++++++ editions/test/tiddlers/tests/test-filters.js | 4 +++ .../filters/deserializers Operator.tid | 14 ++++++++++ .../deserializers Operator (Examples).tid | 7 +++++ .../tiddlers/widgets/DropzoneWidget.tid | 4 +-- 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 core/modules/filters/deserializers.js create mode 100644 editions/tw5.com/tiddlers/filters/deserializers Operator.tid create mode 100644 editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid diff --git a/core/modules/filters/deserializers.js b/core/modules/filters/deserializers.js new file mode 100644 index 000000000..ddca998ea --- /dev/null +++ b/core/modules/filters/deserializers.js @@ -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; +}; + +})(); \ No newline at end of file diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 7125e492e..a02114f2b 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -809,6 +809,10 @@ function runTests(wiki) { expect(wiki.filterTiddlers("'-' +[escapecss[]]").join(",")).toBe("\\-"); }); + 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"); + }); + } }); diff --git a/editions/tw5.com/tiddlers/filters/deserializers Operator.tid b/editions/tw5.com/tiddlers/filters/deserializers Operator.tid new file mode 100644 index 000000000..0f271168c --- /dev/null +++ b/editions/tw5.com/tiddlers/filters/deserializers Operator.tid @@ -0,0 +1,14 @@ +caption: deserializers +created: 20210506115203172 +from-version: 5.1.24 +modified: 20210506130322593 +op-input: ignored +op-output: the title of each available deserializer +op-parameter: none +tags: [[Filter Operators]] [[Special Operators]] +title: deserializers Operator +type: text/vnd.tiddlywiki + +<<.tip "You can specify a specific deserializer for a DropzoneWidget to use">> + +<<.operator-examples "deserializers">> diff --git a/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid b/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid new file mode 100644 index 000000000..32efb2f46 --- /dev/null +++ b/editions/tw5.com/tiddlers/filters/examples/deserializers Operator (Examples).tid @@ -0,0 +1,7 @@ +created: 20210506115345021 +modified: 20210506115402052 +tags: [[Operator Examples]] [[deserializer Operator]] +title: deserializers Operator (Examples) +type: text/vnd.tiddlywiki + +<<.operator-example 1 "[deserializers[]]">> diff --git a/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid b/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid index 812e88f70..acec189c3 100644 --- a/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/DropzoneWidget.tid @@ -1,6 +1,6 @@ caption: dropzone created: 20131024141900000 -modified: 20210519154948743 +modified: 20210506115809131 tags: Widgets title: DropzoneWidget type: text/vnd.tiddlywiki @@ -25,7 +25,7 @@ It sends a [[WidgetMessage: tm-import-tiddlers]] carrying a JSON representation <<.tip """Use the `prefix` filter operator to easily accept multiple related content types. For example this filter will accept all image content types: `[prefix[image/]]`""">> -The list of available deserializers can be inspected by executing `Object.keys($tw.Wiki.tiddlerDeserializerModules).sort().join("\n")` in the browser JavaScript console. +<<.tip "The list of available deserializers can be seen by using the filter `[deserializers[]]` in the Filter tab in [[Advanced Search|$:/AdvancedSearch]].">> The dropzone widget displays any contained content within the dropzone. From bf25c4d34a7f90d95e9c89ed883bb008d247d8e9 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Sat, 22 May 2021 12:07:55 +0200 Subject: [PATCH 06/32] Docs for new system tag $:/tags/EditorTools (#5705) --- .../systemtags/SystemTag_ $__tags_EditorTools.tid | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid new file mode 100644 index 000000000..c4a0401ca --- /dev/null +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_EditorTools.tid @@ -0,0 +1,9 @@ +caption: $:/tags/EditorTools +created: 20210519160245560 +description: marks the edit mode tiddler toolbar for non-button elements. +modified: 20210519160509587 +tags: SystemTags +title: SystemTag: $:/tags/EditorTools +type: text/vnd.tiddlywiki + +The [[system tag|SystemTags]] `$:/tags/EditorTools` can be used to include non-button UI elements in the edit mode tiddler toolbar. For buttons see [[SystemTag: $:/tags/EditToolbar]]. \ No newline at end of file From 3fc7895af296b84865901ec41fbb628ffe94756d Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Sat, 22 May 2021 20:43:37 +0200 Subject: [PATCH 07/32] CurrentTiddler variable consistency in subfilters and prefixes (#5691) * Make currentTiddler variable consistent in subfilters and filter run prefixes * Updated filterun prefix and subfilter operators to use ..currentTiddler instead of outerCurrentTiddler --- core/modules/filterrunprefixes/filter.js | 17 ++++++++-- core/modules/filterrunprefixes/reduce.js | 34 ++++++++++--------- core/modules/filterrunprefixes/sort.js | 18 +++++----- core/modules/filters/filter.js | 13 ++++++- core/modules/filters/reduce.js | 2 ++ core/modules/filters/sortsub.js | 11 +++--- editions/tw5.com/tiddlers/filters/filter.tid | 4 ++- editions/tw5.com/tiddlers/filters/reduce.tid | 3 +- .../tiddlers/filters/sortsub Operator.tid | 6 ++-- .../filters/syntax/Filter Expression.tid | 4 ++- .../filters/syntax/Sort Filter Run Prefix.tid | 4 +-- 11 files changed, 77 insertions(+), 39 deletions(-) diff --git a/core/modules/filterrunprefixes/filter.js b/core/modules/filterrunprefixes/filter.js index 555f8981b..55bc25dd7 100644 --- a/core/modules/filterrunprefixes/filter.js +++ b/core/modules/filterrunprefixes/filter.js @@ -17,10 +17,21 @@ exports.filter = function(operationSubFunction,options) { return function(results,source,widget) { if(results.length > 0) { var resultsToRemove = []; - results.each(function(result) { - var filtered = operationSubFunction(options.wiki.makeTiddlerIterator([result]),widget); + results.each(function(title) { + 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) { - resultsToRemove.push(result); + resultsToRemove.push(title); } }); results.remove(resultsToRemove); diff --git a/core/modules/filterrunprefixes/reduce.js b/core/modules/filterrunprefixes/reduce.js index 534c3e450..33ec25c7f 100644 --- a/core/modules/filterrunprefixes/reduce.js +++ b/core/modules/filterrunprefixes/reduce.js @@ -19,23 +19,25 @@ exports.reduce = function(operationSubFunction,options) { var index = 0; results.each(function(title) { var list = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{ - getVariable: function(name) { - switch(name) { - case "currentTiddler": - return "" + title; - case "accumulator": - return "" + accumulator; - case "index": - return "" + index; - case "revIndex": - return "" + (results.length - 1 - index); - case "length": - return "" + results.length; - default: - return widget.getVariable(name); - } + getVariable: function(name) { + switch(name) { + case "currentTiddler": + return "" + title; + case "..currentTiddler": + return widget.getVariable("currentTiddler"); + case "accumulator": + return "" + accumulator; + case "index": + return "" + index; + case "revIndex": + return "" + (results.length - 1 - index); + case "length": + return "" + results.length; + default: + return widget.getVariable(name); } - }); + } + }); if(list.length > 0) { accumulator = "" + list[0]; } diff --git a/core/modules/filterrunprefixes/sort.js b/core/modules/filterrunprefixes/sort.js index 689193fff..ecaba9313 100644 --- a/core/modules/filterrunprefixes/sort.js +++ b/core/modules/filterrunprefixes/sort.js @@ -26,15 +26,17 @@ exports.sort = function(operationSubFunction,options) { compareFn; results.each(function(title) { var key = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{ - getVariable: function(name) { - switch(name) { - case "currentTiddler": - return "" + title; - default: - return widget.getVariable(name); - } + getVariable: function(name) { + switch(name) { + case "currentTiddler": + return "" + title; + case "..currentTiddler": + return widget.getVariable("currentTiddler"); + default: + return widget.getVariable(name); } - }); + } + }); sortKeys.push(key[0] || ""); }); results.clear(); diff --git a/core/modules/filters/filter.js b/core/modules/filters/filter.js index 4be552cff..8284929a7 100644 --- a/core/modules/filters/filter.js +++ b/core/modules/filters/filter.js @@ -20,7 +20,18 @@ exports.filter = function(source,operator,options) { results = [], target = operator.prefix !== "!"; 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) { results.push(title); } diff --git a/core/modules/filters/reduce.js b/core/modules/filters/reduce.js index 206936887..831b354a1 100644 --- a/core/modules/filters/reduce.js +++ b/core/modules/filters/reduce.js @@ -31,6 +31,8 @@ exports.reduce = function(source,operator,options) { switch(name) { case "currentTiddler": return "" + title; + case "..currentTiddler": + return options.widget.getVariable("currentTiddler"); case "accumulator": return "" + accumulator; case "index": diff --git a/core/modules/filters/sortsub.js b/core/modules/filters/sortsub.js index f556bfafc..a926362e3 100644 --- a/core/modules/filters/sortsub.js +++ b/core/modules/filters/sortsub.js @@ -27,10 +27,13 @@ exports.sortsub = function(source,operator,options) { iterator(options.wiki.getTiddler(title),title); },{ getVariable: function(name) { - if(name === "currentTiddler") { - return title; - } else { - return options.widget.getVariable(name); + switch(name) { + case "currentTiddler": + return "" + title; + case "..currentTiddler": + return options.widget.getVariable("currentTiddler"); + default: + return options.widget.getVariable(name); } } }); diff --git a/editions/tw5.com/tiddlers/filters/filter.tid b/editions/tw5.com/tiddlers/filters/filter.tid index 62619c20f..bd6cae1b9 100644 --- a/editions/tw5.com/tiddlers/filters/filter.tid +++ b/editions/tw5.com/tiddlers/filters/filter.tid @@ -1,6 +1,6 @@ caption: filter created: 20200929174420821 -modified: 20201027185144953 +modified: 20210522162551921 op-input: a [[selection of titles|Title Selection]] passed as input to the filter op-neg-input: a [[selection of titles|Title Selection]] passed as input to the filter op-neg-output: those input titles that <<.em "do not">> pass the filter <<.place S>> @@ -28,6 +28,8 @@ Simple filter operations can be concatenated together directly (eg `[tag[HelloTh ``` +Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler". <<.from-version "5.1.24">> + <<.tip "Compare with the similar [[subfilter|subfilter Operator]] operator which runs a subfilter and directly returns the results">> <<.tip "Compare with the analagous named filter run prefix `:filter`">> diff --git a/editions/tw5.com/tiddlers/filters/reduce.tid b/editions/tw5.com/tiddlers/filters/reduce.tid index d9893346c..d566dad59 100644 --- a/editions/tw5.com/tiddlers/filters/reduce.tid +++ b/editions/tw5.com/tiddlers/filters/reduce.tid @@ -1,6 +1,6 @@ caption: reduce created: 20201004154131193 -modified: 20201208185109549 +modified: 20210522162536854 op-input: a [[selection of titles|Title Selection]] passed as input to the filter op-output: the final result of running the subfilter <<.place S>> op-parameter: a [[filter expression|Filter Expression]]. Optional second parameter for initial value for accumulator @@ -18,6 +18,7 @@ The following variables are available within the subfilter: * ''accumulator'' - the result of the previous subfilter run * ''currentTiddler'' - the input title +* ''..currentTiddler'' - the value of the variable `currentTiddler` outside the subfilter. <<.from-version "5.1.24">> * ''index'' - the numeric index of the current list item (with zero being the first item in the list) * ''revIndex'' - the reverse numeric index of the current list item (with zero being the last item in the list) * ''length'' - the total length of the input list diff --git a/editions/tw5.com/tiddlers/filters/sortsub Operator.tid b/editions/tw5.com/tiddlers/filters/sortsub Operator.tid index 451b979c9..f010357f2 100644 --- a/editions/tw5.com/tiddlers/filters/sortsub Operator.tid +++ b/editions/tw5.com/tiddlers/filters/sortsub Operator.tid @@ -1,6 +1,6 @@ caption: sortsub created: 20200424160155182 -modified: 20210428152533501 +modified: 20210522162521222 op-input: a [[selection of titles|Title Selection]] op-neg-output: the input, sorted into reverse order by the result of evaluating subfilter <<.param S>> op-output: the input, sorted into ascending order by the result of evaluating subfilter <<.param S>> @@ -15,7 +15,9 @@ type: text/vnd.tiddlywiki Each item in the list of input titles is passed to the subfilter in turn. The subfilter transforms the input titles into the form needed for sorting. For example, the subfilter `[length[]]` transforms each input title in the number representing its length, and thus sorts the input titles according to their length. -Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits subfilters like `[{!!value}divide{!!cost}]` to be used for computation. +Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits subfilters like `[{!!value}divide{!!cost}]` to be used for computation. + +The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler". <<.from-version "5.1.24">> The suffix <<.place T>> determines how the items are compared and can be: diff --git a/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid b/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid index ec72fbd6a..34c07faea 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Filter Expression.tid @@ -1,5 +1,5 @@ created: 20150124182421000 -modified: 20210428084144231 +modified: 20210522162642994 tags: [[Filter Syntax]] title: Filter Expression type: text/vnd.tiddlywiki @@ -33,6 +33,8 @@ If a run has: <<.tip "Compare named filter run prefix `:reduce` with [[reduce Operator]] which is used to used to flatten a list of items down to a single item by repeatedly applying a subfilter.">> +<<.tip """Within the filter runs prefixed with `:reduce`, `:sort` and `:filter`, the "currentTiddler" variable is set to the title of the tiddler being processed. The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler".<<.from-version "5.1.24">>""" >> + In technical / logical terms: |!Run |!Equivalent named prefix |!Interpretation |!Output | diff --git a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid index 2fca72716..aed26cb6b 100644 --- a/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid +++ b/editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid @@ -1,5 +1,5 @@ created: 20210428083929749 -modified: 20210428140713422 +modified: 20210522162628946 tags: [[Filter Syntax]] [[Filter Run Prefix]] title: Sort Filter Run Prefix type: text/vnd.tiddlywiki @@ -13,7 +13,7 @@ type: text/vnd.tiddlywiki Each input title from previous runs is passed to this run in turn. The filter run transforms the input titles into the form needed for sorting. For example, the filter run `[length[]]` transforms each input title in to the number representing its length, and thus sorts the input titles according to their length. -Note that within the filter run, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits filter runs like `:sort:number[{!!value}divide{!!cost}]` to be used for computation. +Note that within the filter run, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits filter runs like `:sort:number[{!!value}divide{!!cost}]` to be used for computation. The value of currentTiddler outside the run is available in the variable "..currentTiddler". The `:sort` filter run prefix uses an extended syntax that allows for multiple suffixes, some of which are required: From 485779f5b2136b7bcd739352b56188d94b0eb9e4 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 22 May 2021 20:00:24 +0100 Subject: [PATCH 08/32] Fix crash when accessing variables in filters that don't have a widget context This should catch a large number of crashes, including: Fixes #5716 --- core/modules/filters.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/modules/filters.js b/core/modules/filters.js index 7799b23d6..89a9e8ccf 100644 --- a/core/modules/filters.js +++ b/core/modules/filters.js @@ -323,6 +323,9 @@ exports.compileFilter = function(filterString) { } else if(typeof source === "object") { // Array or hashmap source = self.makeTiddlerIterator(source); } + if(!widget) { + widget = $tw.rootWidget; + } var results = new $tw.utils.LinkedList(); $tw.utils.each(operationFunctions,function(operationFunction) { operationFunction(results,source,widget); From 3fe5b7777083576e66c962c4365c5171768733c0 Mon Sep 17 00:00:00 2001 From: Xavier Cazin Date: Sun, 23 May 2021 12:07:55 +0200 Subject: [PATCH 09/32] Updates to fr-FR translations (#5718) * fr-FR help for the use-browser-cache param of the listen command * fr-FR dialog heading for drag&drop image import in editor * fr-FR translations for PutForbidden & PutUnauthorized errors * fr-FR translations for TiddlySpot and TiddlyHost saver information * Update to fr-FR translations for named filters in $:/AdvancedSearch tab * fr-FR translation update for the render command help * fr-FR update to ModuleTypes translations * fr-FR help update for the sse-enabled param of the listen command * fr-FR update to ControlPanel Basics information * fr-FR translation improvements to TiddlerInfo captions and hints * fr-FR translation for the Layout Switcher caption * fr-FR translation updates for Layout-related information * fr-FR translation for ConfirmAction * fr-FR for the captions related to tag input clearing --- languages/fr-FR/ControlPanel.multids | 6 +++++- languages/fr-FR/Docs/ModuleTypes.multids | 3 ++- languages/fr-FR/EditTemplate.multids | 2 ++ languages/fr-FR/Filters.multids | 5 +++-- languages/fr-FR/Help/listen.tid | 2 ++ languages/fr-FR/Help/render.tid | 9 +++++---- languages/fr-FR/Import.multids | 1 + languages/fr-FR/Misc.multids | 10 ++++++++++ languages/fr-FR/TiddlerInfo.multids | 4 ++-- 9 files changed, 32 insertions(+), 10 deletions(-) diff --git a/languages/fr-FR/ControlPanel.multids b/languages/fr-FR/ControlPanel.multids index 89298c459..8991548b5 100644 --- a/languages/fr-FR/ControlPanel.multids +++ b/languages/fr-FR/ControlPanel.multids @@ -17,6 +17,8 @@ Basics/NewJournal/Tags/Prompt: Tags pour les nouveaux tiddlers journaux Basics/NewTiddler/Title/Prompt: Modèle pour les titres des nouveaux tiddlers Basics/NewTiddler/Tags/Prompt: Tags pour les nouveaux tiddlers Basics/OverriddenShadowTiddlers/Prompt: Nombre de tiddlers //shadow// modifiés +Basics/RemoveTags: Mettre à jour vers le format courant +Basics/RemoveTags/Hint: Met à jour la configuration des tags vers le format le plus récent Basics/ShadowTiddlers/Prompt: Nombre de tiddlers //shadow// Basics/Subtitle/Prompt: Sous-titre Basics/SystemTiddlers/Prompt: Nombre de tiddlers système : @@ -44,6 +46,7 @@ KeyboardShortcuts/Platform/Linux: Plate-forme Linux seulement KeyboardShortcuts/Platform/NonLinux: Plate-formes non-Linux seulement KeyboardShortcuts/Platform/Windows: Plate-forme Windows seulement KeyboardShortcuts/Platform/NonWindows: Plates-formes non-Windows seulement +LayoutSwitcher/Caption: Mise en page LoadedModules/Caption: Modules chargés LoadedModules/Hint: Liste des modules chargés, liés à leurs tiddlers sources. Les italiques indiquent que les tiddlers sources n'existent pas, le plus souvent parce que le module a été créé lors du processus d'amorçage. Palette/Caption: Palette @@ -119,11 +122,12 @@ Saving/TiddlySpot/Advanced/Heading: Paramètres avancés Saving/TiddlySpot/BackupDir: Dossier des //sauvegardes// Saving/TiddlySpot/Backups: Sauvegardes Saving/TiddlySpot/Caption: Enregistreur ~TiddlySpot -Saving/TiddlySpot/Description: Ces paramètres ne servent que lors de la sauvegarde vers http://tiddlyspot.com ou vers un serveur distant compatible +Saving/TiddlySpot/Description: Ces paramètres ne servent que lors de la sauvegarde vers [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]] ou vers un serveur distant compatible. Voir [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] pour plus d'informations sur la configuration de la sauvegarde sur ~TiddlySpot et ~TiddlyHost. Saving/TiddlySpot/Filename: Nom du fichier enregistré Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //L'URL par défaut est `http://.tiddlyspot.com/store.cgi`. Elle peut être remplacée par une adresse serveur personnalisée, comme `http://example.com/store.php`.// Saving/TiddlySpot/Password: Mot de passe +Saving/TiddlySpot/ReadOnly: Notez que [[TiddlySpot|http://tiddlyspot.com]] n'autorise plus la création de nouveaux sites. Pour les nouveaux sites vous pouvez utiliser [[TiddlyHost|https://tiddlyhost.com]], un nouveau service d'hébergement qui remplace ~TiddlySpot. Saving/TiddlySpot/ServerURL: URL du serveur Saving/TiddlySpot/UploadDir: Dossier des dépôts Saving/TiddlySpot/UserName: Nom utilisé pour ce Wiki diff --git a/languages/fr-FR/Docs/ModuleTypes.multids b/languages/fr-FR/Docs/ModuleTypes.multids index b6eab3be2..8e3f90a25 100644 --- a/languages/fr-FR/Docs/ModuleTypes.multids +++ b/languages/fr-FR/Docs/ModuleTypes.multids @@ -23,7 +23,8 @@ tiddlerfield: Définit le comportement d'un champ de tiddler. tiddlermethod: Ajoute des méthodes au prototype `$tw.Tiddler`. upgrader: Applique une procédure de mise à jour aux tiddlers lors de l'opération de mise à jour/importation. utils: Ajoute des méthodes dans `$tw.utils`. -utils-node: Ajoute des méthodes spécifiques à Node.js dans `$tw.utils`. +utils-browser: Ajoute des méthodes spécifiques au mode browser dans `$tw.utils`. +utils-node: Ajoute des méthodes spécifiques au mode Node.js dans `$tw.utils`. widget: Les widgets encapsulent les méthodes de rendu et de rafraichissement du DOM. wikimethod: Ajoute des méthodes à `$tw.Wiki`. wikirule: Règles d'analyse pour le parseur WikiText principal. diff --git a/languages/fr-FR/EditTemplate.multids b/languages/fr-FR/EditTemplate.multids index 30def0d81..f6f5c6c8b 100644 --- a/languages/fr-FR/EditTemplate.multids +++ b/languages/fr-FR/EditTemplate.multids @@ -19,6 +19,8 @@ Shadow/Warning: Ceci est un tiddler « shadow ». Toute modification supplantera Tags/Add/Button: ajouter Tags/Add/Button/Hint: ajoute un tag Tags/Add/Placeholder: nom du tag +Tags/ClearInput/Caption: supprime l'entrée +Tags/ClearInput/Hint: Supprime le tag entré Tags/Dropdown/Caption: liste des tags Tags/Dropdown/Hint: Montre la liste des tags Title/BadCharacterWarning: Attention : il est préférable d'éviter l'usage des caractères <> dans les titres des tiddlers diff --git a/languages/fr-FR/Filters.multids b/languages/fr-FR/Filters.multids index 0fc6cf3c2..e0385fb5f 100644 --- a/languages/fr-FR/Filters.multids +++ b/languages/fr-FR/Filters.multids @@ -9,7 +9,8 @@ Drafts: Les tiddlers en cours d'édition Orphans: Les tiddlers orphelins SystemTiddlers: Les tiddlers système ShadowTiddlers: Les tiddlers shadow -StoryList: Les tiddlers du déroulé, hormis $:/AdvancedSearch OverriddenShadowTiddlers: Les tiddlers shadow modifiés +SessionTiddlers: Les tiddlers modifiés depuis que le dernier chargement du wiki SystemTags: Les tags système -TypedTiddlers: Tiddlers ayant un contenu non wiki-text \ No newline at end of file +StoryList: Les tiddlers du déroulé, hormis <$text text="$:/AdvancedSearch"/> +TypedTiddlers: Tiddlers dont le contenu n'est pas en wiki-text diff --git a/languages/fr-FR/Help/listen.tid b/languages/fr-FR/Help/listen.tid index b6d812bd0..e08215194 100644 --- a/languages/fr-FR/Help/listen.tid +++ b/languages/fr-FR/Help/listen.tid @@ -22,6 +22,7 @@ Tous les paramètres sont optionnels avec des valeurs par défaut sûres, et peu * ''readers'' - liste de personnes de confiance autorisées à lire ce wiki, séparées par des virgules * ''writers'' - liste de personnes de confiance autorisées à modifier ce wiki, séparées par des virgules * ''csrf-disable'' - donner la valeur "yes" pour désactiver les vérifications CSRF (vaut "no" par défaut) +* ''sse-enabled'' - donner la valeur "yes" pour activer les événement envoyés par le serveur (valeur "no" par défaut) * ''root-tiddler'' - le tiddler à servir à la racine (par défaut "$:/core/save/all") * ''root-render-type'' - le type de contenu avec lequel le tiddler racine doit être rendu (par défaut "text/plain") * ''root-serve-type'' - le type de contenu avec lequel le tiddler racine doit être servi (par défaut "text/html") @@ -29,6 +30,7 @@ Tous les paramètres sont optionnels avec des valeurs par défaut sûres, et peu * ''tls-key'' - nom de chemin du fichier de clé TLS (relativement au dossier du wiki) * ''debug-level'' - niveau de débogage optionnel ; mettre à "debug" pour voir le détail des requêtes (par défaut à "none") * ''gzip'' - donner la valeur "yes" pour activer la compression gzip pour certaines interactions http (par défaut à "no") +* ''use-browser-cache'' - une valeur "yes" autorise le navigateur à mettre en cache les réponses pour économiser de la bande passante ("no" par défaut) Pour plus d'informations sur la manière de donner accès à votre instance de serveur à l'ensemble de votre réseau local, ainsi que sur les risques éventuels en matière de sécurité, voir le tiddler [[WebServer sur tiddlywiki.com|https://tiddlywiki.com/#WebServer]]. diff --git a/languages/fr-FR/Help/render.tid b/languages/fr-FR/Help/render.tid index 0fd55a935..79bc99740 100644 --- a/languages/fr-FR/Help/render.tid +++ b/languages/fr-FR/Help/render.tid @@ -8,17 +8,17 @@ Optionellement, on peut spécifier le titre d'un tiddler modèle (template). Dan On peut spécifier le nom et la valeur d'une variable supplémentaire. ``` ---render [] [] [] [] [] +--render [] [] [] [ [] [] ]* ``` * ''filtre-sur-les-tiddlers'': Un filtre qui indentifie les tiddlers dont le contenu doit être exécuté * ''filtre-des-noms-de-fichier'': filtre optionnel pour transformer les titres de tiddlers en chemin de fichiers. À défaut, le filtre utilisé est `[is[tiddler]addsuffix[.html]]`, qui utilise le titre inchangé du tiddler comme nom de fichier * ''modèle'': Modèle optionnel via lequel chaque tiddler doit être rendu * ''type-de-rendu'': Type de rendu optionnel : la valeur `text/html` (par défaut) retourne le text HTML complet et `text/plain` se contente de retourner le contenu sous forme texte (autrement dit ignore les balises HTML et autres caractères non imprimables) -* ''nom'': Nom de la variable optionnelle -* ''valeur'': Valeur de la variable optionnelle +* ''nom'': Nom des variables optionnelles +* ''valeur'': Valeur des variables optionnelles -Par défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du réepertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent. +Par défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent. Notes : @@ -26,6 +26,7 @@ Notes : * Les répertoires absents dans le chemin de fichier sont créés automatiquement. * Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : `--render "[[Motovun Jack.jpg]]"` * Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple `[encodeuricomponent[]addprefix[static/]]` applique un encodage d'URI à chaque titre, puis ajoute le préfixe `static/` +* Il est possible d'utiliser plusieurs paires ''nom''/''valeur'' pour passer plus d'une variable * La commande `--render` remplace de manière plus souple les deux commandes `--rendertiddler` et `--rendertiddlers`, qui sont du même coup obsolètes. Exemples : diff --git a/languages/fr-FR/Import.multids b/languages/fr-FR/Import.multids index d4dce1c0e..3747a4e78 100644 --- a/languages/fr-FR/Import.multids +++ b/languages/fr-FR/Import.multids @@ -1,5 +1,6 @@ title: $:/language/Import/ +Editor/Import/Heading: Images à importer et à insérer dans l'éditeur. Imported/Hint: Les tiddlers suivants ont été importés : Listing/Cancel/Caption: Annuler Listing/Hint: Les tiddlers suivants sont prêts pour l'importation : diff --git a/languages/fr-FR/Misc.multids b/languages/fr-FR/Misc.multids index ddcc5a589..ab21d9cc5 100644 --- a/languages/fr-FR/Misc.multids +++ b/languages/fr-FR/Misc.multids @@ -10,6 +10,7 @@ ConfirmCancelTiddler: Souhaitez-vous annuler les modifications apportées au tid ConfirmDeleteTiddler: Souhaitez-vous supprimer le tiddler « <$text text=<>/> » ? ConfirmOverwriteTiddler: Souhaitez-vous supplanter le tiddler « <$text text=<<title>>/> » ? ConfirmEditShadowTiddler: Vous êtes sur le point d'éditer un ShadowTiddler. Toute modification supplantera la version par défaut du système, rendant les prochaines mises à jour non-triviales. Êtes-vous sûr(e) de vouloir éditer "<$text text=<<title>>/>"? +ConfirmAction: Souhaitez-vous poursuivre ? Count: total DefaultNewTiddlerTitle: Nouveau tiddler Diffs/CountMessage: <<diff-count>> différences @@ -31,6 +32,8 @@ Error/FormatFilterOperator: Erreur de filtre : Suffixe inconnu pour l'opérateur Error/LoadingPluginLibrary: Erreur lors du chargement de la bibliothèque de plugins Error/NetworkErrorAlert: `<h2>''Erreur Réseau''</h2>Il semble que la connexion au serveur soit perdue. Cela peut indiquer un problème avec votre connexion réseau. Essayez de rétablir la connectivité du réseau avant de continuer.<br><br>''Toute modification non enregistrée sera automatiquement synchronisée lorsque la connectivité sera rétablie''.` Error/PutEditConflict: Le fichier a changé sur le serveur +Error/PutForbidden: Permission refusée +Error/PutUnauthorized: Authentification nécessaire Error/RecursiveTransclusion: Erreur dans le widget //transclude// : transclusion récursive Error/RetrievingSkinny: Erreur pendant la récupération de la liste des tiddlers partiels Error/SavingToTWEdit: Erreur lors de l'enregistrement vers TWEdit @@ -39,6 +42,7 @@ Error/XMLHttpRequest: Code d'erreur XMLHttpRequest InternalJavaScriptError/Title: Erreur interne JavaScript InternalJavaScriptError/Hint: C'est assez embarrassant. Il est recommandé de rafraîchir l'affichage de votre navigateur InvalidFieldName: Caractères illicites dans le nom du champ « <$text text=<<fieldName>>/> ». Les champs ne peuvent contenir que des lettres minuscules non accentuées et les caractères souligné (`_`), tiret (`-`) et point (`.`) +LayoutSwitcher/Description: Ouvre le commutateur de mise en page LazyLoadingWarning: <p>Tentative de chargement d'un contenu externe ''<$text text={{!!_canonical_uri}}/>''</p><p>Si ce message ne disparaît pas, il est possible que vous deviez ajuster le type de contenu du tiddler en fonction du type de votre contenu externe, ou vous utilisez peut-être un navigateur qui n'accepte pas les contenus externes dans cette configuration. Voir https://tiddlywiki.com/#ExternalText</p> LoginToTiddlySpace: Identification sur TiddlySpace Manager/Controls/FilterByTag/None: (aucun) @@ -62,6 +66,8 @@ MissingTiddler/Hint: Le tiddler « <$text text=<<currentTiddler>>/> » est manqu No: Non OfficialPluginLibrary: Bibliothèque officielle des plugins ~TiddlyWiki OfficialPluginLibrary/Hint: La bibliothèque officielle des plugins ~TiddlyWiki sur tiddlywiki.com. Plugins, thèmes et packs pour les différentes langues sont maintenus par l'équipe responsable du noyau. +PageTemplate/Description: la mise en page par défaut de ~TiddlyWiki +PageTemplate/Name: ~PageTemplate par défaut PluginReloadWarning: Merci d'enregistrer {{$:/core/ui/Buttons/save-wiki}} et de recharger {{$:/core/ui/Buttons/refresh}} pour que les changements apportés aux plugins ~JavaScript prennent effet RecentChanges/DateFormat: DD MMM YYYY Shortcuts/Input/AdvancedSearch/Hint: Ouvre le panneau Recherche Avancée depuis le champ de recherche de la barre latérale @@ -73,6 +79,10 @@ Shortcuts/Input/Tab-Left/Hint: Sélectionne l'onglet précédent Shortcuts/Input/Tab-Right/Hint: Sélectionne l'onglet suivant Shortcuts/Input/Up/Hint: Sélectionne l'élément précédent Shortcuts/SidebarLayout/Hint: Change la mise en forme de la barre latérale +Switcher/Subtitle/theme: Change de Thème +Switcher/Subtitle/layout: Change de Mise en page +Switcher/Subtitle/language: Change de Langue +Switcher/Subtitle/palette: Change de Palette SystemTiddler/Tooltip: Ceci est un tiddler système SystemTiddlers/Include/Prompt: Inclure les tiddlers système TagManager/Colour/Heading: Couleur diff --git a/languages/fr-FR/TiddlerInfo.multids b/languages/fr-FR/TiddlerInfo.multids index 6576139c7..9f6f844f7 100644 --- a/languages/fr-FR/TiddlerInfo.multids +++ b/languages/fr-FR/TiddlerInfo.multids @@ -14,8 +14,8 @@ List/Caption: Liste List/Empty: Ce tiddler ne contient pas de champ //list// Listed/Caption: Listé Listed/Empty: Ce tiddler ne figure dans le champ //list// d'aucun autre tiddler -References/Caption: Références -References/Empty: Aucun tiddler ne comporte de lien vers celui-ci +References/Caption: Pointeurs +References/Empty: Aucun tiddler ne pointe vers celui-ci Tagging/Caption: Étiquetage Tagging/Empty: Le titre de ce tiddler ne sert de tag à aucun tiddler Tools/Caption: Outils From 8fbf52e419e71d726ea32b6c44e3ccfc4245d825 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Sun, 23 May 2021 11:19:46 +0100 Subject: [PATCH 10/32] Don't issue plugin reload warning for plugin-type: import Fixes #5719 --- core/modules/wiki.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 6aa6c7ced..0fcb9b7b0 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -1509,6 +1509,13 @@ exports.invokeUpgraders = function(titles,tiddlers) { // Determine whether a plugin by title is dynamically loadable 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)); }; From 61714cbda34151f0b7e1e8ad690778770044f52f Mon Sep 17 00:00:00 2001 From: Cameron Fischer <fischer.cameron@gmail.com> Date: Sun, 23 May 2021 12:39:06 -0400 Subject: [PATCH 11/32] Fixed super minor issue with import pragma (#5521) --- core/modules/parsers/wikiparser/rules/import.js | 2 +- editions/test/tiddlers/tests/test-widget.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/modules/parsers/wikiparser/rules/import.js b/core/modules/parsers/wikiparser/rules/import.js index bce5e1ef3..9556c7af5 100644 --- a/core/modules/parsers/wikiparser/rules/import.js +++ b/core/modules/parsers/wikiparser/rules/import.js @@ -36,7 +36,7 @@ exports.parse = function() { // Move past the pragma invocation this.parser.pos = this.matchRegExp.lastIndex; // Parse the filter terminated by a line break - var reMatch = /(.*)(\r?\n)|$/mg; + var reMatch = /(.*)(?:$|\r?\n)/mg; reMatch.lastIndex = this.parser.pos; var match = reMatch.exec(this.parser.source); this.parser.pos = reMatch.lastIndex; diff --git a/editions/test/tiddlers/tests/test-widget.js b/editions/test/tiddlers/tests/test-widget.js index bd766fe7e..459ec33fe 100755 --- a/editions/test/tiddlers/tests/test-widget.js +++ b/editions/test/tiddlers/tests/test-widget.js @@ -702,6 +702,19 @@ describe("Widget module", function() { 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. * * The importvariable widget was creating redundant copies into From 2ab0474e14834e8309fca628c34aac4efa663e64 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Sun, 23 May 2021 18:50:27 +0200 Subject: [PATCH 12/32] Fix configuration list of HTML5 block elements (#5469) --- core/modules/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/config.js b/core/modules/config.js index 25c27c7ca..77e74edf8 100644 --- a/core/modules/config.js +++ b/core/modules/config.js @@ -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.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(","); From dcba17fc5f114d4ef120e552b9e8f592d8e37d67 Mon Sep 17 00:00:00 2001 From: Mohammad Rahmani <830394+kookma@users.noreply.github.com> Date: Sun, 23 May 2021 21:43:04 +0430 Subject: [PATCH 13/32] Correct pointer shape and color for disabled button (#5692) * Update base.tid this PR addresses the #5625 * Update base.tid The extra space has been removed! --- themes/tiddlywiki/vanilla/base.tid | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index e11cfbd23..d5454a32d 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -505,6 +505,11 @@ button svg, button img, label svg, label img { fill: <<colour foreground>>; } +button:disabled.tc-btn-invisible { + cursor: default; + color: <<colour muted-foreground>>; +} + .tc-btn-boxed { font-size: 0.6em; padding: 0.2em; From c30ce544d194aea0e7f3fce0644c764b619a1067 Mon Sep 17 00:00:00 2001 From: BlueGreenMagick <bluegreenmagick@gmail.com> Date: Tue, 25 May 2021 03:24:37 +0900 Subject: [PATCH 14/32] Fix ViewToolbar items inconsistent spacing (#5473) --- core/ui/PageControls/advanced-search.tid | 1 + core/ui/PageControls/closeall.tid | 5 ++++- core/ui/PageControls/controlpanel.tid | 1 + core/ui/PageControls/encryption.tid | 8 ++++++-- core/ui/PageControls/fold-all.tid | 5 ++++- core/ui/PageControls/full-screen.tid | 5 ++++- core/ui/PageControls/home.tid | 5 ++++- core/ui/PageControls/import.tid | 5 ++++- core/ui/PageControls/language.tid | 1 - core/ui/PageControls/manager.tid | 5 ++++- core/ui/PageControls/more-page-actions.tid | 5 ++++- core/ui/PageControls/new-image.tid | 4 +++- core/ui/PageControls/new-journal.tid | 5 ++++- core/ui/PageControls/newtiddler.tid | 4 +++- core/ui/PageControls/palette.tid | 1 - core/ui/PageControls/print.tid | 5 ++++- core/ui/PageControls/refresh.tid | 5 ++++- core/ui/PageControls/savewiki.tid | 5 ++++- core/ui/PageControls/storyview.tid | 1 - core/ui/PageControls/tag-button.tid | 5 ++++- core/ui/PageControls/theme.tid | 1 - core/ui/PageControls/timestamp.tid | 8 ++++++-- core/ui/PageControls/unfold-all.tid | 5 ++++- core/ui/ViewToolbar/clone.tid | 1 - core/ui/ViewToolbar/close-others.tid | 1 - core/ui/ViewToolbar/edit.tid | 1 - core/ui/ViewToolbar/fold-others.tid | 1 - core/ui/ViewToolbar/fold.tid | 2 -- core/ui/ViewToolbar/info.tid | 1 + core/ui/ViewToolbar/more-tiddler-actions.tid | 1 - core/ui/ViewToolbar/new-here.tid | 1 + core/ui/ViewToolbar/new-journal-here.tid | 1 + core/ui/ViewToolbar/open-window.tid | 1 - core/ui/ViewToolbar/permalink.tid | 1 - core/ui/ViewToolbar/permaview.tid | 1 - core/wiki/macros/export.tid | 1 + plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid | 1 - .../tiddlywiki/text-slicer/ui/slice-toolbar-button.tid | 2 +- plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid | 2 +- themes/tiddlywiki/vanilla/base.tid | 4 ++-- 40 files changed, 80 insertions(+), 38 deletions(-) diff --git a/core/ui/PageControls/advanced-search.tid b/core/ui/PageControls/advanced-search.tid index 597395b5b..1549b07f4 100644 --- a/core/ui/PageControls/advanced-search.tid +++ b/core/ui/PageControls/advanced-search.tid @@ -5,6 +5,7 @@ description: {{$:/language/Buttons/AdvancedSearch/Hint}} \whitespace trim \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$"""> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/advanced-search-button}} diff --git a/core/ui/PageControls/closeall.tid b/core/ui/PageControls/closeall.tid index 213c868df..2665fff0d 100644 --- a/core/ui/PageControls/closeall.tid +++ b/core/ui/PageControls/closeall.tid @@ -3,11 +3,14 @@ tags: $:/tags/PageControls caption: {{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}} 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>>> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/close-all-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/controlpanel.tid b/core/ui/PageControls/controlpanel.tid index 82fac7398..1f57b35bf 100644 --- a/core/ui/PageControls/controlpanel.tid +++ b/core/ui/PageControls/controlpanel.tid @@ -5,6 +5,7 @@ description: {{$:/language/Buttons/ControlPanel/Hint}} \whitespace trim \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$"""> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/options-button}} diff --git a/core/ui/PageControls/encryption.tid b/core/ui/PageControls/encryption.tid index b4b5e553f..9f8ae0bd6 100644 --- a/core/ui/PageControls/encryption.tid +++ b/core/ui/PageControls/encryption.tid @@ -10,7 +10,9 @@ description: {{$:/language/Buttons/Encryption/Hint}} {{$:/core/images/locked-padlock}} </$list> <$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> </$button> </$reveal> @@ -20,7 +22,9 @@ description: {{$:/language/Buttons/Encryption/Hint}} {{$:/core/images/unlocked-padlock}} </$list> <$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> </$button> </$reveal> diff --git a/core/ui/PageControls/fold-all.tid b/core/ui/PageControls/fold-all.tid index 15dcca2df..46c3165b8 100644 --- a/core/ui/PageControls/fold-all.tid +++ b/core/ui/PageControls/fold-all.tid @@ -3,12 +3,15 @@ tags: $:/tags/PageControls caption: {{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}} description: {{$:/language/Buttons/FoldAll/Hint}} +\whitespace trim <$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/"/> <$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem"> {{$:/core/images/fold-all-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/full-screen.tid b/core/ui/PageControls/full-screen.tid index efaeadb2e..ada7d5a65 100644 --- a/core/ui/PageControls/full-screen.tid +++ b/core/ui/PageControls/full-screen.tid @@ -3,11 +3,14 @@ tags: $:/tags/PageControls caption: {{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}} 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>>> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/full-screen-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/home.tid b/core/ui/PageControls/home.tid index 946ac2361..f3a0b1787 100644 --- a/core/ui/PageControls/home.tid +++ b/core/ui/PageControls/home.tid @@ -3,11 +3,14 @@ tags: $:/tags/PageControls caption: {{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}} 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>>> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/home-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/import.tid b/core/ui/PageControls/import.tid index dbf3121b7..39ca51eb6 100644 --- a/core/ui/PageControls/import.tid +++ b/core/ui/PageControls/import.tid @@ -3,13 +3,16 @@ tags: $:/tags/PageControls caption: {{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}} description: {{$:/language/Buttons/Import/Hint}} +\whitespace trim <div class="tc-file-input-wrapper"> <$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]]"> {{$:/core/images/import-button}} </$list> <$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> </$button> <$browse tooltip={{$:/language/Buttons/Import/Hint}}/> diff --git a/core/ui/PageControls/language.tid b/core/ui/PageControls/language.tid index ffae7449a..623c71004 100644 --- a/core/ui/PageControls/language.tid +++ b/core/ui/PageControls/language.tid @@ -16,7 +16,6 @@ $(languagePluginTitle)$/icon </$set> </span> </$list> -<$text text=" "/> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span> </$list> diff --git a/core/ui/PageControls/manager.tid b/core/ui/PageControls/manager.tid index 7255747f4..d2144c574 100644 --- a/core/ui/PageControls/manager.tid +++ b/core/ui/PageControls/manager.tid @@ -5,12 +5,15 @@ description: {{$:/language/Buttons/Manager/Hint}} \whitespace trim \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$"""> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/list}} </$list> <$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> </$button> \end diff --git a/core/ui/PageControls/more-page-actions.tid b/core/ui/PageControls/more-page-actions.tid index e74185824..b52f99ec9 100644 --- a/core/ui/PageControls/more-page-actions.tid +++ b/core/ui/PageControls/more-page-actions.tid @@ -3,6 +3,7 @@ tags: $:/tags/PageControls caption: {{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}} description: {{$:/language/Buttons/More/Hint}} +\whitespace trim \define config-title() $:/config/PageControlButtons/Visibility/$(listItem)$ \end @@ -11,7 +12,9 @@ $:/config/PageControlButtons/Visibility/$(listItem)$ {{$:/core/images/down-arrow}} </$list> <$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> </$button><$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="below" animate="yes"> diff --git a/core/ui/PageControls/new-image.tid b/core/ui/PageControls/new-image.tid index fab7df573..b37fba7c5 100644 --- a/core/ui/PageControls/new-image.tid +++ b/core/ui/PageControls/new-image.tid @@ -9,6 +9,8 @@ description: {{$:/language/Buttons/NewImage/Hint}} {{$:/core/images/new-image-button}} </$list> <$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> </$button> diff --git a/core/ui/PageControls/new-journal.tid b/core/ui/PageControls/new-journal.tid index 914352e1b..8ae8ee78a 100644 --- a/core/ui/PageControls/new-journal.tid +++ b/core/ui/PageControls/new-journal.tid @@ -5,12 +5,15 @@ description: {{$:/language/Buttons/NewJournal/Hint}} \whitespace trim \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}}> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/new-journal-button}} </$list> <$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> </$button> \end diff --git a/core/ui/PageControls/newtiddler.tid b/core/ui/PageControls/newtiddler.tid index 7ea1994ff..cd2f56913 100644 --- a/core/ui/PageControls/newtiddler.tid +++ b/core/ui/PageControls/newtiddler.tid @@ -9,6 +9,8 @@ description: {{$:/language/Buttons/NewTiddler/Hint}} {{$:/core/images/new-button}} </$list> <$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> </$button> diff --git a/core/ui/PageControls/palette.tid b/core/ui/PageControls/palette.tid index 569b7e8ca..6fdbdb439 100644 --- a/core/ui/PageControls/palette.tid +++ b/core/ui/PageControls/palette.tid @@ -9,7 +9,6 @@ description: {{$:/language/Buttons/Palette/Hint}} <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/palette}} </$list> -<$text text=" "/> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Palette/Caption}}/></span> </$list> diff --git a/core/ui/PageControls/print.tid b/core/ui/PageControls/print.tid index c0782ff33..ef664b6e3 100644 --- a/core/ui/PageControls/print.tid +++ b/core/ui/PageControls/print.tid @@ -3,11 +3,14 @@ tags: $:/tags/PageControls caption: {{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}} 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>>> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/print-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/refresh.tid b/core/ui/PageControls/refresh.tid index b8bc437f8..38692f817 100644 --- a/core/ui/PageControls/refresh.tid +++ b/core/ui/PageControls/refresh.tid @@ -3,11 +3,14 @@ tags: $:/tags/PageControls caption: {{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}} 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>>> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/refresh-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/savewiki.tid b/core/ui/PageControls/savewiki.tid index e44c99276..9e4a345ac 100644 --- a/core/ui/PageControls/savewiki.tid +++ b/core/ui/PageControls/savewiki.tid @@ -3,6 +3,7 @@ tags: $:/tags/PageControls caption: {{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}} description: {{$:/language/Buttons/SaveWiki/Hint}} +\whitespace trim <$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}}> <$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}} </$list> <$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> </span> </$button> \ No newline at end of file diff --git a/core/ui/PageControls/storyview.tid b/core/ui/PageControls/storyview.tid index a426b91aa..c4d0b7365 100644 --- a/core/ui/PageControls/storyview.tid +++ b/core/ui/PageControls/storyview.tid @@ -14,7 +14,6 @@ $:/core/images/storyview-$(storyview)$ <$transclude tiddler=<<icon>>/> </$set> </$list> -<$text text=" "/> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span> </$list> diff --git a/core/ui/PageControls/tag-button.tid b/core/ui/PageControls/tag-button.tid index e7e6bdc89..e2b5c9277 100644 --- a/core/ui/PageControls/tag-button.tid +++ b/core/ui/PageControls/tag-button.tid @@ -5,12 +5,15 @@ description: {{$:/language/Buttons/TagManager/Hint}} \whitespace trim \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$"""> <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/tag-button}} </$list> <$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> </$button> \end diff --git a/core/ui/PageControls/theme.tid b/core/ui/PageControls/theme.tid index be3dbb0f9..2d8eadc7b 100644 --- a/core/ui/PageControls/theme.tid +++ b/core/ui/PageControls/theme.tid @@ -9,7 +9,6 @@ description: {{$:/language/Buttons/Theme/Hint}} <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/theme-button}} </$list> -<$text text=" "/> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Theme/Caption}}/></span> </$list> diff --git a/core/ui/PageControls/timestamp.tid b/core/ui/PageControls/timestamp.tid index abf89b70c..a54b3f2ca 100644 --- a/core/ui/PageControls/timestamp.tid +++ b/core/ui/PageControls/timestamp.tid @@ -11,7 +11,9 @@ description: {{$:/language/Buttons/Timestamp/Hint}} {{$:/core/images/timestamp-on}} </$list> <$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> </$button> </$reveal> @@ -22,7 +24,9 @@ description: {{$:/language/Buttons/Timestamp/Hint}} {{$:/core/images/timestamp-off}} </$list> <$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> </$button> </$reveal> diff --git a/core/ui/PageControls/unfold-all.tid b/core/ui/PageControls/unfold-all.tid index 9f91bc288..6e8357a3b 100644 --- a/core/ui/PageControls/unfold-all.tid +++ b/core/ui/PageControls/unfold-all.tid @@ -3,12 +3,15 @@ tags: $:/tags/PageControls caption: {{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}} description: {{$:/language/Buttons/UnfoldAll/Hint}} +\whitespace trim <$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/"/> <$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem"> {{$:/core/images/unfold-all-button}} </$list> <$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> </$button> \ No newline at end of file diff --git a/core/ui/ViewToolbar/clone.tid b/core/ui/ViewToolbar/clone.tid index dcba64486..434418106 100644 --- a/core/ui/ViewToolbar/clone.tid +++ b/core/ui/ViewToolbar/clone.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Clone/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Clone/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/close-others.tid b/core/ui/ViewToolbar/close-others.tid index 47bde5fdc..57fbf222c 100644 --- a/core/ui/ViewToolbar/close-others.tid +++ b/core/ui/ViewToolbar/close-others.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/CloseOthers/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/CloseOthers/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/edit.tid b/core/ui/ViewToolbar/edit.tid index 9d12243b2..f0ab31e4e 100644 --- a/core/ui/ViewToolbar/edit.tid +++ b/core/ui/ViewToolbar/edit.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Edit/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Edit/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/fold-others.tid b/core/ui/ViewToolbar/fold-others.tid index 290a03ac3..244977509 100644 --- a/core/ui/ViewToolbar/fold-others.tid +++ b/core/ui/ViewToolbar/fold-others.tid @@ -11,7 +11,6 @@ description: {{$:/language/Buttons/FoldOthers/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/FoldOthers/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/fold.tid b/core/ui/ViewToolbar/fold.tid index a392b4a77..fd3363688 100644 --- a/core/ui/ViewToolbar/fold.tid +++ b/core/ui/ViewToolbar/fold.tid @@ -12,7 +12,6 @@ description: {{$:/language/Buttons/Fold/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Fold/Caption}}/> </span> </$list> @@ -26,7 +25,6 @@ description: {{$:/language/Buttons/Fold/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Unfold/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/info.tid b/core/ui/ViewToolbar/info.tid index 3639aac09..02fd9abd7 100644 --- a/core/ui/ViewToolbar/info.tid +++ b/core/ui/ViewToolbar/info.tid @@ -5,6 +5,7 @@ description: {{$:/language/Buttons/Info/Hint}} \whitespace trim \define button-content() +\whitespace trim <$list filter="[<tv-config-toolbar-icons>match[yes]]"> {{$:/core/images/info-button}} </$list> diff --git a/core/ui/ViewToolbar/more-tiddler-actions.tid b/core/ui/ViewToolbar/more-tiddler-actions.tid index 9e9bd4528..6b24db362 100644 --- a/core/ui/ViewToolbar/more-tiddler-actions.tid +++ b/core/ui/ViewToolbar/more-tiddler-actions.tid @@ -13,7 +13,6 @@ $:/config/ViewToolbarButtons/Visibility/$(listItem)$ </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/More/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/new-here.tid b/core/ui/ViewToolbar/new-here.tid index 72bd7c3e3..dd4a969e1 100644 --- a/core/ui/ViewToolbar/new-here.tid +++ b/core/ui/ViewToolbar/new-here.tid @@ -10,6 +10,7 @@ description: {{$:/language/Buttons/NewHere/Hint}} </$set> \end \define newHereButton() +\whitespace trim <$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]]"> {{$:/core/images/new-here-button}} diff --git a/core/ui/ViewToolbar/new-journal-here.tid b/core/ui/ViewToolbar/new-journal-here.tid index 0fc55b19f..b64ba7ed7 100644 --- a/core/ui/ViewToolbar/new-journal-here.tid +++ b/core/ui/ViewToolbar/new-journal-here.tid @@ -8,6 +8,7 @@ description: {{$:/language/Buttons/NewJournalHere/Hint}} [[$(currentTiddlerTag)$]] $(journalTags)$ \end \define journalButton() +\whitespace trim <$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>>/>"""> <$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalButtonTags>>/> diff --git a/core/ui/ViewToolbar/open-window.tid b/core/ui/ViewToolbar/open-window.tid index b1eb46f9b..d8ef85c83 100644 --- a/core/ui/ViewToolbar/open-window.tid +++ b/core/ui/ViewToolbar/open-window.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/OpenWindow/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/OpenWindow/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/permalink.tid b/core/ui/ViewToolbar/permalink.tid index 8a53ce11f..5d0677eed 100644 --- a/core/ui/ViewToolbar/permalink.tid +++ b/core/ui/ViewToolbar/permalink.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Permalink/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Permalink/Caption}}/> </span> </$list> diff --git a/core/ui/ViewToolbar/permaview.tid b/core/ui/ViewToolbar/permaview.tid index ee95963b1..4a655b970 100644 --- a/core/ui/ViewToolbar/permaview.tid +++ b/core/ui/ViewToolbar/permaview.tid @@ -10,7 +10,6 @@ description: {{$:/language/Buttons/Permaview/Hint}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/language/Buttons/Permaview/Caption}}/> </span> </$list> diff --git a/core/wiki/macros/export.tid b/core/wiki/macros/export.tid index c3256c431..3d0d14760 100644 --- a/core/wiki/macros/export.tid +++ b/core/wiki/macros/export.tid @@ -6,6 +6,7 @@ $baseFilename$$(extension)$ \end \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]] }}}> <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]]"> diff --git a/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid b/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid index 20339b22e..e066b51f6 100644 --- a/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid +++ b/plugins/tiddlywiki/qrcode/ViewToolbarButton/Button.tid @@ -13,7 +13,6 @@ description: Generate QR code for this tiddler </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> <span class="tc-btn-text"> -<$text text=" "/> <$text text={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!short-caption}}/> </span> </$list> diff --git a/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid b/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid index 42ef547b1..ef53223d2 100644 --- a/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid +++ b/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button.tid @@ -17,7 +17,7 @@ Slice this text tiddler into chunks {{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}} </$list> <$list filter="[<tv-config-toolbar-text>match[yes]]"> -<span class="tc-btn-text"> Slice tiddler</span> +<span class="tc-btn-text">Slice tiddler</span> </$list> </$button> </$list> diff --git a/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid b/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid index 46f8a95db..c397badc5 100644 --- a/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid +++ b/plugins/tiddlywiki/tiddlyweb/syncer-actions-refresh.tid @@ -4,6 +4,6 @@ tags: $:/tags/SyncerDropdown <$reveal state="$:/status/IsLoggedIn" type="match" text="yes"> <$button tooltip="Get latest changes from the server" aria-label="Refresh from server" class="tc-btn-invisible"> <$action-sendmessage $message="tm-server-refresh"/> -{{$:/core/images/refresh-button}} <span class="tc-btn-text"><$text text="Get latest changes from the server"/></span> +{{$:/core/images/refresh-button}}<span class="tc-btn-text"><$text text="Get latest changes from the server"/></span> </$button> </$reveal> diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index d5454a32d..7ed449afb 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -564,9 +564,9 @@ html body.tc-body .tc-btn-rounded:hover svg { fill: <<colour muted-foreground>>; } + .tc-btn-text { - padding: 0; - margin: 0; + margin-left: 7px; } /* used for documentation "fake" buttons */ From 7a41283c6bfdfddd24122be5bb8897889ff67415 Mon Sep 17 00:00:00 2001 From: Saq Imtiaz <saq.imtiaz@gmail.com> Date: Mon, 24 May 2021 20:28:43 +0200 Subject: [PATCH 15/32] Format:titlelist operator (#5665) --- core/modules/filters/format/titlelist.js | 25 +++++++++++++++++++ editions/test/tiddlers/tests/test-filters.js | 6 +++++ .../examples/format Operator (Examples).tid | 17 ++++++++++++- editions/tw5.com/tiddlers/filters/format.tid | 3 ++- 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 core/modules/filters/format/titlelist.js diff --git a/core/modules/filters/format/titlelist.js b/core/modules/filters/format/titlelist.js new file mode 100644 index 000000000..47608323d --- /dev/null +++ b/core/modules/filters/format/titlelist.js @@ -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; +}; + +})(); diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index a02114f2b..ee428b1a0 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -808,6 +808,12 @@ function runTests(wiki) { expect(wiki.filterTiddlers("'-25' +[escapecss[]]").join(",")).toBe("-\\32 5"); 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"); diff --git a/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid b/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid index 071d4506d..d7bbc1271 100644 --- a/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid +++ b/editions/tw5.com/tiddlers/filters/examples/format Operator (Examples).tid @@ -1,5 +1,5 @@ created: 20201020102735123 -modified: 20201020104004306 +modified: 20210524044020645 tags: [[Operator Examples]] [[format Operator]] title: format Operator (Examples) type: text/vnd.tiddlywiki @@ -14,3 +14,18 @@ Created date with a format string supplied as operator parameter: Modified date shown as a relative date: <<.operator-example 3 "[[HelloThere]get[modified]format:relativedate[]]">> + +A tiddler title with spaces formatted as a title list: +<<.operator-example 4 """[[Hello There]format:titlelist[]]""">> + +All tiddler titles tagged with <<tag TableOfContents>> formatted as a title list : +<<.operator-example 5 """[tag[TableOfContents]format:titlelist[]]""">> + +<<.tip "To create a string to save a [[title list|Title List]] into a list field, use `format:titlelist[]` with the [[join operator|join Operator]]">> +<<.operator-example 6 """[tag[TableOfContents]format:titlelist[]join[ ]]""">> +For example, to save titles tagged `TableOfContents` to the titles field of the tiddler [[format titlelist test]]: + +<$macrocall $name='wikitext-example-without-html' +src='<$button> test +<$action-setfield $tiddler="format titlelist test" titles={{{ [tag[TableOfContents]format:titlelist[]join[ ]] }}}/> +</$button>'/> diff --git a/editions/tw5.com/tiddlers/filters/format.tid b/editions/tw5.com/tiddlers/filters/format.tid index 8cf6f9826..138eb018f 100644 --- a/editions/tw5.com/tiddlers/filters/format.tid +++ b/editions/tw5.com/tiddlers/filters/format.tid @@ -1,6 +1,6 @@ caption: format created: 20201020100834443 -modified: 20201020104004271 +modified: 20210524090002126 op-input: a [[selection of titles|Title Selection]] op-output: input strings formatted according to the specified suffix <<.place B>> op-parameter: optional format string for the formats @@ -19,5 +19,6 @@ The suffix <<.place B>> is one of the following supported string formats: |!Format |!Description | |^`date` |The input string is interpreted as a UTC date and displayed according to the DateFormat specified in the optional operator parameter. (Defaults to "YYYY MM DD 0hh:0mm") | |^`relativedate` |The input string is interpreted as a UTC date and displayed as the interval from the present instant. Any operator parameters are ignored. | +|^`titlelist` |<<.from-version "5.2.0">>The input string wrapped in double square brackets if it contains a space. Appropriate for use in a [[title list|Title List]]. | <<.operator-examples "format">> From 8d7930f66005fae0914d248166ef15a020443143 Mon Sep 17 00:00:00 2001 From: Joshua Fontany <joshua.fontany@gmail.com> Date: Mon, 24 May 2021 13:16:23 -0700 Subject: [PATCH 16/32] Update sync methods (#5467) --- core/modules/syncer.js | 13 ++++----- .../moduletypes/SyncAdaptorModules.tid | 19 ++++++++----- .../filesystem/filesystemadaptor.js | 27 ++++++++++++++++--- plugins/tiddlywiki/savetrail/savetrail.js | 27 ++++++++++++++++--- .../tiddlywiki/tiddlyweb/tiddlywebadaptor.js | 27 ++++++++++++++++--- 5 files changed, 92 insertions(+), 21 deletions(-) diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 23d21097f..cbde6a228 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -601,7 +601,10 @@ SaveTiddlerTask.prototype.run = function(callback) { tiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title); this.syncer.logger.log("Dispatching 'save' task:",this.title); 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(err) { return callback(err); @@ -615,8 +618,6 @@ SaveTiddlerTask.prototype.run = function(callback) { }; // Invoke the callback callback(null); - },{ - tiddlerInfo: self.syncer.tiddlerInfo[self.title] }); } else { 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) { var self = this; 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(err) { return callback(err); @@ -642,8 +645,6 @@ DeleteTiddlerTask.prototype.run = function(callback) { delete self.syncer.tiddlerInfo[self.title]; // Invoke the callback callback(null); - },{ - tiddlerInfo: self.syncer.tiddlerInfo[this.title] }); }; diff --git a/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid b/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid index a39c0f8da..910a34e6d 100644 --- a/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid +++ b/editions/dev/tiddlers/from tw5.com/moduletypes/SyncAdaptorModules.tid @@ -69,7 +69,7 @@ Returns a revision ID. Retrieves status information from the server. This method is optional. |!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)` @@ -128,33 +128,40 @@ The syncer will use the `getUpdatedTiddlers()` method in preference to the `getS |!Parameter |!Description | |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. |!Parameter |!Description | |tiddler |Tiddler to be saved | +|options |See below | |callback |Callback function invoked with parameter `err,adaptorInfo,revision` | |tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler | -!! `loadTiddler(title,callback)` +!! `loadTiddler(title,options,callback)` Loads a tiddler from the server. |!Parameter |!Description | |title |Title of tiddler to be retrieved | +|options |See below | |callback |Callback function invoked with parameter `err,tiddlerFields` | -!! `deleteTiddler(title,callback,options)` +!! `deleteTiddler(title,options,callback)` Delete a tiddler from the server. |!Parameter |!Description | |title |Title of tiddler to be deleted | -|callback |Callback function invoked with parameter `err` | |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 | +|changeCount |The //new// changeCount value for this tiddler | |tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler | diff --git a/plugins/tiddlywiki/filesystem/filesystemadaptor.js b/plugins/tiddlywiki/filesystem/filesystemadaptor.js index 0ed686c84..1d2955ef0 100644 --- a/plugins/tiddlywiki/filesystem/filesystemadaptor.js +++ b/plugins/tiddlywiki/filesystem/filesystemadaptor.js @@ -75,7 +75,14 @@ FileSystemAdaptor.prototype.getTiddlerFileInfo = function(tiddler,callback) { /* Save a tiddler and invoke the callback with (err,adaptorInfo,revision) */ -FileSystemAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { +FileSystemAdaptor.prototype.saveTiddler = function(tiddler,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; var self = this; var syncerInfo = options.tiddlerInfo || {}; this.getTiddlerFileInfo(tiddler,function(err,fileInfo) { @@ -117,14 +124,28 @@ Load a tiddler and invoke the callback with (err,tiddlerFields) We don't need to implement loading for the file system adaptor, because all the tiddler files will have been loaded during the boot process. */ -FileSystemAdaptor.prototype.loadTiddler = function(title,callback) { +FileSystemAdaptor.prototype.loadTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; callback(null,null); }; /* Delete a tiddler and invoke the callback with (err) */ -FileSystemAdaptor.prototype.deleteTiddler = function(title,callback,options) { +FileSystemAdaptor.prototype.deleteTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; var self = this, fileInfo = this.boot.files[title]; // Only delete the tiddler if we have writable information for the file diff --git a/plugins/tiddlywiki/savetrail/savetrail.js b/plugins/tiddlywiki/savetrail/savetrail.js index ec6fe7c01..8c2dd1233 100644 --- a/plugins/tiddlywiki/savetrail/savetrail.js +++ b/plugins/tiddlywiki/savetrail/savetrail.js @@ -99,7 +99,14 @@ SaveTrailSyncAdaptor.prototype.getTiddlerInfo = function(tiddler) { /* Save a tiddler and invoke the callback with (err,adaptorInfo,revision) */ -SaveTrailSyncAdaptor.prototype.saveTiddler = function(tiddler,callback) { +SaveTrailSyncAdaptor.prototype.saveTiddler = function(tiddler,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; if($tw.wiki.checkTiddlerText(ENABLE_TIDDLER_TITLE,"yes")) { var isDraft = $tw.utils.hop(tiddler.fields,"draft.of"); if(!isDraft || $tw.wiki.checkTiddlerText(ENABLE_DRAFTS_TIDDLER_TITLE,"yes")) { @@ -112,14 +119,28 @@ SaveTrailSyncAdaptor.prototype.saveTiddler = function(tiddler,callback) { /* Load a tiddler and invoke the callback with (err,tiddlerFields) */ -SaveTrailSyncAdaptor.prototype.loadTiddler = function(title,callback) { +SaveTrailSyncAdaptor.prototype.loadTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; callback(null,null); }; /* Delete a tiddler and invoke the callback with (err) */ -SaveTrailSyncAdaptor.prototype.deleteTiddler = function(title,callback,options) { +SaveTrailSyncAdaptor.prototype.deleteTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; callback(null,null); }; diff --git a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js index ff4db2185..5c2db9492 100644 --- a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +++ b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js @@ -182,7 +182,14 @@ TiddlyWebAdaptor.prototype.getSkinnyTiddlers = function(callback) { /* Save a tiddler and invoke the callback with (err,adaptorInfo,revision) */ -TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { +TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; var self = this; if(this.isReadOnly) { return callback(null,options.tiddlerInfo.adaptorInfo); @@ -216,7 +223,14 @@ TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback,options) { /* Load a tiddler and invoke the callback with (err,tiddlerFields) */ -TiddlyWebAdaptor.prototype.loadTiddler = function(title,callback) { +TiddlyWebAdaptor.prototype.loadTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; var self = this; $tw.utils.httpRequest({ url: this.host + "recipes/" + encodeURIComponent(this.recipe) + "/tiddlers/" + encodeURIComponent(title), @@ -235,7 +249,14 @@ Delete a tiddler and invoke the callback with (err) options include: tiddlerInfo: the syncer's tiddlerInfo for this tiddler */ -TiddlyWebAdaptor.prototype.deleteTiddler = function(title,callback,options) { +TiddlyWebAdaptor.prototype.deleteTiddler = function(title,options,callback) { + // Check for pre v5.2.0 method signature: + if(typeof callback !== "function" && typeof options === "function"){ + var optionsArg = callback; + callback = options; + options = optionsArg; + } + options = options || {}; var self = this; if(this.isReadOnly) { return callback(null,options.tiddlerInfo.adaptorInfo); From fcea51bb95f6e5a379ccdef8600ff298e9f3ed09 Mon Sep 17 00:00:00 2001 From: Chris Nicoll <clutterstack@users.noreply.github.com> Date: Tue, 25 May 2021 16:06:30 -0400 Subject: [PATCH 17/32] Fix typo in saqimtiaz username (#5721) --- editions/prerelease/tiddlers/Release 5.1.24.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/Release 5.1.24.tid b/editions/prerelease/tiddlers/Release 5.1.24.tid index 8d732167f..0eca552c9 100644 --- a/editions/prerelease/tiddlers/Release 5.1.24.tid +++ b/editions/prerelease/tiddlers/Release 5.1.24.tid @@ -144,7 +144,7 @@ type: text/vnd.tiddlywiki * <<contributor NicolasPetton>> * <<contributor OdinJorna>> * <<contributor pmario>> -* <<contributor saqimtias>> +* <<contributor saqimtiaz>> * <<contributor simonbaird>> * <<contributor slaymaker1907>> * <<contributor twMat>> From 68930ceb1b0c186eaf78906bbc521f47fe3b5046 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 25 May 2021 23:18:37 +0200 Subject: [PATCH 18/32] Extend keyboard widget (#5648) --- core/modules/keyboard.js | 4 +- core/modules/widgets/keyboard.js | 39 ++++++----- editions/tw5.com/tiddlers/$__key-test.tid | 4 ++ .../tw5.com/tiddlers/$__key-test_action.tid | 11 ++++ .../tiddlers/Key Codes (Example 1).tid | 66 +++++++++++++++++++ .../tw5.com/tiddlers/Key Codes (Example).tid | 43 ++++++++++++ .../tiddlers/Keyboard Codes (Macros).tid | 50 ++++++++++++++ editions/tw5.com/tiddlers/Keyboard Codes.tid | 31 +++++++++ .../tiddlers/widgets/KeyboardWidget.tid | 19 +++++- 9 files changed, 248 insertions(+), 19 deletions(-) create mode 100644 editions/tw5.com/tiddlers/$__key-test.tid create mode 100644 editions/tw5.com/tiddlers/$__key-test_action.tid create mode 100644 editions/tw5.com/tiddlers/Key Codes (Example 1).tid create mode 100644 editions/tw5.com/tiddlers/Key Codes (Example).tid create mode 100644 editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid create mode 100644 editions/tw5.com/tiddlers/Keyboard Codes.tid diff --git a/core/modules/keyboard.js b/core/modules/keyboard.js index fa883f3dd..1ae9ba482 100644 --- a/core/modules/keyboard.js +++ b/core/modules/keyboard.js @@ -285,7 +285,7 @@ KeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) { }; KeyboardManager.prototype.getEventModifierKeyDescriptor = function(event) { - return event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? "ctrl" : + return event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ? "ctrl" : event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey ? "shift" : event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey ? "ctrl-shift" : event.altKey && !event.shiftKey && !event.ctrlKey && !event.metaKey ? "alt" : @@ -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-ctrl" : 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() { diff --git a/core/modules/widgets/keyboard.js b/core/modules/widgets/keyboard.js index 471d35e37..035e4e351 100644 --- a/core/modules/widgets/keyboard.js +++ b/core/modules/widgets/keyboard.js @@ -44,27 +44,36 @@ KeyboardWidget.prototype.render = function(parent,nextSibling) { classes.push("tc-keyboard"); domNode.className = classes.join(" "); // Add a keyboard event handler - domNode.addEventListener("keydown",function (event) { - if($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) { - var handled = self.invokeActions(self,event); - if(self.actions) { - self.invokeActionString(self.actions,self,event); - } - self.dispatchMessage(event); - if(handled || self.actions || self.message) { - event.preventDefault(); - event.stopPropagation(); - } - return true; - } - return false; - },false); + $tw.utils.addEventListeners(domNode,[ + {name: "keydown", handlerObject: this, handlerMethod: "handleChangeEvent"} + ]); // Insert element 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); + } + this.dispatchMessage(event); + if(handled || this.actions || this.message) { + event.preventDefault(); + event.stopPropagation(); + } + return true; + } + return false; +} + KeyboardWidget.prototype.dispatchMessage = function(event) { this.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable("currentTiddler")}); }; diff --git a/editions/tw5.com/tiddlers/$__key-test.tid b/editions/tw5.com/tiddlers/$__key-test.tid new file mode 100644 index 000000000..2504c9321 --- /dev/null +++ b/editions/tw5.com/tiddlers/$__key-test.tid @@ -0,0 +1,4 @@ +created: 20210525102327864 +modified: 20210525102327884 +title: $:/key-test +type: text/vnd.tiddlywiki \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/$__key-test_action.tid b/editions/tw5.com/tiddlers/$__key-test_action.tid new file mode 100644 index 000000000..79a726908 --- /dev/null +++ b/editions/tw5.com/tiddlers/$__key-test_action.tid @@ -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> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Key Codes (Example 1).tid b/editions/tw5.com/tiddlers/Key Codes (Example 1).tid new file mode 100644 index 000000000..3abe14699 --- /dev/null +++ b/editions/tw5.com/tiddlers/Key Codes (Example 1).tid @@ -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>> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Key Codes (Example).tid b/editions/tw5.com/tiddlers/Key Codes (Example).tid new file mode 100644 index 000000000..6f50863b2 --- /dev/null +++ b/editions/tw5.com/tiddlers/Key Codes (Example).tid @@ -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>> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid b/editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid new file mode 100644 index 000000000..4a652db25 --- /dev/null +++ b/editions/tw5.com/tiddlers/Keyboard Codes (Macros).tid @@ -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> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/Keyboard Codes.tid b/editions/tw5.com/tiddlers/Keyboard Codes.tid new file mode 100644 index 000000000..00e746d39 --- /dev/null +++ b/editions/tw5.com/tiddlers/Keyboard Codes.tid @@ -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]]">> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid b/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid index 70ca38f46..ce9e3b3e0 100644 --- a/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/KeyboardWidget.tid @@ -1,6 +1,7 @@ caption: keyboard created: 20140302192136805 -modified: 20161003114634019 +list: [[Keyboard Codes]] [[Key Codes (Example)]] [[Key Codes (Example 1)]] [[Possible Keys (Example 2)]] +modified: 20210525102143381 tags: Widgets title: KeyboardWidget type: text/vnd.tiddlywiki @@ -14,13 +15,23 @@ The keyboard widget allows ActionWidgets to be triggered by specific key combina The content of the `<$keyboard>` widget is rendered normally. The keyboard shortcuts only take effect when the focus is within the contained content. |!Attribute |!Description | -|actions |A string containing ActionWidgets to be triggered when the key combination is detected | +|actions |A string containing ActionWidgets to be triggered when the key combination is detected<br><<.from-version "5.2.0">> The variables: ''event-key'', ''event-code'' and ''modifier'' are available for the actions | |message |The title of the [[WidgetMessage|Messages]] to generate | |param |The parameter to be passed with the [[WidgetMessage|Messages]] | |key |Key string identifying the key(s) to be trapped (see below) | |class |A CSS class to be assigned to the generated HTML DIV element | |tag|<<.from-version "5.1.14">> The html element the widget creates to capture the keyboard event, defaults to:<br>» `span` when parsed in inline-mode<br>» `div` when parsed in block-mode| +! Variables + +<<.from-version "5.2.0">> The following variables are made available to the actions: + +|column-1-20 |k +|!Variables |!Description | +|`event-key` |The <<.var event-key>> variable contains the character, if possible. eg: `1`. You can experiment with some settings at: [[Key Codes (Example)]] | +|`event-code` |The <<.var event-code>> variable contains a character description. eg: `Digit1` instead of `1`. Or `Space` instead of an empty string ` `, which is hard to see| +|`modifier` |The [[modifier Variable]] contains the Modifier Key held during the event (can be <kbd>normal</kbd>, <kbd>ctrl</kbd>, <kbd>shift</kbd>, <kbd>alt</kbd> or combinations thereof) | + ! Key Strings Key strings are made up of one or more key specifiers separated by spaces. Each key specifier is zero or more of the modifiers <kbd>alt</kbd>, <kbd>shift</kbd>, <kbd>ctrl</kbd> or <kbd>meta</kbd> followed by the name of a key, all joined with "+" plus or "-" minus symbols. Key names are either the letter or digit printed on the key (eg "a" or "1"), or one of the special keys <kbd>backspace</kbd>, <kbd>tab</kbd>, <kbd>enter</kbd> or <kbd>escape</kbd>. @@ -43,3 +54,7 @@ shift+escape ctrl+enter ctrl+shift+alt+A ``` + +! More Info + +<<list-links "[tag[KeyboardWidget]]">> From 123666c240ae611fff2675d886c393669dba1729 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 25 May 2021 23:19:58 +0200 Subject: [PATCH 19/32] Add th-before-importing hook mechanism (#5464) --- core/modules/widgets/navigator.js | 9 ++- .../new/Hook_ th-before-importing.tid | 68 +++++++++++++++++++ .../new/Hook__th-importing-tiddler.tid | 4 +- 3 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 editions/dev/tiddlers/new/Hook_ th-before-importing.tid diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index 02eee8c43..e1e9e921e 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -557,10 +557,12 @@ NavigatorWidget.prototype.handleImportTiddlersEvent = function(event) { NavigatorWidget.prototype.handlePerformImportEvent = function(event) { var self = this, importTiddler = this.wiki.getTiddler(event.param), - importData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}), + importData, importReport = []; - // Add the tiddlers to the store 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) { var title = tiddlerFields.title; if(title && importTiddler && importTiddler.fields["selection-" + title] !== "unchecked") { @@ -569,7 +571,10 @@ NavigatorWidget.prototype.handlePerformImportEvent = function(event) { } else { 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); + // Add the tiddlers to the store self.wiki.addTiddler(tiddler); importReport.push("# [[" + tiddler.fields.title + "]]"); } diff --git a/editions/dev/tiddlers/new/Hook_ th-before-importing.tid b/editions/dev/tiddlers/new/Hook_ th-before-importing.tid new file mode 100644 index 000000000..19157566f --- /dev/null +++ b/editions/dev/tiddlers/new/Hook_ th-before-importing.tid @@ -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; + }); +}; + +})(); + +``` \ No newline at end of file diff --git a/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid b/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid index 6b9b533f9..a560071e6 100644 --- a/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid +++ b/editions/dev/tiddlers/new/Hook__th-importing-tiddler.tid @@ -1,11 +1,13 @@ created: 20170209130829546 -modified: 20171010115148355 +modified: 20210203190724491 tags: HookMechanism title: Hook: th-importing-tiddler 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. +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. Hook function parameters: From c6ed4aa84e5e08ce16d4b0c4037ee277a8e021d1 Mon Sep 17 00:00:00 2001 From: Mario Pietsch <pmariojo@gmail.com> Date: Tue, 25 May 2021 23:21:57 +0200 Subject: [PATCH 20/32] allow us to import formerly blocked system tiddlers (#5479) --- core/language/en-GB/Import.multids | 4 ++++ core/modules/upgraders/system.js | 11 +++++------ core/modules/widgets/navigator.js | 7 ++++++- core/ui/ImportListing.tid | 21 ++++++++++++++++++++- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/core/language/en-GB/Import.multids b/core/language/en-GB/Import.multids index 24b29c3f7..77e00a111 100644 --- a/core/language/en-GB/Import.multids +++ b/core/language/en-GB/Import.multids @@ -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/Upgraded: Upgraded plugin from <<incoming>> to <<upgraded>>. Upgrader/State/Suppressed: Blocked temporary state tiddler. +Upgrader/System/Disabled: Disabled system tiddler. Upgrader/System/Suppressed: Blocked system 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/ThemeTweaks/Created: Migrated theme tweak from <$text text=<<from>>/>. +Upgrader/Tiddler/Disabled: Disabled tiddler. +Upgrader/Tiddler/Selected: User selected. +Upgrader/Tiddler/Unselected: Unselected tiddler. diff --git a/core/modules/upgraders/system.js b/core/modules/upgraders/system.js index de7c48f52..a93a57712 100644 --- a/core/modules/upgraders/system.js +++ b/core/modules/upgraders/system.js @@ -12,8 +12,8 @@ Upgrader module that suppresses certain system tiddlers that shouldn't be import /*global $tw: false */ "use strict"; -var DONT_IMPORT_LIST = ["$:/StoryList","$:/HistoryList"], - DONT_IMPORT_PREFIX_LIST = ["$:/temp/","$:/state/","$:/Import"], +var DONT_IMPORT_LIST = ["$:/Import"], + UNSELECT_PREFIX_LIST = ["$:/temp/","$:/state/","$:/StoryList","$:/HistoryList"], WARN_IMPORT_PREFIX_LIST = ["$:/core/modules/"]; exports.upgrade = function(wiki,titles,tiddlers) { @@ -26,11 +26,10 @@ exports.upgrade = function(wiki,titles,tiddlers) { tiddlers[title] = Object.create(null); messages[title] = $tw.language.getString("Import/Upgrader/System/Suppressed"); } else { - for(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) { - var prefix = DONT_IMPORT_PREFIX_LIST[t]; + for(var t=0; t<UNSELECT_PREFIX_LIST.length; t++) { + var prefix = UNSELECT_PREFIX_LIST[t]; if(title.substr(0,prefix.length) === prefix) { - tiddlers[title] = Object.create(null); - messages[title] = $tw.language.getString("Import/Upgrader/State/Suppressed"); + messages[title] = $tw.language.getString("Import/Upgrader/Tiddler/Unselected"); } } for(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) { diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index e1e9e921e..75ad59a69 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -522,10 +522,15 @@ NavigatorWidget.prototype.handleImportTiddlersEvent = function(event) { }); // Give the active upgrader modules a chance to process the incoming 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) { 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) { if($tw.utils.count(tiddler) === 0) { newFields["selection-" + title] = "unchecked"; diff --git a/core/ui/ImportListing.tid b/core/ui/ImportListing.tid index 04ccd9a79..c53be5b18 100644 --- a/core/ui/ImportListing.tid +++ b/core/ui/ImportListing.tid @@ -12,6 +12,24 @@ title: $:/core/ui/ImportListing </$list> \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 renameField() rename-$(payloadTiddler)$ @@ -69,7 +87,8 @@ title: $:/core/ui/ImportListing </$reveal> </td> <td> -<$view field=<<messageField>>/> +<<selectionInfo>> +<<libraryInfo>> <<overWriteWarning>> </td> </tr> From eaf1da66b63828c9226b9c77400f1e35d7a85c0e Mon Sep 17 00:00:00 2001 From: Simon Huber <huber.simon@protonmail.com> Date: Tue, 25 May 2021 23:22:21 +0200 Subject: [PATCH 21/32] Add color-scheme: dark/light to the root element ... (#5720) --- core/palettes/Blanca.tid | 1 + core/palettes/Blue.tid | 1 + core/palettes/BrightMute.tid | 1 + core/palettes/ContrastDark.tid | 1 + core/palettes/ContrastLight.tid | 1 + core/palettes/CupertinoDark.tid | 1 + core/palettes/DarkPhotos.tid | 1 + core/palettes/DesertSand.tid | 1 + core/palettes/GruvBoxDark.tid | 1 + core/palettes/Nord.tid | 1 + core/palettes/Rocker.tid | 1 + core/palettes/SolarFlare.tid | 1 + core/palettes/SolarizedDark.tid | 1 + core/palettes/SolarizedLight.tid | 1 + core/palettes/SpartanDay.tid | 1 + core/palettes/SpartanNight.tid | 1 + core/palettes/Twilight.tid | 1 + core/palettes/Vanilla.tid | 1 + themes/tiddlywiki/vanilla/base.tid | 4 ++++ 19 files changed, 22 insertions(+) diff --git a/core/palettes/Blanca.tid b/core/palettes/Blanca.tid index 5c5afa878..f86705443 100644 --- a/core/palettes/Blanca.tid +++ b/core/palettes/Blanca.tid @@ -1,5 +1,6 @@ title: $:/palettes/Blanca name: Blanca +color-scheme: light description: A clean white palette to let you focus tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/Blue.tid b/core/palettes/Blue.tid index 38a6a3e4a..e3aa21952 100644 --- a/core/palettes/Blue.tid +++ b/core/palettes/Blue.tid @@ -1,5 +1,6 @@ title: $:/palettes/Blue name: Blue +color-scheme: light description: A blue theme tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/BrightMute.tid b/core/palettes/BrightMute.tid index 9c1d3003e..64193c1ce 100644 --- a/core/palettes/BrightMute.tid +++ b/core/palettes/BrightMute.tid @@ -1,5 +1,6 @@ title: $:/palettes/Muted name: Muted +color-scheme: light description: Bright tiddlers on a muted background tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/ContrastDark.tid b/core/palettes/ContrastDark.tid index e12944bf7..ded11b835 100644 --- a/core/palettes/ContrastDark.tid +++ b/core/palettes/ContrastDark.tid @@ -1,5 +1,6 @@ title: $:/palettes/ContrastLight name: Contrast (Light) +color-scheme: light description: High contrast and unambiguous (light version) tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/ContrastLight.tid b/core/palettes/ContrastLight.tid index 04280d08e..d3eb2f731 100644 --- a/core/palettes/ContrastLight.tid +++ b/core/palettes/ContrastLight.tid @@ -1,5 +1,6 @@ title: $:/palettes/ContrastDark name: Contrast (Dark) +color-scheme: dark description: High contrast and unambiguous (dark version) tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/CupertinoDark.tid b/core/palettes/CupertinoDark.tid index f0930f548..956602a0f 100644 --- a/core/palettes/CupertinoDark.tid +++ b/core/palettes/CupertinoDark.tid @@ -1,5 +1,6 @@ title: $:/palettes/CupertinoDark tags: $:/tags/Palette +color-scheme: dark name: Cupertino Dark description: A macOS inspired dark palette type: application/x-tiddler-dictionary diff --git a/core/palettes/DarkPhotos.tid b/core/palettes/DarkPhotos.tid index 2a135f253..4e1949c04 100644 --- a/core/palettes/DarkPhotos.tid +++ b/core/palettes/DarkPhotos.tid @@ -5,6 +5,7 @@ name: DarkPhotos tags: $:/tags/Palette title: $:/palettes/DarkPhotos type: application/x-tiddler-dictionary +color-scheme: light alert-background: #ffe476 alert-border: #b99e2f diff --git a/core/palettes/DesertSand.tid b/core/palettes/DesertSand.tid index ab345d11f..40056962b 100644 --- a/core/palettes/DesertSand.tid +++ b/core/palettes/DesertSand.tid @@ -1,5 +1,6 @@ title: $:/palettes/DesertSand tags: $:/tags/Palette +color-scheme: light name: Desert Sand description: A desert sand palette type: application/x-tiddler-dictionary diff --git a/core/palettes/GruvBoxDark.tid b/core/palettes/GruvBoxDark.tid index 494a9349b..1fa5633c9 100644 --- a/core/palettes/GruvBoxDark.tid +++ b/core/palettes/GruvBoxDark.tid @@ -1,5 +1,6 @@ title: $:/palettes/GruvboxDark name: Gruvbox Dark +color-scheme: dark description: Retro groove color scheme tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/Nord.tid b/core/palettes/Nord.tid index 7af3b01e4..e330b3d0a 100644 --- a/core/palettes/Nord.tid +++ b/core/palettes/Nord.tid @@ -1,5 +1,6 @@ title: $:/palettes/Nord name: Nord +color-scheme: dark description: An arctic, north-bluish color palette. tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/Rocker.tid b/core/palettes/Rocker.tid index 79a253721..bc7d2ded6 100644 --- a/core/palettes/Rocker.tid +++ b/core/palettes/Rocker.tid @@ -1,5 +1,6 @@ title: $:/palettes/Rocker name: Rocker +color-scheme: dark description: A dark theme tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/SolarFlare.tid b/core/palettes/SolarFlare.tid index 5622b29af..e72815657 100644 --- a/core/palettes/SolarFlare.tid +++ b/core/palettes/SolarFlare.tid @@ -1,5 +1,6 @@ title: $:/palettes/SolarFlare name: Solar Flare +color-scheme: light description: Warm, relaxing earth colours tags: $:/tags/Palette type: application/x-tiddler-dictionary diff --git a/core/palettes/SolarizedDark.tid b/core/palettes/SolarizedDark.tid index 2a0fd5e8a..f193bff1c 100644 --- a/core/palettes/SolarizedDark.tid +++ b/core/palettes/SolarizedDark.tid @@ -4,6 +4,7 @@ type: application/x-tiddler-dictionary description: Precision dark colors for machines and people license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE name: SolarizedDark +color-scheme: dark alert-background: #073642 alert-border: #93a1a1 diff --git a/core/palettes/SolarizedLight.tid b/core/palettes/SolarizedLight.tid index 3c6979ec6..4bcec81d6 100644 --- a/core/palettes/SolarizedLight.tid +++ b/core/palettes/SolarizedLight.tid @@ -4,6 +4,7 @@ type: application/x-tiddler-dictionary description: Precision colors for machines and people license: MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE name: SolarizedLight +color-scheme: light alert-background: #eee8d5 alert-border: #586e75 diff --git a/core/palettes/SpartanDay.tid b/core/palettes/SpartanDay.tid index 8f722d029..3cd8337a7 100644 --- a/core/palettes/SpartanDay.tid +++ b/core/palettes/SpartanDay.tid @@ -3,6 +3,7 @@ tags: $:/tags/Palette type: application/x-tiddler-dictionary description: Cold, spartan day colors name: Spartan Day +color-scheme: light alert-background: <<colour background>> alert-border: <<colour very-muted-foreground>> diff --git a/core/palettes/SpartanNight.tid b/core/palettes/SpartanNight.tid index f4f672af3..1962c4782 100644 --- a/core/palettes/SpartanNight.tid +++ b/core/palettes/SpartanNight.tid @@ -3,6 +3,7 @@ tags: $:/tags/Palette type: application/x-tiddler-dictionary description: Dark spartan colors name: Spartan Night +color-scheme: dark alert-background: <<colour background>> alert-border: <<colour very-muted-foreground>> diff --git a/core/palettes/Twilight.tid b/core/palettes/Twilight.tid index d90fef328..ff8a0b956 100644 --- a/core/palettes/Twilight.tid +++ b/core/palettes/Twilight.tid @@ -4,6 +4,7 @@ author: Thomas Elmiger type: application/x-tiddler-dictionary name: Twilight description: Delightful, soft darkness. +color-scheme: dark alert-background: rgb(255, 255, 102) alert-border: rgb(232, 232, 125) diff --git a/core/palettes/Vanilla.tid b/core/palettes/Vanilla.tid index 399bf1ac8..d3c7b1441 100644 --- a/core/palettes/Vanilla.tid +++ b/core/palettes/Vanilla.tid @@ -3,6 +3,7 @@ name: Vanilla description: Pale and unobtrusive tags: $:/tags/Palette type: application/x-tiddler-dictionary +color-scheme: light alert-background: #ffe476 alert-border: #b99e2f diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 7ed449afb..30a65926a 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -333,6 +333,10 @@ table tfoot tr td { height: 600px; } +:root { + color-scheme: {{{ [{$:/palette}get[color-scheme]] }}}; +} + /* ** Links */ From 903cfd98a6f4f0ef71ddadae90fa3d0edd5127c5 Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Wed, 26 May 2021 14:54:05 +0800 Subject: [PATCH 22/32] Update chinese translations (#5704) --- languages/zh-Hans/Import.multids | 5 +++++ languages/zh-Hant/Import.multids | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/languages/zh-Hans/Import.multids b/languages/zh-Hans/Import.multids index a1320b5c4..f7bcdefaf 100644 --- a/languages/zh-Hans/Import.multids +++ b/languages/zh-Hans/Import.multids @@ -1,5 +1,6 @@ title: $:/language/Import/ +Editor/Import/Heading: 导入图像并插入至编辑器。 Imported/Hint: 下列条目已被导入: Listing/Cancel/Caption: 取消 Listing/Hint: 这些条目已备妥导入: @@ -22,7 +23,11 @@ Upgrader/Plugins/Suppressed/Incompatible: 封锁的不兼容或过时插件。 Upgrader/Plugins/Suppressed/Version: 封锁的插件 (由于传入的 <<incoming>> 不比现有版本 <<existing>> 新)。 Upgrader/Plugins/Upgraded: 升级插件,从 <<incoming>> 到 <<upgraded>>。 Upgrader/State/Suppressed: 封锁的暂存状态条目。 +Upgrader/System/Disabled: 已禁用系統条目。 Upgrader/System/Suppressed: 封锁的系统条目。 Upgrader/System/Warning: 核心模块条目。 Upgrader/System/Alert: 您即将导入一个条目会覆盖一个核心模块条目。不建议这样做,因为可能会使系统不稳定。 Upgrader/ThemeTweaks/Created: 从 <$text text=<<from>>/> 迁移布景主题。 +Upgrader/Tiddler/Disabled: 已禁用系統条目。 +Upgrader/Tiddler/Selected: 用户选定。 +Upgrader/Tiddler/Unselected: 未选定的条目 \ No newline at end of file diff --git a/languages/zh-Hant/Import.multids b/languages/zh-Hant/Import.multids index d87935929..dfcb7a0e9 100644 --- a/languages/zh-Hant/Import.multids +++ b/languages/zh-Hant/Import.multids @@ -1,5 +1,6 @@ title: $:/language/Import/ +Editor/Import/Heading: 導入圖像並插入至編輯器。 Imported/Hint: 下列條目已被導入: Listing/Cancel/Caption: 取消 Listing/Hint: 這些條目已備妥導入: @@ -22,7 +23,11 @@ Upgrader/Plugins/Suppressed/Incompatible: 封鎖的不相容或過時插件。 Upgrader/Plugins/Suppressed/Version: 封鎖的插件 (由於傳入的 <<incoming>> 不比現有版本 <<existing>> 新)。 Upgrader/Plugins/Upgraded: 升級插件,從 <<incoming>> 到 <<upgraded>>。 Upgrader/State/Suppressed: 封鎖的暫存狀態條目。 +Upgrader/System/Disabled: 停用系統條目。 Upgrader/System/Suppressed: 封鎖的系統條目。 Upgrader/System/Warning: 核心模組條目。 Upgrader/System/Alert: 您即將導入一個條目會覆蓋一個核心模組條目。不建議這樣做,因為可能會使系統不穩定。 Upgrader/ThemeTweaks/Created: 從 <$text text=<<from>>/> 遷移佈景主題。 +Upgrader/Tiddler/Disabled: 停用條目。 +Upgrader/Tiddler/Selected: 使用者選定。 +Upgrader/Tiddler/Unselected: 未選定的條目。 From 082aeb92ac251c9771edd97ebe7aaa7c184f4fe9 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Wed, 26 May 2021 13:25:19 +0100 Subject: [PATCH 23/32] Revert "extend lookup op flexibility with 2 parameters (#5315)" This reverts commit 81b5fe944a8ebdb27b9972d3fa7093fe5f5ce68c. See https://github.com/Jermolene/TiddlyWiki5/pull/5315#issuecomment-848725198 for explanation --- core/modules/filters/lookup.js | 39 +++---------------- .../examples/lookup Operator (Examples).tid | 5 +-- .../tiddlers/filters/lookup Operator.tid | 36 +++++------------ 3 files changed, 17 insertions(+), 63 deletions(-) diff --git a/core/modules/filters/lookup.js b/core/modules/filters/lookup.js index 4af4ac681..2174e8c47 100644 --- a/core/modules/filters/lookup.js +++ b/core/modules/filters/lookup.js @@ -5,11 +5,9 @@ module-type: filteroperator Filter operator that looks up values via a title prefix -[lookup:<defaultvalue>:<field OR index>[<prefix>],[<field-name OR index-name>]] +[lookup:<field>[<prefix>]] -Prepends the prefix to the selected items and returns the specified -field or index value. If the 2nd suffix does not exist, it defaults to field. -If the second operand is missing it defaults to "text" for fields, and "0" for indexes +Prepends the prefix to the selected items and returns the specified field value \*/ (function(){ @@ -22,35 +20,10 @@ If the second operand is missing it defaults to "text" for fields, and "0" for i Export our filter function */ exports.lookup = function(source,operator,options) { - var results = [], - suffixes = operator.suffixes || [], - defaultSuffix = suffixes[0] ? (suffixes[0][0] || "") : "", - indexSuffix = (suffixes[1] && suffixes[1][0] === "index") ? true : false, - target; - if(operator.operands.length == 2) { - target = operator.operands[1] - } else { - target = indexSuffix ? "0": "text"; - } - if(indexSuffix) { - source(function(tiddler,title) { - var targetTitle = operator.operands[0] + title; - var data = options.wiki.extractTiddlerDataItem(targetTitle,target,defaultSuffix); - results.push(data); - }); - } else { - source(function(tiddler,title) { - var targetTitle = operator.operands[0] + title; - var targetTiddler = options.wiki.getTiddler(targetTitle); - if(targetTiddler) { - var value = targetTiddler.getFieldString(target); - if(value == "" && defaultSuffix !== "") { - value = defaultSuffix; - } - results.push(value); - } - }); - } + var results = []; + source(function(tiddler,title) { + results.push(options.wiki.getTiddlerText(operator.operand + title) || operator.suffix || ''); + }); return results; }; diff --git a/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid b/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid index e923e8d5c..052e1d2bd 100644 --- a/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid +++ b/editions/tw5.com/tiddlers/filters/examples/lookup Operator (Examples).tid @@ -1,10 +1,7 @@ created: 20170907144257037 -modified: 20201224034837935 +modified: 20170907144559822 title: lookup Operator (Examples) type: text/vnd.tiddlywiki <<.operator-example 1 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button">> <<.operator-example 2 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup:show[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button, this time with a default value">> -<<.operator-example 3 "[all[tiddlers]has[plugin-type]removeprefix[$:/plugins/tiddlywiki/]lookup:missing-description:field[$:/plugins/tiddlywiki/],[description]]" "Retrieve the description of all plugin-tiddlers that are in the `$:/plugins/tiddlywiki/` namespace.">> -<<.operator-example 4 "OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[HelloThere]]" "Lookup the original tiddler path on disk for the [[Hello There]] tiddler.">> -<<.operator-example 5 "OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[MissingTiddler]]" "Lookup the original tiddler path on disk for the [[MissingTiddler]] tiddler.">> diff --git a/editions/tw5.com/tiddlers/filters/lookup Operator.tid b/editions/tw5.com/tiddlers/filters/lookup Operator.tid index 4262564a4..9cbd6d5b5 100644 --- a/editions/tw5.com/tiddlers/filters/lookup Operator.tid +++ b/editions/tw5.com/tiddlers/filters/lookup Operator.tid @@ -1,40 +1,24 @@ caption: lookup created: 20170907103639431 -modified: 20210116081305739 +modified: 20170907144703051 op-input: a [[selection of titles|Title Selection]] -op-output: the lookup values corresponding to each lookup tiddler -op-parameter: prefix applied to input titles to yield title of lookup tiddler from which value is retrieved. Now accepts 1 or 2 parameters, see below for details -op-parameter-name: P, T -op-purpose: applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index. -op-suffix: the default value to be used for missing lookups. This operator can now accept a second suffix, see below for details -op-suffix-name: D, I +op-output: the lookup values corresponding to each input title +op-parameter: prefix applied to input titles to yield title of lookup tiddler from which value is retrieved +op-parameter-name: P +op-purpose: applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved +op-suffix: the default value to be used for missing lookups +op-suffix-name: D tags: [[Filter Operators]] title: lookup Operator type: text/vnd.tiddlywiki <<.from-version "5.1.15">> -The action of this operator is as follows with 1 parameter: +The action of this operator is as follows: * Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles -* Transclude the value of the `text` field each of those tiddlers -** Substitute the default value for missing or empty values -* Return the list of values - -<<.from-version "5.1.24">> - -The action of this operator is as follows with 2 parameters: - -If there are two parameters provided, use the second parameter as the target field or index. - -<<.note """If there is only one parameter given, the filter checks for a second suffix equal to "index". If this suffix is found, the default target index is "0". -In all other cases, the default target field is "text".""">> - -Then: - -* Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles -* Transclude the value of the target field or index -** Substitute the default value for missing or empty values +* Transclude the value of each of those tiddlers +** Substitute the default value for missing or empty tiddlers * Return the list of values <<.operator-examples "lookup">> From 3a740b23bb80c12c802df4e352af67bd87248ea1 Mon Sep 17 00:00:00 2001 From: Simon Huber <huber.simon@protonmail.com> Date: Thu, 27 May 2021 15:07:50 +0200 Subject: [PATCH 24/32] Add tc-small-gap-right to tag-pills in tags editTemplate (#5727) --- core/ui/EditTemplate/tags.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/ui/EditTemplate/tags.tid b/core/ui/EditTemplate/tags.tid index 0dd0dd774..f01bcb4ac 100644 --- a/core/ui/EditTemplate/tags.tid +++ b/core/ui/EditTemplate/tags.tid @@ -14,7 +14,7 @@ color:$(foregroundColor)$; \define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:"tags") \whitespace trim <$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" /> <$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> From e694145eeca56abf9817e17ec2080048189d759b Mon Sep 17 00:00:00 2001 From: Joe Bordes <joe@tsolucio.com> Date: Sun, 30 May 2021 19:49:03 +0200 Subject: [PATCH 25/32] i18n(es-ES) update to version 5.1.23 (#5731) --- languages/es-ES/Buttons.multids | 35 ++++- languages/es-ES/ControlPanel.multids | 134 +++++++++++++----- languages/es-ES/Dates.multids | 12 +- languages/es-ES/Docs/ModuleTypes.multids | 8 ++ languages/es-ES/Docs/PaletteColours.multids | 109 ++++++++++++++ languages/es-ES/EditTemplate.multids | 29 ++-- languages/es-ES/Exporters.multids | 4 +- languages/es-ES/Fields.multids | 11 +- languages/es-ES/Filters.multids | 18 +-- languages/es-ES/GettingStarted.tid | 1 + languages/es-ES/Help/deletetiddlers.tid | 8 ++ languages/es-ES/Help/fetch.tid | 38 +++++ languages/es-ES/Help/import.tid | 24 ++++ languages/es-ES/Help/init.tid | 8 +- languages/es-ES/Help/listen.tid | 35 +++++ languages/es-ES/Help/load.tid | 7 +- languages/es-ES/Help/makelibrary.tid | 4 +- languages/es-ES/Help/password.tid | 3 +- languages/es-ES/Help/render.tid | 35 +++++ languages/es-ES/Help/rendertiddler.tid | 17 ++- languages/es-ES/Help/rendertiddlers.tid | 12 +- languages/es-ES/Help/save.tid | 25 ++++ languages/es-ES/Help/savetiddler.tid | 5 +- languages/es-ES/Help/savetiddlers.tid | 9 +- languages/es-ES/Help/savewikifolder.tid | 19 +++ languages/es-ES/Help/server.tid | 20 +-- languages/es-ES/Import.multids | 26 +++- languages/es-ES/Misc.multids | 93 +++++++++--- languages/es-ES/NewJournalTags.tid | 3 + languages/es-ES/Notifications.multids | 4 +- languages/es-ES/Search.multids | 1 + languages/es-ES/SideBar.multids | 1 + languages/es-ES/ThemeTweaks.multids | 42 ++++++ languages/es-ES/TiddlerInfo.multids | 4 +- ...ascript.tid => application_javascript.tid} | 1 + ...cation%2Fjson.tid => application_json.tid} | 1 + ...d => application_x_tiddler_dictionary.tid} | 1 + .../Types/{image%2Fgif.tid => image_gif.tid} | 1 + .../{image%2Fjpeg.tid => image_jpeg.tid} | 1 + .../Types/{image%2Fpng.tid => image_png.tid} | 1 + ...mage%2Fsvg%2Bxml.tid => image_svg_xml.tid} | 1 + .../{image%2Fx-icon.tid => image_x-icon.tid} | 1 + .../Types/{text%2Fcss.tid => text_css.tid} | 1 + .../Types/{text%2Fhtml.tid => text_html.tid} | 1 + .../{text%2Fplain.tid => text_plain.tid} | 1 + ...tiddlywiki.tid => text_vnd.tiddlywiki.tid} | 1 + ...x-tiddlywiki.tid => text_x-tiddlywiki.tid} | 1 + languages/es-ES/plugin.info | 6 +- 48 files changed, 686 insertions(+), 137 deletions(-) create mode 100644 languages/es-ES/Docs/PaletteColours.multids create mode 100644 languages/es-ES/Help/deletetiddlers.tid create mode 100644 languages/es-ES/Help/fetch.tid create mode 100644 languages/es-ES/Help/import.tid create mode 100644 languages/es-ES/Help/listen.tid create mode 100644 languages/es-ES/Help/render.tid create mode 100644 languages/es-ES/Help/save.tid create mode 100644 languages/es-ES/Help/savewikifolder.tid create mode 100644 languages/es-ES/NewJournalTags.tid create mode 100644 languages/es-ES/ThemeTweaks.multids rename languages/es-ES/Types/{application%2Fjavascript.tid => application_javascript.tid} (90%) rename languages/es-ES/Types/{application%2Fjson.tid => application_json.tid} (89%) rename languages/es-ES/Types/{application%2Fx-tiddler-dictionary.tid => application_x_tiddler_dictionary.tid} (91%) rename languages/es-ES/Types/{image%2Fgif.tid => image_gif.tid} (87%) rename languages/es-ES/Types/{image%2Fjpeg.tid => image_jpeg.tid} (87%) rename languages/es-ES/Types/{image%2Fpng.tid => image_png.tid} (87%) rename languages/es-ES/Types/{image%2Fsvg%2Bxml.tid => image_svg_xml.tid} (88%) rename languages/es-ES/Types/{image%2Fx-icon.tid => image_x-icon.tid} (89%) rename languages/es-ES/Types/{text%2Fcss.tid => text_css.tid} (89%) rename languages/es-ES/Types/{text%2Fhtml.tid => text_html.tid} (88%) rename languages/es-ES/Types/{text%2Fplain.tid => text_plain.tid} (87%) rename languages/es-ES/Types/{text%2Fvnd.tiddlywiki.tid => text_vnd.tiddlywiki.tid} (89%) rename languages/es-ES/Types/{text%2Fx-tiddlywiki.tid => text_x-tiddlywiki.tid} (89%) diff --git a/languages/es-ES/Buttons.multids b/languages/es-ES/Buttons.multids index 326119583..56271cd72 100644 --- a/languages/es-ES/Buttons.multids +++ b/languages/es-ES/Buttons.multids @@ -6,8 +6,8 @@ Bold/Caption: Negrita Bold/Hint: Aplicar formato de negrita a la selección Cancel/Caption: Cancelar Cancel/Hint: Descarta los cambios -Clear/Caption: *clear -Clear/Hint: *Clear image to solid colour +Clear/Caption: Limpiar +Clear/Hint: Limpiar imagen a color solido Clone/Caption: Clonar Clone/Hint: Hace una copia exacta de este tiddler Close/Caption: Cerrar @@ -18,6 +18,8 @@ CloseOthers/Caption: Cerrar los demás CloseOthers/Hint: Cierra todos tiddlers abiertos excepto este ControlPanel/Caption: Panel de Control ControlPanel/Hint: Abre el Panel de Control +CopyToClipboard/Caption: copiar a portapapeles +CopyToClipboard/Hint: Copia este texto al portapapeles Delete/Caption: Borrar Delete/Hint: Borra este tiddler Edit/Caption: Editar @@ -38,6 +40,7 @@ Excise/Caption/MacroName: Nombre de la macro Excise/Caption/NewTitle: Título del nuevo tiddler Excise/Caption/Replace: Reemplazar texto escindido con: Excise/Caption/Replace/Link: enlace +Excise/Caption/Replace/Macro: macro Excise/Caption/Replace/Transclusion: transclusión Excise/Caption/Tag: Etiqueta el nuevo tiddler con el título de este Excise/Caption/TiddlerExists: ¡Atención! El tiddler ya existe @@ -86,10 +89,16 @@ Language/Caption: Idioma Language/Hint: Selecciona idioma de la interfaz de usuario LineWidth/Caption: Ancho del trazo LineWidth/Hint: Establece el ancho del trazo para pintar +Link/Caption: Enlace +Link/Hint: Crea enlace wikitext +Linkify/Caption: wikilink +Linkify/Hint: Envuelva la selección entre corchetes ListBullet/Caption: Lista con viñetas ListBullet/Hint: Aplica formato de lista con viñetas a la selección ListNumber/Caption: Lista numerada ListNumber/Hint: Aplica formato de lista numerada a la selección +Manager/Caption: Administrador tiddler +Manager/Hint: Abre el administrador del tiddler MonoBlock/Caption: Bloque monoespaciado MonoBlock/Hint: Aplica formato de bloque monoespaciado a la selección MonoLine/Caption: Monoespacio @@ -108,15 +117,15 @@ NewMarkdown/Caption: Nuevo tiddler en Markdown NewMarkdown/Hint: Crea un nuevo tiddler en Markdown NewTiddler/Caption: Nuevo tiddler NewTiddler/Hint: Crea un tiddler nuevo -OpenWindow/Caption: Abrir en ventana nueva -OpenWindow/Hint: Abre el tiddler en una nueva ventana Opacity/Caption: Opacidad Opacity/Hint: Establece la opacidad del trazo +OpenWindow/Caption: Abrir en ventana nueva +OpenWindow/Hint: Abre el tiddler en una nueva ventana Paint/Caption: Color del trazo Paint/Hint: Establece el color del trazo Palette/Caption: Paleta Palette/Hint: Selecciona la paleta de color -Permalink/Caption: Permalink +Permalink/Caption: Enlace permanente Permalink/Hint: Crea en la barra de direcciones del navegador un enlace directo a este tiddler Permaview/Caption: Permaview Permaview/Hint: Crea en la barra de direcciones del navegador un enlace directo a todos los tiddlers abiertos @@ -126,16 +135,21 @@ Preview/Caption: Vista previa Preview/Hint: Muestra el panel de vista previa PreviewType/Caption: Tipo de vista previa PreviewType/Hint: Selecciona el tipo de vista previa +Print/Caption: Imprimir página +Print/Hint: Imprime la página actual Quote/Caption: Bloque de cita Quote/Hint: Aplica formato de bloque de cita a la selección Refresh/Caption: Recargar Refresh/Hint: Actualiza completamente este wiki -Save/Caption: Ok +RotateLeft/Caption: girar a la izquierda +RotateLeft/Hint: Girar la imagen a la izquierda 90 grados +Save/Caption: Vale Save/Hint: Confirma y guarda los cambios realizados en el tiddler SaveWiki/Caption: Guardar cambios SaveWiki/Hint: Confirma y guarda todos los cambios realizados en el wiki ShowSideBar/Caption: Mostrar barra lateral ShowSideBar/Hint: Muestra la barra lateral +SidebarSearch/Hint: Selecciona el campo de búsqueda de la barra lateral Size/Caption: Tamaño de imagen Size/Caption/Height: Altura: Size/Caption/Resize: Cambiar tamaño @@ -158,6 +172,15 @@ TagManager/Caption: Administrador de etiquetas TagManager/Hint: Abre el gestor de etiquetas Theme/Caption: Tema Theme/Hint: Selecciona un estilo visual para el wiki +Timestamp/Caption: Marcas de tiempo +Timestamp/Hint: Elige si las modificaciones actualizan las marcas de tiempo +Timestamp/Off/Caption: las marcas de tiempo están desactivadas +Timestamp/Off/Hint: No actualizar las marcas de tiempo cuando se modifican los tiddlers +Timestamp/On/Caption: las marcas de tiempo están activadas +Timestamp/On/Hint: Actualizar las marcas de tiempo cuando se modifican los tiddlers +ToggleSidebar/Hint: Alternar la visibilidad de la barra lateral +Transcludify/Caption: Transclusión +Transcludify/Hint: Envolver la selección entre llaves Underline/Caption: Subrayado Underline/Hint: Aplica formato de subrayado a la selección Unfold/Caption: Desplegar tiddler diff --git a/languages/es-ES/ControlPanel.multids b/languages/es-ES/ControlPanel.multids index bf6af73ff..5c02edfa2 100644 --- a/languages/es-ES/ControlPanel.multids +++ b/languages/es-ES/ControlPanel.multids @@ -5,14 +5,20 @@ Advanced/Hint: Información interna de TiddlyWiki Appearance/Caption: Aspecto Appearance/Hint: Personaliza la apariencia de TiddlyWiki Basics/AnimDuration/Prompt: Duración de la animación +Basics/AutoFocus/Prompt: Campo de enfoque predeterminado para nuevos tiddlers Basics/Caption: Básico Basics/DefaultTiddlers/BottomHint: Usa [[corchetes dobles]] para títulos con espacios. También puedes mostrarlos ordenados <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">de más reciente a más antiguo</$button> Basics/DefaultTiddlers/Prompt: Tiddlers por defecto Basics/DefaultTiddlers/TopHint: Escoge qué tiddlers se muestran al inicio Basics/Language/Prompt: ¡Hola! Selecciona idioma actual Basics/NewJournal/Tags/Prompt: Etiqueta para las nuevas entradas de diario +Basics/NewJournal/Text/Prompt: Texto para las nuevas entradas de diario Basics/NewJournal/Title/Prompt: Formato de título para las nuevas entradas de diario +Basics/NewTiddler/Title/Prompt: Título de nuevos tiddlers +Basics/NewTiddler/Tags/Prompt: Etiquetas de nuevos tiddlers Basics/OverriddenShadowTiddlers/Prompt: Número de tiddlers ocultos anulados +Basics/RemoveTags: Actualizar al formato actual +Basics/RemoveTags/Hint: Actualizar la configuración de las etiquetas al formato más reciente Basics/ShadowTiddlers/Prompt: Número de tiddlers ocultos Basics/Subtitle/Prompt: Subtítulo Basics/SystemTiddlers/Prompt: Número de tiddlers de sistema @@ -32,6 +38,7 @@ KeyboardShortcuts/Add/Prompt: Escribe el atajo KeyboardShortcuts/Caption: Atajos de teclado KeyboardShortcuts/Hint: Administra la asignación de atajos de teclado KeyboardShortcuts/NoShortcuts/Caption: No hay atajo asignado +KeyboardShortcuts/Remove/Hint: Eliminar atajo KeyboardShortcuts/Platform/All: Cualquier plataforma KeyboardShortcuts/Platform/Linux: Sólo Linux KeyboardShortcuts/Platform/Mac: Sólo Macintosh @@ -39,56 +46,89 @@ KeyboardShortcuts/Platform/NonLinux: Todas menos Linux KeyboardShortcuts/Platform/NonMac: Todas menos Macintosh KeyboardShortcuts/Platform/NonWindows: Todas menos Windows KeyboardShortcuts/Platform/Windows: Sólo windows -KeyboardShortcuts/Remove/Hint: Eliminar atajo +LayoutSwitcher/Caption: Disposición LoadedModules/Caption: Módulos cargados LoadedModules/Hint: Modulos cargados en este momento, enlazados con sus tiddlers de origen. Los módulos en itálica carecen de origen, debido normalmente a que se configuraron durante el inicio. Palette/Caption: Paleta Palette/Editor/Clone/Caption: Clonar Palette/Editor/Clone/Prompt: Se recomienda clonar esta paleta antes de editarla. +Palette/Editor/Delete/Hint: eliminar esta entrada de la paleta actual +Palette/Editor/Names/External/Show: Mostrar nombres de colores que no forman parte de la paleta actual +Palette/Editor/Prompt/Modified: Esta paleta de sombras ha sido modificada Palette/Editor/Prompt: Editando -Palette/Editor/Prompt/Modified: Si te has perdido, no desesperes Palette/Editor/Reset/Caption: Restaura la paleta Palette/HideEditor/Caption: Cerrar el editor Palette/Prompt: Paleta actual Palette/ShowEditor/Caption: Abrir el editor -Parsing/Block/Caption: Bloquear reglas sintácticas Parsing/Caption: Interpretación sintáctica -Parsing/Hint: Aquí se pueden deshabilitar globalmente reglas de interpretación sintáctica del wiki. Ten cuidado: deshabilitar ciertas reglas puede hacer que ~TiddlyWiki deje de funcionar correctamente. -En tal caso, puedes recuperar su normal funcionamiento en [[modo seguro|https://tiddlywiki.com/#SafeMode]]. +Parsing/Hint: Aquí se pueden deshabilitar globalmente reglas de interpretación sintáctica del wiki. Ten cuidado: deshabilitar ciertas reglas puede hacer que ~TiddlyWiki deje de funcionar correctamente. En tal caso, puedes recuperar su normal funcionamiento en [[modo seguro|https://tiddlywiki.com/#SafeMode]]. +Parsing/Block/Caption: Bloquear reglas sintácticas Parsing/Inline/Caption: Reglas sintácticas de texto Parsing/Pragma/Caption: Reglas sintácticas del compilador Plugins/Add/Caption: Obten complementos y extensiones Plugins/Add/Hint: Instala plugins desde la librería oficial -Plugins/Caption: Plugins +Plugins/AlreadyInstalled/Hint: Este complemento ya está instalado en la versión <$text text=<<installedVersion>>/> +Plugins/AlsoRequires: También requiere: +Plugins/Caption: Complementos Plugins/Disable/Caption: Desactivar Plugins/Disable/Hint: Desactiva el plugin al actualizar la página Plugins/Disabled/Status: (Desactivado) +Plugins/Downgrade/Caption: bajar de versión Plugins/Empty/Hint: No se han instalado Plugins/Enable/Caption: Activar Plugins/Enable/Hint: Activa este plugin al actualizar la página Plugins/Install/Caption: Instalar -Plugins/Installed/Hint: Plugins instalados actualmente -Plugins/Language/Prompt: Idiomas +Plugins/Installed/Hint: Complementos instalados actualmente Plugins/Languages/Caption: Idiomas Plugins/Languages/Hint: Extensiones de idioma +Plugins/NoInfoFound/Hint: No se ha encontrado ''"<$text text=<<currentTab>>/>"'' +Plugins/NotInstalled/Hint: Este complemento no está instalado actualmente Plugins/OpenPluginLibrary: Abrir biblioteca de complementos y extensiones -Plugins/Plugin/Prompt: Plugins -Plugins/Plugins/Caption: Plugins +Plugins/ClosePluginLibrary: cerrar biblioteca de complementos y extensiones +Plugins/PluginWillRequireReload: (requiere recarga) +Plugins/Plugins/Caption: Complementos Plugins/Plugins/Hint: Complementos y extensiones Plugins/Reinstall/Caption: Reinstalar -Plugins/Theme/Prompt: Temas Plugins/Themes/Caption: Temas Plugins/Themes/Hint: Extensiones de tema -Saving/Caption: Servidor -Saving/Heading: Servidor +Plugins/Update/Caption: actualizar +Plugins/Updates/Caption: Actualizaciones +Plugins/Updates/Hint: Actualizaciones disponibles para complementos instalados +Plugins/Updates/UpdateAll/Caption: Actualizar <<update-count>> complementos +Plugins/SubPluginPrompt: Con <<count>> sub-complementos disponibles +Saving/Caption: Guardando +Saving/DownloadSaver/AutoSave/Description: Permitir guardado automático para el almacenamiento de descargas +Saving/DownloadSaver/AutoSave/Hint: Habilitar guardado automático para el almacenamiento de descargas +Saving/DownloadSaver/Caption: Almacenamiento de descargas +Saving/DownloadSaver/Hint: Esta configuración se aplica al almacenamiento de descarga compatible con HTML5 +Saving/General/Caption: General +Saving/General/Hint: Esta configuración se aplica a todos los sistemas de almacenamiento cargados +Saving/Hint: Configuración utilizada para guardar todo el TiddlyWiki como un solo archivo a través de un módulo de almacenamiento +Saving/GitService/Branch: Rama de destino para guardar +Saving/GitService/CommitMessage: Guardado por TiddlyWiki +Saving/GitService/Description: Esta configuración solo se usa cuando se guarda en <<service-name>> +Saving/GitService/Filename: Nombre del archivo de destino (e.g. `index.html`) +Saving/GitService/Path: Directorio del archivo de destino (e.g. `/wiki/`) +Saving/GitService/Repo: Repositorio de destino (e.g. `Jermolene/TiddlyWiki5`) +Saving/GitService/ServerURL: URL de la API del servidor +Saving/GitService/UserName: Nombre de usuario +Saving/GitService/GitHub/Caption: ~GitHub Saver +Saving/GitService/GitHub/Password: Contraseña, token OAUTH o token de acceso personal (consulta [[Página de ayuda de GitHub|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] para más detalles) +Saving/GitService/GitLab/Caption: ~GitLab Saver +Saving/GitService/GitLab/Password: Token de acceso personal para API (consulta [[página de ayuda de GitLab|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] para más detalles) +Saving/GitService/Gitea/Caption: Gitea Saver +Saving/GitService/Gitea/Password: Token de acceso personal para API (a través de la interfaz web de Gitea: `Configuración | Aplicaciones | Generar token nuevo`) Saving/TiddlySpot/Advanced/Heading: Configuración Avanzada Saving/TiddlySpot/BackupDir: Directorio de copias de seguridad +Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel Saving/TiddlySpot/Backups: Copias de seguridad +Saving/TiddlySpot/Caption: ~TiddlySpot Saver Saving/TiddlySpot/Description: Esta configuración sólo se usa para guardar el wiki en http://tiddlyspot.com o en otro servidor compatible Saving/TiddlySpot/Filename: Nombre del archivo Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //La dirección (URL) por defecto de// TiddlySpot //es `http://<wikiname>.tiddlyspot.com/store.cgi` aunque puede cambiarse a voluntad para usar otro servidor// Saving/TiddlySpot/Password: Contraseña +Saving/TiddlySpot/ReadOnly: Ten en cuenta que [[TiddlySpot|http://tiddlyspot.com]] ya no permite la creación de nuevos sitios. Para sitios nuevos, puede usa [[TiddlyHost|https://tiddlyhost.com]], un nuevo servicio de alojamiento que reemplaza a ~TiddlySpot. Saving/TiddlySpot/ServerURL: Dirección (URL) del servidor Saving/TiddlySpot/UploadDir: Directorio de almacenamiento Saving/TiddlySpot/UserName: Nombre del Wiki @@ -97,20 +137,17 @@ Settings/AutoSave/Disabled/Description: No guardar cambios automáticamente Settings/AutoSave/Enabled/Description: Guardar cambios automáticamente Settings/AutoSave/Hint: Guarda automáticamente los cambios durante la edición Settings/CamelCase/Caption: Enlaces wiki mediante ~CamelCase +Settings/CamelCase/Hint: Desactiva globalmente la opción de enlace automático mediante CamelCase <br> Requiere recargar la página para que surta efecto Settings/CamelCase/Description: Activar enlaces automáticos mediante ~CamelCase -Settings/CamelCase/Hint: Desactiva globalmente la opción de enlace automático mediante CamelCase <br> -Requiere recargar la página para que surta efecto Settings/Caption: Configuración -Settings/DefaultSidebarTab/Caption: Pestaña por defecto de la barra lateral -Settings/DefaultSidebarTab/Hint: Indica qué pestaña de la barra lateral se muestra por defecto al inicio +Settings/EditorToolbar/Caption: Barra de herramientas del editor +Settings/EditorToolbar/Hint: Activa o desactiva la barra de herramientas del editor: +Settings/EditorToolbar/Description: Mostrar la barra de herramientas del editor +Settings/InfoPanelMode/Caption: Modo de panel de información de Tiddler +Settings/InfoPanelMode/Hint: Controla cuándo se cierra el panel de información de tiddler: +Settings/InfoPanelMode/Popup/Description: El panel de información de Tiddler se cierra automáticamente +Settings/InfoPanelMode/Sticky/Description: El panel de información de Tiddler permanece abierto hasta que se cierra explícitamente Settings/Hint: La configuración de estos ajustes te permite personalizar el comportamiento de TiddlyWiki. -Settings/LinkToBehaviour/Caption: Comportamiento al abrir tiddlers... -Settings/LinkToBehaviour/InsideRiver/Hint: ...dentro del StoryRiver -Settings/LinkToBehaviour/OpenAbove: Abrirlo por encima del tiddler actual -Settings/LinkToBehaviour/OpenAtBottom: Abrirlo al final del StoryRiver -Settings/LinkToBehaviour/OpenAtTop: Abrirlo al principio del StoryRiver -Settings/LinkToBehaviour/OpenBelow: Abrirlo por debajo del tiddler actual -Settings/LinkToBehaviour/OutsideRiver/Hint: ...desde fuera del StoryRiver Settings/NavigationAddressBar/Caption: Barra de direcciones Settings/NavigationAddressBar/Hint: Comportamiento de la barra de dirección del navegador cuando se abre un tiddler Settings/NavigationAddressBar/No/Description: No actualizar la barra de dirección @@ -120,25 +157,46 @@ Settings/NavigationHistory/Caption: Historial de navegación Settings/NavigationHistory/Hint: Actualiza el historial de navegación al abrir un tiddler Settings/NavigationHistory/No/Description: No actualizar el historial Settings/NavigationHistory/Yes/Description: Actualizar el historial -Settings/PerformanceInstrumentation/Caption: //Performance Instrumentation// -Settings/PerformanceInstrumentation/Description: Activar //performance instrumentation// -Settings/PerformanceInstrumentation/Hint: Muestra estadísticas de las prestaciones de la página en la consola de desarrollo <br> -Requiere recargar la página para que surta efecto -Settings/TitleLinks/Caption: Títulos de tiddler -Settings/TitleLinks/Hint: Los títulos de los tiddlers se mostrarán y se comportarán como enlaces -Settings/TitleLinks/No/Description: No mostrar como enlaces -Settings/TitleLinks/Yes/Description: Mostrar como enlaces -Settings/ToolbarButtons/Caption: Botones de la barra de herramientas -Settings/ToolbarButtons/Hint: Aspecto por defecto de los botones de la barra de herramientas -Settings/ToolbarButtons/Icons/Description: Mostrar icono -Settings/ToolbarButtons/Text/Description: Mostrar texto +Settings/NavigationPermalinkviewMode/Caption: Modo Permalink/permaview +Settings/NavigationPermalinkviewMode/Hint: Elige cómo se comporta permalink/permaview: +Settings/NavigationPermalinkviewMode/CopyToClipboard/Description: Copiar permalink/permaview en el portapapeles +Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description: Actualizar la barra de direcciones con permalink/permaview +Settings/PerformanceInstrumentation/Caption: //Estadísticas de rendimiento// +Settings/PerformanceInstrumentation/Hint: Muestra estadísticas de las prestaciones de la página en la consola de desarrollo <br>Requiere recargar la página para que surta efecto +Settings/PerformanceInstrumentation/Description: Activar //estadísticas de rendimiento// Settings/ToolbarButtonStyle/Caption: Estilo de botón Settings/ToolbarButtonStyle/Hint: Selecciona el estilo de los botones de la barra de herramientas Settings/ToolbarButtonStyle/Styles/Borderless: Sin borde Settings/ToolbarButtonStyle/Styles/Boxed: Cuadrado Settings/ToolbarButtonStyle/Styles/Rounded: Redondo +Settings/ToolbarButtons/Caption: Botones de la barra de herramientas +Settings/ToolbarButtons/Hint: Aspecto por defecto de los botones de la barra de herramientas +Settings/ToolbarButtons/Icons/Description: Mostrar icono +Settings/ToolbarButtons/Text/Description: Mostrar texto +Settings/DefaultSidebarTab/Caption: Pestaña por defecto de la barra lateral +Settings/DefaultSidebarTab/Hint: Indica qué pestaña de la barra lateral se muestra por defecto al inicio +Settings/DefaultMoreSidebarTab/Caption: Pestaña predeterminada Más de la barra lateral +Settings/DefaultMoreSidebarTab/Hint: Especifica qué pestaña de la barra lateral Más se muestra de forma predeterminada +Settings/LinkToBehaviour/Caption: Comportamiento al abrir tiddlers... +Settings/LinkToBehaviour/InsideRiver/Hint: ...dentro del Visor +Settings/LinkToBehaviour/OutsideRiver/Hint: ...desde fuera del Visor +Settings/LinkToBehaviour/OpenAbove: Abrirlo por encima del tiddler actual +Settings/LinkToBehaviour/OpenBelow: Abrirlo por debajo del tiddler actual +Settings/LinkToBehaviour/OpenAtTop: Abrirlo al principio del Visor +Settings/LinkToBehaviour/OpenAtBottom: Abrirlo al final del Visor +Settings/TitleLinks/Caption: Títulos de tiddler +Settings/TitleLinks/Hint: Los títulos de los tiddlers se mostrarán y se comportarán como enlaces +Settings/TitleLinks/No/Description: No mostrar como enlaces +Settings/TitleLinks/Yes/Description: Mostrar como enlaces +Settings/MissingLinks/Caption: Enlaces Wiki +Settings/MissingLinks/Hint: Elige si quieres vincular a tiddlers que aún no existen +Settings/MissingLinks/Description: Habilitar enlaces a tiddlers inexistentes StoryView/Caption: Vista StoryView/Prompt: Vista actual +Stylesheets/Caption: Hojas de estilo +Stylesheets/Expand/Caption: Expandir todo +Stylesheets/Hint: Este es el CSS renderizado de los tiddlers CSS etiquetados con <<tag "$:/tags/Stylesheet">> +Stylesheets/Restore/Caption: Restaurar Theme/Caption: Tema Theme/Prompt: Tema actual TiddlerFields/Caption: Campos de tiddler @@ -149,6 +207,8 @@ Toolbars/EditToolbar/Hint: Selecciona qué botones mostrar en modo de edición Toolbars/Hint: Selecciona qué botones mostrar en las diferentes barras de herramientas Toolbars/PageControls/Caption: Barra de página Toolbars/PageControls/Hint: Selecciona qué botones mostrar en la barra de página +Toolbars/EditorToolbar/Caption: Barra de herramientas del editor +Toolbars/EditorToolbar/Hint: Elige qué botones se muestran en la barra de herramientas del editor. Ten en cuenta que algunos botones solo aparecerán al editar tiddlers de cierto tipo. Arrastra y suelta para cambiar el orden Toolbars/ViewToolbar/Caption: Barra de visualización Toolbars/ViewToolbar/Hint: Selecciona qué botones mostrar en modo de visualización -Tools/Download/Full/Caption: Descargar el wiki completo \ No newline at end of file +Tools/Download/Full/Caption: Descargar el wiki completo diff --git a/languages/es-ES/Dates.multids b/languages/es-ES/Dates.multids index 4fde1066c..0fd0a2de5 100644 --- a/languages/es-ES/Dates.multids +++ b/languages/es-ES/Dates.multids @@ -50,6 +50,8 @@ Date/Long/Month/6: junio Date/Long/Month/7: julio Date/Long/Month/8: agosto Date/Long/Month/9: septiembre +Date/Period/am: am +Date/Period/pm: pm Date/Short/Day/0: Do Date/Short/Day/1: Lu Date/Short/Day/2: Ma @@ -58,9 +60,17 @@ Date/Short/Day/4: Ju Date/Short/Day/5: Vi Date/Short/Day/6: Sá Date/Short/Month/1: Ene -Date/Short/Month/12: Dic +Date/Short/Month/2: Feb +Date/Short/Month/3: Mar Date/Short/Month/4: Abr +Date/Short/Month/5: May +Date/Short/Month/6: Jun +Date/Short/Month/7: Jul Date/Short/Month/8: Ago +Date/Short/Month/9: Sep +Date/Short/Month/10: Oct +Date/Short/Month/11: Nov +Date/Short/Month/12: Dic RelativeDate/Future/Days: dentro de <<period>> días RelativeDate/Future/Hours: en <<period>> horas RelativeDate/Future/Minutes: en <<period>> minutos diff --git a/languages/es-ES/Docs/ModuleTypes.multids b/languages/es-ES/Docs/ModuleTypes.multids index fd15563ad..3c165dbc9 100644 --- a/languages/es-ES/Docs/ModuleTypes.multids +++ b/languages/es-ES/Docs/ModuleTypes.multids @@ -1,21 +1,29 @@ title: $:/language/Docs/ModuleTypes/ +allfilteroperator: Un suboperador para el operador de filtro ''all''. animation: Animaciones que pueden usarse con RevealWidget +authenticator: Define cómo el servidor HTTP integrado autentifica las solicitudes. +bitmapeditoroperation: Operación de la barra de herramientas para editar mapa de bits. command: Comandos que pueden ejecutarse en Node.js config: Datos para insertar en `$tw.config` filteroperator: Operadores individuales de filtrado global: Datos globales para insertar en `$tw` +info: Publica información del sistema a través del pseudo-complemento [[$:/temp/info-plugin]]. isfilteroperator: Operandos para el operador ''is'' +library: Tipo de módulo genérico para módulos JavaScript de propósito general. macro: Definiciones macro de JavaScript. parser: Reglas sintácticas para diversos tipos de contenido. +route: Define cómo el servidor HTTP integrado gestiona los patrones de URL individuales. saver: Guarda archivos desde el navegador con diferentes métodos. startup: Funciones de inicio storyview: Personaliza la animación y comportamiento de listas +texteditoroperation: Operación de la barra de herramientas para editar texto. tiddlerdeserializer: Convierte diferentes tipos de contenido en tiddlers tiddlerfield: Define el comportamiento de un campo individual tiddlermethod: Añade métodos al prototipo `$tw.Tiddler` upgrader: Aplica la actualización a los tiddlers durante el proceso de actualización/importación. utils: Añade métodos a `$tw.utils` +utils-browser: Añade métodos específicos del navegador a `$tw.utils`. utils-node: Añade métodos específicos de Node.js a `$tw.utils` widget: Encapsula la representación y recarga de ''DOM'' wikimethod: Añade métodos a `$tw.Wiki` diff --git a/languages/es-ES/Docs/PaletteColours.multids b/languages/es-ES/Docs/PaletteColours.multids new file mode 100644 index 000000000..36f78d71e --- /dev/null +++ b/languages/es-ES/Docs/PaletteColours.multids @@ -0,0 +1,109 @@ +title: $:/language/Docs/PaletteColours/ + +alert-background: Fondo de alerta +alert-border: Borde de alerta +alert-highlight: Resaltado de alerta +alert-muted-foreground: Primario de alerta muda +background: Fondo general +blockquote-bar: Barra de cita +button-background: Fondo del botón predeterminado +button-border: Borde del botón predeterminado +button-foreground: Primario del botón predeterminado +dirty-indicator: Indicador de cambios no guardados +code-background: Fondo del código +code-border: Borde del código +code-foreground: Primario del código +download-background: Fondo botón de descarga +download-foreground: Primario botón de descarga +dragger-background: Fondo de arrastre +dragger-foreground: Primario de arrastre +dropdown-background: Fondo desplegable +dropdown-border: Borde desplegable +dropdown-tab-background-selected: Fondo de la pestaña desplegable de pestañas seleccionadas +dropdown-tab-background: Fondo de la pestaña desplegable +dropzone-background: Fondo arrastre ficheros +external-link-background-hover: Fondo de enlace externo al pasar por encima +external-link-background-visited: Fondo de enlace externo visitado +external-link-background: Fondo de enlace externo +external-link-foreground-hover: Primario de enlace externo al pasar por encima +external-link-foreground-visited: Primario de enlace externo visitado +external-link-foreground: Primario de enlace externo +foreground: Primario general +menubar-background: Fondo de la barra de menú +menubar-foreground: Primario de la barra de menú +message-background: Fondo del cuadro de mensaje +message-border: Borde del cuadro de mensaje +message-foreground: Primario del cuadro de mensaje +modal-backdrop: Telón de fondo modal +modal-background: Fondo Modal +modal-border: Borde Modal +modal-footer-background: Fondo del pie en Modal +modal-footer-border: Borde del pie en Modal +modal-header-border: Borde de la cabecera en Modal +muted-foreground: Primario general silenciado +notification-background: Fondo Notificación +notification-border: Borde Notificación +page-background: Fondo Página +pre-background: Preformatted code background +pre-border: Preformatted code border +primary: Primario general +select-tag-background: Fondo `<select>` +select-tag-foreground: Primario `<select>` +sidebar-button-foreground: Primario del botón de la barra lateral +sidebar-controls-foreground-hover: Primario de controles de la barra lateral al pasar por encima +sidebar-controls-foreground: Primario de controles de la barra lateral +sidebar-foreground-shadow: Sombra de la barra lateral +sidebar-foreground: Primario de la barra lateral +sidebar-muted-foreground-hover: Primario de controles silenciados de la barra lateral al pasar por encima +sidebar-muted-foreground: Primario de controles silenciados de la barra lateral +sidebar-tab-background-selected: Fondo de la pestaña de la barra lateral para las pestañas seleccionadas +sidebar-tab-background: Fondo de la pestaña de la barra lateral +sidebar-tab-border-selected: Borde de la pestaña de la barra lateral para las pestañas seleccionadas +sidebar-tab-border: Borde de la pestaña de la barra lateral +sidebar-tab-divider: Divisor de pestañas de la barra lateral +sidebar-tab-foreground-selected: Divisor de pestañas de la barra lateral para las pestañas seleccionadas +sidebar-tab-foreground: Primario de la pestaña de la barra lateral +sidebar-tiddler-link-foreground-hover: Primario enlace tiddler en la barra lateral al pasar por encima +sidebar-tiddler-link-foreground: Primario enlace tiddler en la barra lateral +site-title-foreground: Primario título sitio +static-alert-foreground: Primario de alerta estática +tab-background-selected: Fondo de pestaña para pestañas seleccionadas +tab-background: Fondo de pestaña +tab-border-selected: Borde de pestaña para pestañas seleccionadas +tab-border: Borde de pestañas +tab-divider: Divisor de pestañas +tab-foreground-selected: Primario de pestaña para pestañas seleccionadas +tab-foreground: Primario de pestaña +table-border: Borde Tabla +table-footer-background: Fondo pie tabla +table-header-background: Fondo cabecera tabla +tag-background: Fondo etiqueta +tag-foreground: Primario etiqueta +tiddler-background: Fondo Tiddler +tiddler-border: Borde Tiddler +tiddler-controls-foreground-hover: Primario controles Tiddler al pasar por encima +tiddler-controls-foreground-selected: Primario controles seleccionados en Tiddler +tiddler-controls-foreground: Primario controles Tiddler +tiddler-editor-background: Fondo editor Tiddler +tiddler-editor-border-image: Borde imagen en editor Tiddler +tiddler-editor-border: Borde editor Tiddler +tiddler-editor-fields-even: Fondo editor Tiddler para campos pares +tiddler-editor-fields-odd: Fondo editor Tiddler para campos impares +tiddler-info-background: Fondo panel información en Tiddler +tiddler-info-border: Borde panel información en Tiddler +tiddler-info-tab-background: Fondo pestaña panel información en Tiddler +tiddler-link-background: Fondo enlace Tiddler +tiddler-link-foreground: Primario enlace Tiddler +tiddler-subtitle-foreground: Primario subtítulo Tiddler +tiddler-title-foreground: Primario título Tiddler +toolbar-new-button: Primario botón 'nuevo tiddler' +toolbar-options-button: Primario botón 'opciones' +toolbar-save-button: Primario botón 'guardar' +toolbar-info-button: Primario botón 'información' +toolbar-edit-button: Primario botón 'editar' +toolbar-close-button: Primario botón 'cerrar' +toolbar-delete-button: Primario botón 'eliminar' +toolbar-cancel-button: Primario botón 'cancelar' +toolbar-done-button: Primario botón 'hecho' +untagged-background: Fondo de píldora sin etiquetar +very-muted-foreground: Primario muy silenciado diff --git a/languages/es-ES/EditTemplate.multids b/languages/es-ES/EditTemplate.multids index bb91c3f40..934e87163 100644 --- a/languages/es-ES/EditTemplate.multids +++ b/languages/es-ES/EditTemplate.multids @@ -1,28 +1,35 @@ title: $:/language/EditTemplate/ -Body/External/Hint: Este es un tiddler externo, es decir, guardado fuera del archivo TiddlyWiki principal <br> -Puedes editar sus etiquetas y campos, pero no se puede editar directamente el contenido +Body/External/Hint: Este es un tiddler externo, es decir, guardado fuera del archivo TiddlyWiki principal <br> Puedes editar sus etiquetas y campos, pero no se puede editar directamente el contenido Body/Placeholder: Escribe el texto aquí -Body/Preview/Type/Output: Output +Body/Preview/Type/Output: Visible Field/Remove/Caption: Eliminar campo Field/Remove/Hint: Elimina el campo y su valor +Field/Dropdown/Caption: lista de campos +Field/Dropdown/Hint: Mostrar lista de campos Fields/Add/Button: Añadir campo -Fields/Add/Dropdown/System: Campos de sistema -Fields/Add/Dropdown/User: Campos de usuario +Fields/Add/Button/Hint: Añade el nuevo campo al tiddler Fields/Add/Name/Placeholder: Nombre Fields/Add/Prompt: Añadir Fields/Add/Value/Placeholder: Valor -Shadow/OverriddenWarning: Este es un tiddler oculto modificado<br> -Puedes restituirlo a su versión original eliminando este tiddler -Shadow/Warning: Este es un tiddler oculto<br> -Cualquier cambio que hagas reemplazará la versión original +Fields/Add/Dropdown/System: Campos de sistema +Fields/Add/Dropdown/User: Campos de usuario +Shadow/Warning: Este es un tiddler oculto<br> Cualquier cambio que hagas reemplazará la versión original +Shadow/OverriddenWarning: Este es un tiddler oculto modificado<br> Puedes restituirlo a su versión original eliminando este tiddler Tags/Add/Button: Añadir +Tags/Add/Button/Hint: añadir etiqueta Tags/Add/Placeholder: Nombre +Tags/ClearInput/Caption: vaciar campo +Tags/ClearInput/Hint: Vacia campo etiqueta Tags/Dropdown/Caption: Etiquetas Tags/Dropdown/Hint: Muestra la lista de etiquetas existentes -Type/Delete/Caption: Borrar -Type/Delete/Hint: Borra el tipo de contenido +Title/BadCharacterWarning: Advertencia: evita usar cualquiera de los caracteres <<bad-chars>> en los títulos de tiddler +Title/Exists/Prompt: El tiddler de destino ya existe +Title/Relink/Prompt: Actualizar ''<$text text=<<fromTitle>>/>'' a ''<$text text=<<toTitle>>/>'' en los campos //tags// y //list// de otros tiddlers +Title/References/Prompt: Las siguientes referencias a este tiddler no se actualizarán automáticamente: Type/Dropdown/Caption: Tipos de contenido Type/Dropdown/Hint: Muestra la lista de tipos disponibles +Type/Delete/Caption: Borrar +Type/Delete/Hint: Borra el tipo de contenido Type/Placeholder: Nuevo tipo Type/Prompt: Tipo: diff --git a/languages/es-ES/Exporters.multids b/languages/es-ES/Exporters.multids index 3f2ab1189..9673812f1 100644 --- a/languages/es-ES/Exporters.multids +++ b/languages/es-ES/Exporters.multids @@ -1,6 +1,6 @@ title: $:/language/Exporters/ -CsvFile: Archivo de tipo .CSV -JsonFile: Archivo de tipo .JSON StaticRiver: Cadena de tiddlers como .HTML estático +JsonFile: Archivo de tipo .JSON +CsvFile: Archivo de tipo .CSV TidFile: Tiddler individual como archivo ".tid" diff --git a/languages/es-ES/Fields.multids b/languages/es-ES/Fields.multids index 6e8992542..749ba6231 100644 --- a/languages/es-ES/Fields.multids +++ b/languages/es-ES/Fields.multids @@ -5,31 +5,34 @@ bag: Nombre de la bolsa de la que procede un tiddler caption: Texto que se muestra en una pestaña o botón, con independencia del título del tiddler que lo define color: Valor CSS del color de fondo asociado a un tiddler component: Nombre del componente responsable de un [[tiddler de alerta|AlertMechanism]] +current-tiddler: Usado para incluir el tiddler superior en una [[historia|HistoryMechanism]] created: Fecha de creación del tiddler creator: Nombre del autor del tiddler -current-tiddler: Usado para incluir el tiddler superior en una [[historia|HistoryMechanism]] dependents: En un complemento o extensión, lista de sus dependencias description: Descripción de un complemento, extensión, o diálogo modal draft.of: Título del tiddler del que el actual es borrador draft.title: Nuevo título propuesto para el presente borrador footer: Texto al pie que figurará en un asistente +hide-body: La plantilla de vista ocultará los cuerpos de los tiddlers si se establece en: ''yes'' icon: Nombre del tiddler que contiene el icono que se quiere asociar al presente tiddler library: Si su valor es "Sí", indica que el tiddler debe guardarse como librería de JavaScript list: Lista ordenada de tiddlers asociados al presente tiddler +list-before: Título del tiddler antes del que el presente será añadido a una lista<br> Si el campo existe pero está vacío, el tiddler se añadirá al principio de la lista list-after: Título del tiddler tras el que el presente será añadido a una lista de tiddlers. -list-before: Título del tiddler antes del que el presente será añadido a una lista<br> -Si el campo existe pero está vacío, el tiddler se añadirá al principio de la lista modified: Fecha y hora de última modificación modifier: Nombre del tiddler asociado con quien modificó por última vez el presente tiddler name: Nombre asociado con un complemento o extensión plugin-priority: Valor numérico que indica la prioridad de un complemento o extensión plugin-type: Tipo de complemento o extensión -released: Fecha de la edición de TiddlyWiki revision: Revisión del tiddler existente en el servidor +released: Fecha de la edición de TiddlyWiki source: Dirección de la fuente asociada a un tiddler subtitle: Subtítulo que figurará en un asistente tags: Lista de etiquetas asignadas al tiddler text: Texto principal de un tiddler +throttle.refresh: Si está presente, regula las actualizaciones de este tiddler title: Nombre único de un tiddler +toc-link: Suprime el enlace del tiddler en la tabla de contenido si se establece en: ''no'' type: Tipo de contenido en un tiddler version: Versión de un complemento o extensión +_is_skinny: Si está presente, indica que el campo de texto tiddler debe cargarse desde el servidor diff --git a/languages/es-ES/Filters.multids b/languages/es-ES/Filters.multids index adc627df7..333c10cc4 100644 --- a/languages/es-ES/Filters.multids +++ b/languages/es-ES/Filters.multids @@ -1,14 +1,16 @@ title: $:/language/Filters/ -AllTags: Todas las etiquetas, excepto las de sistema AllTiddlers: Todos los tiddlers, excepto los de sistema -Drafts: Borradores -Missing: Tiddlers vacíos -Orphans: Tiddlers huérfanos -OverriddenShadowTiddlers: Tiddlers ocultos anulados RecentSystemTiddlers: Tiddlers recientemente modificados, incluidos los de sistema RecentTiddlers: Tiddlers recientemente modificados -ShadowTiddlers: Tiddlers ocultos -SystemTags: Etiquetas de sistema +AllTags: Todas las etiquetas, excepto las de sistema +Missing: Tiddlers inexistentes +Drafts: Borradores +Orphans: Tiddlers huérfanos SystemTiddlers: Tiddlers de sistema -TypedTiddlers: Tiddlers que no sonWikiText +ShadowTiddlers: Tiddlers ocultos +OverriddenShadowTiddlers: Tiddlers ocultos anulados +SessionTiddlers: Tiddlers modificados desde que se cargó el wiki +SystemTags: Etiquetas de sistema +StoryList: Tiddlers en la vista, excluyendo <$text text="$:/AdvancedSearch"/> +TypedTiddlers: Tiddlers que no son WikiText diff --git a/languages/es-ES/GettingStarted.tid b/languages/es-ES/GettingStarted.tid index 19d61f5f7..05437a5f1 100644 --- a/languages/es-ES/GettingStarted.tid +++ b/languages/es-ES/GettingStarted.tid @@ -6,6 +6,7 @@ Bienvenido a TiddlyWiki y a su comunidad de usuarios Antes de guardar información importante en TiddlyWiki, es preciso que te asegures de poder hacerlo de manera fiable Visita https://tiddlywiki.com/#GettingStarted para más información (en inglés) + !! Configura este ~TiddlyWiki <div class="tc-control-panel"> diff --git a/languages/es-ES/Help/deletetiddlers.tid b/languages/es-ES/Help/deletetiddlers.tid new file mode 100644 index 000000000..c217d49e8 --- /dev/null +++ b/languages/es-ES/Help/deletetiddlers.tid @@ -0,0 +1,8 @@ +title: $:/language/Help/deletetiddlers +description: Elimina un grupo de tiddlers + +<<.from-version "5.1.20">> Elimina un grupo de tiddlers identificados por un filtro. + +``` +--deletetiddlers <filter> +``` diff --git a/languages/es-ES/Help/fetch.tid b/languages/es-ES/Help/fetch.tid new file mode 100644 index 000000000..938b189d8 --- /dev/null +++ b/languages/es-ES/Help/fetch.tid @@ -0,0 +1,38 @@ +title: $:/language/Help/fetch +description: Obtener tiddlers del wiki por URL + +Obtiene uno o más archivos a través de HTTP/HTTPS e importe los tiddlers que coincidan con un filtro, transformando opcionalmente los títulos entrantes. + +``` +--fetch file <url> <import-filter> <transform-filter> +--fetch files <url-filter> <import-filter> <transform-filter> +--fetch raw-file <url> <transform-filter> +--fetch raw-files <url-filter> <transform-filter> +``` + +Las opciones "file" y "files" obtienen los archivos especificados e intentan importar los tiddlers dentro de ellos (el mismo procesamiento que si los archivos se arrastraran a la ventana del navegador). Las variantes "raw-file" y "raw-files" obtienen los archivos especificados y almacenan los datos del archivo sin procesar en tiddlers, sin aplicar la lógica de importación. + +Con las opciones "file" y "raw-file", solo se obtiene un archivo y el primer parámetro es la URL del archivo que se va a leer. + +Con las opciones "files" y "raw-files", se obtienen varios archivos y el primer parámetro es un filtro que produce una lista de URL de los archivos a leer. Por ejemplo, dado un conjunto de tiddlers etiquetados como "servidor-remoto" que tienen un campo "url", el filtro `[tag[servidor-remoto]get[url]]` recuperará todas las URL disponibles. + +Para las opciones "file" y "files", el parámetro `<import-filter>` especifica un filtro que determina qué tiddlers se importan. El valor predeterminado es "[all[tiddlers]]" si no se proporciona. + +Para todas las opciones, el parámetro `<transform-filter>` especifica un filtro opcional que transforma los títulos de los tiddlers importados. Por ejemplo, `[addprefix[$:/myimports/]]` agregaría el prefijo `$:/myimports/` a cada título. + +Si precede al comando `--fetch` con `--verbose`, se generará información de progreso durante la importación. + +Ten en cuenta que TiddlyWiki no obtendrá una versión anterior de un complemento ya cargado. + +El siguiente ejemplo recupera todos los tiddlers que no son del sistema de https://tiddlywiki.com y los guarda en un archivo JSON: + +``` +tiddlywiki --verbose --fetch file "https://tiddlywiki.com/" "[!is[system]]" "" --rendertiddler "$:/core/templates/exporters/JsonFile" output.json text/plain "" exportFilter "[!is[system]]" +``` + +El siguiente ejemplo recupera el archivo "favicon" de tiddlywiki.com y lo guarda en un archivo llamado "output.ico". Ten en cuenta que el tiddler intermedio "Icon Tiddler" se cita en el comando "--fetch" porque se usa como un filtro de transformación para reemplazar el título predeterminado, mientras que no hay comillas para el comando "--savetiddler" porque es se utiliza directamente como título. + +``` +tiddlywiki --verbose --fetch raw-file "https://tiddlywiki.com/favicon.ico" "[[Icon Tiddler]]" --savetiddler "Icon Tiddler" output.ico +``` + diff --git a/languages/es-ES/Help/import.tid b/languages/es-ES/Help/import.tid new file mode 100644 index 000000000..8bfff2410 --- /dev/null +++ b/languages/es-ES/Help/import.tid @@ -0,0 +1,24 @@ +title: $:/language/Help/import +description: Importar tiddlers desde un archivo + +Importa tiddlers desde TiddlyWiki (`.html`),` .tiddler`, `.tid`,` .json` u otros archivos locales. El deserializador debe especificarse explícitamente, a diferencia del comando `load` que infiere el deserializador a partir de la extensión del archivo. + +``` +--import <filepath> <deserializer> [<title>] [<encoding>] +``` + +Los deserializadores incluidos por defecto son: + +* application/javascript +* application/json +* application/x-tiddler +* application/x-tiddler-html-div +* application/x-tiddlers +* text/html +* text/plain + +El título del tiddler importado tiene como valor predeterminado el nombre del archivo. + +La codificación predeterminada es "utf8", pero puede ser "base64" para importar archivos binarios. + +Ten en cuenta que TiddlyWiki no importará una versión anterior de un complemento ya cargado. diff --git a/languages/es-ES/Help/init.tid b/languages/es-ES/Help/init.tid index afc85f7cc..70100a887 100644 --- a/languages/es-ES/Help/init.tid +++ b/languages/es-ES/Help/init.tid @@ -16,14 +16,8 @@ tiddlywiki ./MyWikiFolder --init empty Nota: * Se creará un directorio para el wiki si es necesario - * La edición por defecto es ''empty'' - * El comando `--init` fallará si el directorio no está vacío - * El comando `--init` elimina toda definición de `includeWikis` contenida en el archivo `tiddlywiki.info` - -* Cuando se indican varias ediciones para su inicialización, las ediciones //planchan// sucesivamente todo archivo compartido, de modo que el -archivo `tiddlywiki.info` final será el que corresponda a la última edición que se indique. - +* Cuando se indican varias ediciones para su inicialización, las ediciones sobrescriben sucesivamente todos los archivos compartidos, de modo que el archivo `tiddlywiki.info` final será el que corresponda a la última edición que se indique. * `--editions` muestra una lista de ediciones disponibles diff --git a/languages/es-ES/Help/listen.tid b/languages/es-ES/Help/listen.tid new file mode 100644 index 000000000..21af6ab4a --- /dev/null +++ b/languages/es-ES/Help/listen.tid @@ -0,0 +1,35 @@ +title: $:/language/Help/listen +description: Proporciona una interfaz de servidor HTTP a TiddlyWiki + +Sirve un wiki a través de HTTP. + +El comando listen usa parámetros con nombre: + +``` +--listen [<name>=<value>]... +``` + +Todos los parámetros son opcionales con valores predeterminados seguros y se pueden especificar en cualquier orden. Los parámetros reconocidos son: + +* ''host'' - nombre de host opcional desde el que servir (el valor predeterminado es "127.0.0.1" también conocido como "localhost") +* ''path-prefix'' - prefijo opcional para rutas +* ''port'' - número de puerto en el que escuchar; los valores no numéricos se interpretan como una variable de entorno del sistema de la que se extrae el número de puerto (el valor predeterminado es "8080") +* ''credentials'' - nombre de ruta del archivo CSV de credenciales (relativo a la carpeta wiki) +* ''anon-username'' - el nombre de usuario para firmar ediciones de usuarios anónimos +* ''username'' - nombre de usuario opcional para autenticación básica +* ''password'' - contraseña opcional para autenticación básica +* ''authenticated-user-header'' - nombre opcional del encabezado que se utilizará para la autenticación de confianza +* ''readers'' - lista separada por comas de los usuarios autorizados a leer de este wiki +* ''writers'' - lista separada por comas de los usuarios autorizados a escribir en este wiki +* ''csrf-disable'' - establecer a "yes" para deshabilitar las comprobaciones CSRF (el valor predeterminado es "no") +* ''sse-enabled'' - establecer a "yes" para habilitar los eventos enviados por el servidor (el valor predeterminado es "no") +* ''root-tiddler'' - el tiddler para servir en la raíz (por defecto es "$:/core/save/all") +* ''root-render-type'' - el tipo de contenido del tiddler raíz (por defecto es "text/plain") +* ''root-serve-type'' - el tipo de contenido con el que se debe servir el tiddler raíz (el valor predeterminado es "text/html") +* ''tls-cert'' - nombre de ruta del archivo de certificado TLS (relativo a la carpeta wiki) +* ''tls-key'' - nombre de ruta del archivo de clave TLS (relativo a la carpeta wiki) +* ''debug-level'' - nivel de depuración opcional; establecer en "debug" para ver los detalles de las solicitudes (el valor predeterminado es "none") +* ''gzip'' - establecer a "yes" para habilitar la compresión gzip para algunos puntos finales http (el valor predeterminado es "no") +* ''use-browser-cache'' - establecer a "yes" para permitir que el navegador almacene en caché las respuestas para ahorrar ancho de banda (el valor predeterminado es "no") + +Para obtener información sobre cómo abrir tu instancia a toda la red local y posibles problemas de seguridad, consulta el tiddler de WebServer en TiddlyWiki.com. diff --git a/languages/es-ES/Help/load.tid b/languages/es-ES/Help/load.tid index 92a66832a..1dcd78b0d 100644 --- a/languages/es-ES/Help/load.tid +++ b/languages/es-ES/Help/load.tid @@ -1,12 +1,15 @@ title: $:/language/Help/load description: Carga tiddlers desde un archivo -Carga tiddlers de archivos de tipo TiddlyWiki 2.x.x.(`.html`), `.tiddler`, `.tid`, `.json` u otros +Carga tiddlers de archivos de tipo TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` u otros archivos locales. El procesamiento aplicado a los archivos entrantes será determinado por la extensión del archivo. Utiliza el comando `import` si necesita especificar el deserializador y la codificación explícitamente. ``` ---load <filepath> +--load <filepath> [noerror] +--load <dirpath> [noerror] ``` +De forma predeterminada, el comando `load` genera un error si no se encuentran tiddlers. El error se puede suprimir proporcionando el parámetro opcional "noerror". + Para cargar tiddlers de un TiddlyWiki encriptado, primero debes especificar la contraseña con el comando PasswordCommand. Por ejemplo: ``` diff --git a/languages/es-ES/Help/makelibrary.tid b/languages/es-ES/Help/makelibrary.tid index 894752d5e..e244796e1 100644 --- a/languages/es-ES/Help/makelibrary.tid +++ b/languages/es-ES/Help/makelibrary.tid @@ -1,11 +1,9 @@ title: $:/language/Help/makelibrary description: Compila la librería de plugins necesaria para actualizar TiddlyWiki - Construye el tiddler `$:/UpgradeLibrary`: librería de actualización -La librería de actualización tiene formato de plugin ordinario, de tipo `library`<br> -Contiene copia de cada uno de los plugins, temas y paquetes de idioma disponibles en el repositorio de TiddlyWiki5 +La librería de actualización tiene formato de plugin ordinario, de tipo `library`. Contiene copia de cada uno de los plugins, temas y paquetes de idioma disponibles en el repositorio de TiddlyWiki5 Este comando es, en principio, para uso interno del equipo de TiddlyWiki y sólo es de interés para aquellos usuarios que deseen compilar actualizaciones personalizadas diff --git a/languages/es-ES/Help/password.tid b/languages/es-ES/Help/password.tid index e6d865408..e603a757e 100644 --- a/languages/es-ES/Help/password.tid +++ b/languages/es-ES/Help/password.tid @@ -1,5 +1,5 @@ title: $:/language/Help/password -description: Establece contraseña para operaciones de cifrado subsiguientes +description: Establece una contraseña para operaciones de cifrado subsiguientes Establece contraseña para las operaciones subsiguientes de cifrado @@ -7,3 +7,4 @@ Establece contraseña para las operaciones subsiguientes de cifrado --password <password> ``` +''Nota'': Esto no debe usarse para servir TiddlyWiki con protección por contraseña. En su lugar, consulta la opción de contraseña en [[ServerCommand]]. diff --git a/languages/es-ES/Help/render.tid b/languages/es-ES/Help/render.tid new file mode 100644 index 000000000..a3a76741d --- /dev/null +++ b/languages/es-ES/Help/render.tid @@ -0,0 +1,35 @@ +title: $:/language/Help/render +description: Renderiza tiddlers individuales en archivos + +Renderiza tiddlers individuales identificados por un filtro y guarda los resultados en los archivos especificados. + +Opcionalmente, se puede especificar el título de un tiddler de plantilla. En este caso, en lugar de representar directamente cada tiddler, la plantilla tiddler se procesa con la variable "currentTiddler" establecida en el título del tiddler que se está procesando. + +También se puede especificar un nombre y valor para variables adicionales. + +``` +--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [ [<name>] [<value>] ]* +``` + +* ''tiddler-filter'': Un filtro que identifica los tiddlers que se procesarán +* ''filename-filter'': Filtro opcional que transforma los títulos de tiddler en nombres de ruta. Si se omite, el valor predeterminado es `[is[tiddler]addsuffix[.html]]`, que utiliza el título del tiddler sin cambios como nombre de archivo +* ''render-type'': Tipo de renderizado opcional: `text/html` (el predeterminado) devuelve el texto HTML completo y `text/plain` simplemente devuelve el contenido del texto (es decir, ignora las etiquetas HTML y otros elementos no imprimibles) +* ''template'': Plantilla opcional a través de la cual se representa cada tiddler +* ''name'': Nombre de variables opcionales +* ''value'': Valor de variables opcionales + +De forma predeterminada, el nombre del archivo se resuelve relativo al subdirectorio `output` del directorio de edición. El comando `--output` se puede usar para dirigir la salida a otro directorio diferente. + +Notas: + +* No se elimina ningún contenido del directorio de salida +* Los directorios que faltan en la ruta al nombre del archivo se crean automáticamente. +* Cuando se refiera a un tiddler con espacios en su título, ten cuidado de usar las comillas requeridas por la línea de comandos y también los corchetes dobles de TiddlyWiki: `--render "[[Motovun Jack.jpg]]"` +* El filtro de nombre de archivo se evalúa con los elementos seleccionados que se establecen en el título del tiddler que se está procesando actualmente, lo que permite que el título se utilice como base para calcular el nombre de archivo. Por ejemplo, `[encodeuricomponent[]addprefix[static/]]` aplica codificación URI a cada título y luego añade el prefijo `static/` +* Se pueden usar múltiples pares ''nombre''/''valor'' para pasar más de una variable +* El comando `--render` es un reemplazo más flexible para los comandos `--rendertiddler` y `--rendertiddlers`, que están en desuso + +Ejemplos: + +* `--render "[!is[system]]" "[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]"` -- muestra todos los tiddlers que no son del sistema como archivos en el subdirectorio "tiddlers" con títulos codificados en URL y la extensión HTML + diff --git a/languages/es-ES/Help/rendertiddler.tid b/languages/es-ES/Help/rendertiddler.tid index 6ae1c2d9c..dd6eaec8e 100644 --- a/languages/es-ES/Help/rendertiddler.tid +++ b/languages/es-ES/Help/rendertiddler.tid @@ -1,13 +1,24 @@ title: $:/language/Help/rendertiddler description: Genera un tiddler del ContentType que se especifique +(Nota: el comando `--rendertiddler` está obsoleto en favor del nuevo y más flexible comando `--render`) + Genera un tiddler del ContentType que se especifique (por defecto `text/html`) y lo guarda con el nombre de archivo especificado +Opcionalmente, se puede especificar el título de un tiddler de plantilla, en cuyo caso el tiddler de plantilla se representa con la variable "currentTiddler" establecida en el tiddler que se está procesando (el primer valor de parámetro). + +También se puede especificar un nombre y valor para variables adicionales. + ``` ---rendertiddler <title> <filename> [<type>] +--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>] ``` -Por defecto, el nombre de archivo es relativo al subdirectorio `output` en el directorio del wiki<br> -Puede usarse el comando `--output` para dirigir la salida a cualquier otro directorio +Por defecto, el nombre de archivo es relativo al subdirectorio `output` en el directorio del wiki. Puede usarse el comando `--output` para dirigir la salida a cualquier otro directorio Los directorios no existentes en la ruta del nombre de archivo se crean automáticamente. + +Por ejemplo, el siguiente comando guarda todos los tiddlers que coinciden con el filtro `[tag[done]]` en un archivo JSON titulado `output.json` aplicando la plantilla principal `$:/core/templates/exporters/JsonFile`. + +``` +--rendertiddler "$:/core/templates/exporters/JsonFile" output.json text/plain "" exportFilter "[tag[done]]" +``` diff --git a/languages/es-ES/Help/rendertiddlers.tid b/languages/es-ES/Help/rendertiddlers.tid index 6c35c6acc..446fd7fbe 100644 --- a/languages/es-ES/Help/rendertiddlers.tid +++ b/languages/es-ES/Help/rendertiddlers.tid @@ -1,20 +1,20 @@ title: $:/language/Help/rendertiddlers description: Genera tiddlers coincidentes con un determinado ContentType +(Nota: el comando `--rendertiddlers` está obsoleto en favor del nuevo y más flexible comando` --render`) + Genera un conjunto de tiddlers de un determinado ContentType (por defecto `text/html`) y extensión de archivo (por defecto, `.html`), coincidentes con el argumento de un filtro ``` ---rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] +--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] ["noclean"] ``` Por ejemplo: ``` ---rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain +--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain ``` -Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki<br> -Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente +Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki. Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente -Cualquier archivo existente en el directorio de destino será borrado<br> -Los directorios no existentes en la ruta del nombre de archivo se crean automáticamente. +Cualquier archivo existente en el directorio de destino será borrado a no ser que se especifique el comando ''noclean''. Los directorios no existentes en la ruta del nombre de archivo se crean automáticamente. diff --git a/languages/es-ES/Help/save.tid b/languages/es-ES/Help/save.tid new file mode 100644 index 000000000..48f93c020 --- /dev/null +++ b/languages/es-ES/Help/save.tid @@ -0,0 +1,25 @@ +title: $:/language/Help/save +description: Guarda tiddlers individuales sin procesar en archivos + +Guarda tiddlers individuales identificados por un filtro en su texto sin formato o formato binario en los archivos especificados. + +``` +--save <tiddler-filter> <filename-filter> +``` + +* ''tiddler-filter'': Un filtro que identifica a los tiddler que se guardarán. +* ''filename-filter'': Filtro opcional que transforma los títulos de tiddler en nombres de ruta. Si se omite, el valor predeterminado es "[is[tiddler]]", que utiliza el título del tiddler sin cambios como nombre de archivo + +De forma predeterminada, el nombre del archivo se resuelve relativo al subdirectorio `output` del directorio de edición. El comando `--output` se puede usar para dirigir la salida a otro directorio diferente. + +Notas: + +* No se elimina ningún contenido del directorio de salida +* Los directorios que faltan en la ruta al nombre del archivo se crean automáticamente. +* Cuando se refiera a un tiddler con espacios en su título, ten cuidado de usar las comillas requeridas por la línea de comandos y también los corchetes dobles de TiddlyWiki: `--save "[[Motovun Jack.jpg]]"` +* El filtro de nombre de archivo se evalúa con los elementos seleccionados que se establecen en el título del tiddler que se está procesando actualmente, lo que permite que el título se utilice como base para calcular el nombre de archivo. Por ejemplo, `[encodeuricomponent[]addprefix[static/]]` aplica codificación URI a cada título y luego añade el prefijo `static/` +* El comando `--save` es un reemplazo más flexible para los comandos `--savetiddler` y `--savetiddlers`, que están en desuso + +Ejemplos: + +* `--save "[!is[system]is[image]]" "[encodeuricomponent[]addprefix[tiddlers/]]"` -- guarda todos los tiddlers de imágenes que no son del sistema como archivos en el subdirectorio "tiddlers" con títulos codificados en URL diff --git a/languages/es-ES/Help/savetiddler.tid b/languages/es-ES/Help/savetiddler.tid index ab1ca6539..b8c13bdef 100644 --- a/languages/es-ES/Help/savetiddler.tid +++ b/languages/es-ES/Help/savetiddler.tid @@ -1,13 +1,14 @@ title: $:/language/Help/savetiddler description: Guarda un tiddler en un archivo +(Nota: el comando `--savetiddler` está obsoleto en favor del nuevo y más flexible comando `--save`) + Guarda un tiddler individual en formato binario o como texto plano con el nombre de archivo especificado. ``` --savetiddler <title> <filename> ``` -Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki<br> -Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente +Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki. Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente Los directorios no existentes en la ruta del nombre de archivo se crean automáticamente. diff --git a/languages/es-ES/Help/savetiddlers.tid b/languages/es-ES/Help/savetiddlers.tid index 0c3b6bf2f..f15e8ebd5 100644 --- a/languages/es-ES/Help/savetiddlers.tid +++ b/languages/es-ES/Help/savetiddlers.tid @@ -1,13 +1,16 @@ title: $:/language/Help/savetiddlers description: Guarda un grupo de tiddlers de formato plano en un directorio +(Nota: el comando `--savetiddlers` está obsoleto en favor del nuevo y más flexible comando `--save`) + Guarda un grupo de tiddlers en formato binario o como texto plano en el directorio especificado. ``` ---savetiddlers <filter> <pathname> +--savetiddlers <filter> <pathname> ["noclean"] ``` -Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki<br> -Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente +Por defecto, la ruta es relativa al subdirectorio `output` del directorio del wiki. Puede usarse con el comando `--output` para dirigir la salida a un directorio diferente + +El directorio de salida se borra de los archivos existentes antes de guardar los archivos especificados. La eliminación se puede desactivar especificando el indicador "noclean". Los directorios no existentes en la ruta del nombre de archivo se crean automáticamente. diff --git a/languages/es-ES/Help/savewikifolder.tid b/languages/es-ES/Help/savewikifolder.tid new file mode 100644 index 000000000..6522b7155 --- /dev/null +++ b/languages/es-ES/Help/savewikifolder.tid @@ -0,0 +1,19 @@ +title: $:/language/Help/savewikifolder +description: Guarda un wiki en una nueva carpeta de wiki + +<<.from-version "5.1.20">> Guarda el wiki actual como una carpeta de wiki, incluidos tiddlers, complementos y configuración: + +``` +--savewikifolder <wikifolderpath> [<filter>] +``` + +* La carpeta wiki de destino debe estar vacía o no existir +* El filtro especifica qué tiddlers deben incluirse. Es opcional, por defecto es `[all[tiddlers]]` +* Los complementos de la biblioteca oficial de complementos se reemplazan con referencias a esos complementos en el archivo `tiddlywiki.info` +* Los complementos personalizados se descomprimen en su propia carpeta + +Un uso común es convertir un archivo HTML de TiddlyWiki en una carpeta wiki: + +``` +tiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder +``` diff --git a/languages/es-ES/Help/server.tid b/languages/es-ES/Help/server.tid index 8634c9e2a..b16769dfe 100644 --- a/languages/es-ES/Help/server.tid +++ b/languages/es-ES/Help/server.tid @@ -1,18 +1,15 @@ title: $:/language/Help/server -description: Proporciona interfaz de servidor HTTP a TiddlyWiki +description: Proporciona interfaz de servidor HTTP a TiddlyWiki (en desuso a favor del nuevo comando listen) -El servidor compilado para TiddlyWiki5 es muy simple. Aunque es compatible con TiddlyWeb, no soporta muchas de las características necesarias para un uso robusto en Internet. - -En la raíz, sirve un tiddler específico<br> -Fuera de la raíz, sirve tiddlers individuales codificados en JSON, y soporta operaciones básicas HTTP de `GET`, `PUT` y `DELETE`. +Comando obsoleto para servir una wiki a través de HTTP. ``` ---server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix> +--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level> ``` Los parámetros son -* ''port'' - número de puerto desde el que sirve (por defecto, "8080") +* ''port'' - número de puerto desde el que sirve; valores no numéricos se interpretan como una variable de entorno del sistema de la que se extrae el número de puerto (por defecto, "8080") * ''roottiddler'' - tiddler que se sirve desde la raíz (por defecto, "$:/core/save/all") * ''rendertype'' - tipo de contenido con el que se genera el tiddler raíz (por defecto "text/plain") * ''servetype'' - tipo de contenido con el que se sirve el tiddler raíz (por defecto "text/html") @@ -20,8 +17,9 @@ Los parámetros son * ''password'' - contraseña opcional para autenticación básica * ''host'' - nombre opcional del servidor desde el que se sirve (por defecto, "127.0.0.1" o "localhost") * ''pathprefix'' - prefijo opcional para rutas +* ''debug-level'' - nivel de depuración opcional; establecer en "debug" para ver los detalles de la solicitud (el valor predeterminado es "none") -Si se ha definido contraseña, el navegador pedirá que se introduzca nombre y contraseña. <br>Nótese que la contraseña se transmite en modo texto por lo que esta implementación no es apropiada para uso general. +Si se ha definido contraseña, el navegador pedirá que se introduzca nombre y contraseña. <br>Nótese que la contraseña se transmite en modo texto por lo que esta implementación solo debe usarse en redes seguras or utilizando HTTPS. Por ejemplo: @@ -35,4 +33,10 @@ El nombre de usuario y la contraseña pueden ser especificados como cadenas de s --server 8080 $:/core/save/all text/plain text/html "" "" 192.168.0.245 ``` +El uso de una dirección como esta expone tu sistema a la red local. Para obtener información sobre cómo abrir tu instancia a toda la red local y posibles problemas de seguridad, consulta el tiddler de WebServer en TiddlyWiki.com. + Para ejecutar simultáneamente múltiples servidores TiddlyWiki, deberán configurarse cada uno en un puerto diferente + +``` +--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd +``` diff --git a/languages/es-ES/Import.multids b/languages/es-ES/Import.multids index 0c623b69b..46b912997 100644 --- a/languages/es-ES/Import.multids +++ b/languages/es-ES/Import.multids @@ -1,15 +1,33 @@ title: $:/language/Import/ -Imported/Hint: Se importaron los siguientes tiddlers +Editor/Import/Heading: Importar imágenes e insertarlas en el editor. +Imported/Hint: Se importaron los siguientes tiddlers Listing/Cancel/Caption: Cancelar Listing/Hint: Tiddlers listos para importar Listing/Import/Caption: Importar Listing/Select/Caption: Seleccionar Listing/Status/Caption: Estado Listing/Title/Caption: Título -Upgrader/Plugins/Suppressed/Incompatible: Plugin bloqueado, incompatible u obsoleto -Upgrader/Plugins/Suppressed/Version: Plugin bloqueado debido a que <<incoming>> es más antiguo que el <<existing>> -Upgrader/Plugins/Upgraded: Plugin actualizado de <<incoming>> a <<upgraded>> +Listing/Preview: Vista previa: +Listing/Preview/Text: Texto +Listing/Preview/TextRaw: Texto (crudo) +Listing/Preview/Fields: Campos +Listing/Preview/Diff: Diff +Listing/Preview/DiffFields: Diff (Campos) +Listing/Rename/Tooltip: Renombra tiddler antes de importar +Listing/Rename/Prompt: Renombrar a: +Listing/Rename/ConfirmRename: Renombrar tiddler +Listing/Rename/CancelRename: Cancelar +Listing/Rename/OverwriteWarning: Ya existe un tiddler con este título. +Upgrader/Plugins/Suppressed/Incompatible: Complemento bloqueado, incompatible u obsoleto +Upgrader/Plugins/Suppressed/Version: Complemento bloqueado debido a que <<incoming>> es más antiguo que el <<existing>> +Upgrader/Plugins/Upgraded: Complemento actualizado de <<incoming>> a <<upgraded>> Upgrader/State/Suppressed: Tiddler temporal bloqueado +Upgrader/System/Disabled: Tiddler del sistema deshabilitado. Upgrader/System/Suppressed: Tiddler de sistema bloqueado +Upgrader/System/Warning: tiddler del sistema principal. +Upgrader/System/Alert: Estás a punto de importar un tiddler que sobrescribirá un tiddler del sistema principal. Esto no se recomienda ya que puede hacer que el sistema sea inestable. Upgrader/ThemeTweaks/Created: Ajuste de tema migrado de <$text text=<<from>>/> +Upgrader/Tiddler/Disabled: Tiddler deshabilitado. +Upgrader/Tiddler/Selected: Usuario seleccionado. +Upgrader/Tiddler/Unselected: Tiddler no seleccionado. diff --git a/languages/es-ES/Misc.multids b/languages/es-ES/Misc.multids index df36e3a6c..fb0bedf65 100644 --- a/languages/es-ES/Misc.multids +++ b/languages/es-ES/Misc.multids @@ -1,49 +1,96 @@ title: $:/language/ -AboveStory/ClassicPlugin/Warning: Parece que quieres cargar un plugin diseñado para ~TiddlyWiki Classic. <br> -Ten en cuenta que [[estos plugins no funcionan en TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]<br> -Plugins de ~TiddlyWiki Classic detectados +AboveStory/ClassicPlugin/Warning: Parece que quieres cargar un plugin diseñado para ~TiddlyWiki Classic. <br> Ten en cuenta que [[estos plugins no funcionan en TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]<br> Plugins de ~TiddlyWiki Classic detectados BinaryWarning/Prompt: Este tiddler contiene datos binarios -ClassicWarning/Hint: Este tiddler está escrito en formato de texto de una versión de TiddlyWiki Classic que no es totalmente compatible con la versión 5 de TiddlyWiki<br> -Visite https://tiddlywiki.com/static/Upgrading.html para más información +ClassicWarning/Hint: Este tiddler está escrito en formato de texto de una versión de TiddlyWiki Classic que no es totalmente compatible con la versión 5 de TiddlyWiki<br> Visite https://tiddlywiki.com/static/Upgrading.html para más información ClassicWarning/Upgrade/Caption: Actualizar CloseAll/Button: Cerrar todo ColourPicker/Recent: Recientes: ConfirmCancelTiddler: ¿Deseas descartar los cambios efectuados en "<$text text=<<title>>/>"? ConfirmDeleteTiddler: ¿Deseas borrar "<$text text=<<title>>/>"? -ConfirmEditShadowTiddler: Estás a punto de editar un tiddler oculto<br> -Todo cambio en él afectará al sistema por defecto y pondrá en riesgo futuras actualizaciones del sistema<br> -¿Estás seguro de querer editar "<$text text=<<title>>/>"? -ConfirmOverwriteTiddler: ¿Deseas sobreescribir "<$text text=<<title>>/>"? +ConfirmOverwriteTiddler: ¿Deseas sobrescribir "<$text text=<<title>>/>"? +ConfirmEditShadowTiddler: Estás a punto de editar un tiddler oculto<br> Todo cambio en él afectará al sistema por defecto y pondrá en riesgo futuras actualizaciones del sistema<br> ¿Estás seguro de querer editar "<$text text=<<title>>/>"? +ConfirmAction: ¿Desea continuar? Count: Número DefaultNewTiddlerTitle: Nuevo Tiddler +Diffs/CountMessage: <<diff-count>> diferencias DropMessage: Suéltalo aquí o pulsa ''ESC'' para cancelar Encryption/Cancel: Cancelar -Encryption/ConfirmClearPassword: ¿Deseas borrar la contraseña? <br> -Revocarás el cifrado que se aplica para guardar este wiki -Encryption/Password: Contraseña -Encryption/PasswordNoMatch: Las contraseñas no coinciden +Encryption/ConfirmClearPassword: ¿Deseas borrar la contraseña? <br> Revocarás el cifrado que se aplica para guardar este wiki Encryption/PromptSetPassword: Especifica nueva contraseña para este TiddlyWiki -Encryption/RepeatPassword: Repite la contraseña -Encryption/SetPassword: Establecer contraseña Encryption/Username: Usuario -InternalJavaScriptError/Hint: Tenemos un problema. Se recomienda que reinicies TiddlyWiki +Encryption/Password: Contraseña +Encryption/RepeatPassword: Repite la contraseña +Encryption/PasswordNoMatch: Las contraseñas no coinciden +Encryption/SetPassword: Establecer contraseña +Error/Caption: Error +Error/Filter: Error de filtro +Error/FilterSyntax: Error de sintaxis en la expresión de filtro +Error/FilterRunPrefix: Error en Filtro: Prefijo desconocido para la ejecución del filtro +Error/IsFilterOperator: Error en Filtro: Operando desconocido para el operador de filtro 'is' +Error/FormatFilterOperator: Error en Filtro: Sufijo desconocido para el operador de filtro 'format' +Error/LoadingPluginLibrary: Error al cargar la biblioteca de complementos +Error/NetworkErrorAlert: `<h2>''Error de Red''</h2>Parece que se perdió la conexión con el servidor. Esto puede indicar un problema con tu conexión de red. Intenta restaurar la conectividad de red antes de continuar.<br><br>''Cualquier cambio no guardado se sincronizará automáticamente cuando se restaure la conectividad''.` +Error/PutEditConflict: Archivo cambiado en el servidor +Error/PutForbidden: Permiso denegado +Error/PutUnauthorized: Se requiere autenticación +Error/RecursiveTransclusion: Error de transclusión recursiva en el widget de transclusión +Error/RetrievingSkinny: Error al recuperar la lista resumida de tiddlers +Error/SavingToTWEdit: Error al guardar en TWEdit +Error/WhileSaving: Error al guardar +Error/XMLHttpRequest: Código de error XMLHttpRequest +InternalJavaScriptError/Hint: Hay un problema. Se recomienda que reinicies TiddlyWiki InternalJavaScriptError/Title: Error interno de JavaScript -InvalidFieldName: Caracteres ilegales en el campo "<$text text=<<fieldName>>/>"<br> -Los campos sólo pueden contener letras en minúscula, dígitos y los caracteres guión bajo (`_`), guión corto (`-`) y punto (`.`) -LazyLoadingWarning: <p>Cargando texto externo desde ''<$text text={{!!_canonical_uri}}/>''</p><p>Si este mensaje no desaparece, puede que se deba a que estás usando un navegador que con esta configuración no permite texto externo</br> -Vea https://tiddlywiki.com/#ExternalText</p> +InvalidFieldName: Caracteres ilegales en el campo "<$text text=<<fieldName>>/>"<br> Los campos sólo pueden contener letras en minúscula, dígitos y los caracteres guión bajo (`_`), guión corto (`-`) y punto (`.`) +LayoutSwitcher/Description: Abre el selector de diseño +LazyLoadingWarning: <p>Cargando texto externo desde ''<$text text={{!!_canonical_uri}}/>''</p><p>Si este mensaje no desaparece, puede que se deba a que estás usando un navegador que con esta configuración no permite texto externo</br> Vea https://tiddlywiki.com/#ExternalText</p> +LoginToTiddlySpace: Inicia sesión en TiddlySpace +Manager/Controls/FilterByTag/None: (ninguno) +Manager/Controls/FilterByTag/Prompt: Filtrar por etiqueta: +Manager/Controls/Order/Prompt: Orden inverso +Manager/Controls/Search/Placeholder: Buscar +Manager/Controls/Search/Prompt: Buscar: +Manager/Controls/Show/Option/Tags: etiquetas +Manager/Controls/Show/Option/Tiddlers: tiddlers +Manager/Controls/Show/Prompt: Mostrar: +Manager/Controls/Sort/Prompt: Ordenar por: +Manager/Item/Colour: Color +Manager/Item/Fields: Campos +Manager/Item/Icon/None: (ninguno) +Manager/Item/Icon: Icono +Manager/Item/RawText: Texto sin procesar +Manager/Item/Tags: Etiquetas +Manager/Item/Tools: Herramientas +Manager/Item/WikifiedText: Texto Wikified MissingTiddler/Hint: El tiddler "<$text text=<<currentTiddler>>/>" no existe - haz clic en {{||$:/core/ui/Buttons/edit}} para crearlo -OfficialPluginLibrary: Librería de plugins oficiales de ~TiddlyWiki -OfficialPluginLibrary/Hint: Librería de plugins oficiales de ~TiddlyWiki en tiddlywiki.com<br> -Plugins, temas y paquetes de idioma que mantiene el equipo de TiddlyWiki +No: No +OfficialPluginLibrary: Librería de complementos oficiales de ~TiddlyWiki +OfficialPluginLibrary/Hint: Librería de complementos oficiales de ~TiddlyWiki en tiddlywiki.com<br> Plugins, temas y paquetes de idioma que mantiene el equipo de TiddlyWiki +PageTemplate/Description: la disposición por defecto de ~TiddlyWiki +PageTemplate/Name: ~PageTemplate por defecto PluginReloadWarning: Guarda {{$:/core/ui/Buttons/save-wiki}} y recarga {{$:/core/ui/Buttons/refresh}} para que los cambios surtan efecto. RecentChanges/DateFormat: DD MMM YYYY +Shortcuts/Input/AdvancedSearch/Hint: Abre el panel ~AdvancedSearch desde el campo de búsqueda de la barra lateral +Shortcuts/Input/Accept/Hint: Acepta el elemento seleccionado +Shortcuts/Input/AcceptVariant/Hint: Acepta el elemento seleccionado (variante) +Shortcuts/Input/Cancel/Hint: Vacía el campo de entrada +Shortcuts/Input/Down/Hint: Selecciona el siguiente elemento +Shortcuts/Input/Tab-Left/Hint: Selecciona la Pestaña anterior +Shortcuts/Input/Tab-Right/Hint: Selecciona la siguiente Pestaña +Shortcuts/Input/Up/Hint: Selecciona el elemento anterior +Shortcuts/SidebarLayout/Hint: Cambiar disposición barra lateral +Switcher/Subtitle/theme: Cambiar tema +Switcher/Subtitle/layout: Cambiar disposición +Switcher/Subtitle/language: Cambiar idioma +Switcher/Subtitle/palette: Cambiar paleta SystemTiddler/Tooltip: Este es un tiddler de sistema +SystemTiddlers/Include/Prompt: Incluir tiddlers del sistema TagManager/Colour/Heading: Color TagManager/Count/Heading: Número TagManager/Icon/Heading: Icono +TagManager/Icons/None: Ninguno TagManager/Info/Heading: Información TagManager/Tag/Heading: Etiqueta Tiddler/DateFormat: DD MMM YYYY a las hh:0mm UnsavedChangesWarning: Tienes cambios sin guardar en TiddlyWiki +Yes: Yes diff --git a/languages/es-ES/NewJournalTags.tid b/languages/es-ES/NewJournalTags.tid new file mode 100644 index 000000000..8a3fa5bf8 --- /dev/null +++ b/languages/es-ES/NewJournalTags.tid @@ -0,0 +1,3 @@ +title: $:/config/NewJournal/Tags + +Diario diff --git a/languages/es-ES/Notifications.multids b/languages/es-ES/Notifications.multids index c699dd0d0..2b2cdb051 100644 --- a/languages/es-ES/Notifications.multids +++ b/languages/es-ES/Notifications.multids @@ -1,4 +1,6 @@ title: $:/language/Notifications/ Save/Done: Guardado -Save/Starting: Comenzando a guardar +Save/Starting: Comenzando a guardar wiki +CopiedToClipboard/Succeeded: ¡Copiado al portapapeles! +CopiedToClipboard/Failed: ¡No se pudo copiar al portapapeles! diff --git a/languages/es-ES/Search.multids b/languages/es-ES/Search.multids index 3ed5f4d12..d1eb495d4 100644 --- a/languages/es-ES/Search.multids +++ b/languages/es-ES/Search.multids @@ -8,6 +8,7 @@ Matches: //<small><<resultCount>> coincidencias </small>// Matches/All: Cualquier coincidencia Matches/Title: En título Search: Búsqueda +Search/TooShort: Texto de búsqueda demasiado corto Shadows/Caption: Ocultos Shadows/Hint: Busca en los tiddlers ocultos Shadows/Matches: //<small><<resultCount>> coincidencias </small>// diff --git a/languages/es-ES/SideBar.multids b/languages/es-ES/SideBar.multids index 6723fa5a2..5aa0ed207 100644 --- a/languages/es-ES/SideBar.multids +++ b/languages/es-ES/SideBar.multids @@ -3,6 +3,7 @@ title: $:/language/SideBar/ All/Caption: Todos Contents/Caption: Contenido Drafts/Caption: Borradores +Explorer/Caption: Explorar Missing/Caption: Vacíos More/Caption: Más Open/Caption: Abiertos diff --git a/languages/es-ES/ThemeTweaks.multids b/languages/es-ES/ThemeTweaks.multids new file mode 100644 index 000000000..cf2351de3 --- /dev/null +++ b/languages/es-ES/ThemeTweaks.multids @@ -0,0 +1,42 @@ +title: $:/language/ThemeTweaks/ + +ThemeTweaks: Ajustes del tema +ThemeTweaks/Hint: Puedes modificar ciertos aspectos del tema ''Vanilla''. +Options: Opciones +Options/SidebarLayout: Diseño de la barra lateral +Options/SidebarLayout/Fixed-Fluid: Visor fijado, Herramientas fluido +Options/SidebarLayout/Fluid-Fixed: Visor fluido, Herramientas fijado +Options/StickyTitles: Títulos fijos +Options/StickyTitles/Hint: Hace que los títulos de tiddler se "peguen" en la parte superior de la ventana del navegador +Options/CodeWrapping: Envuelve líneas largas en bloques de código +Settings: Configuración +Settings/FontFamily: Fuente de texto +Settings/CodeFontFamily: Fuente de texto para código +Settings/EditorFontFamily: Fuente de texto para editor +Settings/BackgroundImage: Imagen de fondo de la página +Settings/BackgroundImageAttachment: Archivo adjunto de imagen de fondo de página +Settings/BackgroundImageAttachment/Scroll: Desplazamiento con tiddlers +Settings/BackgroundImageAttachment/Fixed: Fijo en la ventana +Settings/BackgroundImageSize: Tamaño de la imagen de fondo de la página +Settings/BackgroundImageSize/Auto: Automático +Settings/BackgroundImageSize/Cover: Rellenar +Settings/BackgroundImageSize/Contain: Contenido +Metrics: Tamaños +Metrics/FontSize: Tamaño de fuente +Metrics/LineHeight: Altura de línea +Metrics/BodyFontSize: Tamaño de fuente para el cuerpo del tiddler +Metrics/BodyLineHeight: Altura de la línea para el cuerpo del tiddler +Metrics/StoryLeft: Posición izquierda del visor +Metrics/StoryLeft/Hint: Distancia del visor del margen izquierdo de la página +Metrics/StoryTop: Posición superior del visor +Metrics/StoryTop/Hint: Distancia del visor del margen superior de la página +Metrics/StoryRight: Visor derecha +Metrics/StoryRight/Hint: Distancia de la barra lateral del margen izquierdo de la página +Metrics/StoryWidth: Visor ancho +Metrics/StoryWidth/Hint: Ancho total del visor +Metrics/TiddlerWidth: Ancho de Tiddler +Metrics/TiddlerWidth/Hint: dentro del visor +Metrics/SidebarBreakpoint: Punto ruptura barra lateral +Metrics/SidebarBreakpoint/Hint: el ancho mínimo de página en el que el visor y<br> la barra lateral aparecerán una al lado de la otra. +Metrics/SidebarWidth: Ancho barra lateral +Metrics/SidebarWidth/Hint: el ancho de la barra lateral en un diseño fluido-fijo diff --git a/languages/es-ES/TiddlerInfo.multids b/languages/es-ES/TiddlerInfo.multids index a8aefc911..145e86826 100644 --- a/languages/es-ES/TiddlerInfo.multids +++ b/languages/es-ES/TiddlerInfo.multids @@ -2,13 +2,13 @@ title: $:/language/TiddlerInfo/ Advanced/Caption: Avanzado Advanced/PluginInfo/Empty/Hint: No se han instalado -Advanced/PluginInfo/Heading: Detalles del plugin +Advanced/PluginInfo/Heading: Detalles del complemento Advanced/PluginInfo/Hint: Este plugin contiene los siguientes tiddlers ocultos Advanced/ShadowInfo/Heading: Oculto Advanced/ShadowInfo/NotShadow/Hint: El tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> no es de tipo oculto -Advanced/ShadowInfo/OverriddenShadow/Hint: Anulado por un tiddler estándar Advanced/ShadowInfo/Shadow/Hint: El tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> es de tipo oculto Advanced/ShadowInfo/Shadow/Source: Definido en el plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link> +Advanced/ShadowInfo/OverriddenShadow/Hint: Anulado por un tiddler estándar Fields/Caption: Campos List/Caption: Lista List/Empty: Este tiddler no contiene listas diff --git a/languages/es-ES/Types/application%2Fjavascript.tid b/languages/es-ES/Types/application_javascript.tid similarity index 90% rename from languages/es-ES/Types/application%2Fjavascript.tid rename to languages/es-ES/Types/application_javascript.tid index 97315c17f..519f54ccc 100644 --- a/languages/es-ES/Types/application%2Fjavascript.tid +++ b/languages/es-ES/Types/application_javascript.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/javascript description: Código JavaScript name: application/javascript group: Desarrollador +group-sort: 2 diff --git a/languages/es-ES/Types/application%2Fjson.tid b/languages/es-ES/Types/application_json.tid similarity index 89% rename from languages/es-ES/Types/application%2Fjson.tid rename to languages/es-ES/Types/application_json.tid index 5a67916ca..60cd774f3 100644 --- a/languages/es-ES/Types/application%2Fjson.tid +++ b/languages/es-ES/Types/application_json.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/json description: Datos JSON name: application/json group: Desarrollador +group-sort: 2 diff --git a/languages/es-ES/Types/application%2Fx-tiddler-dictionary.tid b/languages/es-ES/Types/application_x_tiddler_dictionary.tid similarity index 91% rename from languages/es-ES/Types/application%2Fx-tiddler-dictionary.tid rename to languages/es-ES/Types/application_x_tiddler_dictionary.tid index 91a1ecd65..f64953721 100644 --- a/languages/es-ES/Types/application%2Fx-tiddler-dictionary.tid +++ b/languages/es-ES/Types/application_x_tiddler_dictionary.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/application/x-tiddler-dictionary description: Diccionario de datos name: application/x-tiddler-dictionary group: Desarrollador +group-sort: 2 diff --git a/languages/es-ES/Types/image%2Fgif.tid b/languages/es-ES/Types/image_gif.tid similarity index 87% rename from languages/es-ES/Types/image%2Fgif.tid rename to languages/es-ES/Types/image_gif.tid index 64c4b96e5..057fc161c 100644 --- a/languages/es-ES/Types/image%2Fgif.tid +++ b/languages/es-ES/Types/image_gif.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/gif description: Imagen .GIF name: image/gif group: Imagen +group-sort: 1 diff --git a/languages/es-ES/Types/image%2Fjpeg.tid b/languages/es-ES/Types/image_jpeg.tid similarity index 87% rename from languages/es-ES/Types/image%2Fjpeg.tid rename to languages/es-ES/Types/image_jpeg.tid index 04d3c8466..663c7347e 100644 --- a/languages/es-ES/Types/image%2Fjpeg.tid +++ b/languages/es-ES/Types/image_jpeg.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/jpeg description: Imagen .JPEG name: image/jpeg group: Imagen +group-sort: 1 diff --git a/languages/es-ES/Types/image%2Fpng.tid b/languages/es-ES/Types/image_png.tid similarity index 87% rename from languages/es-ES/Types/image%2Fpng.tid rename to languages/es-ES/Types/image_png.tid index 5abbb4a7d..c9085fc84 100644 --- a/languages/es-ES/Types/image%2Fpng.tid +++ b/languages/es-ES/Types/image_png.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/png description: Imagen .PNG name: image/png group: Imagen +group-sort: 1 diff --git a/languages/es-ES/Types/image%2Fsvg%2Bxml.tid b/languages/es-ES/Types/image_svg_xml.tid similarity index 88% rename from languages/es-ES/Types/image%2Fsvg%2Bxml.tid rename to languages/es-ES/Types/image_svg_xml.tid index 04fb05653..ce88de09d 100644 --- a/languages/es-ES/Types/image%2Fsvg%2Bxml.tid +++ b/languages/es-ES/Types/image_svg_xml.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/svg+xml description: Imagen .SVG name: image/svg+xml group: Imagen +group-sort: 1 diff --git a/languages/es-ES/Types/image%2Fx-icon.tid b/languages/es-ES/Types/image_x-icon.tid similarity index 89% rename from languages/es-ES/Types/image%2Fx-icon.tid rename to languages/es-ES/Types/image_x-icon.tid index fc7d4fb8a..9a3574bca 100644 --- a/languages/es-ES/Types/image%2Fx-icon.tid +++ b/languages/es-ES/Types/image_x-icon.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/image/x-icon description: Archivo de icono en formato .ICO name: image/x-icon group: Imagen +group-sort: 1 diff --git a/languages/es-ES/Types/text%2Fcss.tid b/languages/es-ES/Types/text_css.tid similarity index 89% rename from languages/es-ES/Types/text%2Fcss.tid rename to languages/es-ES/Types/text_css.tid index 8fbc64f22..b579938bc 100644 --- a/languages/es-ES/Types/text%2Fcss.tid +++ b/languages/es-ES/Types/text_css.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/css description: Hoja de estilos estática name: text/css group: Desarrollador +group-sort: 2 diff --git a/languages/es-ES/Types/text%2Fhtml.tid b/languages/es-ES/Types/text_html.tid similarity index 88% rename from languages/es-ES/Types/text%2Fhtml.tid rename to languages/es-ES/Types/text_html.tid index 803c33f07..6fa3c8995 100644 --- a/languages/es-ES/Types/text%2Fhtml.tid +++ b/languages/es-ES/Types/text_html.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/html description: Lenguaje de marcado HTML name: text/html group: Texto +group-sort: 0 diff --git a/languages/es-ES/Types/text%2Fplain.tid b/languages/es-ES/Types/text_plain.tid similarity index 87% rename from languages/es-ES/Types/text%2Fplain.tid rename to languages/es-ES/Types/text_plain.tid index 6b6cbd5f3..fd52f2176 100644 --- a/languages/es-ES/Types/text%2Fplain.tid +++ b/languages/es-ES/Types/text_plain.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/plain description: Texto plano name: text/plain group: Texto +group-sort: 0 diff --git a/languages/es-ES/Types/text%2Fvnd.tiddlywiki.tid b/languages/es-ES/Types/text_vnd.tiddlywiki.tid similarity index 89% rename from languages/es-ES/Types/text%2Fvnd.tiddlywiki.tid rename to languages/es-ES/Types/text_vnd.tiddlywiki.tid index 510953fec..951b6fb6d 100644 --- a/languages/es-ES/Types/text%2Fvnd.tiddlywiki.tid +++ b/languages/es-ES/Types/text_vnd.tiddlywiki.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/vnd.tiddlywiki description: TiddlyWiki 5 name: text/vnd.tiddlywiki group: Texto +group-sort: 0 diff --git a/languages/es-ES/Types/text%2Fx-tiddlywiki.tid b/languages/es-ES/Types/text_x-tiddlywiki.tid similarity index 89% rename from languages/es-ES/Types/text%2Fx-tiddlywiki.tid rename to languages/es-ES/Types/text_x-tiddlywiki.tid index 802e23ce2..c5864db65 100644 --- a/languages/es-ES/Types/text%2Fx-tiddlywiki.tid +++ b/languages/es-ES/Types/text_x-tiddlywiki.tid @@ -2,3 +2,4 @@ title: $:/language/Docs/Types/text/x-tiddlywiki description: TiddlyWiki Classic name: text/x-tiddlywiki group: Texto +group-sort: 0 diff --git a/languages/es-ES/plugin.info b/languages/es-ES/plugin.info index 63ea93a35..b144f8fdf 100644 --- a/languages/es-ES/plugin.info +++ b/languages/es-ES/plugin.info @@ -3,6 +3,6 @@ "name": "es-ES", "plugin-type": "language", "description": "Castellano. (Spain)", - "author": "Pau DeLuca", - "core-version": ">=5.0.0" -} \ No newline at end of file + "author": "Pau DeLuca,Joe Bordes", + "core-version": ">=5.1.23" +} From 1a6d3e686b0b057fc31e6b92b9eb0ba0a659e519 Mon Sep 17 00:00:00 2001 From: Joe Bordes <joe@tsolucio.com> Date: Sun, 30 May 2021 19:49:57 +0200 Subject: [PATCH 26/32] i18n(EditorPreview) translate difference view caption (#5732) --- core/language/en-GB/EditTemplate.multids | 2 ++ core/ui/EditTemplate/Preview/diffs-current.tid | 2 +- core/ui/EditTemplate/Preview/diffs-shadow.tid | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/language/en-GB/EditTemplate.multids b/core/language/en-GB/EditTemplate.multids index 8072ba42d..fc436059e 100644 --- a/core/language/en-GB/EditTemplate.multids +++ b/core/language/en-GB/EditTemplate.multids @@ -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/Placeholder: Type the text for this tiddler 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/Hint: Remove field Field/Dropdown/Caption: field list diff --git a/core/ui/EditTemplate/Preview/diffs-current.tid b/core/ui/EditTemplate/Preview/diffs-current.tid index 07a6ef647..b552af6b8 100644 --- a/core/ui/EditTemplate/Preview/diffs-current.tid +++ b/core/ui/EditTemplate/Preview/diffs-current.tid @@ -1,6 +1,6 @@ title: $:/core/ui/EditTemplate/body/preview/diffs-current tags: $:/tags/EditPreview -caption: differences from current +caption: {{$:/language/EditTemplate/Body/Preview/Type/DiffCurrent}} list-after: $:/core/ui/EditTemplate/body/preview/output <$list filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}> diff --git a/core/ui/EditTemplate/Preview/diffs-shadow.tid b/core/ui/EditTemplate/Preview/diffs-shadow.tid index 7abfd3952..a9b94e8f3 100644 --- a/core/ui/EditTemplate/Preview/diffs-shadow.tid +++ b/core/ui/EditTemplate/Preview/diffs-shadow.tid @@ -1,6 +1,6 @@ title: $:/core/ui/EditTemplate/body/preview/diffs-shadow 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 filter="[<currentTiddler>!is[image]]" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}> From 51fd02d9b6f2cb2cda8daee649f597be31352f73 Mon Sep 17 00:00:00 2001 From: Joe Bordes <joe@tsolucio.com> Date: Sun, 30 May 2021 19:51:44 +0200 Subject: [PATCH 27/32] i18n(en-GB) apply grammarly recommendations found while translating es-ES (#5733) --- core/language/en-GB/ControlPanel.multids | 2 +- core/language/en-GB/Help/listen.tid | 6 +++--- core/language/en-GB/Help/render.tid | 2 +- core/language/en-GB/Help/save.tid | 2 +- core/language/en-GB/Import.multids | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index 6b8a68ed5..5c105edbb 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -128,7 +128,7 @@ Saving/TiddlySpot/Filename: Upload Filename Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.// Saving/TiddlySpot/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/UploadDir: Upload Directory Saving/TiddlySpot/UserName: Wiki Name diff --git a/core/language/en-GB/Help/listen.tid b/core/language/en-GB/Help/listen.tid index 7e6986c74..41425637f 100644 --- a/core/language/en-GB/Help/listen.tid +++ b/core/language/en-GB/Help/listen.tid @@ -19,8 +19,8 @@ All parameters are optional with safe defaults, and can be specified in any orde * ''username'' - optional username for basic authentication * ''password'' - optional password for basic 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 -* ''writers'' - comma separated list of principals allowed to write to 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 * ''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") * ''root-tiddler'' - the tiddler to serve at the root (defaults to "$:/core/save/all") @@ -30,7 +30,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) * ''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") -* ''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. diff --git a/core/language/en-GB/Help/render.tid b/core/language/en-GB/Help/render.tid index 47be85517..2cd489eef 100644 --- a/core/language/en-GB/Help/render.tid +++ b/core/language/en-GB/Help/render.tid @@ -24,7 +24,7 @@ Notes: * The output directory is not cleared of any existing files * Any missing directories in the path to the filename are automatically created. -* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render "[[Motovun Jack.jpg]]"` +* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets: `--render "[[Motovun Jack.jpg]]"` * The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/` * Multiple ''name''/''value'' pairs can be used to pass more than one variable * The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated diff --git a/core/language/en-GB/Help/save.tid b/core/language/en-GB/Help/save.tid index cb9971cf9..c178a5314 100644 --- a/core/language/en-GB/Help/save.tid +++ b/core/language/en-GB/Help/save.tid @@ -16,7 +16,7 @@ Notes: * The output directory is not cleared of any existing files * Any missing directories in the path to the filename are automatically created. -* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save "[[Motovun Jack.jpg]]"` +* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets: `--save "[[Motovun Jack.jpg]]"` * The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/` * The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated diff --git a/core/language/en-GB/Import.multids b/core/language/en-GB/Import.multids index 77e00a111..074ec5806 100644 --- a/core/language/en-GB/Import.multids +++ b/core/language/en-GB/Import.multids @@ -1,6 +1,6 @@ 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: Listing/Cancel/Caption: Cancel Listing/Hint: These tiddlers are ready to import: From 82ec63e71118f9ee788972371f713579bae67530 Mon Sep 17 00:00:00 2001 From: Joe Bordes <joe@tsolucio.com> Date: Sun, 30 May 2021 20:20:17 +0200 Subject: [PATCH 28/32] style(App) eliminate whitespace at the end of code lines (#5735) --- boot/boot.js | 8 ++++---- core/modules/commander.js | 2 +- core/modules/commands/fetch.js | 2 +- core/modules/commands/rendertiddlers.js | 2 +- core/modules/commands/savewikifolder.js | 2 +- core/modules/deserializers.js | 2 +- core/modules/editor/engines/framed.js | 5 ++--- core/modules/editor/factory.js | 7 +++---- core/modules/filterrunprefixes/reduce.js | 2 +- core/modules/filterrunprefixes/sort.js | 2 +- core/modules/filters.js | 8 ++++---- core/modules/filters/editiondescription.js | 2 +- core/modules/filters/fields.js | 2 +- core/modules/filters/format/date.js | 4 ++-- core/modules/filters/format/relativedate.js | 4 ++-- core/modules/filters/has.js | 2 +- core/modules/filters/is/draft.js | 2 +- core/modules/filters/strings.js | 8 ++++---- core/modules/filters/tag.js | 2 +- core/modules/filters/x-listops.js | 10 +++++----- core/modules/indexers/field-indexer.js | 2 +- core/modules/indexers/tag-indexer.js | 4 ++-- core/modules/info/platform.js | 2 +- .../modules/parsers/wikiparser/rules/table.js | 2 +- core/modules/parsers/wikiparser/wikiparser.js | 2 +- core/modules/savers/upload.js | 2 +- core/modules/server/routes/get-login-basic.js | 2 +- core/modules/server/server.js | 6 +++--- core/modules/startup/favicon.js | 2 +- core/modules/startup/rootwidget.js | 4 ++-- core/modules/startup/story.js | 4 ++-- core/modules/storyviews/classic.js | 2 +- core/modules/utils/csv.js | 2 +- core/modules/utils/dom/dom.js | 4 ++-- core/modules/utils/dom/dragndrop.js | 4 ++-- core/modules/utils/dom/modal.js | 2 +- core/modules/utils/dom/popup.js | 2 +- core/modules/utils/dom/scroller.js | 6 +++--- core/modules/utils/filesystem.js | 4 ++-- core/modules/utils/logger.js | 4 ++-- core/modules/utils/performance.js | 2 +- core/modules/utils/utils.js | 4 ++-- core/modules/widgets/action-deletefield.js | 2 +- core/modules/widgets/action-listops.js | 2 +- core/modules/widgets/action-log.js | 6 +++--- core/modules/widgets/button.js | 2 +- core/modules/widgets/droppable.js | 4 ++-- core/modules/widgets/dropzone.js | 4 ++-- core/modules/widgets/edit-bitmap.js | 2 +- core/modules/widgets/edit-shortcut.js | 6 +++--- core/modules/widgets/element.js | 2 +- core/modules/widgets/entity.js | 2 +- core/modules/widgets/eventcatcher.js | 6 +++--- core/modules/widgets/fieldmangler.js | 4 ++-- core/modules/widgets/image.js | 10 +++++----- core/modules/widgets/importvariables.js | 2 +- core/modules/widgets/link.js | 2 +- core/modules/widgets/linkcatcher.js | 2 +- core/modules/widgets/log.js | 2 +- core/modules/widgets/macrocall.js | 2 +- core/modules/widgets/navigator.js | 6 +++--- core/modules/widgets/raw.js | 2 +- core/modules/widgets/reveal.js | 6 +++--- core/modules/widgets/scrollable.js | 6 +++--- core/modules/widgets/setvariable.js | 4 ++-- core/modules/widgets/text.js | 2 +- core/modules/widgets/tiddler.js | 2 +- core/modules/widgets/transclude.js | 2 +- core/modules/widgets/vars.js | 2 +- core/modules/widgets/view.js | 6 +++--- core/modules/widgets/widget.js | 2 +- core/modules/widgets/wikify.js | 2 +- core/modules/wiki.js | 20 +++++++++---------- 73 files changed, 134 insertions(+), 136 deletions(-) diff --git a/boot/boot.js b/boot/boot.js index ba780a109..8d74b2e1b 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -1154,7 +1154,7 @@ $tw.Wiki = function(options) { var index = tiddlerTitles.indexOf(title); if(index !== -1) { tiddlerTitles.splice(index,1); - } + } } // Record the new tiddler state updateDescriptor["new"] = { @@ -1301,7 +1301,7 @@ $tw.Wiki = function(options) { } } else { if(pluginInfo[title]) { - delete pluginInfo[title]; + delete pluginInfo[title]; results.deletedPlugins.push(title); } } @@ -1940,7 +1940,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { } } else { console.log("Warning: a directory in a tiddlywiki.files file does not exist."); - console.log("dirPath: " + dirPath); + console.log("dirPath: " + dirPath); console.log("tiddlywiki.files location: " + filepath); } } @@ -2199,7 +2199,7 @@ $tw.loadTiddlersNode = function() { type = parts[0]; if(parts.length === 3 && ["plugins","themes","languages"].indexOf(type) !== -1) { $tw.loadPlugins([parts[1] + "/" + parts[2]],$tw.config[type + "Path"],$tw.config[type + "EnvVar"]); - } + } } }); // Load the tiddlers from the wiki directory diff --git a/core/modules/commander.js b/core/modules/commander.js index 302af525b..b55679a2e 100644 --- a/core/modules/commander.js +++ b/core/modules/commander.js @@ -154,7 +154,7 @@ Commander.prototype.extractNamedParameters = function(params,mandatoryParameters if(errors.length > 0) { return errors.join(" and\n"); } else { - return paramsByName; + return paramsByName; } }; diff --git a/core/modules/commands/fetch.js b/core/modules/commands/fetch.js index 8d0997010..07cda691c 100644 --- a/core/modules/commands/fetch.js +++ b/core/modules/commands/fetch.js @@ -115,7 +115,7 @@ Command.prototype.fetchFile = function(url,options,callback,redirectCount) { if(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) { return self.fetchFile(response.headers.location,options,callback,redirectCount + 1); } else { - return callback("Error " + response.statusCode + " retrieving " + url) + return callback("Error " + response.statusCode + " retrieving " + url) } } }); diff --git a/core/modules/commands/rendertiddlers.js b/core/modules/commands/rendertiddlers.js index dd875e3eb..01af09649 100644 --- a/core/modules/commands/rendertiddlers.js +++ b/core/modules/commands/rendertiddlers.js @@ -36,7 +36,7 @@ Command.prototype.execute = function() { filter = this.params[0], template = this.params[1], outputPath = this.commander.outputPath, - pathname = path.resolve(outputPath,this.params[2]), + pathname = path.resolve(outputPath,this.params[2]), type = this.params[3] || "text/html", extension = this.params[4] || ".html", deleteDirectory = (this.params[5] || "").toLowerCase() !== "noclean", diff --git a/core/modules/commands/savewikifolder.js b/core/modules/commands/savewikifolder.js index cd4b5f26e..406f3a3b2 100644 --- a/core/modules/commands/savewikifolder.js +++ b/core/modules/commands/savewikifolder.js @@ -97,7 +97,7 @@ WikiFolderMaker.prototype.save = function() { // A custom plugin self.log("Processing custom plugin: " + title); self.saveCustomPlugin(tiddler); - } + } } else { // Ordinary tiddler self.saveTiddler("tiddlers",tiddler); diff --git a/core/modules/deserializers.js b/core/modules/deserializers.js index 3139a2611..47e891ed7 100644 --- a/core/modules/deserializers.js +++ b/core/modules/deserializers.js @@ -31,7 +31,7 @@ var parseTiddlerDiv = function(text /* [,fields] */) { for(var f=1; f<arguments.length; f++) { var fields = arguments[f]; for(var t in fields) { - result[t] = fields[t]; + result[t] = fields[t]; } } } diff --git a/core/modules/editor/engines/framed.js b/core/modules/editor/engines/framed.js index 724c4e7f3..2266ce742 100644 --- a/core/modules/editor/engines/framed.js +++ b/core/modules/editor/engines/framed.js @@ -78,7 +78,7 @@ function FramedEngine(options) { } if(this.widget.isDisabled === "yes") { this.domNode.setAttribute("disabled",true); - } + } // Copy the styles from the dummy textarea this.copyStyles(); // Add event listeners @@ -87,7 +87,6 @@ function FramedEngine(options) { {name: "input",handlerObject: this,handlerMethod: "handleInputEvent"}, {name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"}, {name: "focus",handlerObject: this,handlerMethod: "handleFocusEvent"} - ]); // Add drag and drop event listeners if fileDrop is enabled if(this.widget.isFileDropEnabled) { @@ -183,7 +182,7 @@ Handle a focus event */ FramedEngine.prototype.handleFocusEvent = function(event) { if(this.widget.editCancelPopups) { - $tw.popup.cancel(0); + $tw.popup.cancel(0); } }; diff --git a/core/modules/editor/factory.js b/core/modules/editor/factory.js index dd362be16..601ad2d64 100644 --- a/core/modules/editor/factory.js +++ b/core/modules/editor/factory.js @@ -313,7 +313,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) { }); return newEvent; }; - + EditTextWidget.prototype.dispatchDOMEvent = function(newEvent) { var dispatchNode = this.engine.iframeNode || this.engine.parentNode; return dispatchNode.dispatchEvent(newEvent); @@ -358,7 +358,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) { event.preventDefault(); } event.dataTransfer.dropEffect = "copy"; - return this.dispatchDOMEvent(this.cloneEvent(event,["dataTransfer"])); + return this.dispatchDOMEvent(this.cloneEvent(event,["dataTransfer"])); } return true; }; @@ -375,13 +375,12 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) { EditTextWidget.prototype.handleDragEndEvent = function(event) { this.dispatchDOMEvent(this.cloneEvent(event)); }; - + EditTextWidget.prototype.handleClickEvent = function(event) { return !this.dispatchDOMEvent(this.cloneEvent(event)); }; return EditTextWidget; - } exports.editTextWidgetFactory = editTextWidgetFactory; diff --git a/core/modules/filterrunprefixes/reduce.js b/core/modules/filterrunprefixes/reduce.js index 33ec25c7f..3ec30f491 100644 --- a/core/modules/filterrunprefixes/reduce.js +++ b/core/modules/filterrunprefixes/reduce.js @@ -44,7 +44,7 @@ exports.reduce = function(operationSubFunction,options) { ++index; }); results.clear(); - results.push(accumulator); + results.push(accumulator); } } }; diff --git a/core/modules/filterrunprefixes/sort.js b/core/modules/filterrunprefixes/sort.js index ecaba9313..7bf8142c6 100644 --- a/core/modules/filterrunprefixes/sort.js +++ b/core/modules/filterrunprefixes/sort.js @@ -23,7 +23,7 @@ exports.sort = function(operationSubFunction,options) { inputTitles = results.toArray(), sortKeys = [], indexes = new Array(inputTitles.length), - compareFn; + compareFn; results.each(function(title) { var key = operationSubFunction(options.wiki.makeTiddlerIterator([title]),{ getVariable: function(name) { diff --git a/core/modules/filters.js b/core/modules/filters.js index 89a9e8ccf..a5e02b543 100644 --- a/core/modules/filters.js +++ b/core/modules/filters.js @@ -101,10 +101,10 @@ function parseFilterOperation(operators,filterString,p) { } p = nextBracketPos + 1; } - + p = nextBracketPos + 1; parseOperand(bracket); - + // Check for multiple operands while(filterString.charAt(p) === ",") { p++; @@ -116,7 +116,7 @@ function parseFilterOperation(operators,filterString,p) { throw "Missing [ in filter expression"; } } - + // Push this operator operators.push(operator); } while(filterString.charAt(p) !== "]"); @@ -248,7 +248,7 @@ exports.compileFilter = function(filterString) { } else { operatorFunction = filterOperators[operator.operator]; } - + $tw.utils.each(operator.operands,function(operand) { if(operand.indirect) { operand.value = self.getTextReference(operand.text,"",currTiddlerTitle); diff --git a/core/modules/filters/editiondescription.js b/core/modules/filters/editiondescription.js index ee3acd898..2ee387163 100644 --- a/core/modules/filters/editiondescription.js +++ b/core/modules/filters/editiondescription.js @@ -22,7 +22,7 @@ exports.editiondescription = function(source,operator,options) { if(editionInfo) { source(function(tiddler,title) { if($tw.utils.hop(editionInfo,title)) { - results.push(editionInfo[title].description || ""); + results.push(editionInfo[title].description || ""); } }); } diff --git a/core/modules/filters/fields.js b/core/modules/filters/fields.js index 671a1e200..2f0bf26dc 100644 --- a/core/modules/filters/fields.js +++ b/core/modules/filters/fields.js @@ -20,7 +20,7 @@ exports.fields = function(source,operator,options) { fieldName, suffixes = (operator.suffixes || [])[0] || [], operand = $tw.utils.parseStringArray(operator.operand); - + source(function(tiddler,title) { if(tiddler) { if(suffixes.indexOf("include") !== -1) { diff --git a/core/modules/filters/format/date.js b/core/modules/filters/format/date.js index 1b29c5bfb..fcf1a5cad 100644 --- a/core/modules/filters/format/date.js +++ b/core/modules/filters/format/date.js @@ -13,13 +13,13 @@ module-type: formatfilteroperator Export our filter function */ exports.date = function(source,operand,options) { - var results = []; + var results = []; source(function(tiddler,title) { var value = $tw.utils.parseDate(title); if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") { results.push($tw.utils.formatDateString(value,operand || "YYYY MM DD 0hh:0mm")); } - }); + }); return results; }; diff --git a/core/modules/filters/format/relativedate.js b/core/modules/filters/format/relativedate.js index 262aeaaf2..f771bb339 100644 --- a/core/modules/filters/format/relativedate.js +++ b/core/modules/filters/format/relativedate.js @@ -13,13 +13,13 @@ module-type: formatfilteroperator Export our filter function */ exports.relativedate = function(source,operand,options) { - var results = []; + var results = []; source(function(tiddler,title) { var value = $tw.utils.parseDate(title); if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") { results.push($tw.utils.getRelativeDate((new Date()) - (new Date(value))).description); } - }); + }); return results; }; diff --git a/core/modules/filters/has.js b/core/modules/filters/has.js index bdc267c70..f081809a3 100644 --- a/core/modules/filters/has.js +++ b/core/modules/filters/has.js @@ -61,7 +61,7 @@ exports.has = function(source,operator,options) { if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) { results.push(title); } - }); + }); } } return results; diff --git a/core/modules/filters/is/draft.js b/core/modules/filters/is/draft.js index 3dd183a46..4888455ba 100644 --- a/core/modules/filters/is/draft.js +++ b/core/modules/filters/is/draft.js @@ -28,7 +28,7 @@ exports.draft = function(source,prefix,options) { if(tiddler && $tw.utils.hop(tiddler.fields,"draft.of") && (tiddler.fields["draft.of"].length !== 0)) { results.push(title); } - }); + }); } return results; }; diff --git a/core/modules/filters/strings.js b/core/modules/filters/strings.js index 38e5be231..286907dca 100644 --- a/core/modules/filters/strings.js +++ b/core/modules/filters/strings.js @@ -105,13 +105,13 @@ exports.splitregexp = function(source,operator,options) { flags = (suffix.indexOf("m") !== -1 ? "m" : "") + (suffix.indexOf("i") !== -1 ? "i" : ""), regExp; try { - regExp = new RegExp(operator.operand || "",flags); + regExp = new RegExp(operator.operand || "",flags); } catch(ex) { return ["RegExp error: " + ex]; } source(function(tiddler,title) { Array.prototype.push.apply(result,title.split(regExp)); - }); + }); return result; }; @@ -123,7 +123,7 @@ exports["search-replace"] = function(source,operator,options) { isRegExp = (suffixes[1] && suffixes[1][0] === "regexp") ? true : false, searchTerm, regExp; - + source(function(tiddler,title) { if(title && (operator.operands.length > 1)) { //Escape regexp characters if the operand is not a regular expression @@ -156,7 +156,7 @@ exports.pad = function(source,operator,options) { var padString = "", padStringLength = targetLength - title.length; while (padStringLength > padString.length) { - padString += fill; + padString += fill; } //make sure we do not exceed the specified length padString = padString.slice(0,padStringLength); diff --git a/core/modules/filters/tag.js b/core/modules/filters/tag.js index e7ddbb361..951a28c6b 100644 --- a/core/modules/filters/tag.js +++ b/core/modules/filters/tag.js @@ -50,7 +50,7 @@ exports.tag = function(source,operator,options) { }); results = options.wiki.sortByList(results,operator.operand); } - } + } } return results; }; diff --git a/core/modules/filters/x-listops.js b/core/modules/filters/x-listops.js index cb8c031a2..760f581a1 100644 --- a/core/modules/filters/x-listops.js +++ b/core/modules/filters/x-listops.js @@ -193,7 +193,7 @@ Extended filter operators to manipulate the current list. step = stepSize || 1, i = 0, opLength = operands.length, - nextOperandIndex; + nextOperandIndex; for(i; i < opLength; i++) { resultsIndex = results.indexOf(operands[i]); if(resultsIndex !== -1) { @@ -211,12 +211,12 @@ Extended filter operators to manipulate the current list. } else { results.push(operands[0]); } - return results; + return results; } /* Toggles an item in the current list. - */ + */ exports.toggle = function(source,operator) { return cycleValueInArray(prepare_results(source),operator.operands); } @@ -228,8 +228,8 @@ Extended filter operators to manipulate the current list. if(step < 0) { operands.reverse(); step = Math.abs(step); - } + } return cycleValueInArray(results,operands,step); } - + })(); diff --git a/core/modules/indexers/field-indexer.js b/core/modules/indexers/field-indexer.js index 0f070e5e5..e49583610 100644 --- a/core/modules/indexers/field-indexer.js +++ b/core/modules/indexers/field-indexer.js @@ -121,7 +121,7 @@ FieldIndexer.prototype.update = function(updateDescriptor) { indexEntry[value].push(updateDescriptor["new"].tiddler.fields.title); } } - }); + }); } }; diff --git a/core/modules/indexers/tag-indexer.js b/core/modules/indexers/tag-indexer.js index c7d297fc9..4721fea08 100644 --- a/core/modules/indexers/tag-indexer.js +++ b/core/modules/indexers/tag-indexer.js @@ -65,7 +65,7 @@ TagSubIndexer.prototype.rebuild = function() { } else { self.index[tag].titles.push(title); } - }); + }); }); }; @@ -83,7 +83,7 @@ TagSubIndexer.prototype.lookup = function(tag) { if(!indexRecord.isSorted) { if(this.indexer.wiki.sortByList) { indexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag); - } + } indexRecord.isSorted = true; } return indexRecord.titles; diff --git a/core/modules/info/platform.js b/core/modules/info/platform.js index b9c140956..0eb0b9ea8 100644 --- a/core/modules/info/platform.js +++ b/core/modules/info/platform.js @@ -22,7 +22,7 @@ exports.getInfoTiddlerFields = function(updateInfoTiddlersCallback) { if($tw.browser) { // Document location var setLocationProperty = function(name,value) { - infoTiddlerFields.push({title: "$:/info/url/" + name, text: value}); + infoTiddlerFields.push({title: "$:/info/url/" + name, text: value}); }, location = document.location; setLocationProperty("full", (location.toString()).split("#")[0]); diff --git a/core/modules/parsers/wikiparser/rules/table.js b/core/modules/parsers/wikiparser/rules/table.js index fb72f6890..61cd71948 100644 --- a/core/modules/parsers/wikiparser/rules/table.js +++ b/core/modules/parsers/wikiparser/rules/table.js @@ -161,7 +161,7 @@ exports.parse = function() { // Move the caption to the first row if it isn't already if(table.children.length !== 1) { table.children.pop(); // Take rowContainer out of the children array - table.children.splice(0,0,rowContainer); // Insert it at the bottom + table.children.splice(0,0,rowContainer); // Insert it at the bottom } // Set the alignment - TODO: figure out why TW did this // rowContainer.attributes.align = rowCount === 0 ? "top" : "bottom"; diff --git a/core/modules/parsers/wikiparser/wikiparser.js b/core/modules/parsers/wikiparser/wikiparser.js index e6f860a91..0f917b2b2 100644 --- a/core/modules/parsers/wikiparser/wikiparser.js +++ b/core/modules/parsers/wikiparser/wikiparser.js @@ -378,7 +378,7 @@ WikiParser.prototype.pushTextWidget = function(array,text) { text = $tw.utils.trim(text); } if(text) { - array.push({type: "text", text: text}); + array.push({type: "text", text: text}); } }; diff --git a/core/modules/savers/upload.js b/core/modules/savers/upload.js index a7264338d..6ac056ba9 100644 --- a/core/modules/savers/upload.js +++ b/core/modules/savers/upload.js @@ -50,7 +50,7 @@ UploadSaver.prototype.save = function(text,method,callback) { url = "http://" + username + ".tiddlyspot.com/store.cgi"; } // Assemble the header - var boundary = "---------------------------" + "AaB03x"; + var boundary = "---------------------------" + "AaB03x"; var uploadFormName = "UploadPlugin"; var head = []; head.push("--" + boundary + "\r\nContent-disposition: form-data; name=\"UploadPlugin\"\r\n"); diff --git a/core/modules/server/routes/get-login-basic.js b/core/modules/server/routes/get-login-basic.js index 2a71d6e33..d573a0b5d 100644 --- a/core/modules/server/routes/get-login-basic.js +++ b/core/modules/server/routes/get-login-basic.js @@ -22,7 +22,7 @@ exports.handler = function(request,response,state) { response.writeHead(401,{ "WWW-Authenticate": 'Basic realm="Please provide your username and password to login to ' + state.server.servername + '"' }); - response.end(); + response.end(); } else { // Redirect to the root wiki if login worked var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: "/"; diff --git a/core/modules/server/server.js b/core/modules/server/server.js index ed3359dc1..b4859a2b4 100644 --- a/core/modules/server/server.js +++ b/core/modules/server/server.js @@ -42,7 +42,7 @@ function Server(options) { if(options.variables[variable]) { this.variables[variable] = options.variables[variable]; } - } + } } $tw.utils.extend({},this.defaultVariables,options.variables); // Initialise CSRF @@ -244,7 +244,7 @@ Server.prototype.requestHandler = function(request,response,options) { if(!this.csrfDisable && authorizationType === "writers" && request.headers["x-requested-with"] !== "TiddlyWiki") { response.writeHead(403,"'X-Requested-With' header required to login to '" + this.servername + "'"); response.end(); - return; + return; } // Check whether anonymous access is granted state.allowAnon = this.isAuthorized(authorizationType,null); @@ -253,7 +253,7 @@ Server.prototype.requestHandler = function(request,response,options) { if(!this.authenticators[0].authenticateRequest(request,response,state)) { // Bail if we failed (the authenticator will have sent the response) return; - } + } } // Authorize with the authenticated username if(!this.isAuthorized(authorizationType,state.authenticatedUsername)) { diff --git a/core/modules/startup/favicon.js b/core/modules/startup/favicon.js index 0e730905f..55e7891e2 100644 --- a/core/modules/startup/favicon.js +++ b/core/modules/startup/favicon.js @@ -17,7 +17,7 @@ exports.name = "favicon"; exports.platforms = ["browser"]; exports.after = ["startup"]; exports.synchronous = true; - + // Favicon tiddler var FAVICON_TITLE = "$:/favicon.ico"; diff --git a/core/modules/startup/rootwidget.js b/core/modules/startup/rootwidget.js index 353c25958..6486cf6a2 100644 --- a/core/modules/startup/rootwidget.js +++ b/core/modules/startup/rootwidget.js @@ -27,7 +27,7 @@ exports.startup = function() { }); $tw.rootWidget.addEventListener("tm-show-switcher",function(event) { $tw.modal.display("$:/core/ui/SwitcherModal",{variables: event.paramObject, event: event}); - }); + }); // Install the notification mechanism $tw.notifier = new $tw.utils.Notifier($tw.wiki); $tw.rootWidget.addEventListener("tm-notify",function(event) { @@ -68,7 +68,7 @@ exports.startup = function() { fullScreenDocument[fullscreen._exitFullscreen](); } else { fullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT); - } + } } }); } diff --git a/core/modules/startup/story.js b/core/modules/startup/story.js index 0ca975ce3..18f8e8f1d 100644 --- a/core/modules/startup/story.js +++ b/core/modules/startup/story.js @@ -101,7 +101,7 @@ exports.startup = function() { updateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,"no").trim(), targetTiddler: event.param || event.tiddlerTitle, copyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,"yes").trim() === "yes" ? "permaview" : "none" - }); + }); }); } }; @@ -165,7 +165,7 @@ function openStartupTiddlers(options) { story.addToHistory(target); } else if(storyList.length > 0) { story.addToHistory(storyList[0]); - } + } } } diff --git a/core/modules/storyviews/classic.js b/core/modules/storyviews/classic.js index e5f726f5f..fe6925b99 100644 --- a/core/modules/storyviews/classic.js +++ b/core/modules/storyviews/classic.js @@ -32,7 +32,7 @@ ClassicStoryView.prototype.navigateTo = function(historyInfo) { } if(duration) { // Scroll the node into view - this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement}); + this.listWidget.dispatchEvent({type: "tm-scroll", target: targetElement}); } else { targetElement.scrollIntoView(); } diff --git a/core/modules/utils/csv.js b/core/modules/utils/csv.js index 37312d847..dec280d8b 100644 --- a/core/modules/utils/csv.js +++ b/core/modules/utils/csv.js @@ -38,7 +38,7 @@ exports.parseCsvStringWithHeader = function(text,options) { var columnName = headings[column]; columnResult[columnName] = $tw.utils.trim(columns[column] || ""); } - results.push(columnResult); + results.push(columnResult); } return results; } diff --git a/core/modules/utils/dom/dom.js b/core/modules/utils/dom/dom.js index 299011136..36c250b20 100644 --- a/core/modules/utils/dom/dom.js +++ b/core/modules/utils/dom/dom.js @@ -69,7 +69,7 @@ Get the first parent element that has scrollbars or use the body as fallback. */ exports.getScrollContainer = function(el) { var doc = el.ownerDocument; - while(el.parentNode) { + while(el.parentNode) { el = el.parentNode; if(el.scrollTop) { return el; @@ -208,7 +208,7 @@ exports.addEventListeners = function(domNode,events) { if(eventInfo.handlerMethod) { handler = function(event) { eventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event); - }; + }; } else { handler = eventInfo.handlerObject; } diff --git a/core/modules/utils/dom/dragndrop.js b/core/modules/utils/dom/dragndrop.js index 206846b9f..de30d49c7 100644 --- a/core/modules/utils/dom/dragndrop.js +++ b/core/modules/utils/dom/dragndrop.js @@ -27,7 +27,7 @@ exports.makeDraggable = function(options) { domNode = options.domNode; // Make the dom node draggable (not necessary for anchor tags) if((domNode.tagName || "").toLowerCase() !== "a") { - domNode.setAttribute("draggable","true"); + domNode.setAttribute("draggable","true"); } // Add event handlers $tw.utils.addEventListeners(domNode,[ @@ -80,7 +80,7 @@ exports.makeDraggable = function(options) { } // Set up the data transfer if(dataTransfer.clearData) { - dataTransfer.clearData(); + dataTransfer.clearData(); } var jsonData = []; if(titles.length > 1) { diff --git a/core/modules/utils/dom/modal.js b/core/modules/utils/dom/modal.js index db66b1abc..58ffba6a4 100644 --- a/core/modules/utils/dom/modal.js +++ b/core/modules/utils/dom/modal.js @@ -105,7 +105,7 @@ Modal.prototype.display = function(title,options) { parentWidget: $tw.rootWidget }); navigatorWidgetNode.render(modalBody,null); - + // Render the title of the message var headerWidgetNode = this.wiki.makeTranscludeWidget(title,{ field: "subtitle", diff --git a/core/modules/utils/dom/popup.js b/core/modules/utils/dom/popup.js index 4ae1a44cd..5eed80c88 100644 --- a/core/modules/utils/dom/popup.js +++ b/core/modules/utils/dom/popup.js @@ -145,7 +145,7 @@ Popup.prototype.show = function(options) { } // Add the click handler if we have any popups if(this.popups.length > 0) { - this.rootElement.addEventListener("click",this,true); + this.rootElement.addEventListener("click",this,true); } }; diff --git a/core/modules/utils/dom/scroller.js b/core/modules/utils/dom/scroller.js index 3f4c71cef..8e49a1f1d 100644 --- a/core/modules/utils/dom/scroller.js +++ b/core/modules/utils/dom/scroller.js @@ -52,7 +52,7 @@ PageScroller.prototype.handleEvent = function(event) { if(event.paramObject && event.paramObject.selector) { this.scrollSelectorIntoView(null,event.paramObject.selector); } else { - this.scrollIntoView(event.target); + this.scrollIntoView(event.target); } return false; // Event was handled } @@ -103,7 +103,7 @@ PageScroller.prototype.scrollIntoView = function(element,callback) { if(duration <= 0) { t = 1; } else { - t = ((Date.now()) - self.startTime) / duration; + t = ((Date.now()) - self.startTime) / duration; } if(t >= 1) { self.cancelScroll(srcWindow); @@ -126,7 +126,7 @@ PageScroller.prototype.scrollSelectorIntoView = function(baseElement,selector,ca baseElement = baseElement || document.body; var element = baseElement.querySelector(selector); if(element) { - this.scrollIntoView(element,callback); + this.scrollIntoView(element,callback); } }; diff --git a/core/modules/utils/filesystem.js b/core/modules/utils/filesystem.js index 121cbc4c7..25392e738 100644 --- a/core/modules/utils/filesystem.js +++ b/core/modules/utils/filesystem.js @@ -372,7 +372,7 @@ exports.generateTiddlerFilepath = function(title,options) { // If the resulting filename is blank (eg because the title is just punctuation) if(!filepath || /^_+$/g.test(filepath)) { // ...then just use the character codes of the title - filepath = ""; + filepath = ""; $tw.utils.each(title.split(""),function(char) { if(filepath) { filepath += "-"; @@ -488,7 +488,7 @@ exports.deleteTiddlerFile = function(fileInfo,callback) { fs.unlink(fileInfo.filepath,function(err) { if(err) { return callback(err); - } + } // Delete the metafile if present if(fileInfo.hasMetaFile && fs.existsSync(fileInfo.filepath + ".meta")) { fs.unlink(fileInfo.filepath + ".meta",function(err) { diff --git a/core/modules/utils/logger.js b/core/modules/utils/logger.js index b3981986d..7dc35899f 100644 --- a/core/modules/utils/logger.js +++ b/core/modules/utils/logger.js @@ -45,7 +45,7 @@ Logger.prototype.log = function(/* args */) { self.saveBufferLogger.buffer += " " + arg; }); this.saveBufferLogger.buffer += "\n"; - this.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit); + this.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit); } if(console !== undefined && console.log !== undefined) { return Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour())); @@ -111,7 +111,7 @@ Logger.prototype.alert = function(/* args */) { } else { // Print an orange message to the console if not in the browser console.error("\x1b[1;33m" + text + "\x1b[0m"); - } + } } }; diff --git a/core/modules/utils/performance.js b/core/modules/utils/performance.js index 9908be4d7..8a86d33c7 100644 --- a/core/modules/utils/performance.js +++ b/core/modules/utils/performance.js @@ -21,7 +21,7 @@ function Performance(enabled) { Performance.prototype.showGreeting = function() { if($tw.browser) { - this.logger.log("Execute $tw.perf.log(); to see filter execution timings"); + this.logger.log("Execute $tw.perf.log(); to see filter execution timings"); } }; diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index b1d82a427..9c29391ae 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -150,7 +150,7 @@ Convert a string to title case (ie capitalise each initial letter) exports.toTitleCase = function(str) { return (str || "").replace(/(^|\s)\S/g, function(c) {return c.toUpperCase();}); } - + /* Find the line break preceding a given position in a string Returns position immediately after that line break, or the start of the string @@ -842,7 +842,7 @@ exports.makeDataUri = function(text,type,_canonical_uri) { parts.push(type); parts.push(isBase64 ? ";base64" : ""); parts.push(","); - parts.push(isBase64 ? text : encodeURIComponent(text)); + parts.push(isBase64 ? text : encodeURIComponent(text)); } return parts.join(""); }; diff --git a/core/modules/widgets/action-deletefield.js b/core/modules/widgets/action-deletefield.js index 45425bf4e..5857ef64d 100644 --- a/core/modules/widgets/action-deletefield.js +++ b/core/modules/widgets/action-deletefield.js @@ -73,7 +73,7 @@ DeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) { } }); if(hasChanged) { - this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields())); + this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields())); } } return true; // Action was invoked diff --git a/core/modules/widgets/action-listops.js b/core/modules/widgets/action-listops.js index a3448ba71..802fcaa76 100644 --- a/core/modules/widgets/action-listops.js +++ b/core/modules/widgets/action-listops.js @@ -80,7 +80,7 @@ ActionListopsWidget.prototype.invokeAction = function(triggeringWidget, tagfilter = $tw.utils.stringifyList(oldtags) + " " + this.filtertags, newtags = this.wiki.filterTiddlers(tagfilter,this); if($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) { - this.wiki.setText(this.target,"tags",undefined,$tw.utils.stringifyList(newtags)); + this.wiki.setText(this.target,"tags",undefined,$tw.utils.stringifyList(newtags)); } } return true; // Action was invoked diff --git a/core/modules/widgets/action-log.js b/core/modules/widgets/action-log.js index eacef94bc..fc8412006 100644 --- a/core/modules/widgets/action-log.js +++ b/core/modules/widgets/action-log.js @@ -62,17 +62,17 @@ LogWidget.prototype.log = function() { $tw.utils.each(this.attributes,function(attribute,name) { if(name.substring(0,2) !== "$$") { data[name] = attribute; - } + } }); for(var v in this.variables) { allVars[v] = this.getVariable(v,{defaultValue:""}); - } + } if(this.filter) { filteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars)); $tw.utils.each(filteredVars,function(name) { data[name] = allVars[name]; - }); + }); } dataCount = $tw.utils.count(data); diff --git a/core/modules/widgets/button.js b/core/modules/widgets/button.js index 9186e1808..4b96e6b2b 100644 --- a/core/modules/widgets/button.js +++ b/core/modules/widgets/button.js @@ -227,7 +227,7 @@ ButtonWidget.prototype.execute = function() { ButtonWidget.prototype.updateDomNodeClasses = function() { var domNodeClasses = this.domNode.className.split(" "), oldClasses = this.class.split(" "), - newClasses; + newClasses; this["class"] = this.getAttribute("class",""); newClasses = this.class.split(" "); //Remove classes assigned from the old value of class attribute diff --git a/core/modules/widgets/droppable.js b/core/modules/widgets/droppable.js index c9878930d..104503b25 100644 --- a/core/modules/widgets/droppable.js +++ b/core/modules/widgets/droppable.js @@ -49,7 +49,7 @@ DroppableWidget.prototype.render = function(parent,nextSibling) { {name: "dragover", handlerObject: this, handlerMethod: "handleDragOverEvent"}, {name: "dragleave", handlerObject: this, handlerMethod: "handleDragLeaveEvent"}, {name: "drop", handlerObject: this, handlerMethod: "handleDropEvent"} - ]); + ]); } else { $tw.utils.addClass(this.domNode,this.disabledClass); } @@ -155,7 +155,7 @@ DroppableWidget.prototype.execute = function() { DroppableWidget.prototype.assignDomNodeClasses = function() { var classes = this.getAttribute("class","").split(" "); classes.push("tc-droppable"); - this.domNode.className = classes.join(" "); + this.domNode.className = classes.join(" "); }; /* diff --git a/core/modules/widgets/dropzone.js b/core/modules/widgets/dropzone.js index 9c6a16b20..04b48c5e4 100644 --- a/core/modules/widgets/dropzone.js +++ b/core/modules/widgets/dropzone.js @@ -82,7 +82,7 @@ DropZoneWidget.prototype.resetState = function() { this.currentlyEntered = []; this.document.body.removeEventListener("click",this,true); this.document.body.removeEventListener("dragenter",this,true); - this.document.body.removeEventListener("dragleave",this,true); + this.document.body.removeEventListener("dragleave",this,true); this.dragInProgress = false; }; @@ -93,7 +93,7 @@ DropZoneWidget.prototype.enterDrag = function(event) { if(!this.dragInProgress) { this.dragInProgress = true; // If we're entering for the first time we need to apply highlighting - $tw.utils.addClass(this.domNodes[0],"tc-dragover"); + $tw.utils.addClass(this.domNodes[0],"tc-dragover"); this.document.body.addEventListener("click",this,true); this.document.body.addEventListener("dragenter",this,true); this.document.body.addEventListener("dragleave",this,true); diff --git a/core/modules/widgets/edit-bitmap.js b/core/modules/widgets/edit-bitmap.js index c6c3dde8c..5065127d8 100644 --- a/core/modules/widgets/edit-bitmap.js +++ b/core/modules/widgets/edit-bitmap.js @@ -156,7 +156,7 @@ EditBitmapWidget.prototype.loadCanvas = function() { }; // Get the current bitmap into an image object if(tiddler && tiddler.fields.type && tiddler.fields.text) { - currImage.src = "data:" + tiddler.fields.type + ";base64," + tiddler.fields.text; + currImage.src = "data:" + tiddler.fields.type + ";base64," + tiddler.fields.text; } else { currImage.width = DEFAULT_IMAGE_WIDTH; currImage.height = DEFAULT_IMAGE_HEIGHT; diff --git a/core/modules/widgets/edit-shortcut.js b/core/modules/widgets/edit-shortcut.js index b70328d5a..31d81b6b8 100644 --- a/core/modules/widgets/edit-shortcut.js +++ b/core/modules/widgets/edit-shortcut.js @@ -33,7 +33,7 @@ EditShortcutWidget.prototype.render = function(parent,nextSibling) { this.inputNode = this.document.createElement("input"); // Assign classes if(this.shortcutClass) { - this.inputNode.className = this.shortcutClass; + this.inputNode.className = this.shortcutClass; } // Assign other attributes if(this.shortcutStyle) { @@ -117,7 +117,7 @@ EditShortcutWidget.prototype.handleKeydownEvent = function(event) { // Ignore the keydown if it was already handled event.preventDefault(); event.stopPropagation(); - return true; + return true; } else { return false; } @@ -145,7 +145,7 @@ EditShortcutWidget.prototype.refresh = function(changedTiddlers) { this.updateInputNode(); return true; } else { - return false; + return false; } }; diff --git a/core/modules/widgets/element.js b/core/modules/widgets/element.js index 41ed4ebd1..a46669f43 100755 --- a/core/modules/widgets/element.js +++ b/core/modules/widgets/element.js @@ -81,7 +81,7 @@ ElementWidget.prototype.refresh = function(changedTiddlers) { if(hasChangedAttributes) { if(!this.isReplaced) { // Update our attributes - this.assignAttributes(this.domNodes[0],{excludeEventAttributes: true}); + this.assignAttributes(this.domNodes[0],{excludeEventAttributes: true}); } else { // If we were replaced then completely refresh ourselves return this.refreshSelf(); diff --git a/core/modules/widgets/entity.js b/core/modules/widgets/entity.js index 0b5e68375..6f1a66fed 100755 --- a/core/modules/widgets/entity.js +++ b/core/modules/widgets/entity.js @@ -51,7 +51,7 @@ EntityWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return false; + return false; } }; diff --git a/core/modules/widgets/eventcatcher.js b/core/modules/widgets/eventcatcher.js index 0b32689a1..75f60379a 100644 --- a/core/modules/widgets/eventcatcher.js +++ b/core/modules/widgets/eventcatcher.js @@ -37,11 +37,11 @@ EventWidget.prototype.render = function(parent,nextSibling) { var tag = this.parseTreeNode.isBlock ? "div" : "span"; if(this.elementTag && $tw.config.htmlUnsafeElements.indexOf(this.elementTag) === -1) { tag = this.elementTag; - } + } var domNode = this.document.createElement(tag); this.domNode = domNode; // Assign classes - this.assignDomNodeClasses(); + this.assignDomNodeClasses(); // Add our event handler $tw.utils.each(this.types,function(type) { domNode.addEventListener(type,function(event) { @@ -144,7 +144,7 @@ EventWidget.prototype.execute = function() { EventWidget.prototype.assignDomNodeClasses = function() { var classes = this.getAttribute("class","").split(" "); classes.push("tc-eventcatcher"); - this.domNode.className = classes.join(" "); + this.domNode.className = classes.join(" "); }; /* diff --git a/core/modules/widgets/fieldmangler.js b/core/modules/widgets/fieldmangler.js index fb249cbf2..d0d0782b1 100644 --- a/core/modules/widgets/fieldmangler.js +++ b/core/modules/widgets/fieldmangler.js @@ -58,7 +58,7 @@ FieldManglerWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return this.refreshChildren(changedTiddlers); + return this.refreshChildren(changedTiddlers); } }; @@ -133,7 +133,7 @@ FieldManglerWidget.prototype.handleAddTagEvent = function(event) { if(tag !== "") { modification.tags = (tiddler.fields.tags || []).slice(0); $tw.utils.pushTop(modification.tags,tag); - this.wiki.addTiddler(new $tw.Tiddler(tiddler,modification)); + this.wiki.addTiddler(new $tw.Tiddler(tiddler,modification)); } } else if(typeof event.param === "string" && event.param.trim() !== "" && this.mangleTitle.trim() !== "") { var tag = []; diff --git a/core/modules/widgets/image.js b/core/modules/widgets/image.js index 4ecafbd2b..2975cef4c 100644 --- a/core/modules/widgets/image.js +++ b/core/modules/widgets/image.js @@ -86,7 +86,7 @@ ImageWidget.prototype.render = function(parent,nextSibling) { default: src = _canonical_uri; break; - } + } } else { // Just trigger loading of the tiddler this.wiki.getTiddlerText(this.imageSource); @@ -97,7 +97,7 @@ ImageWidget.prototype.render = function(parent,nextSibling) { var domNode = this.document.createElement(tag); domNode.setAttribute("src",src); if(this.imageClass) { - domNode.setAttribute("class",this.imageClass); + domNode.setAttribute("class",this.imageClass); } if(this.imageWidth) { domNode.setAttribute("width",this.imageWidth); @@ -106,10 +106,10 @@ ImageWidget.prototype.render = function(parent,nextSibling) { domNode.setAttribute("height",this.imageHeight); } if(this.imageTooltip) { - domNode.setAttribute("title",this.imageTooltip); + domNode.setAttribute("title",this.imageTooltip); } if(this.imageAlt) { - domNode.setAttribute("alt",this.imageAlt); + domNode.setAttribute("alt",this.imageAlt); } // Insert element parent.insertBefore(domNode,nextSibling); @@ -138,7 +138,7 @@ ImageWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return false; + return false; } }; diff --git a/core/modules/widgets/importvariables.js b/core/modules/widgets/importvariables.js index 56cc0852c..faa2448de 100644 --- a/core/modules/widgets/importvariables.js +++ b/core/modules/widgets/importvariables.js @@ -118,7 +118,7 @@ ImportVariablesWidget.prototype.refresh = function(changedTiddlers) { this.renderChildren(this.parentDomNode,this.findNextSiblingDomNode()); return true; } else { - return this.refreshChildren(changedTiddlers); + return this.refreshChildren(changedTiddlers); } }; diff --git a/core/modules/widgets/link.js b/core/modules/widgets/link.js index 76822668b..d1742af24 100755 --- a/core/modules/widgets/link.js +++ b/core/modules/widgets/link.js @@ -77,7 +77,7 @@ LinkWidget.prototype.renderLink = function(parent,nextSibling) { } } if(this.linkClasses) { - classes.push(this.linkClasses); + classes.push(this.linkClasses); } } else if(this.overrideClasses !== "") { classes.push(this.overrideClasses) diff --git a/core/modules/widgets/linkcatcher.js b/core/modules/widgets/linkcatcher.js index 616a54c32..78322d0f6 100644 --- a/core/modules/widgets/linkcatcher.js +++ b/core/modules/widgets/linkcatcher.js @@ -61,7 +61,7 @@ LinkCatcherWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return this.refreshChildren(changedTiddlers); + return this.refreshChildren(changedTiddlers); } }; diff --git a/core/modules/widgets/log.js b/core/modules/widgets/log.js index 2615547ad..9d6e95159 100644 --- a/core/modules/widgets/log.js +++ b/core/modules/widgets/log.js @@ -23,7 +23,7 @@ exports.constructor = function(parseTreeNode,options) { exports.prototype = {}; exports.prototype.render = function(event) { - Object.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event); + Object.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event); Object.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this); } diff --git a/core/modules/widgets/macrocall.js b/core/modules/widgets/macrocall.js index 2381d0360..9de2e5d67 100644 --- a/core/modules/widgets/macrocall.js +++ b/core/modules/widgets/macrocall.js @@ -44,7 +44,7 @@ MacroCallWidget.prototype.execute = function() { var params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : []; $tw.utils.each(this.attributes,function(attribute,name) { if(name.charAt(0) !== "$") { - params.push({name: name, value: attribute}); + params.push({name: name, value: attribute}); } }); // Get the macro value diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index 75ad59a69..9df76acc4 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -95,7 +95,7 @@ NavigatorWidget.prototype.saveStoryList = function(storyList) { {title: this.storyTitle}, storyTiddler, {list: storyList} - )); + )); } }; @@ -105,7 +105,7 @@ NavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) { while(p !== -1) { storyList.splice(p,1); p = storyList.indexOf(title); - } + } } }; @@ -122,7 +122,7 @@ NavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle } while(pos !== -1); } else { storyList.splice(0,0,newTitle); - } + } } }; diff --git a/core/modules/widgets/raw.js b/core/modules/widgets/raw.js index 6ea592d3e..6d0ac41de 100644 --- a/core/modules/widgets/raw.js +++ b/core/modules/widgets/raw.js @@ -32,7 +32,7 @@ RawWidget.prototype.render = function(parent,nextSibling) { var div = this.document.createElement("div"); div.innerHTML=this.parseTreeNode.html; parent.insertBefore(div,nextSibling); - this.domNodes.push(div); + this.domNodes.push(div); }; /* diff --git a/core/modules/widgets/reveal.js b/core/modules/widgets/reveal.js index 2431e7195..aedca6183 100755 --- a/core/modules/widgets/reveal.js +++ b/core/modules/widgets/reveal.js @@ -72,7 +72,7 @@ RevealWidget.prototype.positionPopup = function(domNode) { case "belowright": left = this.popup.left + this.popup.width; top = this.popup.top + this.popup.height; - break; + break; case "right": left = this.popup.left + this.popup.width; top = this.popup.top; @@ -84,7 +84,7 @@ RevealWidget.prototype.positionPopup = function(domNode) { case "aboveleft": left = this.popup.left - domNode.offsetWidth; top = this.popup.top - domNode.offsetHeight; - break; + break; default: // Below left = this.popup.left; top = this.popup.top + this.popup.height; @@ -234,7 +234,7 @@ RevealWidget.prototype.refresh = function(changedTiddlers) { } if(changedAttributes["class"]) { this.assignDomNodeClasses(); - } + } return this.refreshChildren(changedTiddlers); } }; diff --git a/core/modules/widgets/scrollable.js b/core/modules/widgets/scrollable.js index 23be39efd..ddce42351 100644 --- a/core/modules/widgets/scrollable.js +++ b/core/modules/widgets/scrollable.js @@ -41,7 +41,7 @@ ScrollableWidget.prototype.handleScrollEvent = function(event) { if(event.paramObject && event.paramObject.selector) { this.scrollSelectorIntoView(null,event.paramObject.selector); } else { - this.scrollIntoView(event.target); + this.scrollIntoView(event.target); } return false; // Handled event }; @@ -97,7 +97,7 @@ ScrollableWidget.prototype.scrollIntoView = function(element) { if(duration <= 0) { t = 1; } else { - t = ((Date.now()) - self.startTime) / duration; + t = ((Date.now()) - self.startTime) / duration; } if(t >= 1) { self.cancelScroll(); @@ -118,7 +118,7 @@ ScrollableWidget.prototype.scrollSelectorIntoView = function(baseElement,selecto baseElement = baseElement || document.body; var element = baseElement.querySelector(selector); if(element) { - this.scrollIntoView(element,callback); + this.scrollIntoView(element,callback); } }; diff --git a/core/modules/widgets/setvariable.js b/core/modules/widgets/setvariable.js index 40dbadf16..cc97067c7 100755 --- a/core/modules/widgets/setvariable.js +++ b/core/modules/widgets/setvariable.js @@ -63,7 +63,7 @@ SetWidget.prototype.getValue = function() { if(this.setSubTiddler) { tiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler); } else { - tiddler = this.wiki.getTiddler(this.setTiddler); + tiddler = this.wiki.getTiddler(this.setTiddler); } if(!tiddler) { value = this.setEmptyValue; @@ -84,7 +84,7 @@ SetWidget.prototype.getValue = function() { if(select !== undefined) { value = results[select] || ""; } else { - value = $tw.utils.stringifyList(results); + value = $tw.utils.stringifyList(results); } } if(results.length === 0 && this.setEmptyValue !== undefined) { diff --git a/core/modules/widgets/text.js b/core/modules/widgets/text.js index e3212f590..14f729114 100755 --- a/core/modules/widgets/text.js +++ b/core/modules/widgets/text.js @@ -53,7 +53,7 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return false; + return false; } }; diff --git a/core/modules/widgets/tiddler.js b/core/modules/widgets/tiddler.js index 1296a5b09..0b70ff875 100755 --- a/core/modules/widgets/tiddler.js +++ b/core/modules/widgets/tiddler.js @@ -92,7 +92,7 @@ TiddlerWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return this.refreshChildren(changedTiddlers); + return this.refreshChildren(changedTiddlers); } }; diff --git a/core/modules/widgets/transclude.js b/core/modules/widgets/transclude.js index 1af7f9c42..2acd8109b 100755 --- a/core/modules/widgets/transclude.js +++ b/core/modules/widgets/transclude.js @@ -107,7 +107,7 @@ TranscludeWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return this.refreshChildren(changedTiddlers); + return this.refreshChildren(changedTiddlers); } }; diff --git a/core/modules/widgets/vars.js b/core/modules/widgets/vars.js index cbd3e0ddc..e4ee8872f 100644 --- a/core/modules/widgets/vars.js +++ b/core/modules/widgets/vars.js @@ -22,7 +22,7 @@ This widget allows multiple variables to be set in one go: var Widget = require("$:/core/modules/widgets/widget.js").widget; var VarsWidget = function(parseTreeNode,options) { - // Initialise + // Initialise this.initialise(parseTreeNode,options); }; diff --git a/core/modules/widgets/view.js b/core/modules/widgets/view.js index fed369771..6effc8939 100755 --- a/core/modules/widgets/view.js +++ b/core/modules/widgets/view.js @@ -108,7 +108,7 @@ ViewWidget.prototype.getValue = function(options) { } else { var tiddler; if(this.viewSubtiddler) { - tiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler); + tiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler); } else { tiddler = this.wiki.getTiddler(this.viewTitle); } @@ -121,7 +121,7 @@ ViewWidget.prototype.getValue = function(options) { if(options.asString) { value = tiddler.getFieldString(this.viewField); } else { - value = tiddler.fields[this.viewField]; + value = tiddler.fields[this.viewField]; } } } @@ -219,7 +219,7 @@ ViewWidget.prototype.refresh = function(changedTiddlers) { this.refreshSelf(); return true; } else { - return false; + return false; } }; diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 50405c19c..ce0102069 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -122,7 +122,7 @@ Widget.prototype.getVariableInfo = function(name,options) { }); // Only substitute variable references if this variable was defined with the \define pragma if(variable.isMacroDefinition) { - value = this.substituteVariableReferences(value); + value = this.substituteVariableReferences(value); } return { text: value, diff --git a/core/modules/widgets/wikify.js b/core/modules/widgets/wikify.js index 853ebff1b..1830b2048 100644 --- a/core/modules/widgets/wikify.js +++ b/core/modules/widgets/wikify.js @@ -100,7 +100,7 @@ WikifyWidget.prototype.getWidgetTree = function() { break; case "text": resultNode.text = widgetNode.parseTreeNode.text; - break; + break; } if(Object.keys(widgetNode.attributes || {}).length > 0) { resultNode.attributes = {}; diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 0fcb9b7b0..072b76dbf 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -111,7 +111,7 @@ exports.deleteTextReference = function(textRef,currTiddlerTitle) { exports.addEventListener = function(type,listener) { this.eventListeners = this.eventListeners || {}; this.eventListeners[type] = this.eventListeners[type] || []; - this.eventListeners[type].push(listener); + this.eventListeners[type].push(listener); }; exports.removeEventListener = function(type,listener) { @@ -227,7 +227,7 @@ exports.isVolatileTiddler = function(title) { exports.isImageTiddler = function(title) { var tiddler = this.getTiddler(title); - if(tiddler) { + if(tiddler) { var contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || "text/vnd.tiddlywiki"]; return !!contentTypeInfo && contentTypeInfo.flags.indexOf("image") !== -1; } else { @@ -237,7 +237,7 @@ exports.isImageTiddler = function(title) { exports.isBinaryTiddler = function(title) { var tiddler = this.getTiddler(title); - if(tiddler) { + if(tiddler) { var contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || "text/vnd.tiddlywiki"]; return !!contentTypeInfo && contentTypeInfo.encoding === "base64"; } else { @@ -734,7 +734,7 @@ exports.getTiddlerDataCached = function(titleOrTiddler,defaultData) { var self = this, tiddler = titleOrTiddler; if(!(tiddler instanceof $tw.Tiddler)) { - tiddler = this.getTiddler(tiddler); + tiddler = this.getTiddler(tiddler); } if(tiddler) { return this.getCacheForTiddler(tiddler.fields.title,"data",function() { @@ -755,7 +755,7 @@ exports.getTiddlerData = function(titleOrTiddler,defaultData) { var tiddler = titleOrTiddler, data; if(!(tiddler instanceof $tw.Tiddler)) { - tiddler = this.getTiddler(tiddler); + tiddler = this.getTiddler(tiddler); } if(tiddler && tiddler.fields.text) { switch(tiddler.fields.type) { @@ -885,7 +885,7 @@ exports.initParsers = function(moduleType) { if(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === "base64") { $tw.Wiki.parsers[type] = $tw.Wiki.parsers["application/octet-stream"]; } - }); + }); } }; @@ -949,7 +949,7 @@ exports.parseTextReference = function(title,field,index,options) { } if(field === "text" || (!field && !index)) { if(tiddler && tiddler.fields) { - return this.parseText(tiddler.fields.type,tiddler.fields.text,options); + return this.parseText(tiddler.fields.type,tiddler.fields.text,options); } else { return null; } @@ -1157,7 +1157,7 @@ exports.search = function(text,options) { searchTermsRegExps = [new RegExp("(" + anchor + terms.join("\\s+") + ")",flags)]; } else if(options.regexp) { try { - searchTermsRegExps = [new RegExp("(" + text + ")",flags)]; + searchTermsRegExps = [new RegExp("(" + text + ")",flags)]; } catch(e) { searchTermsRegExps = null; console.log("Regexp error parsing /(" + text + ")/" + flags + ": ",e); @@ -1179,7 +1179,7 @@ exports.search = function(text,options) { if($tw.utils.isArray(options.field)) { $tw.utils.each(options.field,function(fieldName) { if(fieldName) { - fields.push(fieldName); + fields.push(fieldName); } }); } else { @@ -1448,7 +1448,7 @@ historyTitle: title of history tiddler (defaults to $:/HistoryList) */ exports.addToHistory = function(title,fromPageRect,historyTitle) { var story = new $tw.Story({wiki: this, historyTitle: historyTitle}); - story.addToHistory(title,fromPageRect); + story.addToHistory(title,fromPageRect); console.log("$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!") }; From 652e8b1262786a3e7bcc01b51b4319749ff6674c Mon Sep 17 00:00:00 2001 From: Bram Chen <bram.chen@gmail.com> Date: Mon, 31 May 2021 14:37:01 +0800 Subject: [PATCH 29/32] Update chinese translations (#5740) --- languages/zh-Hans/EditTemplate.multids | 2 ++ languages/zh-Hans/Help/listen.tid | 4 ++-- languages/zh-Hans/Help/render.tid | 2 +- languages/zh-Hans/Help/save.tid | 2 +- languages/zh-Hans/Import.multids | 2 +- languages/zh-Hant/EditTemplate.multids | 2 ++ languages/zh-Hant/Help/listen.tid | 4 ++-- languages/zh-Hant/Help/render.tid | 2 +- languages/zh-Hant/Help/save.tid | 2 +- languages/zh-Hant/Import.multids | 2 +- 10 files changed, 14 insertions(+), 10 deletions(-) diff --git a/languages/zh-Hans/EditTemplate.multids b/languages/zh-Hans/EditTemplate.multids index 36b6d84a8..d6d0aca4a 100644 --- a/languages/zh-Hans/EditTemplate.multids +++ b/languages/zh-Hans/EditTemplate.multids @@ -3,6 +3,8 @@ title: $:/language/EditTemplate/ Body/External/Hint: 此条目显示保存于主要的 TiddlyWiki 文件之外的内容。你可以编辑其标签和字段,但不能直接编辑内容本身 Body/Placeholder: 输入此条目的内容 Body/Preview/Type/Output: 输出 +Body/Preview/Type/DiffShadow: 与影子条目的差异(如果有) +Body/Preview/Type/DiffCurrent: 与当前条目的差异 Field/Remove/Caption: 删除字段 Field/Remove/Hint: 删除字段 Field/Dropdown/Caption: 字段列表 diff --git a/languages/zh-Hans/Help/listen.tid b/languages/zh-Hans/Help/listen.tid index 3efc53c71..a75323401 100644 --- a/languages/zh-Hans/Help/listen.tid +++ b/languages/zh-Hans/Help/listen.tid @@ -19,8 +19,8 @@ listen 命令使用[[命名的命令参数|NamedCommandParameters]]: * ''username'' - 可选的基本验证用户名称 * ''password'' - 可选的基本验证密码 * ''authenticated-user-header'' - 可选的标头名称,用于受信任身份验证 -* ''readers'' - 允许读取此维基的主体,以逗号分隔的清单 -* ''writers'' - 允许写入此维基的主体,以逗号分隔的清单 +* ''readers'' - 允许读取此维基,以逗号分隔的用户名称的清单 +* ''writers'' - 允许写入此维基,以逗号分隔的用户名称的清单 * ''csrf-disable'' - 设置为 "yes" 以禁用 CSRF 检查 (默认为 "no") * ''sse-enabled'' - 设置为 "yes" 以启用服务器传送的事件 (默认为 "no") * ''root-tiddler'' - 服务的基本条目 (默认为 "$:/core/save/all") diff --git a/languages/zh-Hans/Help/render.tid b/languages/zh-Hans/Help/render.tid index c7894ac9a..81e347577 100644 --- a/languages/zh-Hans/Help/render.tid +++ b/languages/zh-Hans/Help/render.tid @@ -24,7 +24,7 @@ description: 呈现个别条目到文件 * 输出目录不清除任何现有的文件 * 文件名的路径中,任何不存在的文件夹,将自动创建。 -* 当正呈现的条目名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号;`--render "[[Motovun Jack.jpg]]"` +* 当正呈现的条目名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号:`--render "[[Motovun Jack.jpg]]"` * 所选的项目被设置为当前正在呈现的条目名称,以此评估文件名筛选器,允条目名称用作基础计算的文件名。例如,`[encodeuricomponent[]addprefix[static/]]` 为每个条目名称套用 URI 编码,然后增加首码 `static/` * `--render` 命令是已弃用的 `--rendertiddler` 和 `--rendertiddlers` 的一个更灵活的替代命令。 diff --git a/languages/zh-Hans/Help/save.tid b/languages/zh-Hans/Help/save.tid index 75f317bcf..5dcf8a97b 100644 --- a/languages/zh-Hans/Help/save.tid +++ b/languages/zh-Hans/Help/save.tid @@ -14,7 +14,7 @@ description: 将个别原始条目保存到文件 * 输出文件夹不清除任何现有的文件 * 文件名的路径中,任何不存在的文件夹,将自动创建。 -* 当正保存的条目的名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号;`--save "[[Motovun Jack.jpg]]"` +* 当正保存的条目的名称中带有空格,请注意同时使用命令行接口所要求的引号,与 TiddlyWiki 的双重方括号:`--save "[[Motovun Jack.jpg]]"` * 所选的项目被设置为当前正在保存的条目名称,以此评估文件名筛选器,允条目名称用作基础计算的文件名。例如,`[encodeuricomponent[]addprefix[static/]]` 为每个条目名称套用 URI 编码,然后增加首码 `static/` * `--save` 命令是已被弃用的 `--savetiddler` 和 `--savetiddlers` 的一个更灵活的替代命令。 diff --git a/languages/zh-Hans/Import.multids b/languages/zh-Hans/Import.multids index f7bcdefaf..10b8bcb1d 100644 --- a/languages/zh-Hans/Import.multids +++ b/languages/zh-Hans/Import.multids @@ -1,6 +1,6 @@ title: $:/language/Import/ -Editor/Import/Heading: 导入图像并插入至编辑器。 +Editor/Import/Heading: 导入图像并将其插入至编辑器。 Imported/Hint: 下列条目已被导入: Listing/Cancel/Caption: 取消 Listing/Hint: 这些条目已备妥导入: diff --git a/languages/zh-Hant/EditTemplate.multids b/languages/zh-Hant/EditTemplate.multids index 31912ad90..d8c57347d 100644 --- a/languages/zh-Hant/EditTemplate.multids +++ b/languages/zh-Hant/EditTemplate.multids @@ -3,6 +3,8 @@ title: $:/language/EditTemplate/ Body/External/Hint: 此條目顯示儲存於主要的 TiddlyWiki 檔之外的內容。你可以編輯其標籤和欄位,但不能直接編輯內容本身 Body/Placeholder: 輸入此條目的內容 Body/Preview/Type/Output: 輸出 +Body/Preview/Type/DiffShadow: 與影子條目的差異(如果有) +Body/Preview/Type/DiffCurrent: 與當前條目的差異 Field/Remove/Caption: 刪除欄位 Field/Remove/Hint: 刪除欄位 Field/Dropdown/Caption: 欄位列表 diff --git a/languages/zh-Hant/Help/listen.tid b/languages/zh-Hant/Help/listen.tid index e76376059..c2d96823f 100644 --- a/languages/zh-Hant/Help/listen.tid +++ b/languages/zh-Hant/Help/listen.tid @@ -19,8 +19,8 @@ listen 命令使用[[命名的命令參數|NamedCommandParameters]]: * ''username'' - 可選的基本驗證使用者名稱 * ''password'' - 可選的基本驗證密碼 * ''authenticated-user-header'' - 可選的標頭名稱,用於受信任身份驗證 -* ''readers'' - 允許讀取此維基的主體,以逗號分隔的清單 -* ''writers'' - 允許寫入此維基的主體,以逗號分隔的清單 +* ''readers'' - 允許讀取此維基,以逗號分隔的使用者名稱的清單 +* ''writers'' - 允許寫入此維基,以逗號分隔的使用者名稱的清單 * ''csrf-disable'' - 設定為 "yes" 以停用 CSRF 檢查 (預設為 "no") * ''sse-enabled'' - 設定為 "yes" 以啟用伺服器傳送的事件 (預設為 "no") * ''root-tiddler'' - 服務的基本條目 (預設為 "$:/core/save/all") diff --git a/languages/zh-Hant/Help/render.tid b/languages/zh-Hant/Help/render.tid index 6909fbe2f..a1d4ecb44 100644 --- a/languages/zh-Hant/Help/render.tid +++ b/languages/zh-Hant/Help/render.tid @@ -24,7 +24,7 @@ description: 呈現個別條目到檔案 * 輸出資料夾不清除任何現有的檔案 * 檔名的路徑中,任何不存在的資料夾,將自動建立。 -* 當正呈現的條目名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號;`--render "[[Motovun Jack.jpg]]"` +* 當正呈現的條目名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號:`--render "[[Motovun Jack.jpg]]"` * 所選的項目被設定為當前正在呈現的條目名稱,以此評估檔名篩選器,允條目名稱用作基礎計算的檔名。例如,`[encodeuricomponent[]addprefix[static/]]` 為每個條目名稱套用 URI 編碼,然後增加首碼 `static/` * `--render` 命令是已棄用的 `--rendertiddler` 和 `--rendertiddlers` 的一個更靈活的替代命令。 diff --git a/languages/zh-Hant/Help/save.tid b/languages/zh-Hant/Help/save.tid index e4fac5669..fb08143a9 100644 --- a/languages/zh-Hant/Help/save.tid +++ b/languages/zh-Hant/Help/save.tid @@ -14,7 +14,7 @@ description: 將個別原始條目儲存到檔案 * 輸出資料夾不清除任何現有的檔案 * 檔名的路徑中,任何不存在的目錄,將自動建立。 -* 當正儲存的條目的名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號;`--save "[[Motovun Jack.jpg]]"` +* 當正儲存的條目的名稱中帶有空格,請注意同時使用命令列介面所要求的引號,與 TiddlyWiki 的雙重方括號:`--save "[[Motovun Jack.jpg]]"` * 所選的項目被設定為當前正在儲存的條目名稱,以此評估檔案名篩選器,允條目名稱用作基礎計算的檔名。例如,`[encodeuricomponent[]addprefix[static/]]` 為每個條目名稱套用 URI 編碼,然後增加首碼 `static/` * `--save` 命令是已被棄用的 `--savetiddler` 和 `--savetiddlers` 的一個更靈活的替代命令。 diff --git a/languages/zh-Hant/Import.multids b/languages/zh-Hant/Import.multids index dfcb7a0e9..7e9f395d1 100644 --- a/languages/zh-Hant/Import.multids +++ b/languages/zh-Hant/Import.multids @@ -1,6 +1,6 @@ title: $:/language/Import/ -Editor/Import/Heading: 導入圖像並插入至編輯器。 +Editor/Import/Heading: 導入圖像並將其插入至編輯器。 Imported/Hint: 下列條目已被導入: Listing/Cancel/Caption: 取消 Listing/Hint: 這些條目已備妥導入: From 582b156d5f2b9b8b92f9289aa1288e1edb637450 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Jun 2021 09:28:04 +0100 Subject: [PATCH 30/32] Refresh non-action widgets before invoking them Fixes #5744 --- core/modules/widgets/widget.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index ce0102069..3b020bf09 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -570,8 +570,8 @@ Widget.prototype.invokeActions = function(triggeringWidget,event) { for(var t=0; t<this.children.length; t++) { var child = this.children[t]; // Invoke the child if it is an action widget + child.refreshSelf(); if(child.invokeAction) { - child.refreshSelf(); if(child.invokeAction(triggeringWidget,event)) { handled = true; } From 9faaa312998d48c56bd50335820b6b881266af4b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Jun 2021 09:41:14 +0100 Subject: [PATCH 31/32] Extend action-createtiddler to make new title available as a variable I'm not sure if the docs are clear, but this is quite a big deal, and along with 582b156d5f2b9b8b92f9289aa1288e1edb637450 makes working with action widgets a lot easier. --- core/modules/widgets/action-createtiddler.js | 16 +++++++++++----- .../ActionCreateTiddlerWidget Example 3.tid | 2 +- .../ActionCreateTiddlerWidget Example 4.tid | 4 ++-- .../widgets/ActionCreateTiddlerWidget.tid | 16 ++++++++++------ .../ActionCreateTiddlerWidget_Example.tid | 8 +++++--- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/core/modules/widgets/action-createtiddler.js b/core/modules/widgets/action-createtiddler.js index d1d1786f7..693c33282 100644 --- a/core/modules/widgets/action-createtiddler.js +++ b/core/modules/widgets/action-createtiddler.js @@ -27,8 +27,11 @@ CreateTiddlerWidget.prototype = new Widget(); Render this widget into the DOM */ CreateTiddlerWidget.prototype.render = function(parent,nextSibling) { + this.parentDomNode = parent; this.computeAttributes(); this.execute(); + // Render children + this.renderChildren(parent,nextSibling); }; /* @@ -44,7 +47,8 @@ CreateTiddlerWidget.prototype.execute = function() { this.actionTemplate = this.getAttribute("$template"); this.useTemplate = !!this.actionTemplate; 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) { title = this.wiki.generateNewTitle(this.actionTemplate); } else if (!this.hasBase && !this.useTemplate) { - // If NO $basetitle AND NO $template use initial title - // DON'T overwrite any stuff + // If no $basetitle and no $template then use initial title title = this.wiki.generateNewTitle(title); } 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) { this.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable("currentTiddler")); } 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 }; diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid index 54524108a..6c66ef165 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 3.tid @@ -25,4 +25,4 @@ Create Tiddler <$button actions=<<testCreate>> > <$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/> Create Tiddler -</$button> - Clicking this button, will also open the Right sidebar: Recent tab +</$button> - Clicking this button will also open the Right sidebar: Recent tab diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid index b1eb7275f..c3e955b55 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget Example 4.tid @@ -8,7 +8,7 @@ type: text/vnd.tiddlywiki <$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template" aa="new field aa" bb="new field bb" /> \end -This example will uses a base-title: "base" and a template: [[ActionCreateTiddlerWidget Template]]. +This example uses a base-title "base" and a template: [[ActionCreateTiddlerWidget Template]]. There will be new fields "aa" and "bb" which are added to the new tiddlers. @@ -25,4 +25,4 @@ Create Tiddler <$button actions=<<testCreate>> > <$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/> Create Tiddler -</$button> - Clicking this button, will also open the Right sidebar: Recent tab +</$button> - Clicking this button will also open the Right sidebar: Recent tab diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid index ca02c2285..04631f4af 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget.tid @@ -1,6 +1,6 @@ caption: action-createtiddler created: 20161020152745942 -modified: 20200131151847266 +modified: 20210601092956998 tags: Widgets ActionWidgets title: ActionCreateTiddlerWidget type: text/vnd.tiddlywiki @@ -16,17 +16,21 @@ There are several differences from the [[tm-new-tiddler message|WidgetMessage: t ! Content and Attributes -The ''action-createtiddler'' widget is invisible. Any content within it is ignored. +The ''action-createtiddler'' widget is invisible. + +<<.from-version "5.1.24">> The action widgets contained within the ''action-createtiddler'' widget are executed after the new tiddler has been created with the title of the tiddler in the variable `createTiddler-title` and `createTiddler-draftTitle`. |!Attribute |!Description | |$basetitle |The initial title that will be attempted. If a tiddler with that title already exists, then a numerical counter is added to the title and incremented until it is unique| -|$savetitle |A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created | -|$savedrafttitle |<<.from-version "5.1.20">> A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag | +|$savetitle |//(deprecated – see below))// A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created | +|$savedrafttitle |//(deprecated – see below))// <<.from-version "5.1.20">> A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag | |$timestamp |Specifies whether the timestamp(s) of the target tiddler will be updated (''modified'' and ''modifier'', plus ''created'' and ''creator'' for newly created tiddlers). Can be "yes" (the default) or "no" | -|$template |<<.from-version "5.1.22">> The title of a template tiddler, that will be used to create a new tiddler | -|$overwrite |<<.from-version "5.1.22">> If set to "yes", it will overwrite existing tiddlers. ''Be careful!'' | +|$template |<<.from-version "5.1.22">> The title of a template tiddler, that will be used to create a new tiddler | +|$overwrite |<<.from-version "5.1.22">> If set to "yes", it will overwrite existing tiddlers. ''Be careful!'' | |//{any attributes not starting with $}// |Each attribute name specifies a field to be created in the new tiddler | +<<.from-version "5.1.24">> Note that the attributes `$savetitle` and `$savedrafttitle` are no longer needed. Instead, any action widgets that need to use the title of the newly created tiddler should be contained within the ''action-createtiddler'' widget, and reference the variables `createTiddler-title` and `createTiddler-draftTitle` to obtain the title. + ! Examples <<< diff --git a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid index 2be233566..2eb37f9fc 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionCreateTiddlerWidget_Example.tid @@ -4,9 +4,11 @@ tags: ActionCreateTiddlerWidget title: ActionCreateTiddlerWidget Example type: text/vnd.tiddlywiki -New button caption: <$edit-text tiddler="$:/state/new-button-caption" tag="input" default=""/> +Caption for new button: <$edit-text tiddler="$:/state/new-button-caption" tag="input" default=""/> <$button> -<$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}/> -Create non-functional page control button +<$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}> +<$action-navigate $to=<<createTiddler-title>>/> +</$action-createtiddler> +Create a new non-functional page control button and open the tiddler </$button> \ No newline at end of file From 55c522ab8fb9e4793364a151dedb807b471ea435 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" <jeremy@jermolene.com> Date: Tue, 1 Jun 2021 11:49:05 +0100 Subject: [PATCH 32/32] Improve comments As per @pmario's comment at https://github.com/Jermolene/TiddlyWiki5/commit/582b156d5f2b9b8b92f9289aa1288e1edb637450#commitcomment-51566608 --- core/modules/widgets/widget.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 3b020bf09..cf73cbca6 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -569,8 +569,9 @@ Widget.prototype.invokeActions = function(triggeringWidget,event) { // For each child widget for(var t=0; t<this.children.length; t++) { var child = this.children[t]; - // Invoke the child if it is an action widget + // Rerender the child to ensure the attribute values are up to date child.refreshSelf(); + // Invoke the child if it is an action widget if(child.invokeAction) { if(child.invokeAction(triggeringWidget,event)) { handled = true;