From 4c9eaeaaf2c2a09b7cfa066865d2008870b00f04 Mon Sep 17 00:00:00 2001 From: TiddlyTweeter Date: Sun, 30 Jul 2023 14:37:27 +0200 Subject: [PATCH 01/36] Signing CLA (#7638) Co-authored-by: Jeremy Ruston --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index c02612029..de7549b74 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -538,4 +538,6 @@ WhiteFall, @Zacharia2, 2023/06/04 @oeyoews, 2023/06/30 +@TiddlyTweeter, 2023/07/25 + @catter-fly, 2023/07/27 From 4bdac09872f0df02713db16975c4d928462fb9a0 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 30 Jul 2023 18:04:05 +0100 Subject: [PATCH 02/36] Fix transclude inefficiency (#7647) * Refactor parse mode out of getTransclusionTarget * Refactor missing transclusion target * Add a test to avoid regressions on the handling of macros vs procedures * Refactor condition logic * Preparing to split getTransclusionTarget into two separate functions * Split getTransclusionTarget into getTransclusionTargetIncludingParseTreeNodes * Resolve another inefficiency The transclusion target was sometimes being parsed twice when transcluding as text/plain Associated test results are also made more consistent * Simplify method naming * Neatening up --- core/modules/widgets/transclude.js | 101 ++++++++++++------ .../data/functions/WikifiedFunctions.tid | 2 +- .../Procedures-Double-Underscore.tid | 26 +++++ 3 files changed, 93 insertions(+), 36 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/transclude/Procedures-Double-Underscore.tid diff --git a/core/modules/widgets/transclude.js b/core/modules/widgets/transclude.js index 05d03a702..ac467a2c8 100755 --- a/core/modules/widgets/transclude.js +++ b/core/modules/widgets/transclude.js @@ -41,30 +41,43 @@ TranscludeWidget.prototype.execute = function() { this.collectAttributes(); this.collectStringParameters(); this.collectSlotFillParameters(); - // Get the target text and parse tree nodes that we are transcluding - var target = this.getTransclusionTarget(), - parseTreeNodes; - this.sourceText = target.text; - this.parserType = target.type; - this.parseAsInline = target.parseAsInline; + // Determine whether we're being used in inline or block mode + var parseAsInline = !this.parseTreeNode.isBlock; + if(this.transcludeMode === "inline") { + parseAsInline = true; + } else if(this.transcludeMode === "block") { + parseAsInline = false; + } // Set 'thisTiddler' this.setVariable("thisTiddler",this.transcludeTitle); + var parseTreeNodes, target; // Process the transclusion according to the output type switch(this.transcludeOutput || "text/html") { case "text/html": - // Return the parse tree nodes + // Return the parse tree nodes of the target + target = this.parseTransclusionTarget(parseAsInline); + this.parseAsInline = target.parseAsInline; parseTreeNodes = target.parseTreeNodes; break; case "text/raw": // Just return the raw text - parseTreeNodes = [{type: "text", text: this.sourceText}]; + target = this.getTransclusionTarget(); + parseTreeNodes = [{type: "text", text: target.text}]; break; default: - // text/plain - var plainText = this.wiki.renderText("text/plain",this.parserType,this.sourceText,{parentWidget: this}); - parseTreeNodes = [{type: "text", text: plainText}]; + // "text/plain" is the plain text result of wikifying the text + target = this.parseTransclusionTarget(parseAsInline); + var widgetNode = this.wiki.makeWidget(target.parser,{ + parentWidget: this, + document: $tw.fakeDocument + }); + var container = $tw.fakeDocument.createElement("div"); + widgetNode.render(container,null); + parseTreeNodes = [{type: "text", text: container.textContent}]; break; } + this.sourceText = target.text; + this.parserType = target.type; // Set the legacy transclusion context variables only if we're not transcluding a variable if(!this.transcludeVariable) { var recursionMarker = this.makeRecursionMarker(); @@ -161,17 +174,44 @@ TranscludeWidget.prototype.collectSlotFillParameters = function() { }; /* -Get transcluded parse tree nodes as an object {text:,type:,parseTreeNodes:,parseAsInline:} +Get transcluded details as an object {text:,type:} */ TranscludeWidget.prototype.getTransclusionTarget = function() { var self = this; - // Determine whether we're being used in inline or block mode - var parseAsInline = !this.parseTreeNode.isBlock; - if(this.transcludeMode === "inline") { - parseAsInline = true; - } else if(this.transcludeMode === "block") { - parseAsInline = false; + var text; + // Return the text and type of the target + if(this.hasAttribute("$variable")) { + if(this.transcludeVariable) { + // Transcluding a variable + var variableInfo = this.getVariableInfo(this.transcludeVariable,{params: this.getOrderedTransclusionParameters()}); + text = variableInfo.text; + return { + text: variableInfo.text, + type: this.transcludeType + }; + } + } else { + // Transcluding a text reference + var parserInfo = this.wiki.getTextReferenceParserInfo( + this.transcludeTitle, + this.transcludeField, + this.transcludeIndex, + { + subTiddler: this.transcludeSubTiddler, + defaultType: this.transcludeType + }); + return { + text: parserInfo.text, + type: parserInfo.type + }; } +}; + +/* +Get transcluded parse tree nodes as an object {text:,type:,parseTreeNodes:,parseAsInline:} +*/ +TranscludeWidget.prototype.parseTransclusionTarget = function(parseAsInline) { + var self = this; var parser; // Get the parse tree if(this.hasAttribute("$variable")) { @@ -237,7 +277,7 @@ TranscludeWidget.prototype.getTransclusionTarget = function() { } $tw.utils.addAttributeToParseTreeNode(parser.tree[0],name,param["default"]) }); - } else if(srcVariable && (srcVariable.isMacroDefinition || !srcVariable.isFunctionDefinition)) { + } else if(srcVariable && !srcVariable.isFunctionDefinition) { // For macros and ordinary variables, wrap the parse tree in a vars widget assigning the parameters to variables named "__paramname__" parser = { tree: [ @@ -269,22 +309,13 @@ TranscludeWidget.prototype.getTransclusionTarget = function() { }); } // Return the parse tree - if(parser) { - return { - parseTreeNodes: parser.tree, - parseAsInline: parseAsInline, - text: parser.source, - type: parser.type - }; - } else { - // If there's no parse tree then return the missing slot value - return { - parseTreeNodes: (this.slotFillParseTrees["ts-missing"] || []), - parseAsInline: parseAsInline, - text: null, - type: null - }; - } + return { + parser: parser, + parseTreeNodes: parser ? parser.tree : (this.slotFillParseTrees["ts-missing"] || []), + parseAsInline: parseAsInline, + text: parser && parser.source, + type: parser && parser.type + }; }; /* diff --git a/editions/test/tiddlers/tests/data/functions/WikifiedFunctions.tid b/editions/test/tiddlers/tests/data/functions/WikifiedFunctions.tid index 733fbdaef..36b64e4a3 100644 --- a/editions/test/tiddlers/tests/data/functions/WikifiedFunctions.tid +++ b/editions/test/tiddlers/tests/data/functions/WikifiedFunctions.tid @@ -33,4 +33,4 @@ $param$ with a ''buffalo'' + title: ExpectedResult -

Going to lunch with a ''buffalo''

Going to breakfastwith abuffalo

Going to dinner with a buffalo

Going to lunch with a buffalo with a buffaloGoing to dinner with a buffalo \ No newline at end of file +

Going to lunch with a ''buffalo''

Going to breakfastwith abuffalo

Going to dinner with a buffalo

Going to lunch with a ''buffalo''Going to breakfastwith abuffaloGoing to dinner with a buffalo \ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/transclude/Procedures-Double-Underscore.tid b/editions/test/tiddlers/tests/data/transclude/Procedures-Double-Underscore.tid new file mode 100644 index 000000000..f22efb4f6 --- /dev/null +++ b/editions/test/tiddlers/tests/data/transclude/Procedures-Double-Underscore.tid @@ -0,0 +1,26 @@ +title: Procedures/Double/Underscore +description: Checking that procedures don't expose parameters as variables wrapped in double underscores +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +\whitespace trim +\procedure mamacro(one:"red",two:"green") +It is $one$ and $two$<<__one__>><<__two__>>. +\end + +<$macrocall $name="mamacro"/> + +<$transclude $variable="mamacro"/> + +<$transclude $variable="mamacro" one="orange"/> + +<$transclude $variable="mamacro" 0="pink"/> + +<$transclude $variable="mamacro" one="purple" 1="pink"/> + ++ +title: ExpectedResult + +

It is $one$ and $two$.

It is $one$ and $two$.

It is $one$ and $two$.

It is $one$ and $two$.

It is $one$ and $two$.

\ No newline at end of file From 3e213569e2d977be5036113294050b5e4c37dc90 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 30 Jul 2023 22:50:01 +0100 Subject: [PATCH 03/36] Update release note --- editions/prerelease/tiddlers/Release 5.3.1.tid | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/prerelease/tiddlers/Release 5.3.1.tid index 5c49b72fe..c7870e0d5 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/prerelease/tiddlers/Release 5.3.1.tid @@ -9,9 +9,10 @@ type: text/vnd.tiddlywiki ! Overview of v5.3.1 -! Reversions of v5.3.0 Changes +! Bug Fixes and Reversions of v5.3.0 Changes * Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468) +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7647">> inefficiency when transcluding with the ''$output'' attribute set to `text/plain` ! Plugin Improvements From d0da1ef9d9274b96ec514bd3e2b939653a2508ed Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 31 Jul 2023 11:50:58 +0100 Subject: [PATCH 04/36] Fix error "Global assignment is not allowed within modules on node" (#7648) --- boot/boot.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boot/boot.js b/boot/boot.js index cd77ae291..3547ee880 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -575,9 +575,8 @@ var globalCheck =[ " configurable: true", " });", " if(Object.keys(__temp__).length){", - " console.log(Object.keys(__temp__));", + " console.log(\"Warning: Global assignment detected\",Object.keys(__temp__));", " delete Object.prototype.__temp__;", - " throw \"Global assignment is not allowed within modules on node.\";", " }", " delete Object.prototype.__temp__;", ].join('\n'); From 825f4eaae1905659a4fdafb489a3230beb9a1933 Mon Sep 17 00:00:00 2001 From: TonyM <31584658+AnthonyMuscio@users.noreply.github.com> Date: Mon, 31 Jul 2023 20:53:14 +1000 Subject: [PATCH 05/36] Update Widgets in WikiText.tid (#7623) * Update Widgets in WikiText.tid Added Minimalist link to [[Substituted Attribute Values]] so the new method is also listed. * Update Widgets in WikiText.tid removed see also --- editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid index c23c3475f..67503cd89 100644 --- a/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Widgets in WikiText.tid @@ -20,6 +20,7 @@ Note that widgets inherit all the features of [[HTML in WikiText]]: ** Macro invocations (eg `attr=<>`) ** Transclusions (eg, `attr={{MyTiddler!!field}}`) ** Filtered transclusions (eg, `attr={{{ [filter[op]] }}}`) +** <<.from-version "5.3.0">> [[Substituted Attribute Values]] * The content of a widget is [[parsed|WikiText Parser Modes]] in [[inline mode|Inline Mode WikiText]] unless the opening tag is followed by two linebreaks, which forces [[block mode|Block Mode WikiText]] ** [[inline mode|Inline Mode WikiText]] means that [[block mode|Block Mode WikiText]] parse rules like headings, tables and lists are not recognised From 1b5b8905d885ebc5dea3a46daf6defd211740676 Mon Sep 17 00:00:00 2001 From: Eric Haberstroh Date: Mon, 31 Jul 2023 12:57:31 +0200 Subject: [PATCH 06/36] Sign the CLA (#7633) Co-authored-by: Jeremy Ruston --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index de7549b74..089a2711a 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -538,6 +538,8 @@ WhiteFall, @Zacharia2, 2023/06/04 @oeyoews, 2023/06/30 +Eric Haberstroh, @pille1842, 2023/07/23 + @TiddlyTweeter, 2023/07/25 @catter-fly, 2023/07/27 From 73f256a41198670d9c56385bf5111329c6e35c2e Mon Sep 17 00:00:00 2001 From: Marxsal Date: Mon, 31 Jul 2023 04:01:44 -0700 Subject: [PATCH 07/36] Change hashmap references to indicate additional variables (#7635) --- .../tiddlers/messages/WidgetMessage_ tm-close-window.tid | 4 ++-- .../tiddlers/messages/WidgetMessage_ tm-download-file.tid | 6 +++--- .../messages/WidgetMessage_ tm-edit-bitmap-operation.tid | 6 +++--- .../messages/WidgetMessage_ tm-edit-text-operation.tid | 4 ++-- .../tiddlers/messages/WidgetMessage_ tm-focus-selector.tid | 4 ++-- .../tiddlers/messages/WidgetMessage_ tm-http-request.tid | 4 ++-- .../tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid | 4 ++-- .../tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid | 6 +++--- .../tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid | 6 +++--- .../messages/WidgetMessage_ tm-open-external-window.tid | 7 ++++--- .../tiddlers/messages/WidgetMessage_ tm-save-wiki.tid | 6 +++--- 11 files changed, 29 insertions(+), 28 deletions(-) diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid index 739efb192..07b69e5b9 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-close-window.tid @@ -1,6 +1,6 @@ caption: tm-open-window created: 20220228140417116 -modified: 20220409092811188 +modified: 20230723220539648 tags: Messages title: WidgetMessage: tm-close-window type: text/vnd.tiddlywiki @@ -29,7 +29,7 @@ src=""" width="400" height="500" windowID="window1" - something="I just in over in a variable, and boy is my Hashmap tired." /> + something="I just flew in on a variable, and boy is my Hashmap tired." /> <$button>Close Window <$action-sendmessage diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid index 128966501..e80c1aba8 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-download-file.tid @@ -1,15 +1,15 @@ +caption: tm-download-file created: 20140811112201235 -modified: 20220123141646321 +modified: 20230723214745520 tags: Messages title: WidgetMessage: tm-download-file type: text/vnd.tiddlywiki -caption: tm-download-file The download file message causes the current saver module to prompt the user to download the result of parsing a specified template tiddler as a file. It requires the following properties on the `event` object: |!Name |!Description | |param |Title of a tiddler to use as a template for the new tiddler | -|paramObject |Optional hashmap of variable values to use for the rendering | +|//{any other params}// |Any other parameters are made available as variables within the context of the widget message. | The following variable names have special behaviour: diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid index e8df75efd..edbc5ce5d 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-edit-bitmap-operation.tid @@ -1,6 +1,6 @@ caption: tm-edit-bitmap-operation created: 20160424204236050 -modified: 20160424215219517 +modified: 20230723214716576 tags: Messages title: WidgetMessage: tm-edit-bitmap-operation type: text/vnd.tiddlywiki @@ -30,12 +30,12 @@ Clears the contents of the image and fills it with a solid colour. Parameters in \end - A `tm-edit-bitmap-operation` invokes one of the available operations on a __surrounding__ bitmap 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: |!Name |!Description | |param |Name of the operation to be executed, see ''below'' for a list of possible operations | -|paramObject| Hashmap of additional parameters required by the operation top be executed | +|//{any other params}// |Any other parameters are made available as variables within the context of the widget message. | + The `tm-edit-bitmap-operation` message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding bitmap editor. 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 9737c3b24..a34fe3fc0 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: 20210520053923011 +modified: 20230723214636245 tags: Messages title: WidgetMessage: tm-edit-text-operation type: text/vnd.tiddlywiki @@ -121,7 +121,7 @@ A `tm-edit-text-operation` invokes one of the available operations on a __surrou |!Name |!Description | |param |Name of the operation to be executed, see ''below'' for a list of possible operations | -|paramObject|Hashmap of additional parameters required by the operation top be executed | +|//{any other params}// |Any other parameters are made available as variables within the context of the widget message. | The `tm-edit-text-operation` message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding text editor. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-focus-selector.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-focus-selector.tid index 1b33502ed..c041e15dc 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-focus-selector.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-focus-selector.tid @@ -1,6 +1,6 @@ caption: tm-focus-selector created: 20190628162542132 -modified: 20190628162542132 +modified: 20230723215122038 tags: Messages title: WidgetMessage: tm-focus-selector type: text/vnd.tiddlywiki @@ -9,6 +9,6 @@ The `tm-focus-selector` message sets the focus to the DOM element identified by |!Name |!Description | |param |Selector identifying the DOM element to be focussed | -|paramObject |Optional hashmap of additional parameters to be passed to the [[focus()|https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus]] method | +|//{any other params}// |Any other parameters to be passed to the [[focus()|https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus]] method as variables.| <<.tip """Use preventScroll="true" to prevent the browser from scrolling to the focused element""">> diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid index f6c82e760..6ff44ee38 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid @@ -1,6 +1,6 @@ caption: tm-http-request created: 20230429161453032 -modified: 20230429161453032 +modified: 20230723215344887 tags: Messages title: WidgetMessage: tm-http-request type: text/vnd.tiddlywiki @@ -11,7 +11,7 @@ It uses the following properties on the `event` object: |!Name |!Description | |param |Not used | -|paramObject |Hashmap of parameters (see below) | +|//{any other params}// |Any other parameters are made available as variables within the context of the widget message. See below. | The following parameters are used: diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid index 9b459fb7b..158bb7878 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-modal.tid @@ -1,13 +1,13 @@ caption: tm-modal created: 20140811112133701 -modified: 20201117081247738 +modified: 20230723215434712 tags: Messages title: WidgetMessage: tm-modal type: text/vnd.tiddlywiki |!Name |!Description | |param |Title of the tiddler to be displayed | -|paramObject |Hashmap of variables to be provided to the modal, contains all extra parameters passed to the widget sending the message. | +|//{any other params}// |Any other parameters are made available as variables within the context of the widget message. | |rootwindow |<<.from-version 5.1.18>> ''yes'' or ''true'' will always display a modal in the wiki-root-window | The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid index d435d5f4f..c487f015f 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-new-tiddler.tid @@ -1,6 +1,6 @@ caption: tm-new-tiddler created: 20140226194405353 -modified: 20220521143507491 +modified: 20230723215831560 tags: Messages navigator-message title: WidgetMessage: tm-new-tiddler type: text/vnd.tiddlywiki @@ -9,12 +9,12 @@ The new tiddler message creates a new draft tiddler and adds it to the current s |!Name |!Description | |param |The optional title of a tiddler to use as a template for the new tiddler | -|paramObject |Optional hashmap of additional tiddler fields | +|//{any other params}// |The names and values of additional tiddler fields. | |navigateFromTitle |Title of the tiddler from which the navigation to the new tiddler was initiated | The title for the draft tiddler is chosen according to these rules: -* If a hashmap was used and a title field was specified, use that title +* If additional parameters were used and a title field was specified, use that title * If a template tiddler was used, use the title of the template tiddler, making it unique with a numeric suffix * Otherwise, generate a new title based on the default new tiddler title with a numeric suffix to make it unique diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid index f44839f45..b64f4a573 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-notify.tid @@ -1,14 +1,14 @@ +caption: tm-notify created: 20140811112304772 -modified: 20160701140248738 +modified: 20230723220728382 tags: Messages title: WidgetMessage: tm-notify type: text/vnd.tiddlywiki -caption: tm-notify The notify message briefly displays a specified tiddler as a small alert in the upper right corner of the page. It requires the following properties on the `event` object: |!Name |!Description | |param |Title of the tiddler to be displayed | -|paramObject |Hashmap of variables to be provided to the notification | +|//{any other params}// |Any other parameters are made available as variables to the notify message. | The notify message is handled by the TiddlyWiki core. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid index 960f94f2f..4e868312c 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid @@ -1,6 +1,6 @@ caption: tm-open-external-window -created: 201701211823 -modified: 201701211825 +created: 20170121182300000 +modified: 20230723220850135 tags: Messages title: WidgetMessage: tm-open-external-window type: text/vnd.tiddlywiki @@ -11,7 +11,8 @@ The `tm-open-external-window` message opens an external link eg: "https://tiddly |!Name |!Description | |param |URL of the tiddler to be opened in a new browser window, defaults to the [[TiddlyWiki help|https://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window if empty]] | -|paramObject |Optional: Hashmap of variables that will be provided to the window. see below | +|//{any other params}// |Any other parameters are made available as variables to the window. See below. | + ''parmObject'' diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-save-wiki.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-save-wiki.tid index 605ee37e8..701caa4f2 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-save-wiki.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-save-wiki.tid @@ -1,15 +1,15 @@ +caption: tm-save-wiki created: 20140811112325641 -modified: 20141110133723696 +modified: 20230723220944427 tags: Messages title: WidgetMessage: tm-save-wiki type: text/vnd.tiddlywiki -caption: tm-save-wiki The save wiki message causes the current saver module to perform a full save operation. The save operation can involve user interaction. It requires the following properties on the `event` object: |!Name |!Description | |param |Title of a tiddler to use as a template for rendering the wiki (defaults to `$:/core/save/all`) | -|paramObject |Optional hashmap of variable values to use for the rendering | +|//{any other params}// |Any other parameters are made available as variables to use for the rendering. | The save wiki message is usually generated by the ButtonWidget. From 575930b31dc1abeb2b35e043f24cb97ac099a36f Mon Sep 17 00:00:00 2001 From: lilscribby <33818074+lilscribby@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:02:52 -0400 Subject: [PATCH 08/36] Signing CLA (#7636) Co-authored-by: Jeremy Ruston --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 089a2711a..c2d215e86 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -540,6 +540,8 @@ WhiteFall, @Zacharia2, 2023/06/04 Eric Haberstroh, @pille1842, 2023/07/23 +@lilscribby, 2023-07-24 + @TiddlyTweeter, 2023/07/25 @catter-fly, 2023/07/27 From 52f7f6382ba9a57be994be049e92980c00bbefd7 Mon Sep 17 00:00:00 2001 From: lilscribby <33818074+lilscribby@users.noreply.github.com> Date: Mon, 31 Jul 2023 07:06:04 -0400 Subject: [PATCH 09/36] Fixed typos in documentation for new pragma (#7637) --- editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid | 4 ++-- editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid b/editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid index 076d26687..06b0251d5 100644 --- a/editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid +++ b/editions/tw5.com/tiddlers/pragmas/Pragma_ _procedure.tid @@ -1,5 +1,5 @@ created: 20221007132845007 -modified: 20230518152756112 +modified: 20230724184009153 tags: Pragmas title: Pragma: \procedure type: text/vnd.tiddlywiki @@ -19,7 +19,7 @@ Note that the `\end` marker can optionally specify the name of the procedure to There is also a single line form for shorter procedures: ``` -\define ([:],[:]...) +\procedure ([:],[:]...) ``` The first line of the definition specifies the procedure name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the procedure. The lines that follow contain the text of the procedure text (i.e. the snippet represented by the procedure name), until `\end` appears on a line by itself: diff --git a/editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid b/editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid index 799c9b71c..56aa4d665 100644 --- a/editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid +++ b/editions/tw5.com/tiddlers/pragmas/Pragma_ _rules.tid @@ -1,5 +1,5 @@ created: 20220917112931273 -modified: 20230419103154329 +modified: 20230724184044642 tags: Pragmas title: Pragma: \rules type: text/vnd.tiddlywiki @@ -7,7 +7,7 @@ type: text/vnd.tiddlywiki The ''\rules'' [[pragma|Pragmas]] adjusts the set of parser rules used to parse the remaining text. ``` -\rules only|expect +\rules only|except ``` The list of available parser rules can be consulted in $:/ControlPanel -> Info -> Advanced -> Parsing. From 643819f5f5f08ee1d0c7317c9046b88e2685e4eb Mon Sep 17 00:00:00 2001 From: Mateusz Wilczek <36714554+mateuszwilczek@users.noreply.github.com> Date: Mon, 31 Jul 2023 13:09:46 +0200 Subject: [PATCH 10/36] Add docs on achieving unique `tag` macro dropdowns inside `list` widget (#7639) --- editions/tw5.com/tiddlers/macros/TagMacro.tid | 4 +++- .../tw5.com/tiddlers/macros/examples/tag.tid | 23 ++++++++++++++++++- .../tw5.com/tiddlers/widgets/ListWidget.tid | 4 +++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/macros/TagMacro.tid b/editions/tw5.com/tiddlers/macros/TagMacro.tid index 7a7beb0bc..eda75dcb9 100644 --- a/editions/tw5.com/tiddlers/macros/TagMacro.tid +++ b/editions/tw5.com/tiddlers/macros/TagMacro.tid @@ -1,12 +1,14 @@ caption: tag created: 20141206130540337 -modified: 20150221224326000 +modified: 20230725201240201 tags: Macros [[Core Macros]] title: tag Macro type: text/vnd.tiddlywiki The <<.def tag>> [[macro|Macros]] generates a tag pill for a specified tag. Clicking the tag pill opens a dropdown. This can be compared to the [[tag-pill Macro]] which also features other parameters. +<<.tip """If a [[list widget|ListWidget]] generates multiple tag macros for the same tag, clicking on one of them will open dropdowns on all of them. The simplest way to prevent this is to add the `counter="transclusion"` attribute to the list widget. See the examples below for more details.""">> + !! Parameters ;tag diff --git a/editions/tw5.com/tiddlers/macros/examples/tag.tid b/editions/tw5.com/tiddlers/macros/examples/tag.tid index 915c175e5..103a5eab7 100644 --- a/editions/tw5.com/tiddlers/macros/examples/tag.tid +++ b/editions/tw5.com/tiddlers/macros/examples/tag.tid @@ -1,8 +1,29 @@ created: 20150221211317000 -modified: 20150221224519000 +modified: 20230725203751870 tags: [[tag Macro]] [[Macro Examples]] title: tag Macro (Examples) type: text/vnd.tiddlywiki <$macrocall $name=".example" n="1" eg="""<>"""/> <$macrocall $name=".example" n="2" eg="""<>"""/> + +If a [[list widget|ListWidget]] generates multiple tag macros for the same tag, clicking any of them opens dropdowns on all of them, as in the example below. This is usually unwanted. +<$macrocall $name=".example" n="3" eg="""<$list filter="[tag[HelloThere]]"> + +* <$link/> is tagged with: <$list filter="[tags[]]"> <> + +"""/> + +Adding the `counter="transclusion"` attribute to the list widget that generates multiple identical tag macros causes each of them to be identified as a unique one. Clicking on any of them opens only a single dropdown. +<$macrocall $name=".example" n="4" eg="""<$list filter="[tag[HelloThere]]" counter="transclusion"> + +* <$link/> is tagged with: <$list filter="[tags[]]"> <> + +"""/> + +A slightly more performant option is to use the `variable="transclusion"` attribute in the list widget. In this case, the variable `<>` has to be used inside the list widget instead of the `<>` . +<$macrocall $name=".example" n="5" eg="""<$list filter="[tag[HelloThere]]" variable="transclusion"> + +* <$link to=<>/> is tagged with: <$list filter="[tags[]]"> <> + +"""/> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/ListWidget.tid b/editions/tw5.com/tiddlers/widgets/ListWidget.tid index 0404f643f..b36d0f3bf 100644 --- a/editions/tw5.com/tiddlers/widgets/ListWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ListWidget.tid @@ -1,6 +1,6 @@ caption: list created: 20131024141900000 -modified: 20220718120325494 +modified: 20230725203601441 tags: Widgets Lists title: ListWidget type: text/vnd.tiddlywiki @@ -119,6 +119,8 @@ Displays as: Note that using the `counter` attribute can reduce performance when working with list items that dynamically reorder or update themselves. The best advice is only to use it when it is really necessary: to obtain a numeric index, or to detect the first or last entries in the list. +Setting `counter="transclusion"` is a handy way to make child elements for each list element be identified as unique. A common use case are multiple [[tag macros|tag Macro]] for the same tag generated by a list widget. Refer to [[tag macro examples|tag Macro (Examples)]] for more details. + !! Edit mode The `<$list>` widget can optionally render draft tiddlers through a different template to handle editing, see DraftMechanism. From 3684cfd17882f08be81f28876ee3ffe3a3e9c3d1 Mon Sep 17 00:00:00 2001 From: Mateusz Wilczek <36714554+mateuszwilczek@users.noreply.github.com> Date: Mon, 31 Jul 2023 13:12:14 +0200 Subject: [PATCH 11/36] Improve docs on styles and classes in WikiText (#7641) --- .../Styles and Classes in WikiText.tid | 71 ++++++++++++++----- 1 file changed, 52 insertions(+), 19 deletions(-) diff --git a/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid index eadbd2227..82e37309f 100644 --- a/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Styles and Classes in WikiText.tid @@ -1,21 +1,23 @@ +caption: Styles and Classes created: 20131205160532119 -modified: 20131205160549129 +modified: 20230726105744098 tags: WikiText [[How to apply custom styles]] title: Styles and Classes in WikiText type: text/vnd.tiddlywiki -caption: Styles and Classes -Content can be wrapped in `@@`double at signs`@@` to apply specified CSS styles or classes to it. There are multiple ways to use this syntax, as presented below. +CSS styles and classes can be applied to inline or block content wrapped in `@@double at signs@@`. Classes can be applied to certain block WikiText elements. -Inline content wrapped in `@@`double at signs`@@` without specifying style or class will be assigned the `.tc-inline-style` and displayed as highlighted text. The foreground and background colours of the highlighted text are defined as `highlight-background` and `highlight-foreground` in the current palette. +//Inline content// wrapped in `@@double at signs@@` without specifying style or class will be assigned the `tc-inline-style` class and displayed as highlighted text. The foreground and background colours of the highlighted text are defined as `highlight-background` and `highlight-foreground` in the current palette. -<> +<> -Style attributes, e.g. `color`, each followed by `;` semicolon can be introduced immediately after the opening `@@`. +!! Styles -<> +Multiple style attributes, e.g. `color`, each followed by `;` semicolon can be introduced immediately after the opening `@@`, without spaces in between. -Similarly a style can be applied to a multiline content: +<> + +Similarly, styles can be applied to //block content//. Wrapping block content in `@@` without specifying style or class has no effect. <> -A class may be applied to a multiline content only: +!! Classes -< +.coloured-text {color: darkkhaki;} +.coloured-bg {background-color: cornsilk;} + + +Multiple classes, each prefixed with `.`, can be introduced immediately after the opening `@@`, followed by a ` ` space. This works both for inline and block content: + +<> + +<> -Multiple classes and styles can be used together: +Multiple classes and styles can be applied simultaneously. In case of inline content, the styles have to be defined first, followed by the classes. -<> +<> + +In case of block content, the styles and classes can be defined in a single line after the opening `@@` identically as for the inline content, or in separate lines, each beginning with `@@`: + +<> + +In a similar way classes, but not styles, can be applied to those block WikiText elements that are introduced through characters on the beginning of the line. The classes prefixed with `.` are specified immediately after the special characters, followed by a ` ` space. + +<> \ No newline at end of file From d99b1897c3072ff07ca6316ea23a91693104e5ef Mon Sep 17 00:00:00 2001 From: btheado Date: Mon, 31 Jul 2023 07:13:37 -0400 Subject: [PATCH 12/36] Refactor variable invocation docs (#7642) * Factored out variable invocation tiddlers into separate tiddlers * Document the variable attribute value behavior more completely --------- Co-authored-by: btheado --- ...pends on how the variable was declared.tid | 52 +++++++++++++++++++ ...ed via filter expression function call.tid | 10 ++++ ... invoked via filter operator parameter.tid | 11 ++++ ... variables invoked via normal wikitext.tid | 11 ++++ ...ariables invoked via widget attributes.tid | 11 ++++ .../tiddlers/variables/Variable Usage.tid | 50 ++---------------- .../wikitext/Variable Attribute Values.tid | 7 ++- 7 files changed, 103 insertions(+), 49 deletions(-) create mode 100644 editions/tw5.com/tiddlers/variables/Behaviour of invoked variables depends on how the variable was declared.tid create mode 100644 editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter expression function call.tid create mode 100644 editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter operator parameter.tid create mode 100644 editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via normal wikitext.tid create mode 100644 editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid diff --git a/editions/tw5.com/tiddlers/variables/Behaviour of invoked variables depends on how the variable was declared.tid b/editions/tw5.com/tiddlers/variables/Behaviour of invoked variables depends on how the variable was declared.tid new file mode 100644 index 000000000..319bf2c78 --- /dev/null +++ b/editions/tw5.com/tiddlers/variables/Behaviour of invoked variables depends on how the variable was declared.tid @@ -0,0 +1,52 @@ +created: 20230726145210484 +modified: 20230726145757234 +tags: [[Variable Usage]] +title: Behaviour of invoked variables depends on how the variable was declared +type: text/vnd.tiddlywiki + +\define m1(a1) $a1$ - <<__a1__>> - <> +\procedure p1(a1) $a1$ - <<__a1__>> - <> +\function f1(a1) "$a1$" "-" [<__a1__>] ="-" [] :and[join[ ]] + +Invoked in normal wikitext context: `<$transclude $variable=macro/>` or `<>` + +{{Behaviour of variables invoked via normal wikitext}} + +Invoked via widget attribute: `
>/>` + +{{Behaviour of variables invoked via widget attributes}} + +Invoked via filter operator parameter: `[]` + +{{Behaviour of variables invoked via filter operator parameter}} + +Invoked via function call in a filter expression: `[function[macro]]` + +{{Behaviour of variables invoked via filter expression function call}} + +!! Examples + +Below is an example macro, procedure and function definition. All three forms of parameter substitution `$a1$`, `<<__a1__>>`, and `<>` are included in each definition. The output helps illustrate when each form of substitution will or will not have affect. + +``` +\define m1(a1) $a1$ - <<__a1__>> - <> +\procedure p1(a1) $a1$ - <<__a1__>> - <> +\function f1(a1) $a1$ "-" [<__a1__>] ="-" [] :and[join[ ]] +``` + +| !Variable transclusion|!output | +| `<>`|<>| +| `<>`|<>| +| `<>`|<>| +| !Widget attribute|!output | +| `<$text text=<>/>`|<$text text=<>/>| +| `<$text text=<>/>`|<$text text=<>/>| +| `<$text text=<>/>`|<$text text=<>/>| +| !Filter operator parameter|!output | +| `[]`|<$text text={{{[]}}}/>| +| `[]`|<$text text={{{[]}}}/>| +| `[]`|<$text text={{{[]}}}/>| +| !Function call in filter expression|!output | +| `[function[m1],[foo]]`|<$text text={{{[function[m1],[foo]]}}}/>| +| `[function[p1],[foo]]`|<$text text={{{[function[p1],[foo]]}}}/>| +| `[function[f1],[foo]]`|<$text text={{{[function[f1],[foo]]}}}/>| \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter expression function call.tid b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter expression function call.tid new file mode 100644 index 000000000..52d44c9fd --- /dev/null +++ b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter expression function call.tid @@ -0,0 +1,10 @@ +created: 20230726143929233 +modified: 20230726150604831 +tags: [[Variable Usage]] +title: Behaviour of variables invoked via filter expression function call +type: text/vnd.tiddlywiki + +|tc-first-col-min-width|k +|!how declared|!behaviour| +|\define, <<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Every function is a variable, but only variables defined using \function are invokable using the <<.olink function>> filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.| +|\function|The body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.| \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter operator parameter.tid b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter operator parameter.tid new file mode 100644 index 000000000..8c652488b --- /dev/null +++ b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via filter operator parameter.tid @@ -0,0 +1,11 @@ +created: 20230726143617389 +modified: 20230726150625716 +tags: [[Variable Usage]] +title: Behaviour of variables invoked via filter operator parameter +type: text/vnd.tiddlywiki + +|tc-first-col-min-width|k +|!how declared|!behaviour| +|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.| +|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the filter operator's parameter.| +|\function|The body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.| \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via normal wikitext.tid b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via normal wikitext.tid new file mode 100644 index 000000000..0caa74c26 --- /dev/null +++ b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via normal wikitext.tid @@ -0,0 +1,11 @@ +created: 20230726142925020 +modified: 20230726150648189 +tags: [[Variable Usage]] +title: Behaviour of variables invoked via normal wikitext +type: text/vnd.tiddlywiki + +|tc-first-col-min-width|k +|!how declared|!behaviour| +|\define|All wikitext and variable substitution and textual substitution takes place| +|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|All wikitext and variable substitution takes place| +|\function|Invoking a function in this way (`<>`) is a synonym for `<$text text={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded| \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid new file mode 100644 index 000000000..3bf06e219 --- /dev/null +++ b/editions/tw5.com/tiddlers/variables/Behaviour of variables invoked via widget attributes.tid @@ -0,0 +1,11 @@ +created: 20230726143332803 +modified: 20230726150616232 +tags: [[Variable Usage]] +title: Behaviour of variables invoked via widget attributes +type: text/vnd.tiddlywiki + +|tc-first-col-min-width|k +|!how declared|!behaviour| +|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value| +|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the attribute's value.| +|\function|When a function is invoked as `
>/>`, it is a synonym for `
`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue| \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/variables/Variable Usage.tid b/editions/tw5.com/tiddlers/variables/Variable Usage.tid index 9db23a456..962137e68 100644 --- a/editions/tw5.com/tiddlers/variables/Variable Usage.tid +++ b/editions/tw5.com/tiddlers/variables/Variable Usage.tid @@ -1,13 +1,9 @@ created: 20230421020225031 -modified: 20230422144812613 +modified: 20230726145912019 tags: title: Variable Usage type: text/vnd.tiddlywiki -\define m1(a1) $a1$ - <<__a1__>> - <> -\procedure p1(a1) $a1$ - <<__a1__>> - <> -\function f1(a1) "$a1$" "-" [<__a1__>] ="-" [] :and[join[ ]] - !Ways to define variables and parameters |! how declared|! how parameters are defined|! accessing parameter values in the body| |\define|`()`|`$param$, <<__param__>>`| @@ -100,50 +96,10 @@ These examples are meant to provide insight into the various ways of defining an -!Behavior of invoked variables depends on how the variable was declared +!Behaviour of invoked variables depends on how the variable was declared -|!how invoked|!how declared|!behavior| -|`<$transclude $variable=macro/>` or `<>` in normal wikitext context|\define|All wikitext and variable substitution and textual substitution takes place| -|~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|All wikitext and variable substitution takes place| -|~|\function|Invoking a function in this way (`<>`) is a synonym for `<$text text={{{[function[macro]]}}}/>`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded.| -|||| -|widget attribute: `
>/>`|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value| -|~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the attribute's value.| -|~|\function|When a function is invoked as `
>/>`, it is a synonym for `
`. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue| -|||| -|filter operator parameter: `[]`|\define|Textual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.| -|~|<<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Body text is retrieved as-is and used as the filter operator's parameter.| -|~|\function|The body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded| -|||| -|function call in a filter expression: `[function[macro]]`|\define, <<.wlink SetWidget>>, <<.wlink LetWidget>>, <<.wlink VarsWidget>>, \procedure, \widget|Every function is a variable, but only variables defined using \function are invokable using the <<.olink function>> filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.| -|~|\function|The body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.| +{{Behaviour of invoked variables depends on how the variable was declared}} -!! Examples - -Below is an example macro, procedure and function definition. All three forms of parameter substitution `$a1$`, `<<__a1__>>`, and `<>` are included in each definition. The output helps illustrate when each form of substitution will or will not have affect. - -``` -\define m1(a1) $a1$ - <<__a1__>> - <> -\procedure p1(a1) $a1$ - <<__a1__>> - <> -\function f1(a1) $a1$ "-" [<__a1__>] ="-" [] :and[join[ ]] -``` - -| !Variable transclusion|!output | -| `<>`|<>| -| `<>`|<>| -| `<>`|<>| -| !Widget attribute|!output | -| `<$text text=<>/>`|<$text text=<>/>| -| `<$text text=<>/>`|<$text text=<>/>| -| `<$text text=<>/>`|<$text text=<>/>| -| !Filter operator parameter|!output | -| `[]`|<$text text={{{[]}}}/>| -| `[]`|<$text text={{{[]}}}/>| -| `[]`|<$text text={{{[]}}}/>| -| !Function call in filter expression|!output | -| `[function[m1],[foo]]`|<$text text={{{[function[m1],[foo]]}}}/>| -| `[function[p1],[foo]]`|<$text text={{{[function[p1],[foo]]}}}/>| -| `[function[f1],[foo]]`|<$text text={{{[function[f1],[foo]]}}}/>| !Namespaces diff --git a/editions/tw5.com/tiddlers/wikitext/Variable Attribute Values.tid b/editions/tw5.com/tiddlers/wikitext/Variable Attribute Values.tid index d65d81871..e233feb5a 100644 --- a/editions/tw5.com/tiddlers/wikitext/Variable Attribute Values.tid +++ b/editions/tw5.com/tiddlers/wikitext/Variable Attribute Values.tid @@ -1,5 +1,5 @@ created: 20230615045239825 -modified: 20230615045312961 +modified: 20230726151053593 tags: [[Widget Attributes]] WikiText title: Variable Attribute Values type: text/vnd.tiddlywiki @@ -11,4 +11,7 @@ Variable attribute values are indicated with double angle brackets around a [[ma ...
``` -<<.warning "The text from the definition of the macro will be retrieved and text substitution will be performed (i.e. <<.param $param$>> and <<.param $(...)$>> syntax). The value of the attribute value will be the resulting text. Any wiki syntax in that text (including further macro calls and variable references) will be left as-is.">> \ No newline at end of file + +The behaviour of variables invoked via widget attributes is not the same as when they are [[invoked via normal wikitext|Behaviour of variables invoked via normal wikitext]]. In addition, the behaviour depends on how the variable is declared: + +{{Behaviour of variables invoked via widget attributes}} From b8a235697f1957e8b492035e5b746cbb89d11ebf Mon Sep 17 00:00:00 2001 From: lin onetwo Date: Mon, 31 Jul 2023 19:19:10 +0800 Subject: [PATCH 13/36] Improve boot kernel error reporting to include original error message (#7645) --- boot/boot.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot/boot.js b/boot/boot.js index 3547ee880..06d4628c0 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -925,7 +925,7 @@ $tw.modules.execute = function(moduleName,moduleRoot) { } } else { // line number should be included in e.stack for runtime errors - $tw.utils.error("Error executing boot module " + name + ": " + JSON.stringify(e) + "\n\n" + e.stack); + $tw.utils.error("Error executing boot module " + name + ": " + String(e) + "\n\n" + e.stack); } } } From cef0ac680d2c996d95993573257c0d04e62d4061 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <174761+Jermolene@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:25:12 +0100 Subject: [PATCH 14/36] Update release note --- editions/prerelease/tiddlers/Release 5.3.1.tid | 16 ++++++++++++---- .../tiddlers/system/TiddlyWiki Pre-release.tid | 2 +- .../tw5.com/tiddlers/hellothere/HelloThere.tid | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/prerelease/tiddlers/Release 5.3.1.tid index c7870e0d5..dd044aa8f 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/prerelease/tiddlers/Release 5.3.1.tid @@ -1,6 +1,6 @@ caption: 5.3.1 -created: 20230720215100983 -modified: 20230720215100983 +created: 20230731122156493 +modified: 20230731122156493 tags: ReleaseNotes title: Release 5.3.1 type: text/vnd.tiddlywiki @@ -12,7 +12,8 @@ type: text/vnd.tiddlywiki ! Bug Fixes and Reversions of v5.3.0 Changes * Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468) -* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7647">> inefficiency when transcluding with the ''$output'' attribute set to `text/plain` +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7647">> inefficiency when transcluding with the ''$output'' attribute set to `text/plain` that manifested itself as extremely slow export times +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7648">> unwanted error message "Global assignment is not allowed within modules on node" ! Plugin Improvements @@ -53,7 +54,7 @@ Improvements to the following translations: ! Node.js Improvements -* +* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7645">> console reporting of ~JavaScript errors ! Developer Improvements @@ -69,11 +70,18 @@ Currently shadow tiddler ordering depends upon the order in which the shadows ap <<.contributors """ AnthonyMuscio btheado +btheado +catter-fly CrossEye flibbles hffqyd +lilscribby +Marxsal +mateuszwilczek +pille1842 pmario saqimtiaz stevesunypoly +TiddlyTweeter twMat """>> diff --git a/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid index 96aee607c..be4e4ff9b 100644 --- a/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid +++ b/editions/prerelease/tiddlers/system/TiddlyWiki Pre-release.tid @@ -1,5 +1,5 @@ title: TiddlyWiki Pre-release -modified: 20150428204930183 +modified: 20230731122156493 This is a pre-release build of TiddlyWiki provided for testing and review purposes. ''Please don't try to depend on the pre-release for anything important'' -- you should use the latest official release from https://tiddlywiki.com. diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 0fba0a32b..6638462e7 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,6 +1,6 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20230701123439630 +modified: 20230731122156493 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki From 44ccfe83c95db2d0f8a9b1a827cce379a200a444 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 31 Jul 2023 14:19:52 +0100 Subject: [PATCH 15/36] Missed contributor for release note --- editions/prerelease/tiddlers/Release 5.3.1.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/prerelease/tiddlers/Release 5.3.1.tid index dd044aa8f..ad834c952 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/prerelease/tiddlers/Release 5.3.1.tid @@ -76,6 +76,7 @@ CrossEye flibbles hffqyd lilscribby +linonetwo Marxsal mateuszwilczek pille1842 From b926a33b5507947ab75d65babad0e7037110ce45 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 31 Jul 2023 14:36:29 +0100 Subject: [PATCH 16/36] Warn about random dog image/video sizes --- .../WidgetMessage_ tm-http-request Example Random Dog.tid | 2 ++ 1 file changed, 2 insertions(+) diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid index 8a6280fd8..a8dcceaeb 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid @@ -57,6 +57,8 @@ tags: $:/tags/Global This demo uses the API of the website https://random.dog/ to import a random dog image or video. +//Note that the images and videos can be quite large, so this demo is not recommended to be used over mobile data connections.// + <$button actions=<>> Import a random dog image or video From 587aa28853f7853c62372c55775e9738ca513626 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 31 Jul 2023 14:37:40 +0100 Subject: [PATCH 17/36] Update release note --- editions/prerelease/tiddlers/Release 5.3.1.tid | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/prerelease/tiddlers/Release 5.3.1.tid index ad834c952..ed88dee41 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/prerelease/tiddlers/Release 5.3.1.tid @@ -9,16 +9,14 @@ type: text/vnd.tiddlywiki ! Overview of v5.3.1 +This release comes only a month after [[v5.3.0|Release 5.3.0]]. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP -- the [[demo|WidgetMessage: tm-http-request Example - Random Dog]] downloads a random image or video of a dog. + ! Bug Fixes and Reversions of v5.3.0 Changes * Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468) * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7647">> inefficiency when transcluding with the ''$output'' attribute set to `text/plain` that manifested itself as extremely slow export times * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7648">> unwanted error message "Global assignment is not allowed within modules on node" -! Plugin Improvements - -* - ! Translation improvement Improvements to the following translations: @@ -26,22 +24,14 @@ Improvements to the following translations: * Chinese * Polish -! Usability Improvements - -* - ! Widget Improvements * <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7594">> ''tabindex'' attribute to SelectWidget -! Filter improvements - -* - ! Hackability Improvements * <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7611">> ImportVariablesWidget and [[Pragma: \import]] to trim whitespace when parsing tiddlers -* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/9b2af1359614f4ad5afd05be7cf9853909334592"> [[WidgetMessage: tm-http-request]] to handle binary responses ([[demo|WidgetMessage: tm-http-request Example - Random Dog]]) +* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/commit/9b2af1359614f4ad5afd05be7cf9853909334592">> [[WidgetMessage: tm-http-request]] to handle binary responses ([[demo|WidgetMessage: tm-http-request Example - Random Dog]]) ! Bug Fixes @@ -61,8 +51,6 @@ Improvements to the following translations: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/6c7c21a87bdb0d8a00df1c14eea18912164e0b57">> overeager onload handler in Jasmine plugin * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/08bad90e51c45233a196333e101bbbf6ecf702ce">> ordering of shadow tiddler listings to not reflect order of insertion -Currently shadow tiddler ordering depends upon the order in which the shadows appear in the plugin JSON - ! Acknowledgements [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: From 48705db21ff8eaf0eccfb43f5d3a133ccc15bc33 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston <174761+Jermolene@users.noreply.github.com> Date: Mon, 31 Jul 2023 16:04:24 +0100 Subject: [PATCH 18/36] Fix random dog link --- .../tiddlers/messages/WidgetMessage_ tm-http-request.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid index 9ae71cf7a..e370ad72c 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request.tid @@ -50,4 +50,4 @@ Note that the state tiddler $:/state/http-requests contains a number representin !! Examples * [[Zotero's|https://www.zotero.org/]] API for retrieving reference items: [[WidgetMessage: tm-http-request Example - Zotero]] -* [[Random Dog's|https://random.dog/]] API for retrieving random pictures of dogs showing how to retrieve binary data: [[WidgetMessage: tm-http-request Example - Random Dogs]] +* [[Random Dog's|https://random.dog/]] API for retrieving random pictures of dogs showing how to retrieve binary data: [[WidgetMessage: tm-http-request Example - Random Dog]] From aeb502657bdd1f031fc6bf313dc50cd858dfecbc Mon Sep 17 00:00:00 2001 From: Mario Pietsch Date: Mon, 31 Jul 2023 17:30:41 +0200 Subject: [PATCH 19/36] Some new gitlab related docs changes (#7651) * Some new GitLab related Definitions an minor changes to Git related docs * remove DevOps tiddler and move tiddlers to their paths --- .../tutorials/GitHub Saver Tutorial by Mohammad.tid | 10 +++++----- editions/tw5.com/tiddlers/definitions/Git.tid | 9 +++++++++ editions/tw5.com/tiddlers/definitions/GitHub.tid | 10 ++++++---- editions/tw5.com/tiddlers/definitions/GitLab.tid | 13 +++++++++++++ .../Saving on Browser with TiddlyStow.tid | 0 .../tiddlers/saving/Saving to a Git service.tid | 6 +++++- 6 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 editions/tw5.com/tiddlers/definitions/Git.tid create mode 100644 editions/tw5.com/tiddlers/definitions/GitLab.tid rename editions/tw5.com/tiddlers/{ => saving}/Saving on Browser with TiddlyStow.tid (100%) diff --git a/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid b/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid index 4f4e39c4e..a9063d996 100644 --- a/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid +++ b/editions/tw5.com/tiddlers/community/tutorials/GitHub Saver Tutorial by Mohammad.tid @@ -1,11 +1,11 @@ created: 20201117163027900 -modified: 20210106151027459 +modified: 20230723074506632 tags: Tutorials title: GitHub Saver Tutorial by Mohammad type: text/vnd.tiddlywiki url: https://kookma.github.io/TW5-GitHub-Saver/ -GitHub Saver is a step by step tutorial shows how to integrate Tiddlywiki 5 and GitHub Pages to create websites hosted on https://github.com/. +GitHub Saver is a step by step tutorial that shows how to integrate Tiddlywiki 5 and ~GitHub Pages to create websites hosted on https://github.com/. {{!!url}} @@ -13,11 +13,11 @@ This instruction is based on Tiddlywiki single html file model, while it can use !! Other tutorials -;Tiddlywiki, Travis-CI and GitHub Pages +;Tiddlywiki, Travis-CI and ~GitHub Pages :https://kookma.github.io/Tiddlywiki-Travis-CI/ :This wiki shows how to set up websites hosted on [[GitHub Pages|https://pages.github.com/]] using [[Travis-CI|https://travis-ci.org]] and [[Tiddlywiki 5|https://tiddlywiki.com]] on Node.js. -;Tiddlywiki and GitHub Pages +;Tiddlywiki and ~GitHub Pages :https://kookma.github.io/Tiddlywiki-and-GitHub-Pages/ -:This instruction is based on local edit, save and push to GitHub. It does NOT use the new GitHub Saver mechanism (requires TW 5.1.20+) which lets edit and save directly from Tiddlywiki! \ No newline at end of file +:This instruction is based on local edit, save and push to ~GitHub. It does NOT use the new ~GitHub Saver mechanism (requires TW 5.1.20+) which lets edit and save directly from Tiddlywiki! \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/definitions/Git.tid b/editions/tw5.com/tiddlers/definitions/Git.tid new file mode 100644 index 000000000..41e3711fc --- /dev/null +++ b/editions/tw5.com/tiddlers/definitions/Git.tid @@ -0,0 +1,9 @@ +created: 20230723073000469 +modified: 20230723073046462 +tags: Definitions +title: Git +type: text/vnd.tiddlywiki + +>Git (/ɡɪt/) is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different computers). +> +>https://en.wikipedia.org/wiki/Git diff --git a/editions/tw5.com/tiddlers/definitions/GitHub.tid b/editions/tw5.com/tiddlers/definitions/GitHub.tid index 16ab4fd36..06b24c710 100644 --- a/editions/tw5.com/tiddlers/definitions/GitHub.tid +++ b/editions/tw5.com/tiddlers/definitions/GitHub.tid @@ -1,13 +1,15 @@ created: 20140910212609354 -modified: 20190408173002622 +modified: 20230723074351846 tags: Definitions title: GitHub type: text/vnd.tiddlywiki -GitHub is a hosting service for distributed projects that use git as their version-control system. It allows free hosting and management of open-source projects and facilitates collaborative development on the source code. Using GitHub for non-open-source endeavours requires additional fees. +GitHub is a hosting service for distributed projects that use git as their version-control system. It allows free hosting and management of open-source projects and facilitates collaborative development on the source code. Using ~GitHub for non-open-source endeavours requires additional fees. -The code and documentation of TiddlyWiki is hosted on GitHub at: +The code and documentation of TiddlyWiki is hosted on ~GitHub at: https://github.com/Jermolene/TiddlyWiki5 -GitHub also offer a free web hosting service called [[GitHub Pages|https://pages.github.com/]] that can be used directly from the single file configuration. See [[Saving to a Git service]]. +~GitHub also offer a free web hosting service called [[GitHub Pages|https://pages.github.com/]] that can be used directly from the single file configuration. See [[Saving to a Git service]]. + +An alternative to ~GitHub is GitLab \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/definitions/GitLab.tid b/editions/tw5.com/tiddlers/definitions/GitLab.tid new file mode 100644 index 000000000..a0f031f6a --- /dev/null +++ b/editions/tw5.com/tiddlers/definitions/GitLab.tid @@ -0,0 +1,13 @@ +created: 20230723072527781 +modified: 20230723073955715 +tags: Definitions +title: GitLab +type: text/vnd.tiddlywiki + +>GitLab Inc. is an open-core company that operates ~GitLab, a ~DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmytro Zaporozhets and Dutch developer Sytse Sijbrandij +> +>https://en.wikipedia.org/wiki/GitLab + +Both GitLab and GitHub use [[Git]] a distributed version control system, that can be used to store, view and edit TiddlyWiki wikis using [[GitLab Pages|https://docs.gitlab.com/ee/user/project/pages/]] + +Learn more at: [[Saving to a Git service]] diff --git a/editions/tw5.com/tiddlers/Saving on Browser with TiddlyStow.tid b/editions/tw5.com/tiddlers/saving/Saving on Browser with TiddlyStow.tid similarity index 100% rename from editions/tw5.com/tiddlers/Saving on Browser with TiddlyStow.tid rename to editions/tw5.com/tiddlers/saving/Saving on Browser with TiddlyStow.tid diff --git a/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid b/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid index 113e2aa8b..b646a38bb 100644 --- a/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid +++ b/editions/tw5.com/tiddlers/saving/Saving to a Git service.tid @@ -4,7 +4,7 @@ created: 20190408173002622 delivery: Service description: Save changes directly to a Git repository (on GitHub, GitLab) method: save -modified: 20200507203007684 +modified: 20230723074211772 tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge title: Saving to a Git service type: text/vnd.tiddlywiki @@ -24,3 +24,7 @@ Saving to a Git service is configured in the [[$:/ControlPanel]] in the ''Git Se Notes * The Git service token or password is stored persistently in browser local storage. Be sure to clear the password if using a shared machine. Using a personal access token for authentication offers an extra layer of security: if the access token is accidentally exposed it can be revoked without needing to reset the account password + +--- + +For a more detailed info about the ~GitHub saver see: [[GitHub Saver Tutorial by Mohammad]] \ No newline at end of file From cc57cf2fe9280d4cf73806a400c17fa85a7ea478 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 31 Jul 2023 21:02:49 +0100 Subject: [PATCH 20/36] Update SystemTag_ $__tags_Macro.tid Fixing missing colon --- .../tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid index 6eaa005ab..d6433b45c 100644 --- a/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid +++ b/editions/tw5.com/tiddlers/systemtags/SystemTag_ $__tags_Macro.tid @@ -6,4 +6,4 @@ tags: SystemTags title: SystemTag: $:/tags/Macro type: text/vnd.tiddlywiki -The [[system tag|SystemTags]] `$:/tags/Macro` marks global macros. It is now deprecated in favour of [[SystemTag $:/tags/Global]]. \ No newline at end of file +The [[system tag|SystemTags]] `$:/tags/Macro` marks global macros. It is now deprecated in favour of [[SystemTag: $:/tags/Global]]. From 9bbd8a70c25570f87afa98f63784b553fdad4d7e Mon Sep 17 00:00:00 2001 From: Saq Imtiaz Date: Mon, 31 Jul 2023 22:26:23 +0200 Subject: [PATCH 21/36] Updates example for ActionPopupWidget (#7653) --- editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid index 590e25a92..aac63ea9a 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionPopupWidget.tid @@ -1,6 +1,6 @@ caption: action-popup created: 20200303114556528 -modified: 20220815205132124 +modified: 20230731193016105 tags: Widgets ActionWidgets title: ActionPopupWidget type: text/vnd.tiddlywiki @@ -30,6 +30,6 @@ Here is an example of button that triggers the "more" button in the sidebar "Too <$macrocall $name='wikitext-example-without-html' src='<$button> <$action-setfield $tiddler="$:/state/tab/sidebar--595412856" $value="$:/core/ui/SideBar/Tools"/> -<$action-popup $state="$:/state/popup/more-2053862905" $coords="(0,20,0,0)"/> +<$action-popup $state="$:/state/popup/more--810643385" $coords="(0,20,0,0)"/> Click me! '/> From aaf0bffb39f99b5b9f82ff06a32643be61ff9841 Mon Sep 17 00:00:00 2001 From: btheado Date: Tue, 1 Aug 2023 02:56:45 -0400 Subject: [PATCH 22/36] Transclude the widget attribute subtiddlers (#7654) * Use 'translink' macro on widget attribute 'subtiddlers' to make it browsable by scrolling * Avoid the styling of the translink macro by directly transcluding --------- Co-authored-by: btheado --- editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid b/editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid index 4703c0265..02b3a540e 100644 --- a/editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid +++ b/editions/tw5.com/tiddlers/wikitext/Widget Attributes.tid @@ -1,10 +1,10 @@ created: 20230615045526689 -modified: 20230615060059476 +modified: 20230731210638956 tags: WikiText title: Widget Attributes type: text/vnd.tiddlywiki -Attributes of HTML elements and widgets can be specified in several different ways: +Attributes of [[HTML elements|HTML in WikiText]] and widgets can be specified in several different ways: * [[a literal string|Literal Attribute Values]] * [[a transclusion of a textReference|Transcluded Attribute Values]] @@ -19,3 +19,8 @@ Attributes of HTML elements and widgets can be specified in several different wa |filtered |triple curly braces around a filter expression| |substituted|single or triple backticks around the text to be processed for substitutions| + +<$list filter="[[Literal Attribute Values]] [[Transcluded Attribute Values]] [[Variable Attribute Values]] [[Filtered Attribute Values]] [[Substituted Attribute Values]]"> +<$link>

<$text text=<>/>

+<$transclude mode="block"/> + From 72a4adbd6b1a089db052ea996fb74313c5650bc7 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Tue, 1 Aug 2023 07:58:39 +0100 Subject: [PATCH 23/36] Update Procedure Definitions.tid --- editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid b/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid index 0c9741c7e..aa6d37a72 100644 --- a/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid +++ b/editions/tw5.com/tiddlers/procedures/Procedure Definitions.tid @@ -13,7 +13,7 @@ This tiddler describes the different ways in which [[Procedures|Procedures]] can Procedures are created using the [[Pragma: \procedure]] at the start of a tiddler. The definitions are available in the rest of the tiddler that defines them, plus any tiddlers that it transcludes. ``` -\define my-procedure(param) +\procedure my-procedure(param) This is the procedure text (param=<>) \end ``` From 6c67dc82356355234292da4b0034c4019c0e0fb8 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Tue, 1 Aug 2023 16:13:22 +0200 Subject: [PATCH 24/36] Dog demo: Update CSS --- .../WidgetMessage_ tm-http-request Example Random Dog.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid index a8dcceaeb..958c31bae 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-http-request Example Random Dog.tid @@ -82,7 +82,7 @@ Export all imported random dogs: <$macrocall $name="exportButton" exportFilter=" <$link> <$text text=<>/> -
+
<$transclude $tiddler=<>/>
From 674bd1822ccb1cb5abea6ad5afaccf42b5ab4902 Mon Sep 17 00:00:00 2001 From: cmo-pomerium <91488121+cmo-pomerium@users.noreply.github.com> Date: Tue, 8 Aug 2023 01:46:53 -0700 Subject: [PATCH 25/36] Signing the CLA (#7664) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index c2d215e86..7a4904fca 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -545,3 +545,5 @@ Eric Haberstroh, @pille1842, 2023/07/23 @TiddlyTweeter, 2023/07/25 @catter-fly, 2023/07/27 + +@cmo-pomerium, 2023/08/03 From 8b6bc6664beb4f0840a9d15ce569a18baf52069e Mon Sep 17 00:00:00 2001 From: Marxsal Date: Tue, 8 Aug 2023 01:50:28 -0700 Subject: [PATCH 26/36] Link to archive of Jeffrey Kishner site (#7668) --- .../tiddlers/community/resources/TiddlyWiki Posts.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid b/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid index 0c3d37cff..c9cbb7e96 100644 --- a/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid +++ b/editions/tw5.com/tiddlers/community/resources/TiddlyWiki Posts.tid @@ -1,11 +1,11 @@ created: 20140129085406905 -modified: 20210106151027268 +modified: 20230805140720289 tags: [[Other Resources]] Articles title: "TiddlyWiki Posts" by Jeffrey Kishner type: text/vnd.tiddlywiki -url: http://blog.jeffreykishner.com/tiddlywiki/ +url: https://web.archive.org/web/20221015011644/http://blog.jeffreykishner.com/tiddlywiki/ -A collection of articles covering integration with Fargo, Font Awesome and Google Calendar, and tips for managing task lists. +A collection of articles covering integration with Fargo, Font Awesome and Google Calendar, and tips for managing task lists. The original site is missing, but a link to an archive is provided. {{!!url}} From 78ecc20c5ebf659ee2cdb9fd7fec9b253ea3b8b9 Mon Sep 17 00:00:00 2001 From: yaisog Date: Tue, 8 Aug 2023 10:52:39 +0200 Subject: [PATCH 27/36] Add notes about subfilter expressions (#7667) --- .../tiddlers/widgets/ActionListopsWidget.tid | 26 +++++++++++++++++-- .../ActionListopsWidget (Examples).tid | 13 +++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid b/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid index 2aadfe677..3771ab445 100644 --- a/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/ActionListopsWidget.tid @@ -1,6 +1,6 @@ caption: action-listops created: 20141025120850184 -modified: 20230301183438774 +modified: 20230805103548113 myfield: tags: ActionWidgets Widgets title: ActionListopsWidget @@ -22,6 +22,28 @@ The ''action-listops'' widget is invisible. Any content within it is ignored. |$subfilter |An optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated | |$tags |An optional subfilter expression, which takes the <<.field tags>> field of the target tiddler as input, and saves the modified list of tags back to the <<.field tags>> field | +!! Note on subfilter expressions + +If the manipulation depends on the current contents of the list, e.g. when using the <<.olink toggle>> operator to toggle the presence of an element, the [[Filter Run]] would be prefixed with the `+` / `:and` [[filter run prefix|Filter Expression]] so that it properly receives the list as input. + +``` +<$action-listops $subfilter="+[toggle[List Item]]"/> +``` + +The above widget will toggle the presence of the element <<.value "List Item">> in the field <<.field list>> of the current tiddler, removing or adding the element as necessary. + +Similarly, if an element is to always be removed when it is present, the `-` / `:except` [[filter run prefix|Filter Expression]] can be used. Both of the following yield the same result: + +``` +<$action-listops $subfilter="-[[List Item]]"/> +<$action-listops $subfilter="+[remove[List Item]]"/> +``` + +Without any prefixes, the filter run output is simply [[dominantly appended|Dominant Append]] to the list. + +See also the [[Examples|ActionListopsWidget (Examples)]]. + + !! Using $filter or $subfilter Standalone use of the `$subfilter` attribute can be replaced by using a (more complicated) `$filter` attribute value. @@ -103,4 +125,4 @@ Add 'abc' to 'myfield' The [[enlist Operator]] with `raw` suffix will enlist the list saved in <<.field myfield>> of the current tiddler without de-duplication, while e.g. the [[list Operator]] will always de-duplicate. The widget then adds the item <<.value abc>> -- whether or not it is already included in the list -- and replaces the original list in <<.field myfield>>. -! [[Examples|ActionListopsWidget (Examples)]] +! [[Examples|ActionListopsWidget (Examples)]] \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/widgets/examples/ActionListopsWidget (Examples).tid b/editions/tw5.com/tiddlers/widgets/examples/ActionListopsWidget (Examples).tid index 8f8fe8a87..ec8a5de5c 100644 --- a/editions/tw5.com/tiddlers/widgets/examples/ActionListopsWidget (Examples).tid +++ b/editions/tw5.com/tiddlers/widgets/examples/ActionListopsWidget (Examples).tid @@ -1,8 +1,9 @@ created: 20230301174431218 list: efg hlm pqr -modified: 20230301174431218 +modified: 20230805103601224 myfield: revision: 0 +tags: ActionListopsWidget title: ActionListopsWidget (Examples) type: text/vnd.tiddlywiki @@ -47,6 +48,16 @@ Unmangle List """/> +--- +The following example toggles the tag <<.value Examples>> for the current tiddler. + +<$macrocall $name='wikitext-example-without-html' +src="""<$button> +<$action-listops $tags="+[toggle[Examples]]"/> +Toggle 'Examples' tag + +"""/> + --- In this example we shall append a few tags to the 'tags' field of this tiddler (the default). We shall then remove some of the appended tags. From 779ac28bd02defa158af470a1ce3e3f0125cba38 Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Tue, 15 Aug 2023 23:12:49 +0700 Subject: [PATCH 28/36] Fix checkbox widget when listIndex field undefined (#7679) --- core/modules/widgets/checkbox.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/checkbox.js b/core/modules/widgets/checkbox.js index e2df3185c..fc987d815 100644 --- a/core/modules/widgets/checkbox.js +++ b/core/modules/widgets/checkbox.js @@ -116,7 +116,7 @@ CheckboxWidget.prototype.getValue = function() { } else { list = $tw.utils.parseStringArray(this.checkboxDefault || "") || []; } - } else if (this.checkboxListIndex) { + } else if(this.checkboxListIndex) { list = $tw.utils.parseStringArray(this.wiki.extractTiddlerDataItem(tiddler,this.checkboxListIndex,this.checkboxDefault || "")) || []; } else { list = this.wiki.filterTiddlers(this.checkboxFilter,this) || []; @@ -215,6 +215,8 @@ CheckboxWidget.prototype.handleChangeEvent = function(event) { if($tw.utils.isArray(fieldContents)) { // Make a copy so we can modify it without changing original that's refrenced elsewhere listContents = fieldContents.slice(0); + } else if(fieldContents === undefined) { + listContents = []; } else if(typeof fieldContents === "string") { listContents = $tw.utils.parseStringArray(fieldContents); // No need to copy since parseStringArray returns a fresh array, not refrenced elsewhere From 229e6815507744a96bf152549b2f1ea4edee3cad Mon Sep 17 00:00:00 2001 From: Robin Munn Date: Sun, 20 Aug 2023 17:07:59 +0700 Subject: [PATCH 29/36] Add release note for bugfix PR #7679 (#7681) --- editions/prerelease/tiddlers/Release 5.3.1.tid | 2 ++ 1 file changed, 2 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/prerelease/tiddlers/Release 5.3.1.tid index ed88dee41..70f1e5e55 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/prerelease/tiddlers/Release 5.3.1.tid @@ -41,6 +41,7 @@ Improvements to the following translations: * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7624">> the pragmas introduced in v5.3.0 so that they can be indented with whitespace * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7619">> size of tiddler icons * <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7622">> drag and drop from Chrome-like browsers to Firefox +* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7679">> listIndex mode of checkbox widgets ! Node.js Improvements @@ -69,6 +70,7 @@ Marxsal mateuszwilczek pille1842 pmario +rmunn saqimtiaz stevesunypoly TiddlyTweeter From 6877082090d956ef0fa53fa8fef181ee7f7f6a84 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 11:31:23 +0100 Subject: [PATCH 30/36] Preparing for release of v5.3.1 --- .../prerelease/tiddlers/Release 5.3.2.tid | 60 +++++++++++++++++++ .../tiddlers/hellothere/HelloThere.tid | 2 +- .../tiddlers/releasenotes}/Release 5.3.1.tid | 10 ++-- 3 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 editions/prerelease/tiddlers/Release 5.3.2.tid rename editions/{prerelease/tiddlers => tw5.com/tiddlers/releasenotes}/Release 5.3.1.tid (95%) diff --git a/editions/prerelease/tiddlers/Release 5.3.2.tid b/editions/prerelease/tiddlers/Release 5.3.2.tid new file mode 100644 index 000000000..ce4f218c5 --- /dev/null +++ b/editions/prerelease/tiddlers/Release 5.3.2.tid @@ -0,0 +1,60 @@ +caption: 5.3.2 +created: 20230820114855583 +modified: 20230820114855583 +tags: ReleaseNotes +title: Release 5.3.2 +type: text/vnd.tiddlywiki + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.1...master]]// + +! Translation improvement + +Improvements to the following translations: + +* + +! Widget Improvements + +* + +! Hackability Improvements + +* + +! Bug Fixes + +* + +! Node.js Improvements + +* + +! Developer Improvements + +* + +! Acknowledgements + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +<<.contributors """ +AnthonyMuscio +btheado +catter-fly +cmo-pomerium +CrossEye +flibbles +hffqyd +lilscribby +linonetwo +Marxsal +mateuszwilczek +pille1842 +pmario +rmunn +saqimtiaz +stevesunypoly +TiddlyTweeter +twMat +yaisog +""">> diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 6638462e7..89967fe80 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -1,6 +1,6 @@ created: 20130822170200000 list: [[A Gentle Guide to TiddlyWiki]] [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[What happened to the original TiddlyWiki?]] -modified: 20230731122156493 +modified: 20230820112855583 tags: TableOfContents title: HelloThere type: text/vnd.tiddlywiki diff --git a/editions/prerelease/tiddlers/Release 5.3.1.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid similarity index 95% rename from editions/prerelease/tiddlers/Release 5.3.1.tid rename to editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid index 70f1e5e55..fc4b54128 100644 --- a/editions/prerelease/tiddlers/Release 5.3.1.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid @@ -1,11 +1,12 @@ caption: 5.3.1 -created: 20230731122156493 -modified: 20230731122156493 +created: 20230820112855583 +modified: 20230820112855583 +released: 20230820112855583 tags: ReleaseNotes title: Release 5.3.1 type: text/vnd.tiddlywiki -//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.0...master]]// +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.0...v5.3.1]]// ! Overview of v5.3.1 @@ -59,8 +60,8 @@ Improvements to the following translations: <<.contributors """ AnthonyMuscio btheado -btheado catter-fly +cmo-pomerium CrossEye flibbles hffqyd @@ -75,4 +76,5 @@ saqimtiaz stevesunypoly TiddlyTweeter twMat +yaisog """>> From 3c66af9fdc6b143ab7c0a2059838154dfd0c68a9 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 11:32:29 +0100 Subject: [PATCH 31/36] Update release note for v5.3.1 --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index ef04d0567..2dad1f1de 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@

Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.

TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.

Learn more and see it in action at https://tiddlywiki.com/

Developer documentation is in progress at https://tiddlywiki.com/dev/

Join the Community

Official Forums

The new official forum for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.

https://talk.tiddlywiki.org/

Note that talk.tiddlywiki.org is a community run service that we host and maintain ourselves. The modest running costs are covered by community contributions.

For the convenience of existing users, we also continue to operate the original TiddlyWiki group (hosted on Google Groups since 2005):

https://groups.google.com/group/TiddlyWiki

Developer Forums

There are several resources for developers to learn more about TiddlyWiki and to discuss and contribute to its development.

Other Forums

Documentation

There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: https://groups.google.com/group/tiddlywikidocs

-

Installing TiddlyWiki on Node.js

  1. Install Node.js
    • Linux:
      Debian/Ubuntu:
      apt install nodejs
      May need to be followed up by:
      apt install npm
      Arch Linux
      yay -S tiddlywiki
      (installs node and tiddlywiki)
    • Mac
      brew install node
    • Android
    • Other
  2. Open a command line terminal and type:
    npm install -g tiddlywiki
    If it fails with an error you may need to re-run the command as an administrator:
    sudo npm install -g tiddlywiki (Mac/Linux)
  3. Ensure TiddlyWiki is installed by typing:
    tiddlywiki --version
    • In response, you should see TiddlyWiki report its current version (eg "5.3.0". You may also see other debugging information reported.)
  4. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --listen to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers
  5. Optionally, make an offline copy:
    • click the +

      Installing TiddlyWiki on Node.js

      1. Install Node.js
        • Linux:
          Debian/Ubuntu:
          apt install nodejs
          May need to be followed up by:
          apt install npm
          Arch Linux
          yay -S tiddlywiki
          (installs node and tiddlywiki)
        • Mac
          brew install node
        • Android
        • Other
      2. Open a command line terminal and type:
        npm install -g tiddlywiki
        If it fails with an error you may need to re-run the command as an administrator:
        sudo npm install -g tiddlywiki (Mac/Linux)
      3. Ensure TiddlyWiki is installed by typing:
        tiddlywiki --version
        • In response, you should see TiddlyWiki report its current version (eg "5.3.1". You may also see other debugging information reported.)
      4. Try it out:
        1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
        2. tiddlywiki mynewwiki --listen to start TiddlyWiki
        3. Visit http://127.0.0.1:8080/ in your browser
        4. Try editing and creating tiddlers
      5. Optionally, make an offline copy:
        • click the From ba5bfd1ad07b8afc54a329f942a93142b39a673c Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 11:34:07 +0100 Subject: [PATCH 32/36] Version number update for 5.3.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 28bbaea43..8c0c66bee 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.3.1-prerelease", + "version": "5.3.1", "author": "Jeremy Ruston ", "description": "a non-linear personal web notebook", "contributors": [ From 70309c67d10e05d12441867338647af23e05075e Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 11:45:38 +0100 Subject: [PATCH 33/36] Prepare for v5.3.2-prerelease --- bin/build-site.sh | 2 +- core/wiki/config/OfficialPluginLibrary.tid | 2 +- .../prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid | 2 +- .../tiddlers/system/PrereleaseOfficialPluginLibrary.tid | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/build-site.sh b/bin/build-site.sh index 0618e1bb1..9f6cbea0c 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.3.1 + TW5_BUILD_VERSION=v5.3.2 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" diff --git a/core/wiki/config/OfficialPluginLibrary.tid b/core/wiki/config/OfficialPluginLibrary.tid index 4aa985b87..c753568bc 100644 --- a/core/wiki/config/OfficialPluginLibrary.tid +++ b/core/wiki/config/OfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/library/v5.3.1/index.html +url: https://tiddlywiki.com/library/v5.3.2/index.html caption: {{$:/language/OfficialPluginLibrary}} {{$:/language/OfficialPluginLibrary/Hint}} diff --git a/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid index a42bdc774..9f3972203 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseLocalPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/LocalPluginLibrary tags: $:/tags/PluginLibrary -url: http://127.0.0.1:8080/prerelease/library/v5.3.1/index.html +url: http://127.0.0.1:8080/prerelease/library/v5.3.2/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease Local) A locally installed version of the official ~TiddlyWiki plugin library at tiddlywiki.com for testing and debugging. //Requires a local web server to share the library// diff --git a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid index 555b81ab6..dfd8a6153 100644 --- a/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid +++ b/editions/prerelease/tiddlers/system/PrereleaseOfficialPluginLibrary.tid @@ -1,6 +1,6 @@ title: $:/config/OfficialPluginLibrary tags: $:/tags/PluginLibrary -url: https://tiddlywiki.com/prerelease/library/v5.3.1/index.html +url: https://tiddlywiki.com/prerelease/library/v5.3.2/index.html caption: {{$:/language/OfficialPluginLibrary}} (Prerelease) The prerelease version of the official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team. diff --git a/package.json b/package.json index 8c0c66bee..778e8ed1e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.3.1", + "version": "5.3.2-prerelease", "author": "Jeremy Ruston ", "description": "a non-linear personal web notebook", "contributors": [ From dc282db31b2f9f2675f170c51bbecbb816780243 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 12:50:08 +0100 Subject: [PATCH 34/36] Missing banner credits for v5.3.1 --- editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid index fc4b54128..0a393c138 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid @@ -8,6 +8,12 @@ type: text/vnd.tiddlywiki //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.0...v5.3.1]]// +<<.banner-credits + credit:"""Congratulations to [[vilc|https://talk.tiddlywiki.org/u/vilc]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/banner-image-competition-for-v5-3-0/7406/10]]). +""" + url:"https://github.com/Jermolene/TiddlyWiki5/blob/4124bbdfb3e2445d45488006dfff1925d067ab0f/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png?raw=true" +>> + ! Overview of v5.3.1 This release comes only a month after [[v5.3.0|Release 5.3.0]]. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP -- the [[demo|WidgetMessage: tm-http-request Example - Random Dog]] downloads a random image or video of a dog. From c22cd3f4c6a3b7f898c1ef34c940da933a3f8552 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 20 Aug 2023 12:51:21 +0100 Subject: [PATCH 35/36] Temporary banner image for v5.3.2 --- .../tiddlers/images/New Release Banner.png | Bin 43129 -> 104615 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/editions/tw5.com/tiddlers/images/New Release Banner.png b/editions/tw5.com/tiddlers/images/New Release Banner.png index fd859e411dabacf77d48977e175bdcab9ded0d3a..daa1db0949f711ba9603e0ccd3994c507887c694 100644 GIT binary patch literal 104615 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 YKkW=VLUnjm6951J07*qoM6N<$f@BiZb^rhX literal 43129 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 Date: Sun, 20 Aug 2023 12:53:59 +0100 Subject: [PATCH 36/36] Tweak release note --- editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid index 0a393c138..b4c326125 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.3.1.tid @@ -16,7 +16,7 @@ type: text/vnd.tiddlywiki ! Overview of v5.3.1 -This release comes only a month after [[v5.3.0|Release 5.3.0]]. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP -- the [[demo|WidgetMessage: tm-http-request Example - Random Dog]] downloads a random image or video of a dog. +This release comes only a few weeks after [[v5.3.0|Release 5.3.0]]. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP -- the [[demo|WidgetMessage: tm-http-request Example - Random Dog]] downloads a random image or video of a dog. ! Bug Fixes and Reversions of v5.3.0 Changes