1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-06-18 11:18:52 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Jeremy Ruston d44c7fd8df Ensure {{}} doesn't generate a transclude widget with no attributes 2023-10-04 18:08:45 +01:00
172 changed files with 97 additions and 1193 deletions
@@ -1,120 +0,0 @@
/*\
title: $:/core/modules/parsers/wikiparser/rules/conditional.js
type: application/javascript
module-type: wikirule
Conditional shortcut syntax
```
This is a <% if [{something}] %>Elephant<% elseif [{else}] %>Pelican<% else %>Crocodile<% endif %>
```
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "conditional";
exports.types = {inline: true, block: true};
exports.init = function(parser) {
this.parser = parser;
// Regexp to match
this.matchRegExp = /\<\%\s*if\s+/mg;
this.terminateIfRegExp = /\%\>/mg;
};
exports.findNextMatch = function(startPos) {
// Look for the next <% if shortcut
this.matchRegExp.lastIndex = startPos;
this.match = this.matchRegExp.exec(this.parser.source);
// If not found then return no match
if(!this.match) {
return undefined;
}
// Check for the next %>
this.terminateIfRegExp.lastIndex = this.match.index;
this.terminateIfMatch = this.terminateIfRegExp.exec(this.parser.source);
// If not found then return no match
if(!this.terminateIfMatch) {
return undefined;
}
// Return the position at which the construction was found
return this.match.index;
};
/*
Parse the most recent match
*/
exports.parse = function() {
// Get the filter condition
var filterCondition = this.parser.source.substring(this.match.index + this.match[0].length,this.terminateIfMatch.index);
// Advance the parser position to past the %>
this.parser.pos = this.terminateIfMatch.index + this.terminateIfMatch[0].length;
// Parse the if clause
return this.parseIfClause(filterCondition);
};
exports.parseIfClause = function(filterCondition) {
// Create the list widget
var listWidget = {
type: "list",
tag: "$list",
isBlock: this.is.block,
children: [
{
type: "list-template",
tag: "$list-template"
},
{
type: "list-empty",
tag: "$list-empty"
}
]
};
$tw.utils.addAttributeToParseTreeNode(listWidget,"filter",filterCondition);
$tw.utils.addAttributeToParseTreeNode(listWidget,"variable","condition");
$tw.utils.addAttributeToParseTreeNode(listWidget,"limit","1");
// Check for an immediately following double linebreak
var hasLineBreak = !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g);
// Parse the body looking for else or endif
var reEndString = "\\<\\%\\s*(endif)\\s*\\%\\>|\\<\\%\\s*(else)\\s*\\%\\>|\\<\\%\\s*(elseif)\\s+([\\s\\S]+?)\\%\\>",
ex;
if(hasLineBreak) {
ex = this.parser.parseBlocksTerminatedExtended(reEndString);
} else {
var reEnd = new RegExp(reEndString,"mg");
ex = this.parser.parseInlineRunTerminatedExtended(reEnd,{eatTerminator: true});
}
// Put the body into the list template
listWidget.children[0].children = ex.tree;
// Check for an else or elseif
if(ex.match) {
if(ex.match[1] === "endif") {
// Nothing to do if we just found an endif
} else if(ex.match[2] === "else") {
// Check for an immediately following double linebreak
hasLineBreak = !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g);
// If we found an else then we need to parse the body looking for the endif
var reEndString = "\\<\\%\\s*(endif)\\s*\\%\\>",
ex;
if(hasLineBreak) {
ex = this.parser.parseBlocksTerminatedExtended(reEndString);
} else {
var reEnd = new RegExp(reEndString,"mg");
ex = this.parser.parseInlineRunTerminatedExtended(reEnd,{eatTerminator: true});
}
// Put the parsed content inside the list empty template
listWidget.children[1].children = ex.tree;
} else if(ex.match[3] === "elseif") {
// Parse the elseif clause by reusing this parser, passing the new filter condition
listWidget.children[1].children = this.parseIfClause(ex.match[4]);
}
}
// Return the parse tree node
return [listWidget];
};
})();
+8 -29
View File
@@ -223,7 +223,7 @@ Parse a block from the current position
terminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis
*/
WikiParser.prototype.parseBlock = function(terminatorRegExpString) {
var terminatorRegExp = terminatorRegExpString ? new RegExp(terminatorRegExpString + "|\\r?\\n\\r?\\n","mg") : /(\r?\n\r?\n)/mg;
var terminatorRegExp = terminatorRegExpString ? new RegExp("(" + terminatorRegExpString + "|\\r?\\n\\r?\\n)","mg") : /(\r?\n\r?\n)/mg;
this.skipWhitespace();
if(this.pos >= this.sourceLength) {
return [];
@@ -263,22 +263,12 @@ WikiParser.prototype.parseBlocksUnterminated = function() {
return tree;
};
/*
Parse blocks of text until a terminating regexp is encountered. Wrapper for parseBlocksTerminatedExtended that just returns the parse tree
*/
WikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {
var ex = this.parseBlocksTerminatedExtended(terminatorRegExpString);
return ex.tree;
};
/*
Parse blocks of text until a terminating regexp is encountered
*/
WikiParser.prototype.parseBlocksTerminatedExtended = function(terminatorRegExpString) {
var terminatorRegExp = new RegExp(terminatorRegExpString,"mg"),
result = {
tree: []
};
WikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {
var terminatorRegExp = new RegExp("(" + terminatorRegExpString + ")","mg"),
tree = [];
// Skip any whitespace
this.skipWhitespace();
// Check if we've got the end marker
@@ -287,7 +277,7 @@ WikiParser.prototype.parseBlocksTerminatedExtended = function(terminatorRegExpSt
// Parse the text into blocks
while(this.pos < this.sourceLength && !(match && match.index === this.pos)) {
var blocks = this.parseBlock(terminatorRegExpString);
result.tree.push.apply(result.tree,blocks);
tree.push.apply(tree,blocks);
// Skip any whitespace
this.skipWhitespace();
// Check if we've got the end marker
@@ -296,9 +286,8 @@ WikiParser.prototype.parseBlocksTerminatedExtended = function(terminatorRegExpSt
}
if(match && match.index === this.pos) {
this.pos = match.index + match[0].length;
result.match = match;
}
return result;
return tree;
};
/*
@@ -341,11 +330,6 @@ WikiParser.prototype.parseInlineRunUnterminated = function(options) {
};
WikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {
var ex = this.parseInlineRunTerminatedExtended(terminatorRegExp,options);
return ex.tree;
};
WikiParser.prototype.parseInlineRunTerminatedExtended = function(terminatorRegExp,options) {
options = options || {};
var tree = [];
// Find the next occurrence of the terminator
@@ -365,10 +349,7 @@ WikiParser.prototype.parseInlineRunTerminatedExtended = function(terminatorRegEx
if(options.eatTerminator) {
this.pos += terminatorMatch[0].length;
}
return {
match: terminatorMatch,
tree: tree
};
return tree;
}
}
// Process any inline rule, along with the text preceding it
@@ -392,9 +373,7 @@ WikiParser.prototype.parseInlineRunTerminatedExtended = function(terminatorRegEx
this.pushTextWidget(tree,this.source.substr(this.pos),this.pos,this.sourceLength);
}
this.pos = this.sourceLength;
return {
tree: tree
};
return tree;
};
/*
+9 -49
View File
@@ -60,7 +60,6 @@ ListWidget.prototype.render = function(parent,nextSibling) {
Compute the internal state of the widget
*/
ListWidget.prototype.execute = function() {
var self = this;
// Get our attributes
this.template = this.getAttribute("template");
this.editTemplate = this.getAttribute("editTemplate");
@@ -68,8 +67,6 @@ ListWidget.prototype.execute = function() {
this.counterName = this.getAttribute("counter");
this.storyViewName = this.getAttribute("storyview");
this.historyTitle = this.getAttribute("history");
// Look for <$list-template> and <$list-empty> widgets as immediate child widgets
this.findExplicitTemplates();
// Compose the list elements
this.list = this.getTiddlerList();
var members = [],
@@ -88,48 +85,18 @@ ListWidget.prototype.execute = function() {
this.history = [];
};
ListWidget.prototype.findExplicitTemplates = function() {
var self = this;
this.explicitListTemplate = null;
this.explicitEmptyTemplate = null;
var searchChildren = function(childNodes) {
$tw.utils.each(childNodes,function(node) {
if(node.type === "list-template") {
self.explicitListTemplate = node.children;
} else if(node.type === "list-empty") {
self.explicitEmptyTemplate = node.children;
} else if(node.type === "element" && node.tag === "p") {
searchChildren(node.children);
}
});
};
searchChildren(this.parseTreeNode.children);
}
ListWidget.prototype.getTiddlerList = function() {
var limit = $tw.utils.getInt(this.getAttribute("limit",""),undefined);
var defaultFilter = "[!is[system]sort[title]]";
var results = this.wiki.filterTiddlers(this.getAttribute("filter",defaultFilter),this);
if(limit !== undefined) {
if(limit >= 0) {
results = results.slice(0,limit);
} else {
results = results.slice(limit);
}
}
return results;
return this.wiki.filterTiddlers(this.getAttribute("filter",defaultFilter),this);
};
ListWidget.prototype.getEmptyMessage = function() {
var parser,
emptyMessage = this.getAttribute("emptyMessage");
// If emptyMessage attribute is not present or empty then look for an explicit empty template
if(!emptyMessage) {
if(this.explicitEmptyTemplate) {
return this.explicitEmptyTemplate;
} else {
return [];
}
emptyMessage = this.getAttribute("emptyMessage","");
// this.wiki.parseText() calls
// new Parser(..), which should only be done, if needed, because it's heavy!
if (emptyMessage === "") {
return [];
}
parser = this.wiki.parseText("text/vnd.tiddlywiki",emptyMessage,{parseAsInline: true});
if(parser) {
@@ -155,19 +122,12 @@ ListWidget.prototype.makeItemTemplate = function(title,index) {
if(template) {
templateTree = [{type: "transclude", attributes: {tiddler: {type: "string", value: template}}}];
} else {
// Check for child nodes of the list widget
if(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {
// Check for a <$list-item> widget
if(this.explicitListTemplate) {
templateTree = this.explicitListTemplate;
} else if (!this.explicitEmptyTemplate) {
templateTree = this.parseTreeNode.children;
}
}
if(!templateTree) {
templateTree = this.parseTreeNode.children;
} else {
// Default template is a link to the title
templateTree = [{type: "element", tag: this.parseTreeNode.isBlock ? "div" : "span", children: [{type: "link", attributes: {to: {type: "string", value: title}}, children: [
{type: "text", text: title}
{type: "text", text: title}
]}]}];
}
}
+8 -12
View File
@@ -1,9 +1,5 @@
title: $:/core/ui/EditTemplate/body/default
\function edit-preview-state()
[{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] +[get[text]] :else[[no]]
\end
\define config-visibility-title()
$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
\end
@@ -14,16 +10,15 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
\whitespace trim
<$let
edit-preview-state={{{ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] }}}
importTitle=<<qualify $:/ImportImage>>
importState=<<qualify $:/state/ImportImage>> >
<$dropzone importTitle=<<importTitle>> autoOpenOnImport="no" contentTypesFilter={{$:/config/Editor/ImportContentTypesFilter}} class="tc-dropzone-editor" enable={{{ [{$:/config/DragAndDrop/Enable}match[no]] :else[subfilter{$:/config/Editor/EnableImportFilter}then[yes]else[no]] }}} filesOnly="yes" actions=<<importFileActions>> >
<div>
<div class={{{ [function[edit-preview-state]match[yes]then[tc-tiddler-preview]] +[join[ ]] }}}>
<$reveal stateTitle=<<edit-preview-state>> type="match" text="yes" tag="div">
<div class="tc-tiddler-preview">
<$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
<$list filter="[function[edit-preview-state]match[yes]]" variable="ignore">
<div class="tc-tiddler-preview-preview" data-tiddler-title={{!!draft.title}} data-tags={{!!tags}}>
<$transclude tiddler={{$:/state/editpreviewtype}} mode="inline">
@@ -34,12 +29,13 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
</div>
</$list>
</div>
</$reveal>
</div>
<$reveal stateTitle=<<edit-preview-state>> type="nomatch" text="yes" tag="div">
<$transclude tiddler="$:/core/ui/EditTemplate/body/editor" mode="inline"/>
</$reveal>
</$dropzone>
</$let>
-6
View File
@@ -9,17 +9,11 @@ button-classes: tc-text-editor-toolbar-item-start-group
shortcuts: ((preview))
\whitespace trim
<$let
edit-preview-state={{{ [{$:/config/ShowEditPreview/PerTiddler}!match[yes]then[$:/state/showeditpreview]] :else[<qualify "$:/state/showeditpreview">] }}}
>
<$reveal state=<<edit-preview-state>> type="match" text="yes" tag="span">
{{$:/core/images/preview-open}}
<$action-setfield $tiddler=<<edit-preview-state>> $value="no"/>
<$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/>
</$reveal>
<$reveal state=<<edit-preview-state>> type="nomatch" text="yes" tag="span">
{{$:/core/images/preview-closed}}
<$action-setfield $tiddler=<<edit-preview-state>> $value="yes"/>
<$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/>
</$reveal>
</$let>
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/green_favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/green_favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/green_favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,2 +1,2 @@
title: $:/green_favicon.ico
type: image/png
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

+18 -36
View File
@@ -4,7 +4,6 @@ modified: 20230820114855583
tags: ReleaseNotes
title: Release 5.3.2
type: text/vnd.tiddlywiki
description: Under development
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.3.1...master]]//
@@ -12,50 +11,27 @@ description: Under development
Improvements to the following translations:
* Chinese
* Polish
* Spanish
! Plugin Improvements
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/1be8f0a9336952d4745d2bd4f2327e353580a272">> comments plugin to use predefined palette colours
*
! Widget Improvements
*
! Usability Improvements
* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/7747">> editor preview button to automatically focus the editor
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7764">> file type names in the export menu
! Hackability Improvements
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7737">> an automatic build of the external core TiddlyWiki at https://tiddlywiki.com/empty-external-core.html
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7690">> the default page layout to better support CSS grid and flexbox layouts
*
! Bug Fixes
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7665">> `{{}}` generating a recursion error
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7758">> ordering of Vanilla stylesheets
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/fa9bfa07a095548eb2f8339b0b1b816d2e6794ef">> missing closing tag in tag-pill-inner macro
* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/issues/7732">> invalid "type" attribute from textarea elements generated by the EditTextWidget
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7749">> editor "type" dropdown state tiddlers
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7712">> handling of "counter-last" variable when appending items with the ListWidget
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6088">> upgrade download link in Firefox
*
! Node.js Improvements
*
! Performance Improvements
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7702">> performance of predefined patterns with [[all Operator]]
* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/issues/7671">> favicon format to PNG
! Developer Improvements
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7751">> global hook handling to support removing hooks
*
! Acknowledgements
@@ -63,16 +39,22 @@ Improvements to the following translations:
<<.contributors """
AnthonyMuscio
BramChen
BuckarooBanzay
BurningTreeC
EvidentlyCube
joebordes
kookma
btheado
catter-fly
cmo-pomerium
CrossEye
flibbles
hffqyd
lilscribby
linonetwo
Marxsal
mateuszwilczek
pille1842
pmario
rmunn
simonbaird
T1mL3arn
saqimtiaz
stevesunypoly
TiddlyTweeter
twMat
yaisog
""">>
Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
@@ -1,26 +0,0 @@
title: Conditionals/Basic
description: Basic conditional shortcut syntax
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Text
This is a <% if [<something>match[one]] %>Elephant<% endif %>, I think.
+
title: Output
<$let something="one">
{{Text}}
</$let>
<$let something="two">
{{Text}}
</$let>
+
title: ExpectedResult
<p>
This is a Elephant, I think.
</p><p>
This is a , I think.
</p>
@@ -1,37 +0,0 @@
title: Conditionals/BlockMode
description: Basic conditional shortcut syntax in block mode
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\procedure test(animal)
<% if [<animal>match[Elephant]] %>
! It is an elephant
<% else %>
<% if [<animal>match[Giraffe]] %>
! It is a giraffe
<% else %>
! It is completely unknown
<% endif %>
<% endif %>
\end
<<test "Giraffe">>
<<test "Elephant">>
<<test "Antelope">>
+
title: ExpectedResult
<h1 class="">It is a giraffe</h1><h1 class="">It is an elephant</h1><h1 class="">It is completely unknown</h1>
@@ -1,26 +0,0 @@
title: Conditionals/Else
description: Else conditional shortcut syntax
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Text
This is a <% if [<something>match[one]] %>Elephant<% else %>Crocodile<% endif %>, I think.
+
title: Output
<$let something="one">
{{Text}}
</$let>
<$let something="two">
{{Text}}
</$let>
+
title: ExpectedResult
<p>
This is a Elephant, I think.
</p><p>
This is a Crocodile, I think.
</p>
@@ -1,32 +0,0 @@
title: Conditionals/Elseif
description: Elseif conditional shortcut syntax
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Text
This is a <% if [<something>match[one]] %>Elephant<% elseif [<something>match[two]] %>Antelope<% else %>Crocodile<% endif %>, I think.
+
title: Output
<$let something="one">
{{Text}}
</$let>
<$let something="two">
{{Text}}
</$let>
<$let something="three">
{{Text}}
</$let>
+
title: ExpectedResult
<p>
This is a Elephant, I think.
</p><p>
This is a Antelope, I think.
</p><p>
This is a Crocodile, I think.
</p>
@@ -1,26 +0,0 @@
title: Conditionals/MissingEndif
description: Conditional shortcut syntax with missing endif
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Text
This is a <% if [<something>match[one]] %>Elephant
+
title: Output
<$let something="one">
{{Text}}
</$let>
<$let something="two">
{{Text}}
</$let>
+
title: ExpectedResult
<p>
This is a Elephant
</p><p>
This is a
</p>
@@ -1,12 +0,0 @@
title: Conditionals/MultipleResults
description: Check that multiple results from the filter are ignored
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
This is a <% if 1 2 3 4 5 6 %>Elephant<% endif %>, I think.
+
title: ExpectedResult
<p>This is a Elephant, I think.</p>
@@ -1,38 +0,0 @@
title: Conditionals/Nested
description: Nested conditional shortcut syntax
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\procedure test(animal)
<% if [<animal>match[Elephant]] %>
It is an elephant
<% else %>
<% if [<animal>match[Giraffe]] %>
It is a giraffe
<% else %>
It is completely unknown
<% endif %>
<% endif %>
\end
<<test "Giraffe">>
<<test "Elephant">>
<<test "Antelope">>
+
title: ExpectedResult
It is a giraffe
It is an elephant
It is completely unknown
@@ -1,60 +0,0 @@
title: Conditionals/NestedElseif
description: Nested elseif conditional shortcut syntax
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Text
\whitespace trim
This is a&#32;
<% if [<something>match[one]] %>
<% if [<another>match[one]] %>
Indian
<% elseif [<another>match[two]] %>
African
<% else %>
Unknown
<% endif %>
&#32;Elephant
<% elseif [<something>match[two]] %>
Antelope
<% else %>
Crocodile
<% endif %>
, I think.
+
title: Output
<$let something="one" another="one">
{{Text}}
</$let>
<$let something="one" another="two">
{{Text}}
</$let>
<$let something="one" another="three">
{{Text}}
</$let>
<$let something="two">
{{Text}}
</$let>
<$let something="three">
{{Text}}
</$let>
+
title: ExpectedResult
<p>
This is a Indian Elephant, I think.
</p><p>
This is a African Elephant, I think.
</p><p>
This is a Unknown Elephant, I think.
</p><p>
This is a Antelope, I think.
</p><p>
This is a Crocodile, I think.
</p>
@@ -1,29 +0,0 @@
title: ListWidget/WithExplicitTemplates
description: List widget with explicit templates
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
+
title: Output
\whitespace trim
\procedure test(filter)
<$list filter=<<filter>>>
<$list-template>
<$text text=<<currentTiddler>>/>
</$list-template>
<$list-empty>
None!
</$list-empty>
</$list>
\end
<<test "1 2 3">>
<<test "">>
+
title: ExpectedResult
<p>123</p><p>None!</p>
@@ -1,32 +0,0 @@
title: ListWidget/WithExplicitTemplatesInBlockMode
description: List widget with explicit templates in block mode
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
+
title: Output
\whitespace trim
\procedure test(filter)
<$list filter=<<filter>>>
<$list-template>
<$text text=<<currentTiddler>>/>
</$list-template>
<$list-empty>
None!
</$list-empty>
</$list>
\end
<<test "1 2 3">>
<<test "">>
+
title: ExpectedResult
123None!
@@ -1,33 +0,0 @@
title: ListWidget/WithExplicitTemplatesOverriddenByAttributes
description: List widget with explicit templates
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
+
title: Output
\whitespace trim
\procedure test(filter)
<$list filter=<<filter>> emptyMessage="Zero" template="Template">
<$list-template>
<$text text=<<currentTiddler>>/>
</$list-template>
<$list-empty>
None!
</$list-empty>
</$list>
\end
<<test "1 2 3">>
<<test "">>
+
title: Template
<$text text=<<currentTiddler>>/><$text text=<<currentTiddler>>/>
+
title: ExpectedResult
<p>112233</p><p>Zero</p>
@@ -1,25 +0,0 @@
title: ListWidget/WithLimit
description: List widget with limit
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
+
title: Output
Zero: <$list filter="1 2 3 4" limit="0" template="Template"/>
One: <$list filter="1 2 3 4" limit="1" template="Template"/>
Two: <$list filter="1 2 3 4" limit="2" template="Template"/>
Minus Two: <$list filter="1 2 3 4" limit="-2" template="Template"/>
+
title: Template
<$text text=<<currentTiddler>>/>
+
title: ExpectedResult
<p>Zero: </p><p>One: 1</p><p>Two: 12</p><p>Minus Two: 34
</p>
@@ -1,26 +0,0 @@
title: ListWidget/WithMissingTemplate
description: List widget with explicit templates
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
+
title: Output
\whitespace trim
\procedure test(filter)
<$list filter=<<filter>>>
<$list-empty>
None!
</$list-empty>
</$list>
\end
<<test "1 2 3">>
<<test "">>
+
title: ExpectedResult
<p><span><a class="tc-tiddlylink tc-tiddlylink-missing" href="#1">1</a></span><span><a class="tc-tiddlylink tc-tiddlylink-missing" href="#2">2</a></span><span><a class="tc-tiddlylink tc-tiddlylink-missing" href="#3">3</a></span></p><p>None!</p>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,2 +0,0 @@
title: $:/favicon.ico
type: image/png
Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/classic.tiddlywiki.com
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/links.tiddlywiki.org
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/tiddlywiki.com.dev
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/tiddlywiki.com
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/tiddlywiki.com.prerelease
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -1,3 +1,3 @@
title: $:/_tw_shared/favicons/tiddlywiki.com.upgrade
type: image/png
type: image/x-icon
tags: TiddlyWikiSitesMenu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

@@ -1,82 +0,0 @@
title: TiddlyWiki Archive
created: 20231005205623086
modified: 20231005210538879
tags: About
\procedure versions()
5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9
5.1.10 5.1.11 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16 5.1.17 5.1.18 5.1.19
5.1.20 5.1.21 5.1.22 5.1.23
5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7
5.3.0 5.3.1
\end
Older versions of TiddlyWiki are available in the [[archive|https://github.com/Jermolene/jermolene.github.io/tree/master/archive]]:
<table>
<tbody>
<tr>
<th>
Version
</th>
<th>
Released
</th>
<th>
Lifetime
</th>
<th>
Summary
</th>
<th>
Download
</th>
</tr>
<$list filter="[enlist<versions>reverse[]]" variable="version">
<$let
filename=`TiddlyWiki-$(version)$`
emptyFilename=`Empty-$(filename)$`
releaseTiddler={{{ [<version>addprefix[Release ]] }}}
releaseDate={{{ [<releaseTiddler>get[released]format:date[TIMESTAMP]] }}}
nextVersion={{{ [enlist<versions>after<version>] }}}
nextReleaseTiddler={{{ [<nextVersion>addprefix[Release ]] }}}
nextReleaseDate={{{ [<nextReleaseTiddler>get[released]format:date[TIMESTAMP]] }}}
lifetime={{{ [<nextReleaseDate>subtract<releaseDate>divide[86400000]add[0.5]fixed[0]] }}}
>
<tr>
<td>
<$link to=<<releaseTiddler>>>
<$text text=`v$(version)$`/>
</$link>
</td>
<td>
<$view tiddler=<<releaseTiddler>> field="released" format="date" template="DDth mmm YYYY"/>
</td>
<td>
<$list filter="[<lifetime>compare:number:lt[0]]" variable="ignore">
Current
</$list>
<$list filter="[<lifetime>compare:number:gteq[0]]" variable="ignore">
<$text text=<<lifetime>>/>
day<$list filter="[<lifetime>!compare:number:eq[1]]" variable="ignore">s</$list>
</$list>
</td>
<td>
<$transclude $tiddler=<<releaseTiddler>> $field="description" $format="inline">
(none)
</$transclude>
</td>
<td>
<a href={{{ [<filename>addprefix[https://tiddlywiki.com/archive/full/]]}}} rel="noopener noreferrer" target="_blank">
Complete
</a>
|
<a href={{{ [<emptyFilename>addprefix[https://tiddlywiki.com/archive/empty/]]}}} rel="noopener noreferrer" target="_blank">
Empty
</a>
</td>
</tr>
</$let>
</$list>
</tbody>
</table>
@@ -50,7 +50,7 @@ In technical / logical terms:
|`~run` |`:else[run]` |else |... ELSE run |
||`:intersection`|intersection of sets||
For the difference between `+` and `:intersection`, see [[Intersection Filter Run Prefix (Examples)]].
For the difference between `+` and `:intersection`, see [[Filter Run Prefix (Examples)]].
The input of a run is normally a list of all the non-[[shadow|ShadowTiddlers]] tiddler titles in the wiki (in no particular order). But the `+` prefix can change this:
@@ -1,296 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128.00001"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="favicons.svg"
xml:space="preserve"
inkscape:export-filename="png\tiddlywiki.com.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="true"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="7.1015625"
inkscape:cx="64.140814"
inkscape:cy="64.140814"
inkscape:window-width="1920"
inkscape:window-height="1147"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g11" /><defs
id="defs1"><linearGradient
id="swatch12"
inkscape:swatch="solid"
inkscape:label="server"><stop
style="stop-color:#da5577;stop-opacity:1;"
offset="0"
id="stop12" /></linearGradient><linearGradient
id="swatch11"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop11" /></linearGradient><linearGradient
id="swatch9"
inkscape:swatch="solid"
inkscape:label="white"><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop9" /></linearGradient><linearGradient
id="swatch1"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1" /></linearGradient><linearGradient
id="swatch8"
inkscape:swatch="solid"
inkscape:label="org"><stop
style="stop-color:#56bdbf;stop-opacity:1;"
offset="0"
id="stop8" /></linearGradient><linearGradient
id="swatch7"
inkscape:swatch="solid"
inkscape:label="dev"><stop
style="stop-color:#f5a622;stop-opacity:1;"
offset="0"
id="stop7" /></linearGradient><linearGradient
id="swatch6"
inkscape:swatch="solid"
inkscape:label="prerelease"><stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop6" /></linearGradient><linearGradient
id="swatch4"
inkscape:swatch="solid"
inkscape:label="static"><stop
style="stop-color:#75da4e;stop-opacity:1;"
offset="0"
id="stop4" /></linearGradient><linearGradient
id="swatch3"
inkscape:swatch="solid"
inkscape:label="main"><stop
style="stop-color:#5778d8;stop-opacity:1;"
offset="0"
id="stop3" /></linearGradient><linearGradient
inkscape:collect="always"
xlink:href="#swatch3"
id="linearGradient3"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch4"
id="linearGradient4"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath5"><rect
style="fill:none;fill-opacity:1;stroke-width:8;stroke-linecap:round;stroke-linejoin:round"
id="rect5"
width="128"
height="128"
x="0"
y="0"
inkscape:label="clip" /></clipPath><linearGradient
inkscape:collect="always"
xlink:href="#swatch6"
id="linearGradient6"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch7"
id="linearGradient7"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch8"
id="linearGradient8"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch3"
id="linearGradient1"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch9"
id="linearGradient10"
gradientUnits="userSpaceOnUse"
x1="0"
y1="64"
x2="128"
y2="64"
gradientTransform="matrix(0.9375,0,0,0.9375,4,4)" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch6"
id="linearGradient11"
x1="33"
y1="64.499634"
x2="95.999908"
y2="64.499634"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
xlink:href="#swatch12"
id="linearGradient12"
x1="0"
y1="64"
x2="128"
y2="64"
gradientUnits="userSpaceOnUse" /></defs><g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="tiddlywiki.com"
inkscape:highlight-color="#5778d8"><circle
style="fill:url(#linearGradient3);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="path3"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path2"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="g4"
inkscape:label="tiddlywiki.com.static"
inkscape:highlight-color="#75da4e"
style="display:none"><circle
style="fill:url(#linearGradient4);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle3"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path5"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="g6"
inkscape:label="tiddlywiki.com.prerelease"
inkscape:highlight-color="#000000"
style="display:none"><circle
style="fill:url(#linearGradient6);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle5"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path6"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="g7"
inkscape:label="tiddlywiki.com.dev"
inkscape:highlight-color="#f5a622"
style="display:none"><circle
style="fill:url(#linearGradient7);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle6"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path7"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="g11"
inkscape:label="tiddlywiki.com.server"
inkscape:highlight-color="#da5577"
style="display:none"><circle
style="fill:url(#linearGradient12);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle11"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path11"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="g8"
inkscape:label="tiddlywiki.org"
inkscape:highlight-color="#56bdbf"
style="display:none"><circle
style="fill:url(#linearGradient8);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle7"
cx="64"
cy="64"
r="64"
inkscape:label="circle" /><path
d="m 43.041717,108.67854 0.751889,0.22182 c 0.944816,-0.42273 2.84402,0.23061 3.851461,0.55003 -1.855114,-2.05655 -4.649979,-5.07657 -6.663583,-6.98047 -0.660927,-2.30497 -0.37892,-4.624354 -0.236721,-6.977384 l 0.02852,-0.194662 c -0.793713,1.883661 -1.800961,3.714696 -2.342334,5.697446 -0.633527,2.6749 2.815658,5.56097 4.153111,7.21503 z m 57.494073,11.31289 c -5.176865,-0.14634 -7.45389,-0.13375 -10.090375,-4.46924 l -2.054834,0.0589 c -2.391765,-0.10621 -1.395001,-0.0581 -2.990656,-0.13751 -2.667869,-0.10382 -2.240498,-2.63873 -2.709843,-3.97803 -0.750795,-4.5463 0.993529,-9.1161 0.938501,-13.663293 -0.01948,-1.614147 -2.303594,-7.327643 -3.119609,-9.370339 -2.558104,0.481634 -5.130085,0.573461 -7.725288,0.702779 -5.981958,-0.01466 -11.923347,-0.747185 -17.821779,-1.677423 -1.149456,4.748289 -4.566087,11.394302 -1.741972,16.220026 3.42795,4.99165 5.83352,6.37456 9.56221,6.67553 3.72865,0.30073 4.570606,4.51045 3.66851,6.01401 -0.798461,1.03913 -2.201806,1.22775 -3.394119,1.4795 l -2.384948,0.11209 c -1.876755,-0.0631 -3.554228,-0.56985 -5.226509,-1.35134 -2.792698,-1.55893 -5.677038,-4.7999 -7.820048,-7.12669 0.498909,0.92916 0.796495,2.74306 0.343977,3.58717 -1.267037,1.79491 -6.746985,1.78394 -9.256605,0.66857 -2.850888,-1.2668 -9.739741,-10.16165 -10.804821,-16.823492 2.833503,-5.358459 6.961359,-10.026002 9.049766,-15.860562 -4.552172,-2.904652 -6.990252,-7.633183 -6.673751,-12.989413 l 0.114239,-0.620021 c -4.479132,0.838514 -2.156357,0.52654 -6.97473,0.891035 C 8.0781524,68.286706 -5.4165029,57.882298 2.1821351,41.712001 c 0.4941401,-0.957532 0.9642068,-1.828092 1.8018738,-1.412334 0.6723209,0.333607 0.5757456,1.671844 0.2375704,3.155882 -4.34348771,19.321322 16.8849057,19.469204 29.9343757,15.893894 1.29515,-0.354917 3.871013,-2.745269 5.655363,-3.537694 2.916681,-1.29519 6.08244,-1.820682 9.224204,-2.199327 7.814184,-0.890406 17.205875,3.226084 21.977769,3.360498 4.77195,0.134409 11.560224,-1.14261 15.727266,-0.873733 3.023544,0.138339 5.992475,0.684094 8.909715,1.461516 1.888294,-9.200899 2.021793,-15.982204 6.498248,-17.552121 2.62723,0.414952 4.65169,3.995151 6.15018,5.908061 l 0.006,-0.0011 c 3.0518,-0.120395 5.95595,0.653873 8.84349,1.513196 5.22772,-0.741874 9.61454,-3.677579 14.23119,-5.961293 -0.0144,0.07197 -0.0899,0.09631 -0.13483,0.144733 -4.54334,3.67438 -5.17796,9.887706 -4.64341,15.633427 0.19879,2.981492 -0.6437,6.218521 -1.68521,9.271173 -1.94903,4.973519 -5.71304,10.215962 -10.08168,9.947083 -1.65151,-0.05224 -2.61091,-0.987376 -3.83837,-1.985753 -0.23812,2.022227 -1.17396,3.826663 -2.07611,5.615136 -2.08332,3.965414 -7.52746,5.712859 -12.568439,9.947104 -5.040634,4.23431 1.612996,19.356811 3.226255,22.112181 1.612994,2.75564 6.115934,3.76373 4.368644,6.25076 -0.53454,0.82135 -1.35188,1.11511 -2.2254,1.43375 z"
fill="#000000"
id="path8"
style="opacity:1;fill:#ffffff;stroke-width:1.33333"
inkscape:label="motovun"
clip-path="url(#clipPath5)" /></g><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="tiddlywiki.com.upgrade"
inkscape:highlight-color="#5778d8"
style="display:none"><g
fill-rule="evenodd"
id="g2"
style="stroke-width:0.229167"
inkscape:label="download-button"><circle
style="display:inline;fill:url(#linearGradient10);stroke-width:7.99998;stroke-linecap:round;stroke-linejoin:round"
id="circle8"
cx="64"
cy="64"
r="60"
inkscape:label="circle" /><path
d="M 64,128 C 99.346,128 128,99.346 128,64 128,28.654 99.346,0 64,0 28.654,0 0,28.654 0,64 c 0,35.346 28.654,64 64,64 z m 0,-16 C 90.51,112 112,90.51 112,64 112,37.49 90.51,16 64,16 37.49,16 16,37.49 16,64 c 0,26.51 21.49,48 48,48 z"
class="tc-image-download-button-ring"
id="path1"
style="fill:url(#linearGradient1);stroke-width:0.229167"
inkscape:label="circle" /><path
d="m 34.35,66.43 26.892,27.205 a 4.57,4.57 0 0 0 6.516,0 L 94.65,66.43 a 4.7,4.7 0 0 0 0,-6.593 4.581,4.581 0 0 0 -3.258,-1.365 h -8.46 c -2.545,0 -4.608,-2.087 -4.608,-4.661 v -15.15 c 0,-2.575 -2.063,-4.662 -4.608,-4.662 H 55.284 c -2.545,0 -4.608,2.087 -4.608,4.662 v 15.15 c 0,2.574 -2.063,4.661 -4.608,4.661 h -8.46 C 35.063,58.472 33,60.559 33,63.134 a 4.69,4.69 0 0 0 1.35,3.296 z"
id="path2-3"
style="fill:url(#linearGradient11);stroke-width:0.229167"
inkscape:label="arrow" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 26 KiB

@@ -1,3 +0,0 @@
title: Favicon template.svg
tags: picture
type: image/svg+xml
Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

@@ -0,0 +1,2 @@
title: $:/favicon.ico
type: image/x-icon
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

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