1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-24 11:54:41 +00:00

Compare commits

...

51 Commits

Author SHA1 Message Date
Jeremy Ruston
56e254d8a3 Initial commit - copied from #7780 2023-10-17 11:34:05 +01:00
Ke Wang
3855a9f013 Signing the CLA (#7791) 2023-10-17 09:46:54 +01:00
Guang Li
a7bd134c35 Docs: Add FSRS4TW plugin (#7770) 2023-10-16 12:23:22 +01:00
Jeremy Ruston
12f42ad62f Add a summary for each release, and include in archive listing 2023-10-08 10:29:42 +01:00
Jeremy Ruston
23b75bbc5d Add links to archived versions of TiddlyWiki
@pmario v5.3.0 and v5.3.1 are missing from the archive, would you be able to kindly prepare a PR?
2023-10-05 22:25:07 +01:00
Timur
3fb71e2553 Signing the CLA (#7766) 2023-10-04 18:24:14 +01:00
Robin Munn
9ee1ef7e23 Fix a dangling link in filter run prefix docs (#7715)
One example was moved to another tiddler but its link wasn't updated to
follow it. This fixes the link to point to the example again.
2023-09-24 20:20:13 +01:00
Jeremy Ruston
bd99cf3385 Docs: Clarify that whitespace trim is inherited by procedure and widget definitions 2023-09-21 18:11:54 +01:00
Mateusz Wilczek
697dc8db4c Improve jsonstringify and stringify operators docs (#7650) 2023-09-19 15:52:04 +01:00
TonyM
6d0b4108a4 Update _Timimi_ Extension and executable by Riz.tid (#7726)
* Update _Timimi_ Extension and executable by Riz.tid

Include the line

* The native host requires a component installed on the host computer, outside the browser.

So it is clearer there are two components to be installed and access to the local machine is implied.

* Update _Timimi_ Extension and executable by Riz.tid

Added blank line
2023-09-07 09:36:39 +01:00
TonyM
db79bf2380 Update WidgetMessage_ tm-permalink.tid (#7721)
Addition of note that the permalink message;

"The resulting link will be copied to the clipboard."
2023-09-06 12:27:06 +01:00
TonyM
2b16fa7b5c Update GenesisWidget.tid (#7723)
Add "or HTML element" to the description of "attributes not starting with $".
2023-09-06 12:26:27 +01:00
Mohammad Rahmani
64c9d17181 Update TranscludeWidget.tid correct procedure name (#7717)
The copy pasted `mymacro` from old docs is changed to `myproc`
2023-09-04 16:59:08 +01:00
Buckaroo Banzai
0889f13fef Signing the CLA (#7711) 2023-09-01 17:20:53 +01:00
Jeremy Ruston
3965e2c027 Tweak release note 2023-08-20 12:53:59 +01:00
Jeremy Ruston
dc282db31b Missing banner credits for v5.3.1 2023-08-20 12:50:08 +01:00
Jeremy Ruston
ba5bfd1ad0 Version number update for 5.3.1 2023-08-20 11:34:07 +01:00
Jeremy Ruston
3c66af9fdc Update release note for v5.3.1 2023-08-20 11:32:29 +01:00
Jeremy Ruston
6877082090 Preparing for release of v5.3.1 2023-08-20 11:31:23 +01:00
Jeremy Ruston
9201d2bedc Merge remote-tracking branch 'origin/tiddlywiki-com' 2023-08-20 11:18:43 +01:00
Robin Munn
229e681550 Add release note for bugfix PR #7679 (#7681) 2023-08-20 11:07:59 +01:00
Robin Munn
779ac28bd0 Fix checkbox widget when listIndex field undefined (#7679) 2023-08-15 17:12:49 +01:00
yaisog
78ecc20c5e Add notes about subfilter expressions (#7667) 2023-08-08 09:52:39 +01:00
Marxsal
8b6bc6664b Link to archive of Jeffrey Kishner site (#7668) 2023-08-08 09:50:28 +01:00
cmo-pomerium
674bd1822c Signing the CLA (#7664) 2023-08-08 09:46:53 +01:00
Jeremy Ruston
6c67dc8235 Dog demo: Update CSS 2023-08-01 16:13:22 +02:00
Jeremy Ruston
72a4adbd6b Update Procedure Definitions.tid 2023-08-01 07:58:39 +01:00
btheado
aaf0bffb39 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 <btheado@mailinator.com>
2023-08-01 07:56:45 +01:00
Saq Imtiaz
9bbd8a70c2 Updates example for ActionPopupWidget (#7653) 2023-07-31 21:26:23 +01:00
Jeremy Ruston
cc57cf2fe9 Update SystemTag_ $__tags_Macro.tid
Fixing missing colon
2023-07-31 21:02:49 +01:00
Jeremy Ruston
34bc9c72c6 Merge branch 'tiddlywiki-com' 2023-07-31 16:30:54 +01:00
Mario Pietsch
aeb502657b 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
2023-07-31 16:30:41 +01:00
Jeremy Ruston
48705db21f Fix random dog link 2023-07-31 16:04:24 +01:00
Jeremy Ruston
587aa28853 Update release note 2023-07-31 14:37:40 +01:00
Jeremy Ruston
b926a33b55 Warn about random dog image/video sizes 2023-07-31 14:36:29 +01:00
Jeremy Ruston
44ccfe83c9 Missed contributor for release note 2023-07-31 14:19:52 +01:00
Jeremy Ruston
cef0ac680d Update release note 2023-07-31 12:25:12 +01:00
lin onetwo
b8a235697f Improve boot kernel error reporting to include original error message (#7645) 2023-07-31 12:19:10 +01:00
Jeremy Ruston
ed82536a55 Merge branch 'tiddlywiki-com' 2023-07-31 12:16:12 +01:00
btheado
d99b1897c3 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 <btheado@mailinator.com>
2023-07-31 12:13:37 +01:00
Mateusz Wilczek
3684cfd178 Improve docs on styles and classes in WikiText (#7641) 2023-07-31 12:12:14 +01:00
Mateusz Wilczek
643819f5f5 Add docs on achieving unique tag macro dropdowns inside list widget (#7639) 2023-07-31 12:09:46 +01:00
lilscribby
52f7f6382b Fixed typos in documentation for new pragma (#7637) 2023-07-31 12:06:04 +01:00
lilscribby
575930b31d Signing CLA (#7636)
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
2023-07-31 12:02:52 +01:00
Marxsal
73f256a411 Change hashmap references to indicate additional variables (#7635) 2023-07-31 12:01:44 +01:00
Eric Haberstroh
1b5b8905d8 Sign the CLA (#7633)
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
2023-07-31 11:57:31 +01:00
TonyM
825f4eaae1 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
2023-07-31 11:53:14 +01:00
Jeremy Ruston
d0da1ef9d9 Fix error "Global assignment is not allowed within modules on node" (#7648) 2023-07-31 11:50:58 +01:00
Jeremy Ruston
3e213569e2 Update release note 2023-07-30 22:50:01 +01:00
Jeremy Ruston
4bdac09872 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
2023-07-30 18:04:05 +01:00
TiddlyTweeter
4c9eaeaaf2 Signing CLA (#7638)
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
2023-07-30 13:37:27 +01:00
103 changed files with 729 additions and 273 deletions

View File

@@ -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');
@@ -926,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);
}
}
}

View File

@@ -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

View File

@@ -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
};
};
/*

View File

@@ -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
""">>

View File

@@ -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.

View File

@@ -33,4 +33,4 @@ $param$ with a ''buffalo''
+
title: ExpectedResult
<p>Going to lunch with a ''buffalo''</p><p>Going to breakfastwith a<strong>buffalo</strong></p><p>Going to dinner with a <strong>buffalo</strong></p>Going to lunch with a buffalo with a buffaloGoing to dinner with a buffalo
<p>Going to lunch with a ''buffalo''</p><p>Going to breakfastwith a<strong>buffalo</strong></p><p>Going to dinner with a <strong>buffalo</strong></p>Going to lunch with a ''buffalo''Going to breakfastwith abuffaloGoing to dinner with a buffalo

View File

@@ -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
<p>It is $one$ and $two$.</p><p>It is $one$ and $two$.</p><p>It is $one$ and $two$.</p><p>It is $one$ and $two$.</p><p>It is $one$ and $two$.</p>

View File

@@ -0,0 +1,82 @@
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>

View File

@@ -0,0 +1,20 @@
title: 中文社区 - Chinese Community
tags: Community
# A Chinese community tutorial program that people can edit together:
#* Main site: [ext[https://tw-cn.netlify.app/]]
#* Accelerated access: [ext[https://tw-cn.cpolar.top/]]
#* Alternate: [ext[https://tiddly-wiki-chinese-tutorial.vercel.app]]
# Tiddlywiki Chinese Chat Forum: [ext[https://talk.tidgi.fun/topic/6]]
# Chinese translation of Tiddlywiki official website [ext[https://bramchen.github.io/tw5-docs/zh-Hans/]]
# The best Chinese introductory tutorial for newbies [ext[https://keatonlao.github.io/tiddlywiki-xp/]]
---
# 大家可以一起编辑的中文社区教程项目:
#* 主站:[ext[https://tw-cn.netlify.app/]]
#* 加速访问:[ext[https://tw-cn.cpolar.top/]]
#* 备用:[ext[https://tiddly-wiki-chinese-tutorial.vercel.app]]
# 太微中文交流论坛:[ext[https://talk.tidgi.fun/topic/6]]
# 太微官网汉化版:[ext[https://bramchen.github.io/tw5-docs/zh-Hans/]]
# 最适合新手的中文入门教程:[ext[https://keatonlao.github.io/tiddlywiki-xp/]]

View File

@@ -1,16 +0,0 @@
created: 20220417010615742
modified: 20220417011547812
tags: [[Community Plugins]] [[Community Editions]] Resources
title: TiddlyMemo by oflg
type: text/vnd.tiddlywiki
url: https://tiddlymemo.org/
Lifelong knowledge, deep in the Sea of Mind.
{{!!url}}
~TiddlyMemo uses advanced [[Incremental Learning|https://help.supermemo.org/wiki/Incremental_learning]] concepts to make it your powerful second brain for acquiring lifelong knowledge.
* [[Read Articles|https://tiddlymemo.org/#Read%20Articles]] like ~SuperMemo
* [[Learn languages|https://tiddlymemo.org/#Learn%20languages]] like ~LingQ
* [[Memory Notes|https://tiddlymemo.org/#Memory%20Notes]] like Anki

View File

@@ -0,0 +1,16 @@
created: 20220417010615742
modified: 20231005060241771
tags: [[Community Editions]]
title: Tidme by oflg
type: text/vnd.tiddlywiki
url: https://github.com/oflg/Tidme
Lifelong knowledge, deep in Mind.
{{!!url}}
Tidme uses advanced [[Incremental Learning|https://help.supermemo.org/wiki/Incremental_learning]] concepts to make it your powerful second brain for acquiring lifelong knowledge.
* Read Articles like SuperMemo
* Learn languages like LingQ
* Memory Notes like Anki

View File

@@ -0,0 +1,10 @@
created: 20220417010615742
modified: 20231005060241771
tags: [[Community Plugins]]
title: Free Spaced Repetition Scheduler for TiddlyWiki by oflg
type: text/vnd.tiddlywiki
url: https://github.com/open-spaced-repetition/fsrs4tw
TiddlyWiki-based memory programme using advanced FSRS algorithm
{{!!url}}

View File

@@ -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}}

View File

@@ -13,6 +13,8 @@ url: https://ibnishak.github.io/Timimi/
Timimi is a web-extension accompanied by a native host that allows you to save and backup your standalone HTML tiddlywiki files ''anywhere in your hard-drive''. Once installed, you can save the tiddlywiki files without any extra steps, like the original Tiddlyfox addon.
* The native host requires a component installed on the host computer, outside the browser.
{{!!url}}
As of version 2.1, Timimi supports the following browsers
@@ -29,4 +31,4 @@ Timimi also provides users with 4 backup strategies, viz:
* Create a backup Every n^^th^^ save
* Create a backup every n^^th^^ minute
* Customised Tower of Hanoi
* First in First Out
* First in First Out

View File

@@ -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!
: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!

View File

@@ -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

View File

@@ -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

View File

@@ -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]]

View File

@@ -1,9 +0,0 @@
created: 20171029155046637
modified: 20171029155227382
tags: [[Operator Examples]] [[stringify Operator]]
title: jsonstringify Operator (Examples)
type: text/vnd.tiddlywiki
<<.operator-example 1 """[[Title with "double quotes" and single ' and \backslash]] +[jsonstringify[]]""">>
<<.operator-example 2 """[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 without suffix]] +[jsonstringify[]]""">>
<<.operator-example 3 """[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 with rawunicode suffix]] +[jsonstringify:rawunicode[]]""">>

View File

@@ -1,9 +1,9 @@
created: 20161017154944352
modified: 20171029155233487
modified: 20230919124059118
tags: [[Operator Examples]] [[stringify Operator]]
title: stringify Operator (Examples)
type: text/vnd.tiddlywiki
<<.operator-example 1 """[[Title with "double quotes" and single ' and \backslash]] +[stringify[]]""">>
<<.operator-example 2 """[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 without suffix]] +[stringify[]]""">>
<<.operator-example 3 """[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 with rawunicode suffix]] +[stringify:rawunicode[]]""">>
<<.operator-example 3 """[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 with rawunicode suffix]] +[stringify:rawunicode[]]""">>

View File

@@ -1,36 +1,12 @@
caption: jsonstringify
created: 20171029155051467
from-version: 5.1.14
modified: 20171029155143797
op-input: a [[selection of titles|Title Selection]]
op-output: the input with JSON string encodings applied
modified: 20230919124826880
op-parameter:
op-parameter-name:
op-purpose: apply JSON string encoding to a string
op-suffix: <<.from-version "5.1.23">> optionally, the keyword `rawunicode`
op-purpose: deprecated, use <<.olink stringify>> instead
op-suffix-name: R
tags: [[Filter Operators]] [[String Operators]]
title: jsonstringify Operator
type: text/vnd.tiddlywiki
The following substitutions are made:
|!Character |!Replacement |!Condition |
|`\` |`\\` |Always |
|`"` |`\"` |Always |
|Carriage return (0x0d) |`\\r` |Always |
|Line feed (0x0a) |`\\n` |Always |
|Backspace (0x08) |`\\b` |Always |
|Form field (0x0c) |`\\f` |Always |
|Tab (0x09) |`\\t` |Always |
|Characters from 0x00 to 0x1f |`\\u####` where #### is four hex digits |Always |
|Characters from 0x80 to 0xffff|`\\u####` where #### is four hex digits |If `rawunicode` suffix is not present (default) |
|Characters from 0x80 to 0xffff|Unchanged |If `rawunicode` suffix is present <<.from-version "5.1.23">> |
<<.from-version "5.1.23">> If the suffix `rawunicode` is present, Unicode characters above 0x80 (such as ß, ä, ñ or 🎄) will be passed through unchanged. Without the suffix, they will be substituted with `\\u` codes, which was the default behavior before 5.1.23.
<<.note """Technical note: Characters outside the Basic Multilingual Plane, such as 🎄 and other emojis, will be encoded as a UTF-16 surrogate pair, i.e. with two `\u` sequences.""">>
Also see the [[stringify Operator]].
<<.operator-examples "jsonstringify">>

View File

@@ -1,6 +1,7 @@
caption: stringify
created: 20161017153038029
modified: 20171029155143797
from-version: 5.1.14
modified: 20230919130847809
op-input: a [[selection of titles|Title Selection]]
op-output: the input with ~JavaScript string encodings applied
op-parameter:
@@ -11,26 +12,25 @@ op-suffix-name: R
tags: [[Filter Operators]] [[String Operators]]
title: stringify Operator
type: text/vnd.tiddlywiki
from-version: 5.1.14
The following substitutions are made:
|!Character |!Replacement |!Condition |
|`\` |`\\` |Always |
|`"` |`\"` |Always |
|Carriage return (0x0d) |`\\r` |Always |
|Line feed (0x0a) |`\\n` |Always |
|Backspace (0x08) |`\\b` |Always |
|Form field (0x0c) |`\\f` |Always |
|Tab (0x09) |`\\t` |Always |
|Characters from 0x00 to 0x1f |`\\x##` where ## is two hex digits |Always |
|Characters from 0x80 to 0xffff|`\\u####` where #### is four hex digits |If `rawunicode` suffix is not present (default) |
|Carriage return (0x0d) |`\r` |Always |
|Line feed (0x0a) |`\n` |Always |
|Backspace (0x08) |`\b` |Always |
|Form field (0x0c) |`\f` |Always |
|Tab (0x09) |`\t` |Always |
|Characters from 0x00 to 0x1f |`\x##` where ## is two hex digits |Always |
|Characters from 0x80 to 0xffff|`\u####` where #### is four hex digits |If `rawunicode` suffix is not present (default) |
|Characters from 0x80 to 0xffff|<<.from-version "5.1.23">> Unchanged |If `rawunicode` suffix is present |
<<.from-version "5.1.23">> If the suffix `rawunicode` is present, Unicode characters above 0x80 (such as ß, ä, ñ or 🎄) will be passed through unchanged. Without the suffix, they will be substituted with `\\u` codes, which was the default behavior before 5.1.23.
<<.from-version "5.1.23">> If the suffix `rawunicode` is present, Unicode characters above 0x80 (such as ß, ä, ñ or 🎄) will be passed through unchanged. Without the suffix, they will be substituted with `\u` codes, which was the default behavior before 5.1.23.
<<.note """Technical note: Characters outside the Basic Multilingual Plane, such as 🎄 and other emojis, will be encoded as a UTF-16 surrogate pair, i.e. with two `\u` sequences.""">>
<<.note """Characters outside the Basic Multilingual Plane, such as 🎄 and other emojis, will be encoded as a UTF-16 surrogate pair, i.e. with two `\u` sequences.""">>
Also see the [[jsonstringify Operator]].
<<.olink jsonstringify>> is considered deprecated, as it duplicates the functionality of <<.op stringify>>.
<<.operator-examples "stringify">>
<<.operator-examples "stringify">>

View File

@@ -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 [[Filter Run Prefix (Examples)]].
For the difference between `+` and `:intersection`, see [[Intersection 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:

View File

@@ -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: 20230820112855583
tags: TableOfContents
title: HelloThere
type: text/vnd.tiddlywiki
@@ -18,6 +18,11 @@ TiddlyWiki lets you choose where to keep your data, guaranteeing that in the dec
<$macrocall $name="flex-card" bordercolor={{!!color}} textcolor={{!!text-color}} backgroundcolor={{!!background-color}} captionField="caption" descriptionField="text"/>
</$list>
</div>
<div class="tc-cards tc-small">
<$link to="中文社区 - Chinese Community" class="tc-btn-big-green tc-card">
中文社区 - Chinese Community
</$link>
</div>
!! ''Find Out More''

View File

@@ -1,7 +1,7 @@
title: Constructing JSON tiddlers
tags: [[JSON in TiddlyWiki]] [[Learning]]
created: 20220427174702859
modified: 20220427174702859
modified: 20230809113620964
tags: [[JSON in TiddlyWiki]] Learning
title: Constructing JSON tiddlers
See [[JSON in TiddlyWiki]] for an overview of using JSON in TiddlyWiki.
@@ -13,4 +13,4 @@ At a high level, we have several ways to generate JSON data in TiddlyWiki's own
* [[jsontiddler Macro]]
* [[jsontiddlers Macro]]
When constructing JSON data manually, the [[jsonstringify Operator]] is needed to ensure that any special characters are properly escaped.
When constructing JSON data manually, the [[stringify Operator]] is needed to ensure that any special characters are properly escaped.

View File

@@ -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

View File

@@ -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="""<<tag>>"""/>
<$macrocall $name=".example" n="2" eg="""<<tag Concepts>>"""/>
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="[<currentTiddler>tags[]]"> <<tag>> </$list>
</$list>"""/>
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="[<currentTiddler>tags[]]"> <<tag>> </$list>
</$list>"""/>
A slightly more performant option is to use the `variable="transclusion"` attribute in the list widget. In this case, the variable `<<transclusion>>` has to be used inside the list widget instead of the `<<currentTiddler>>` .
<$macrocall $name=".example" n="5" eg="""<$list filter="[tag[HelloThere]]" variable="transclusion">
* <$link to=<<transclusion>>/> is tagged with: <$list filter="[<transclusion>tags[]]"> <<tag>> </$list>
</$list>"""/>

View File

@@ -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>
<$button>Close Window
<$action-sendmessage

View File

@@ -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:

View File

@@ -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.

View File

@@ -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.

View File

@@ -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""">>

View File

@@ -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=<<get-random-dog>>>
Import a random dog image or video
</$button>
@@ -80,7 +82,7 @@ Export all imported random dogs: <$macrocall $name="exportButton" exportFilter="
<$link>
<$text text=<<currentTiddler>>/>
</$link>
<div style="width:300px;height:300px;">
<div style="width:300px;">
<$transclude $tiddler=<<currentTiddler>>/>
</div>
</li>

View File

@@ -1,6 +1,6 @@
caption: tm-http-request
created: 20230429161453032
modified: 20230717104212742
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:
@@ -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]]

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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''

View File

@@ -5,7 +5,7 @@ title: WidgetMessage: tm-permalink
type: text/vnd.tiddlywiki
caption: tm-permalink
The `tm-permalink` message changes the browser address bar to form a [[permalink|PermaLinks]] to a specified tiddler, defaulting to the current tiddler.
The `tm-permalink` message changes the browser address bar to form a [[permalink|PermaLinks]] to a specified tiddler, defaulting to the current tiddler. The resulting link will be copied to the clipboard.
The permalink message supports the following properties on the `event` object:

View File

@@ -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.

View File

@@ -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-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>
\procedure <procedure-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>
```
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:

View File

@@ -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 <rule-list>
\rules only|except <rule-list>
```
The list of available parser rules can be consulted in $:/ControlPanel -> Info -> Advanced -> Parsing.

View File

@@ -1,13 +1,17 @@
created: 20220917113002350
modified: 20230419103154329
modified: 20230921180332436
tags: Pragmas
title: Pragma: \whitespace
type: text/vnd.tiddlywiki
<<.from-version "5.1.15">> The ''\whitespace'' [[pragma|Pragmas]] determines how spaces and newlines are treated within wikitext. Note that this only applies to the printable text, and not to other text, such as the values of attributes.
<<.from-version "5.1.15">> The ''\whitespace'' [[pragma|Pragmas]] determines how spaces and newlines are treated within wikitext.
* ''notrim'' -- whitespace text is not subject to special processing (the default)
* ''trim'' -- whitespace text is removed
* ''trim'' -- whitespace text is ignored
Note that the processing only applies to the printable text, and not to other text, such as the values of attributes.
The whitespace setting only applies to the parsed content in which it appears. The setting is inherited by embedded [[Procedure Definitions]] and [[Custom Widgets]] definitions, but is not inherited by [[Macro definitions]].
```
\whitespace trim|notrim

View File

@@ -1,5 +1,5 @@
created: 20221007125701001
modified: 20230419103154329
modified: 20230921180332436
tags: WikiText Procedures
title: Procedure Definitions
type: text/vnd.tiddlywiki
@@ -13,11 +13,13 @@ 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=<<param>>)
\end
```
Note that the [[Pragma: \whitespace]] setting is inherited from the parsing context in which the procedure definition occurs. That means that a tiddler containing multiple procedure definitions only needs a single whitespace pragma at the top of the tiddler, and the setting will be automatically inherited by the procedure definitions without needing the pragma to be repeated.
!! Procedure Definition with Set Widget
Procedures are implemented as a special kind of [[variable|Variables]] and so internally are actually defined with a <<.wlink SetWidget>> widget.

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.0
type: text/vnd.tiddlywiki
released: 201409201500
description: First non-beta release
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.18-beta...v5.1.0]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.1
type: text/vnd.tiddlywiki
released: 201409221100
description: [[KaTeX Plugin]]
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.0...v5.1.1]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.10
type: text/vnd.tiddlywiki
released: 20160107231609312
description: Text slicer, fold/unfold, performance optimisations, translations, external text tiddlers
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.9...v5.1.10]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.11
type: text/vnd.tiddlywiki
released: 20160130124109312
description: Bug fix release for v5.1.10
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.10...v5.1.11]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.12
type: text/vnd.tiddlywiki
released: 20160713104714652
description: Editor toolbars, improved bitmap editor, Internals plugin, WikifyWidget
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.11...v5.1.12]]//

View File

@@ -5,6 +5,7 @@ released: 20160725084810809
tags: ReleaseNotes
title: Release 5.1.13
type: text/vnd.tiddlywiki
description: Bug fix release for v5.1.12
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.12...v5.1.13]]//

View File

@@ -5,6 +5,7 @@ released: 20170426160031661
tags: ReleaseNotes
title: Release 5.1.14
type: text/vnd.tiddlywiki
description: Drag and drop improvements, initial RTL support, plugins for XLSX import, QR Codes, ~BibTeX, Google Analytics, Twitter
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.13...v5.1.14]]//

View File

@@ -5,6 +5,7 @@ released: 20171113161124237
tags: ReleaseNotes
title: Release 5.1.15
type: text/vnd.tiddlywiki
description: Explorer tab, whitespace pragma, save and render commands
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.14...v5.1.15]]//

View File

@@ -5,6 +5,7 @@ released: 20180425155658451
tags: ReleaseNotes
title: Release 5.1.16
type: text/vnd.tiddlywiki
description: [[Dynaview Plugin]], import previews, DiffTextWidget, rotate left in bitmap editor, StartupActions
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.15...v5.1.16]]//

View File

@@ -5,6 +5,7 @@ released: 20180512104329616
tags: ReleaseNotes
title: Release 5.1.17
type: text/vnd.tiddlywiki
description: Minor bug fix release
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.16...v5.1.17]]//

View File

@@ -5,6 +5,7 @@ released: 20181206090053690
tags: ReleaseNotes
title: Release 5.1.18
type: text/vnd.tiddlywiki
description: Global keyboard shortcuts, HTTP server improvements, support for splash screens, `~` filter run prefix, external JS support
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.17...v5.1.18]]//

View File

@@ -5,6 +5,7 @@ released: 20181220163418974
tags: ReleaseNotes
title: Release 5.1.19
type: text/vnd.tiddlywiki
description: Bug fix release for v5.1.18
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.18...v5.1.19]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.2
type: text/vnd.tiddlywiki
released: 20140927162659979
description: Minor fixes
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.1...v5.1.2]]//

View File

@@ -5,6 +5,7 @@ released: 20190809141328809
tags: ReleaseNotes
title: Release 5.1.20
type: text/vnd.tiddlywiki
description: New conditional, mathematics and string operators, GitHub Saver, save wiki folder command, [[Innerwiki Plugin]]
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.19...v5.1.20]]//

View File

@@ -5,6 +5,7 @@ released: 20190910152313608
tags: ReleaseNotes
title: Release 5.1.21
type: text/vnd.tiddlywiki
description: Bug fix release for v5.1.20
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.20...v5.1.21]]//

View File

@@ -5,6 +5,7 @@ released: 20200415160825341
tags: ReleaseNotes
title: Release 5.1.22
type: text/vnd.tiddlywiki
description: Dynamic plugin loading, compare operator, new plugins: Menubar, Freelinks, Dynannotate, Share
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.21...v5.1.22]]//

View File

@@ -5,6 +5,7 @@ released: 20201224132933812
tags: ReleaseNotes
title: Release 5.1.23
type: text/vnd.tiddlywiki
description: Switchable page templates, EventCatcherWidget, Rename during import, many plugin and filter improvements
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.22...v5.1.23]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.3
type: text/vnd.tiddlywiki
released: 20141020171015200
description: Journals, ActionWidgets, <<.olink addprefix>> and <<.olink addsuffix>> operators, "includeWikis"
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.2...v5.1.3]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.4
type: text/vnd.tiddlywiki
released: 20141022155524581
description: Dragging links into text boxes, coloured errors and warnings under Node.js
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.3...v5.1.4]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.5
type: text/vnd.tiddlywiki
released: 20141126153016142
description: Export button, more ActionWidgets, Danish and Greek translations
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.4...v5.1.5]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.6
type: text/vnd.tiddlywiki
released: 20141219155007260
description: Minor bug fix release for v5.1.5
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.5...v5.1.6]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.7
type: text/vnd.tiddlywiki
released: 20141219215007260
description: Hot fix release for v5.1.7
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.6...v5.1.7]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.8
type: text/vnd.tiddlywiki
released: 2015041716307227
description: Plugin library, Railroad Plugin, sticky titles, 7 new translations
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.7...v5.1.8]]//

View File

@@ -5,6 +5,7 @@ tags: ReleaseNotes
title: Release 5.1.9
type: text/vnd.tiddlywiki
released: 20150703153725652
description: Fluid-fixed layout, vars widget, open in new window
\define custom-colour-picker(tiddler,colour)
<$edit-text tiddler="""$tiddler$""" index="""$colour$""" type="color" tag="input"/>

View File

@@ -5,6 +5,7 @@ released: 20211003151502543
tags: ReleaseNotes
title: Release 5.2.0
type: text/vnd.tiddlywiki
description: JSON store area, nestable macros, counter attribute for ListWidget, MessageCatcherWidget
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.1.23...v5.2.0]]//

View File

@@ -5,6 +5,7 @@ released: 20211208115833846
tags: ReleaseNotes
title: Release 5.2.1
type: text/vnd.tiddlywiki
description: Filter cascades, LetWidget, trigonometric operators
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.0...v5.2.1]]//

View File

@@ -5,6 +5,7 @@ released: 20220325130817150
tags: ReleaseNotes
title: Release 5.2.2
type: text/vnd.tiddlywiki
description: Minor bug fix release
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.1...v5.2.2]]//

View File

@@ -5,6 +5,7 @@ released: 20220802122551819
tags: ReleaseNotes
title: Release 5.2.3
type: text/vnd.tiddlywiki
description: Minor fixes and improvements
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.2...v5.2.3]]//

View File

@@ -5,6 +5,7 @@ released: 20221213163110439
tags: ReleaseNotes
title: Release 5.2.4
type: text/vnd.tiddlywiki
description: Hot fixes for v5.2.3, Twitter archivist plugin, GenesisWidget, JSON read operators, nested macro definitions
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.3...v5.2.4]]//

View File

@@ -5,6 +5,7 @@ released: 20221219184500440
tags: ReleaseNotes
title: Release 5.2.5
type: text/vnd.tiddlywiki
description: Hot fix release for v5.2.4
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.4...v5.2.5]]//

View File

@@ -5,6 +5,7 @@ released: 20230320184352916
tags: ReleaseNotes
title: Release 5.2.6
type: text/vnd.tiddlywiki
description: Markdown improvements, indentable pragmas, accessible save wiki button
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.5...v5.2.6]]//

View File

@@ -5,6 +5,7 @@ released: 20230326083239710
tags: ReleaseNotes
title: Release 5.2.7
type: text/vnd.tiddlywiki
description: Bug fix release for v5.2.6
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.6...v5.2.7]]//

View File

@@ -5,6 +5,7 @@ released: 20230701123439630
tags: ReleaseNotes
title: Release 5.3.0
type: text/vnd.tiddlywiki
description: Parameterised transclusions, procedures, functions, custom widgets
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.7...v5.3.0]]//

View File

@@ -1,21 +1,29 @@
caption: 5.3.1
created: 20230720215100983
modified: 20230720215100983
created: 20230820112855583
modified: 20230820112855583
released: 20230820112855583
tags: ReleaseNotes
title: Release 5.3.1
type: text/vnd.tiddlywiki
description: Bug fix release for v5.3.0
//[[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]]//
<<.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
! Reversions of v5.3.0 Changes
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
* Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
! Plugin Improvements
*
* <<.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"
! Translation improvement
@@ -24,22 +32,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
@@ -49,18 +49,17 @@ 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
*
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7645">> console reporting of ~JavaScript errors
! Developer Improvements
* <<.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:
@@ -68,11 +67,21 @@ Currently shadow tiddler ordering depends upon the order in which the shadows ap
<<.contributors """
AnthonyMuscio
btheado
catter-fly
cmo-pomerium
CrossEye
flibbles
hffqyd
lilscribby
linonetwo
Marxsal
mateuszwilczek
pille1842
pmario
rmunn
saqimtiaz
stevesunypoly
TiddlyTweeter
twMat
yaisog
""">>

View File

@@ -1,9 +1,11 @@
created: 20150419144523070
modified: 20220802100223019
modified: 20231005205612322
tags: About
title: Releases
type: text/vnd.tiddlywiki
New releases of TiddlyWiki and TiddlyDesktop are announced via the [[official discussion groups|Forums]] and [[Twitter|https://twitter.com/TiddlyWiki]]
See the [[TiddlyWiki Archive]] to download older versions.
<<tabs "[[TiddlyWiki Releases]] [[TiddlyDesktop Releases]]" "TiddlyWiki Releases" "$:/state/tab">>

View File

@@ -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]]

View File

@@ -147,6 +147,10 @@ type: text/vnd.tiddlywiki
gap: 1em;
}
.tc-cards.tc-small {
font-size: 0.7em;
}
.tc-cards.tc-action-card {
text-align: center;
background: none;

View File

@@ -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]].
The [[system tag|SystemTags]] `$:/tags/Macro` marks global macros. It is now deprecated in favour of [[SystemTag: $:/tags/Global]].

View File

@@ -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__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) "$a1$" "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
Invoked in normal wikitext context: `<$transclude $variable=macro/>` or `<<macro>>`
{{Behaviour of variables invoked via normal wikitext}}
Invoked via widget attribute: `<div class=<<macro>>/>`
{{Behaviour of variables invoked via widget attributes}}
Invoked via filter operator parameter: `[<macro>]`
{{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 `<<a1>>` 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__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
```
| !Variable transclusion|!output |
| `<<m1 foo>>`|<<m1 foo>>|
| `<<p1 foo>>`|<<p1 foo>>|
| `<<f1 foo>>`|<<f1 foo>>|
| !Widget attribute|!output |
| `<$text text=<<m1 foo>>/>`|<$text text=<<m1 foo>>/>|
| `<$text text=<<p1 foo>>/>`|<$text text=<<p1 foo>>/>|
| `<$text text=<<f1 foo>>/>`|<$text text=<<f1 foo>>/>|
| !Filter operator parameter|!output |
| `[<m1 foo>]`|<$text text={{{[<m1 foo>]}}}/>|
| `[<p1 foo>]`|<$text text={{{[<p1 foo>]}}}/>|
| `[<f1 foo>]`|<$text text={{{[<f1 foo>]}}}/>|
| !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]]}}}/>|

View File

@@ -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.|

View File

@@ -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.|

View File

@@ -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 (`<<macro>>`) 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|

View File

@@ -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 `<div class=<<macro>>/>`, it is a synonym for `<div class={{{[function[macro]]}}}/>`. 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|

View File

@@ -1,13 +1,9 @@
created: 20230421020225031
modified: 20230422144812613
modified: 20230726145912019
tags:
title: Variable Usage
type: text/vnd.tiddlywiki
\define m1(a1) $a1$ - <<__a1__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) "$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
</$let>
!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 `<<macro>>` 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 (`<<macro>>`) 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: `<div class=<<macro>>/>`|\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 `<div class=<<macro>>/>`, it is a synonym for `<div class={{{[function[macro]]}}}/>`. 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: `[<macro>]`|\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 `<<a1>>` 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__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
```
| !Variable transclusion|!output |
| `<<m1 foo>>`|<<m1 foo>>|
| `<<p1 foo>>`|<<p1 foo>>|
| `<<f1 foo>>`|<<f1 foo>>|
| !Widget attribute|!output |
| `<$text text=<<m1 foo>>/>`|<$text text=<<m1 foo>>/>|
| `<$text text=<<p1 foo>>/>`|<$text text=<<p1 foo>>/>|
| `<$text text=<<f1 foo>>/>`|<$text text=<<f1 foo>>/>|
| !Filter operator parameter|!output |
| `[<m1 foo>]`|<$text text={{{[<m1 foo>]}}}/>|
| `[<p1 foo>]`|<$text text={{{[<p1 foo>]}}}/>|
| `[<f1 foo>]`|<$text text={{{[<f1 foo>]}}}/>|
| !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

View File

@@ -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)]]

View File

@@ -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!
</$button>'/>

View File

@@ -1,5 +1,5 @@
created: 20221007144237585
modified: 20230419103154328
modified: 20230921180332436
tags: Concepts Reference
title: Custom Widgets
type: text/vnd.tiddlywiki
@@ -22,6 +22,8 @@ This is the widget, and the attribute is <<attribute>>.
The name of the widget must start with a dollar sign. If it is a user defined widget that does not override an existing widget then it must include at least one period (dot) within the name (for example `$my.widget` or `$acme.logger`).
Note that the [[Pragma: \whitespace]] setting is inherited from the parsing context in which the procedure definition occurs. That means that a tiddler containing multiple procedure definitions only needs a single whitespace pragma at the top of the tiddler, and the setting will be automatically inherited by the procedure definitions without needing the pragma to be repeated.
!! Using Custom Widgets
Custom widgets are called in the same way as ordinary built-in widgets:

View File

@@ -20,7 +20,7 @@ The content of the <<.wid genesis>> widget is used as the content of the dynamic
|$mode |An optional override of the parsing mode. May be "inline" or "block" |
|//{other attributes starting with $}// |Other attributes starting with a single dollar sign are reserved for future use |
|//{attributes starting with $$}// |Attributes starting with two dollar signs are applied as attributes to the output widget, but with the attribute name changed to use a single dollar sign |
|//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget |
|//{attributes not starting with $}// |Any other attributes that do not start with a dollar are applied as attributes to the output widget or HTML Element |
<<.from-version "5.2.6">> If the `$type` attribute is missing or blank, the <<.wlink GenesisWidget>> widget does not render an intrinsic element, instead just rendering its children.

View File

@@ -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.

View File

@@ -18,11 +18,11 @@ Transclusion is the underlying mechanism for many higher level wikitext features
Here is a complete example showing the important features of the <<.wlink TranscludeWidget>> widget:
```
\procedure mymacro(name,age)
\procedure myproc(name,age)
My name is <<name>> and my age is <<age>>.
\end
<$transclude $variable="mymacro" name="James" age="19"/>
<$transclude $variable="myproc" name="James" age="19"/>
```
* `\procedure` defines a variable as a procedure with two parameters, ''name'' and ''age''

View File

@@ -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
</$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
</$button>
"""/>
---
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.

View File

@@ -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.
<<wikitext-example src:"@@some highlighted text@@">>
<<wikitext-example src:"@@Highlighted text@@">>
Style attributes, e.g. `color`, each followed by `;` semicolon can be introduced immediately after the opening `@@`.
!! Styles
<<wikitext-example src:"@@color:steelblue;background-color:lightcyan;some styled text@@">>
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:
<<wikitext-example src:"@@color:steelblue;background-color:lightcyan;Text with custom style@@">>
Similarly, styles can be applied to //block content//. Wrapping block content in `@@` without specifying style or class has no effect.
<<wikitext-example src:"@@background-color:lightcyan;
* Item one
@@ -23,18 +25,49 @@ Similarly a style can be applied to a multiline content:
@@
">>
A class may be applied to a multiline content only:
!! Classes
<<wikitext-example src:"@@.tc-double-spaced-list
* Item one
* Item two
The following `coloured-text` and `coloured-bg` classes are defined in this tiddler for demonstration purposes:
```
.coloured-text {color: darkkhaki;}
.coloured-bg {background-color: cornsilk;}
```
<style>
.coloured-text {color: darkkhaki;}
.coloured-bg {background-color: cornsilk;}
</style>
Multiple classes, each prefixed with `.`, can be introduced immediately after the opening `@@`, followed by a ` ` space. This works both for inline and block content:
<<wikitext-example src:"@@.coloured-text.coloured-bg Inline content with two assigned classes@@">>
<<wikitext-example src:"@@.coloured-bg
* Block content
* With one assigned class
@@">>
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.
<<wikitext-example src:"@@.tc-double-spaced-list
@@width:400px;background-color:lightcyan;
* Item one
* Item two
@@
">>
<<wikitext-example src:"@@font-size:1.5em;.coloured-text.coloured-bg Text with custom style and 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 `@@`:
<<wikitext-example src:"@@font-size:1.5em;
@@.coloured-text
@@.coloured-bg
* Block content
* With custom style and classes
@@">>
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.
<<wikitext-example src:"!!!.coloured-bg Heading with a custom background class.
* Standard list element.
*.coloured-bg List element with a custom background colour class.
*.coloured-text List element with a custom text colour class.
*.coloured-bg.coloured-text List element with both of the custom classes.
">>

View File

@@ -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
...
</div>
```
<<.warning "The text from the definition of the macro will be retrieved and text substitution will be performed (i.e. <<.param $param$>> and <<.param &#36;(...)&#36;>> 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.">>
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}}

View File

@@ -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><h1><$text text=<<currentTiddler>>/></h1></$link>
<$transclude mode="block"/>
</$list>

View File

@@ -20,6 +20,7 @@ Note that widgets inherit all the features of [[HTML in WikiText]]:
** Macro invocations (eg `attr=<<myMacro>>`)
** 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

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