1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-22 10:54:46 +00:00

Compare commits

...

55 Commits

Author SHA1 Message Date
jeremy@jermolene.com
97bc9039e6 Version number update for 5.2.6 2023-03-20 18:51:07 +00:00
jeremy@jermolene.com
e6149e7e29 Update readme for v5.2.6 2023-03-20 18:50:30 +00:00
jeremy@jermolene.com
e47f038d2a Preparing for release of v5.2.6 2023-03-20 18:48:56 +00:00
jeremy@jermolene.com
2789bc8ef6 Update release note to add banner competition information 2023-03-20 18:44:43 +00:00
jeremy@jermolene.com
3a2831870b Remove peace symbol from new release banner
Our code of conduct declares that TiddlyWiki does not espouse any political statements.
2023-03-20 18:32:59 +00:00
jeremy@jermolene.com
4cddfa228b New release banner for v5.2.6
See competition at https://talk.tiddlywiki.org/t/vote-for-the-tiddlywiki-banner-v5-2-6/6469
2023-03-20 18:28:07 +00:00
jeremy@jermolene.com
da1825e6c5 Update release note 2023-03-20 15:10:38 +00:00
jeremy@jermolene.com
4ae2d8422b Revert to original icon for "dirty" version of save wiki icon
This restores the circle-in-a-circle image first introduced in #7232
2023-03-20 14:58:33 +00:00
jeremy@jermolene.com
c9e1b91099 Simplify save wiki button dirty state
Thanks to Thomas_Chuffart at https://talk.tiddlywiki.org/t/now-is-the-time-to-help-with-testing-the-tiddlywiki-v5-2-6-prerelease/6405/66

Addendum to #7232
2023-03-18 16:02:55 +00:00
jeremy@jermolene.com
95f987544c Update save wiki "dirty" state icon
See https://talk.tiddlywiki.org/t/now-is-the-time-to-help-with-testing-the-tiddlywiki-v5-2-6-prerelease/6405/60

Addendum to #7232
2023-03-14 14:50:52 +00:00
jeremy@jermolene.com
308e207a67 Remove reference to #7297 from release note 2023-03-12 17:03:19 +00:00
jeremy@jermolene.com
aa5a6627e6 Revert "Use sticky flag to improve regexp search performance (#7297)"
This reverts commit e313857822.
2023-03-12 17:02:16 +00:00
Mario Pietsch
6f038e362e External-js: fix index.html overwrites external wiki (#7356) 2023-03-12 16:49:15 +00:00
jeremy@jermolene.com
95a9c0bd54 Merge branch 'tiddlywiki-com' 2023-03-12 16:19:22 +00:00
jeremy@jermolene.com
0a20c08107 Fix Typo
Thanks @timp
2023-03-12 15:49:37 +00:00
jeremy@jermolene.com
964993f879 New-here: Fix unwanted double braces around tags specified in $:/config/NewTiddler/Tags
Fixes #7354
2023-03-11 11:13:35 +00:00
yaisog
e6175227b2 Add another example for the get operator (#7351) 2023-03-10 15:57:51 +00:00
jeremy@jermolene.com
f247686970 Remove "const" accidentally included in #7290
See #7350
2023-03-10 12:32:52 +00:00
jeremy@jermolene.com
589813f233 Improved fix for #7270 2023-03-10 09:41:36 +00:00
jeremy@jermolene.com
007b759421 Undefined variables in let widget: Revert fix for #7270
Reverts 8c378e0d24 and adds a test
2023-03-10 09:41:18 +00:00
yaisog
714587cdfc Improve documentation for get and getindex - Update descriptions and examples (#7349) 2023-03-10 08:48:28 +00:00
Michelle Saad
d8c2ab3baf Sign CLA (#7342) 2023-03-08 18:16:48 +00:00
jeremy@jermolene.com
b16d695386 Update release note 2023-03-08 08:53:02 +00:00
yaisog
2bac676ac4 Docs: Align description with example (#7339) 2023-03-07 21:51:52 +00:00
Mario Pietsch
ba01d06962 German Translation: fix some typos and add missing tiddlers (#7337) 2023-03-07 08:56:41 +00:00
yaisog
6732d96f78 Add a description and examples for "strict" results from getindex (#7333)
* Add a description and examples for "strict" results

* Add another example

* Amend description of output with suffix "index"
2023-03-06 16:14:08 +00:00
Mario Pietsch
416a2fae7a Add syntax docs to railroad plugin (#7334) 2023-03-06 16:12:26 +00:00
jeremy@jermolene.com
2ce14ac8f9 Remove erroneously committed storylist tiddler 2023-03-05 18:05:25 +00:00
jeremy@jermolene.com
3764ca4760 Update release note 2023-03-05 17:59:32 +00:00
jeremy@jermolene.com
3f478f5689 Naming tweak to #6047
@linonetwo I realised on review that we refer to boot.files as the "tiddler file info"
2023-03-05 17:40:04 +00:00
cdruan
f9604c40d3 Add wikiparser.js dependency (#7330) 2023-03-05 10:34:41 +00:00
Jeremy Ruston
11ffc83493 Introduce new levenshtein, makepatches, applypatches operators (#7290)
* Initial Commit

* Fix crash with invalid patches

See https://github.com/Jermolene/TiddlyWiki5/pull/7290#issuecomment-1453155311

Thanks @yaisog

* Add words and lines options to makepatches (#7326)

* Prevent infinite loop for single-word texts (#7327)

* Add docs and examples for the new operators (#7328)

* Create makepatches Operator.tid

* Improve wording

* Doc and examples for the new operators

---------

Co-authored-by: yaisog <m@rcuswinter.de>
2023-03-04 21:16:26 +00:00
jeremy@jermolene.com
f343198353 Merge branch 'tiddlywiki-com' 2023-03-04 20:42:22 +00:00
yaisog
1946f173a9 Update ActionListopsWidget documentation including notes on de-duplication (#7301)
* Changed headings under Content

Made them H2 and changed the wording a bit.

* Move the list of filters to another tiddler

There is a tiddler for Extended Listops Filters, and the list should go there, so that the Widget tiddler does not get too overcrowded.

* Rework comparison to ActionSetFieldWidget

* Add notes on de-duplication

* Update link to Extended Listops Filters

* Updated link to Extended Listops Filters

* Update link to Extended Listops Filters

Duh. This was the most important one.

* Remove repeated links to widgets within one section

* Re-create original tiddler with a redirect notice

* Excised the examples into a separate tiddler

Also created an "examples" subdirectory under tw5.com/tiddlers/widgets.
2023-03-04 11:48:14 +00:00
hffqyd
7d7ac662a2 Saving via a Minimal Web Server (#7315)
A standalone mini web server enables support tiddlywiki as well as upload files/images, for use like `[img[images/uploaded.jpg]]`.
2023-03-03 22:02:15 +00:00
hffqyd
3627ad1d28 Signing the CLA (#7316) 2023-03-03 21:58:13 +00:00
Mario Pietsch
b16ed6629d Docs: Improve Formatting in Wikitext (#7320)
* improve Formatting in Wikitext

* formatting add more info about semantic meaning

* back to 1 tiddler Formatting in Wikitext

* single backtics are used for code - fix typo
2023-03-03 21:57:21 +00:00
lin onetwo
d14e775b90 Allow deleteTiddler to not modify fs (#6047)
* feat: allow deleteTiddler to not modify fs

* refactor: add new function that merely delete file in cache, and let old func calls it

* fix: self is undefined
2023-03-03 21:56:40 +00:00
Mario Pietsch
d4b10605c3 improve WikiText docs add a Markdown tiddler (#7319)
* improve WikiText docs add a Markdown tiddler

* remove Elements heading as requested
2023-03-03 21:51:01 +00:00
Mario Pietsch
7f1064d14b Add dollar sign to HTML entities (#7323) 2023-03-03 21:34:30 +00:00
Mario Pietsch
867d647839 Move fourcolumns CSS class as multicolumns to tw5-styles for reuse (#7318) 2023-03-03 21:25:12 +00:00
Mario Pietsch
8c39c9e911 Docs: Add HTML Entities to WikiText info (#7321) 2023-03-03 20:25:28 +00:00
Bram Chen
c0ce53e3ea Update chinese language files (#7310)
* Add chinese translation for the text of `Error/ZoominTextNode` in Misc.multids
2023-03-02 08:40:11 +00:00
Maurycy Zarzycki
3a9f848ea0 Report ZoomIn issues when using tiddler template that starts with a text node (#7007)
* add alert when zoomin error occurs plus protection to avoid TW getting stuck when it happens

* Reverted additional logging and made the zoomin just silently and safely ignore the issue
2023-03-01 16:18:41 +00:00
Saq Imtiaz
5bce35d90b Fix: add twEditor attribute to paste events handled by codemirror (#7281) 2023-02-28 08:35:15 +00:00
lin onetwo
8d39ce95eb FieldIndexer performance: use isShadowTiddler instead of allTitles (#7299)
* feat: use `isShadowTiddler` insteadof `allTitles`

* fix: use `tiddlerExists` instead
2023-02-27 17:32:20 +00:00
Jeremy Ruston
e313857822 Use sticky flag to improve regexp search performance (#7297) 2023-02-27 15:12:07 +00:00
Maurycy Zarzycki
ce988f909a Add PL translations to strings introduce in 7b7063a7b2 (#7300) 2023-02-27 15:03:03 +00:00
yaisog
ba2c9f44b0 Make some cosmetic changes to the DateFormat and Date Fields documentation (#7295)
* Add description of field date format

* Add description of field date format and improvements

Due to the re-creation of the PR all changes to this file got mushed together.
2023-02-27 09:24:36 +00:00
btheado
6479c26b59 Removes datauri triggered save instructions modal (#7296)
* Do not trigger a save instructions modal when viewing through data uri

* Removed all instances of the no longer used SaveInstructions tiddler
2023-02-26 21:42:10 +00:00
Jeremy Ruston
2271f6885a Add focusSelectFromStart/focusSelectFromEnd attributes to <$edit-text> widget (#7222)
* Initial commit

* WIP

* Align implementation with @yaisog's suggestion

See https://github.com/Jermolene/TiddlyWiki5/pull/7222#issuecomment-1410194593

* Commit missing from 3262b8d77d

Thanks @pmario

* Fix version number

Thanks @yaisog

* Add two examples for text selection (#7286)

---------

Co-authored-by: yaisog <m@rcuswinter.de>
2023-02-25 18:25:46 +00:00
andrigamerita
cf25dae8a7 Signing the CLA (#7287) 2023-02-24 16:50:49 +00:00
Mateusz Wilczek
55124b4ee6 Improve documentation of WikiText formatting (#7272)
* Improve 'Formatting in WikiText.tid'

Add highlight formatting example.
Simplify code formatting example to be single line without nested list.
Improve bold, italic, and underscore formatting examples to be consistent with others.

* Improve 'Styles and Classes in WikiText.tid'

Add more examples, including the default highlight styling when no style or class is defined, as introduced in #6877
2023-02-17 19:14:21 +01:00
Mateusz Wilczek
fb99d3050e Sign the CLA (#7271)
Mateusz Wilczek, @mateuszwilczek, 2023/02/16
2023-02-17 10:09:45 +01:00
TonyM
8567c48be8 Update BrowseWidget.tid (#7231)
* Update BrowseWidget.tid

Made sure all references to use of the `<$browse>` widget were changed to `<$browse/>`

Which possibly caused this problem, now closed https://github.com/Jermolene/TiddlyWiki5/issues/7223

If not closed other widgets may work

* To documentation standard

Replaced `The content of the `<$browse>` widget is ignored.`
`The content of the <<.wid BrowseWidget>> widget is ignored.`
To restore documentation standards as per   @Jermolene
2023-02-03 19:25:23 +00:00
104 changed files with 1496 additions and 917 deletions

View File

@@ -40,6 +40,7 @@ Error/RetrievingSkinny: Error retrieving skinny tiddler list
Error/SavingToTWEdit: Error saving to TWEdit
Error/WhileSaving: Error while saving
Error/XMLHttpRequest: XMLHttpRequest error code
Error/ZoominTextNode: Story View Error: It appears you tried to interact with a tiddler that displays in a custom container. This is most likely caused by using `$:/tags/StoryTiddlerTemplateFilter` with a template that contains text or whitespace at the start. Please use the pragma `\whitespace trim` and ensure the whole contents of the tiddler is wrapped in a single HTML element. The text that caused this issue:
InternalJavaScriptError/Title: Internal JavaScript Error
InternalJavaScriptError/Hint: Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser
LayoutSwitcher/Description: Open the layout switcher

View File

@@ -1,21 +0,0 @@
title: $:/language/Modals/SaveInstructions
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.
!!! Desktop browsers
# Select ''Save As'' from the ''File'' menu
# Choose a filename and location
#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar
# Close this tab
!!! Smartphone browsers
# Create a bookmark to this page
#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above
# Close this tab
//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//

View File

@@ -30,7 +30,7 @@ exports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + "+" +
exports.textPrimitives.upperLetter +
exports.textPrimitives.anyLetter + "*";
exports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };
exports.htmlEntities = {quot:34, dollar:36, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };
exports.htmlVoidElements = "area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr".split(",");

View File

@@ -177,9 +177,11 @@ FramedEngine.prototype.fixHeight = function() {
Focus the engine node
*/
FramedEngine.prototype.focus = function() {
if(this.domNode.focus && this.domNode.select) {
if(this.domNode.focus) {
this.domNode.focus();
this.domNode.select();
}
if(this.domNode.select) {
$tw.utils.setSelectionByPosition(this.domNode,this.widget.editFocusSelectFromStart,this.widget.editFocusSelectFromEnd);
}
};

View File

@@ -119,10 +119,12 @@ SimpleEngine.prototype.fixHeight = function() {
/*
Focus the engine node
*/
SimpleEngine.prototype.focus = function() {
if(this.domNode.focus && this.domNode.select) {
SimpleEngine.prototype.focus = function() {
if(this.domNode.focus) {
this.domNode.focus();
this.domNode.select();
}
if(this.domNode.select) {
$tw.utils.setSelectionByPosition(this.domNode,this.widget.editFocusSelectFromStart,this.widget.editFocusSelectFromEnd);
}
};

View File

@@ -180,6 +180,8 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
this.editMinHeight = this.getAttribute("minHeight",DEFAULT_MIN_TEXT_AREA_HEIGHT);
this.editFocusPopup = this.getAttribute("focusPopup");
this.editFocus = this.getAttribute("focus");
this.editFocusSelectFromStart = $tw.utils.parseNumber(this.getAttribute("focusSelectFromStart","0"));
this.editFocusSelectFromEnd = $tw.utils.parseNumber(this.getAttribute("focusSelectFromEnd","0"));
this.editTabIndex = this.getAttribute("tabindex");
this.editCancelPopups = this.getAttribute("cancelPopups","") === "yes";
this.editInputActions = this.getAttribute("inputActions");

View File

@@ -74,6 +74,113 @@ exports.join = makeStringReducingOperator(
},null
);
var dmp = require("$:/core/modules/utils/diff-match-patch/diff_match_patch.js");
exports.levenshtein = makeStringBinaryOperator(
function(a,b) {
var dmpObject = new dmp.diff_match_patch(),
diffs = dmpObject.diff_main(a,b);
return [dmpObject.diff_levenshtein(diffs) + ""];
}
);
// these two functions are adapted from https://github.com/google/diff-match-patch/wiki/Line-or-Word-Diffs
function diffLineWordMode(text1,text2,mode) {
var dmpObject = new dmp.diff_match_patch();
var a = diffPartsToChars(text1,text2,mode);
var lineText1 = a.chars1;
var lineText2 = a.chars2;
var lineArray = a.lineArray;
var diffs = dmpObject.diff_main(lineText1,lineText2,false);
dmpObject.diff_charsToLines_(diffs,lineArray);
return diffs;
}
function diffPartsToChars(text1,text2,mode) {
var lineArray = [];
var lineHash = {};
lineArray[0] = '';
function diff_linesToPartsMunge_(text,mode) {
var chars = '';
var lineStart = 0;
var lineEnd = -1;
var lineArrayLength = lineArray.length,
regexpResult;
var searchRegexp = /\W+/g;
while(lineEnd < text.length - 1) {
if(mode === "words") {
regexpResult = searchRegexp.exec(text);
lineEnd = searchRegexp.lastIndex;
if(regexpResult === null) {
lineEnd = text.length;
}
lineEnd = --lineEnd;
} else {
lineEnd = text.indexOf('\n', lineStart);
if(lineEnd == -1) {
lineEnd = text.length - 1;
}
}
var line = text.substring(lineStart, lineEnd + 1);
if(lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) : (lineHash[line] !== undefined)) {
chars += String.fromCharCode(lineHash[line]);
} else {
if (lineArrayLength == maxLines) {
line = text.substring(lineStart);
lineEnd = text.length;
}
chars += String.fromCharCode(lineArrayLength);
lineHash[line] = lineArrayLength;
lineArray[lineArrayLength++] = line;
}
lineStart = lineEnd + 1;
}
return chars;
}
var maxLines = 40000;
var chars1 = diff_linesToPartsMunge_(text1,mode);
maxLines = 65535;
var chars2 = diff_linesToPartsMunge_(text2,mode);
return {chars1: chars1, chars2: chars2, lineArray: lineArray};
};
exports.makepatches = function(source,operator,options) {
var dmpObject = new dmp.diff_match_patch(),
suffix = operator.suffix || "",
result = [];
source(function(tiddler,title) {
var diffs, patches;
if(suffix === "lines" || suffix === "words") {
diffs = diffLineWordMode(title,operator.operand,suffix);
patches = dmpObject.patch_make(title,diffs);
} else {
patches = dmpObject.patch_make(title,operator.operand);
}
Array.prototype.push.apply(result,[dmpObject.patch_toText(patches)]);
});
return result;
};
exports.applypatches = makeStringBinaryOperator(
function(a,b) {
var dmpObject = new dmp.diff_match_patch(),
patches;
try {
patches = dmpObject.patch_fromText(b);
} catch(e) {
}
if(patches) {
return [dmpObject.patch_apply(patches,a)[0]];
} else {
return [a];
}
}
);
function makeStringBinaryOperator(fnCalc) {
return function(source,operator,options) {
var result = [];
@@ -184,4 +291,4 @@ exports.charcode = function(source,operator,options) {
return [chars.join("")];
};
})();
})();

View File

@@ -32,18 +32,18 @@ FieldIndexer.prototype.setMaxIndexedValueLength = function(length) {
FieldIndexer.prototype.addIndexMethods = function() {
var self = this;
// get all tiddlers, including those overwrite shadow tiddlers
this.wiki.each.byField = function(name,value) {
var titles = self.wiki.allTitles(),
lookup = self.lookup(name,value);
var lookup = self.lookup(name,value);
return lookup && lookup.filter(function(title) {
return titles.indexOf(title) !== -1;
return self.wiki.tiddlerExists(title)
});
};
// get shadow tiddlers, including shadow tiddlers that is overwritten
this.wiki.eachShadow.byField = function(name,value) {
var titles = self.wiki.allShadowTitles(),
lookup = self.lookup(name,value);
var lookup = self.lookup(name,value);
return lookup && lookup.filter(function(title) {
return titles.indexOf(title) !== -1;
return self.wiki.isShadowTiddler(title)
});
};
this.wiki.eachTiddlerPlusShadows.byField = function(name,value) {

View File

@@ -87,13 +87,6 @@ exports.startup = function() {
}
});
}
// If we're being viewed on a data: URI then give instructions for how to save
if(document.location.protocol === "data:") {
$tw.rootWidget.dispatchEvent({
type: "tm-modal",
param: "$:/language/Modals/SaveInstructions"
});
}
};
})();

View File

@@ -17,6 +17,10 @@ var easing = "cubic-bezier(0.645, 0.045, 0.355, 1)"; // From http://easings.net/
var ZoominListView = function(listWidget) {
var self = this;
this.listWidget = listWidget;
this.textNodeLogger = new $tw.utils.Logger("zoomin story river view", {
enable: true,
colour: 'red'
});
// Get the index of the tiddler that is at the top of the history
var history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),
targetTiddler;
@@ -48,7 +52,10 @@ ZoominListView.prototype.navigateTo = function(historyInfo) {
var listItemWidget = this.listWidget.children[listElementIndex],
targetElement = listItemWidget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {
if(!targetElement) {
return;
} else if (targetElement.nodeType === Node.TEXT_NODE) {
this.logTextNodeRoot(targetElement);
return;
}
// Make the new tiddler be position absolute and visible so that we can measure it
@@ -130,7 +137,10 @@ function findTitleDomNode(widget,targetClass) {
ZoominListView.prototype.insert = function(widget) {
var targetElement = widget.findFirstDomNode();
// Abandon if the list entry isn't a DOM element (it might be a text node)
if(!targetElement || targetElement.nodeType === Node.TEXT_NODE) {
if(!targetElement) {
return;
} else if (targetElement.nodeType === Node.TEXT_NODE) {
this.logTextNodeRoot(targetElement);
return;
}
// Make the newly inserted node position absolute and hidden
@@ -173,16 +183,21 @@ ZoominListView.prototype.remove = function(widget) {
var toWidgetDomNode = toWidget && toWidget.findFirstDomNode();
// Set up the tiddler we're moving back in
if(toWidgetDomNode) {
$tw.utils.addClass(toWidgetDomNode,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(toWidgetDomNode,[
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(10)"},
{transition: $tw.utils.roundTripPropertyName("transform") + " " + duration + "ms " + easing + ", opacity " + duration + "ms " + easing},
{opacity: "0"},
{zIndex: "500"}
]);
this.currentTiddlerDomNode = toWidgetDomNode;
if (toWidgetDomNode.nodeType === Node.TEXT_NODE) {
this.logTextNodeRoot(toWidgetDomNode);
toWidgetDomNode = null;
} else {
$tw.utils.addClass(toWidgetDomNode,"tc-storyview-zoomin-tiddler");
$tw.utils.setStyle(toWidgetDomNode,[
{display: "block"},
{transformOrigin: "50% 50%"},
{transform: "translateX(0px) translateY(0px) scale(10)"},
{transition: $tw.utils.roundTripPropertyName("transform") + " " + duration + "ms " + easing + ", opacity " + duration + "ms " + easing},
{opacity: "0"},
{zIndex: "500"}
]);
this.currentTiddlerDomNode = toWidgetDomNode;
}
}
// Animate them both
// Force layout
@@ -206,6 +221,10 @@ ZoominListView.prototype.remove = function(widget) {
return true; // Indicate that we'll delete the DOM node
};
ZoominListView.prototype.logTextNodeRoot = function(node) {
this.textNodeLogger.log($tw.language.getString("Error/ZoominTextNode") + " " + node.textContent);
};
exports.zoomin = ZoominListView;
})();

View File

@@ -28,6 +28,24 @@ exports.domMatchesSelector = function(node,selector) {
return node.matches ? node.matches(selector) : node.msMatchesSelector(selector);
};
/*
Select text in a an input or textarea (setSelectionRange crashes on certain input types)
*/
exports.setSelectionRangeSafe = function(node,start,end,direction) {
try {
node.setSelectionRange(start,end,direction);
} catch(e) {
node.select();
}
};
/*
Select the text in an input or textarea by position
*/
exports.setSelectionByPosition = function(node,selectFromStart,selectFromEnd) {
$tw.utils.setSelectionRangeSafe(node,selectFromStart,node.value.length - selectFromEnd);
};
exports.removeChildren = function(node) {
while(node.hasChildNodes()) {
node.removeChild(node.firstChild);

View File

@@ -259,7 +259,7 @@ DropZoneWidget.prototype.handlePasteEvent = function(event) {
}
};
// Let the browser handle it if we're in a textarea or input box
if(["TEXTAREA","INPUT"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {
if(["TEXTAREA","INPUT"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable && !event.twEditor) {
var self = this,
items = event.clipboardData.items;
// Enumerate the clipboard items

View File

@@ -53,7 +53,9 @@ LetWidget.prototype.computeAttributes = function() {
name = attribute.name;
// Now that it's prepped, we're allowed to look this variable up
// when defining later variables
self.currentValueFor[name] = value;
if(value !== undefined) {
self.currentValueFor[name] = value;
}
});
// Run through again, setting variables and looking for differences
$tw.utils.each(this.currentValueFor,function(value,name) {
@@ -74,9 +76,7 @@ LetWidget.prototype.getVariableInfo = function(name,options) {
text: this.currentValueFor[name]
};
}
return Widget.prototype.getVariableInfo.call(this,name,$tw.utils.extend(Object.create(null),options,{
defaultValue: ""
}));
return Widget.prototype.getVariableInfo.call(this,name,options);
};
/*

View File

@@ -6,7 +6,7 @@ description: {{$:/language/Buttons/NewHere/Hint}}
\whitespace trim
\define newHereActions()
\whitespace trim
<$set name="tags" filter="[<currentTiddler>] [{$:/config/NewTiddler/Tags}]">
<$set name="tags" filter="[<currentTiddler>] [enlist{$:/config/NewTiddler/Tags}]">
<$action-sendmessage $message="tm-new-tiddler" tags=<<tags>>/>
</$set>
\end

View File

@@ -1,11 +1,11 @@
created: 20140923173639039
creator: pmario
modified: 20140924155046340
modified: 20230307080008193
modifier: pmario
title: TaskManagement
type: text/vnd.tiddlywiki
In dieser Edition sind folgende Task Management Varianten beschreiben:
In dieser Edition sind folgende Task Management Varianten beschrieben:
<<list-links filter:"[tag[TaskManagement]]">>

View File

@@ -2,7 +2,7 @@ color: #37d011
created: 20140923104300415
creator: pmario
icon: $:/core/images/done-button
modified: 20140923105208878
modified: 20230307080039831
modifier: ChrisK
tags: done
title: done
@@ -12,5 +12,5 @@ Diese Tag wird verwendet um "Tasks" als erledigt zu markieren.
Siehe auch:
* [[Task Management]] .. Beispiel
* [[Task Management|TaskManagement]] .. Beispiel
* [[Tag Manager|$:/TagManager]] .. Zuweisung der Farben und Symbole

View File

@@ -0,0 +1,6 @@
created: 20230307080413903
modified: 20230307080417122
title: Importieren von Tiddlern
type: text/vnd.tiddlywiki
https://tiddlywiki.com/#Importing%20Tiddlers

View File

@@ -1,11 +1,11 @@
created: 20140918094051245
creator: pmario
modified: 20140918094948642
modified: 20230307080301079
modifier: pmario
tags: Referenz
title: Liste aller HowTo's
type: text/vnd.tiddlywiki
Hier finden Sie eine Auflistung aller HowTo's
Hier finden Sie eine Auflistung aller ~HowTo's
<<list-links "[tag[howto]]">>

View File

@@ -0,0 +1,6 @@
created: 20230307081437974
modified: 20230307081439303
title: Tagging
type: text/vnd.tiddlywiki
https://tiddlywiki.com/#Tagging

View File

@@ -0,0 +1,6 @@
created: 20230307080103029
modified: 20230307080103029
title: $:/themes/tiddlywiki/vanilla/options/sidebarlayout
type: text/vnd.tiddlywiki
fluid-fixed

View File

@@ -0,0 +1,7 @@
created: 20230307081923415
modified: 20230307081953759
tags: Widgets
title: ListWidget
type: text/vnd.tiddlywiki
https://tiddlywiki.com/#ListWidget

View File

@@ -0,0 +1,7 @@
created: 20230307082002353
modified: 20230307082023207
tags: Widgets
title: TranscludeWidget
type: text/vnd.tiddlywiki
https://tiddlywiki.com/#TranscludeWidget

View File

@@ -1,7 +1,7 @@
caption: Bilder
created: 20131205160221762
creator: pmario
modified: 20140921170652909
modified: 20230307081713229
modifier: pmario
tags: WikiText
title: Bilder in WikiText
@@ -25,7 +25,7 @@ oder
Wenn die Bildquelle der Titel eines existierenden Tiddlers ist, dann wird dieser direkt angezeigt. Ansonsten wird die Quelle als URL angesehen und ein HTML `<img>` Element wird erzeugt. Das `src` Attribut wird auf die [[URL]] gesetzt.
Ein [[Tooltip]] kann ebenfalls angegeben werden:
Ein Tooltip kann ebenfalls angegeben werden:
```
[img[Ich bin der Tooltip text|Motovun Jack.jpg]]
@@ -33,7 +33,7 @@ Ein [[Tooltip]] kann ebenfalls angegeben werden:
[img width=100 [Ich bin der Tooltip text|Motovun Jack.jpg]]
Attribute wie zB: CSS Klassen oder die Höhe und Breite können ebenfalls angegeben werden.
Attribute wie z.B: CSS Klassen oder die Höhe und Breite können ebenfalls angegeben werden.
```
[img width=64 [Motovun Jack.jpg]]

View File

@@ -1,7 +1,7 @@
caption: Makros
created: 20131205160746466
creator: pmario
modified: 20140922124415476
modified: 20230307080132949
modifier: ChrisK
tags: WikiText
title: Makros in WikiText
@@ -15,7 +15,7 @@ Hallo, Ich bin $name$ und lebe in $adresse$
Hallo, Ich bin $name$ und würde gerne mal wieder nach $adresse$ fahren:)
\end
!! Makros Definieren
!! Makros definieren
!!! Für die Ungeduldigen
@@ -76,7 +76,7 @@ Für einzeilige Makros kann die `\end` Markierung entfallen!
* Makros können mit dem ImportVariablesWidget importiert werden. (Für geübte Anwender)
!! Makros Verwenden
!! Makros verwenden
```
<<meinErstesMakro>>

View File

@@ -0,0 +1,7 @@
created: 20230307081757660
modified: 20230307081814992
tags: WikiText
title: Transclusion in WikiText
type: text/vnd.tiddlywiki
https://tiddlywiki.com/#Transclusion%20in%20WikiText

View File

@@ -1,5 +0,0 @@
created: 20201222190149806
list: [[Release 5.1.23]]
modified: 20201222190149806
title: $:/StoryList
type: text/vnd.tiddlywiki

View File

@@ -0,0 +1,60 @@
caption: 5.2.7
created: 20230320184352916
modified: 20230320184352916
tags: ReleaseNotes
title: Release 5.2.7
type: text/vnd.tiddlywiki
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.6...master]]//
! Major Improvements
! Translation Improvements
Improvements to the following translations:
*
! Plugin Improvements
*
! Accessibility Improvements
*
! Usability Improvements
*
! Widget Improvements
*
! Filter improvements
*
! Hackability Improvements
*
! Bug Fixes
*
! Node.js Improvements
*
! Performance 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 """
""">>

View File

@@ -0,0 +1,28 @@
title: Filters/DiffMergePatch1
description: Tests for diff-merge-patch derived operators
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\whitespace trim
\define text1()
the cat sat on the mat
\end
\define text2()
the hat saw in every category
\end
<$text text={{{ [<text1>makepatches<text2>] }}}/>
+
title: ExpectedResult
<p>@@ -1,22 +1,29 @@
the
-c
+h
at sa
-t on the mat
+w in every category
</p>

View File

@@ -0,0 +1,25 @@
title: Filters/DiffMergePatch2
description: Tests for diff-merge-patch derived operators
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\whitespace trim
\define text1()
the cat sat on the mat
\end
\define text2()
the hat saw in every category
\end
<$let patches={{{ [<text1>makepatches<text2>] }}}>
<$text text={{{ [<text1>applypatches<patches>] }}}/>
</$let>
+
title: ExpectedResult
the hat saw in every category

View File

@@ -0,0 +1,22 @@
title: Filters/DiffMergePatch3
description: Tests for diff-merge-patch derived operators
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\whitespace trim
\define text1()
the cat sat on the mat
\end
\define patches()
**NOT A VALID PATCH**
\end
<$text text={{{ [<text1>applypatches<patches>] }}}/>
+
title: ExpectedResult
the cat sat on the mat

View File

@@ -0,0 +1,15 @@
title: Widgets/LetWidgetSelfReferences
description: Test let widget self references
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\whitespace trim
<$let default={{{ [[default]is[variable]then[aa]else[bb]] }}} >
<<default>>
</$let>
+
title: ExpectedResult
<p>bb</p>

View File

@@ -0,0 +1,15 @@
title: Widgets/LetWidgetUndefinedVariable
description: Test let widget undefined variable
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
title: Output
\whitespace trim
<$let test1=<<test>> test2={{{ [<test1>] }}}>
<<test2>>
</$let>
+
title: ExpectedResult
<p></p>

View File

@@ -1071,6 +1071,20 @@ Tests the filtering mechanism.
expect(wiki.filterTiddlers("[charcode[9],[10]]").join(" ")).toBe(String.fromCharCode(9) + String.fromCharCode(10));
expect(wiki.filterTiddlers("[charcode[]]").join(" ")).toBe("");
});
it("should handle the levenshtein operator", function() {
expect(wiki.filterTiddlers("[[apple]levenshtein[apple]]").join(" ")).toBe("0");
expect(wiki.filterTiddlers("[[apple]levenshtein[banana]]").join(" ")).toBe("9");
expect(wiki.filterTiddlers("[[representation]levenshtein[misreprehensionisation]]").join(" ")).toBe("10");
expect(wiki.filterTiddlers("[[the cat sat on the mat]levenshtein[the hat saw in every category]]").join(" ")).toBe("13");
});
it("should handle the makepatches operator", function() {
expect(wiki.filterTiddlers("[[apple]makepatches[apple]]").join(" ")).toBe("");
expect(wiki.filterTiddlers("[[apple]makepatches[banana]]").join(" ")).toBe("@@ -1,5 +1,6 @@\n-apple\n+banana\n");
expect(wiki.filterTiddlers("[[representation]makepatches[misreprehensionisation]]").join(" ")).toBe("@@ -1,13 +1,21 @@\n+mis\n repre\n-sent\n+hensionis\n atio\n");
expect(wiki.filterTiddlers("[[the cat sat on the mat]makepatches[the hat saw in every category]]").join(" ")).toBe("@@ -1,22 +1,29 @@\n the \n-c\n+h\n at sa\n-t on the mat\n+w in every category\n");
});
it("should parse filter variable parameters", function(){
expect($tw.utils.parseFilterVariable("currentTiddler")).toEqual(

View File

@@ -1,5 +1,5 @@
created: 20150117190213631
modified: 20201201154211507
modified: 20230226144641763
tags: Concepts
title: Date Fields
type: text/vnd.tiddlywiki
@@ -21,6 +21,8 @@ Values of date fields are 17 or 18-character strings:
To avoid problems arising from differences of time zone, TiddlyWiki always uses [[UTC|https://en.wikipedia.org/wiki/Coordinated_Universal_Time]].
The [[DateFormat]] template for storage of dates in these fields is `[UTC]YYYY0MM0DD0hh0mm0ss0XXX`.
As an example, the <<.field created>> field of this tiddler has the value <<.value """<$view field="created"/>""">>.
Dates can be [[converted to other formats|DateFormat]] for display:

View File

@@ -8,4 +8,4 @@ A JSON tiddler is a [[data tiddler|DataTiddlers]] containing a [[JSON|JavaScript
Its [[ContentType]] is `application/json`.
The [[history list|$:/HistoryList]] is an of a JSON tiddler.
The [[history list|$:/HistoryList]] is an example of a JSON tiddler.

View File

@@ -1,15 +1,15 @@
created: 20131205155227468
modified: 20140919191220377
modified: 20230303214711802
tags: Concepts Reference
title: WikiText
type: text/vnd.tiddlywiki
~WikiText is a concise, expressive way of typing a wide range of text formatting, hypertext and interactive features. It allows you to focus on writing without a complex user interface getting in the way. It is designed to be familiar for users of [[MarkDown|http://daringfireball.net/projects/markdown/]], but with more of a focus on linking and the interactive features.
~WikiText is a concise, expressive way of typing a wide range of text formatting, hypertext and interactive features. It allows you to focus on writing without a complex user interface getting in the way. It is designed to be familiar for users of [[Markdown]] but with more of a focus on linking and the interactive features.
~WikiText can also be inserted to the text field using the [[Editor toolbar]].
~WikiText can also be inserted to the text field using the [[Editor toolbar]] buttons.
See [[Formatting text in TiddlyWiki]] for an introduction to WikiText.
See [[Formatting in WikiText]] and [[Formatting text in TiddlyWiki]] for an introduction to ~WikiText.
The following elements of WikiText syntax are built into the core:
The following elements of ~WikiText syntax are built into the core:
<<list-links "[tag[WikiText]]">>
<<list-links filter:"[tag[WikiText]]" class:"multi-columns">>

View File

@@ -0,0 +1,10 @@
created: 20220727090611178
modified: 20220728191637376
tags: Definitions
title: Markdown
<<<
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
<<<https://daringfireball.net/projects/markdown/
~TiddlyWiki and Markdown share some formatting rules eg: [[inline code|Formatting in WikiText]] and [[code blocks|Code Blocks in WikiText]] but WikiText also offers advanced functions like [[transclusions|Transclusion in WikiText]] and [[macros|Macro Calls in WikiText]]

View File

@@ -1,12 +1,12 @@
created: 20140418142957325
modified: 20221121131150032
modified: 20230226144359284
tags: Features
title: DateFormat
type: text/vnd.tiddlywiki
The default representation of dates is a compact string such as `20211002153802059`. For example, the `created` and `modified` fields are stored like this.
The default representation of dates is a compact string such as <<.value 20211002153802059>>. The associated template is `[UTC]YYYY0MM0DD0hh0mm0ss0XXX`. For example, the <<.field created>> and <<.field modified>> fields are stored like this.
The display format for this string can be controlled with a template. For example, transcluding the `modified` field automatically applies a template to display the date as `Sat Oct 02 2021 17:40:50 GMT+0200 (Central European Summer Time)`. A few widgets and filter operators allow you to manually specify a template, for example the ViewWidget:
The display format for this string can be controlled with a template. For example, transcluding the <<.field modified>> field automatically applies a template to display the date as <<.value "Sat Oct 02 2021 17:40:50 GMT+0200 (Central European Summer Time)">>. A few widgets and filter operators allow you to manually specify a template, for example the ViewWidget:
`<$view field=modified format=date template="DDth mmm YYYY 0hh:0mm:0ss" />`
@@ -52,7 +52,7 @@ The date string is processed with the following substitutions:
Note that other text is passed through unchanged, allowing commas, colons or other separators to be used.
The `{era:BCE||CE}` notation can specify different strings for years that are negative, zero or positive. For example `{era:BC|Z|AD}` would display `BC` for negative years, `AD` for positive years, and `Z` for year zero.
The `{era:BCE||CE}` notation can specify different strings for years that are negative, zero or positive. For example `{era:BC|Z|AD}` would display <<.value BC>> for negative years, <<.value AD>> for positive years, and <<.value Z>> for year zero.
! Examples
@@ -61,7 +61,7 @@ The `{era:BCE||CE}` notation can specify different strings for years that are ne
|`DDth MMM \M\M\M YYYY` |16th February MMM 2011 |
|`DDth mmm YYYY 0hh:0mm:0ss` |16th Feb 2011 11:38:42 |
!! Using `TIMESTAMP` to calculate time difference
!! Using <<.value TIMESTAMP>> to calculate time difference
You can calculate the difference between two dates by doing the following:
@@ -71,8 +71,9 @@ You can calculate the difference between two dates by doing the following:
Here is an example of calculating the number of days that passed between creation and last modification of current tiddler:
* Fields `modified` and `created` contain their respective datetimes in the format `[UTC]YYYY0MM0DD0hh0mm0ssXXX` so convert them to timestamps
* `86400000` is the number of milliseconds in a day (1000 * 60 * 60 * 24)
* Convert the <<.field created>> and <<.field modified>> fields to timestamps
* Divide their difference by <<.value 86400000>> which is the number of milliseconds in a day
** 1000 milliseconds per second × 60 seconds per minute × 60 minutes per hour × 24 hours per day = 86,400,000 milliseconds per day
<$macrocall $name=".example" n="0" eg="""<$let
timestamp-modified={{{ [{!!modified}format:date[TIMESTAMP]] }}}

View File

@@ -0,0 +1,15 @@
caption: applypatches
created: 20230304154824762
modified: 20230304154826621
op-purpose: applies a set of patches to transform the input
op-input: a [[selection of titles|Title Selection]]
op-parameter: a string containing patches from the [[makepatches Operator]]
op-parameter-name: P
op-output: the transformed input to which the patches <<.place P>> have been applied
tags: [[Filter Operators]] [[String Operators]]
title: applypatches Operator
type: text/vnd.tiddlywiki
<<.from-version "5.2.6">>
<<.operator-examples "makepatches and applypatches">>

View File

@@ -0,0 +1,11 @@
created: 20230304161453213
modified: 20230304162156826
tags: [[Operator Examples]]
title: Hamlet
type: application/json
{
"Shakespeare-old": "Hamlet: Do you see yonder cloud that's almost in shape of a camel?\nPolonius: By the mass, and 'tis like a camel, indeed.\nHamlet: Methinks it is like a weasel.\nPolonius: It is backed like a weasel.\nHamlet: Or like a whale?\nPolonius: Very like a whale.\n-- Shakespeare",
"Shakespeare-new": "Hamlet: Do you see the cloud over there that's almost the shape of a camel?\nPolonius: By golly, it is like a camel, indeed.\nHamlet: I think it looks like a weasel.\nPolonius: It is shaped like a weasel.\nHamlet: Or like a whale?\nPolonius: It's totally like a whale.\n-- Shakespeare",
"Trekkie-old": "Kirk: Do you see yonder cloud that's almost in shape of a Klingon?\nSpock: By the mass, and 'tis like a Klingon, indeed.\nKirk: Methinks it is like a Vulcan.\nSpock: It is backed like a Vulcan.\nKirk: Or like a Romulan?\nSpock: Very like a Romulan.\n-- Trekkie"
}

View File

@@ -1,9 +1,22 @@
created: 20150118134611000
modified: 20150124201839000
modified: 20230310154010278
myfield:
tags: [[get Operator]] [[Operator Examples]]
title: get Operator (Examples)
type: text/vnd.tiddlywiki
<<.operator-example 1 "[all[current]get[draft.of]]" "the title of the tiddler of which the current tiddler is a draft">>
<<.operator-example 2 "[get[tags]]">>
<<.operator-example 3 "[each[tags]get[tags]]">>
<<.operator-example 2 "[get[tags]]" "returns the tags of all tiddlers without de-duplication">>
<<.operator-example 3 "[get[tags]unique[]]" "returns the tags of all tiddlers with de-duplication">>
<<.tip """If a data tiddler contains a field with an empty value, the empty string is not appended to the results.""">>
<<.operator-example 4 "[all[current]get[myfield]]" "the empty value of field <<.field myfield>> is not returned by the <<.olink get>> operator">>
<<.operator-example 5 "[all[current]] :filter[has:field[myfield]] :map[get[myfield]]" "also returns the empty string">>
The above example works by first using the [[Filter Filter Run Prefix]] to only select titles that have the field <<.field myfield>> and then using the [[Map Filter Run Prefix]] to replace those titles with their value of that field. The [[Map Filter Run Prefix]] outputs an empty string when its filter run returns an empty [[selection|Title Selection]].
<<.operator-example 6 "[all[tiddlers]] :filter[get[created]compare:date:lt{HelloThere!!created}]" "return all tiddlers that are older than [[HelloThere]]">>
The above example demonstrates two different ways of accessing field values in filters: Use <<.olink get>> when the title is not known in advance as with the [[Filter Filter Run Prefix]] where <<.var currentTiddler>> is set to the current input title. Use a [[TextReference]] as an indirect [[Filter Parameter]] when the title is known.

View File

@@ -1,8 +1,19 @@
created: 20150203140000000
modified: 20170608150301791
modified: 20230309180501044
tags: [[getindex Operator]] [[Operator Examples]]
title: getindex Operator (Examples)
type: text/vnd.tiddlywiki
<<.operator-example 1 "[[$:/palettes/Vanilla]getindex[background]]" "returns the value at index ''background'' of the [[DataTiddler|DataTiddlers]] [[$:/palettes/Vanilla]]">>
<<.operator-example 2 "[all[shadows+tiddlers]tag[$:/tags/Palette]getindex[background]]" "returns all background colors defined in any of the ColourPalettes">>
<<.operator-example 1 "[[$:/palettes/Vanilla]getindex[background]]" "returns the value of property <<.value background>> of the [[DataTiddler|DataTiddlers]] [[$:/palettes/Vanilla]]">>
<<.operator-example 2 "[all[shadows+tiddlers]tag[$:/tags/Palette]getindex[background]]" "returns all background colors defined in any of the ColourPalettes (notice the duplicates in the resulting list)">>
<<.tip """If a data tiddler contains a property with an empty value, the empty string is not appended to the results.""">>
<<.operator-example 3 "[[ListopsData]getindex[DataIndex]]" "the empty value of the property <<.field ~DataIndex>> in [[ListopsData]] is not returned by the <<.olink getindex>> operator">>
<<.operator-example 4 "[[ListopsData]] :filter[has:index[DataIndex]] :map[getindex[DataIndex]]" "also returns the empty string">>
The above example works by first using the [[Filter Filter Run Prefix]] to only select titles that have the property <<.field ~DataIndex>> and then using the [[Map Filter Run Prefix]] to replace those titles with their value of that property. The [[Map Filter Run Prefix]] outputs an empty string when its filter run returns an empty [[selection|Title Selection]].
<<.operator-example 5 "[[$:/palettes/Vanilla]indexes[]] :filter[[$:/palettes/Vanilla]getindex<currentTiddler>count[]compare:number:eq[0]]" "returns those colors in [[$:/palettes/Vanilla]] which are defined, but have no value assigned">>
In the above example, <<.olink count>> is used to check if <<.olink getindex>> returns a result (i.e. the corresponding property has a value) or not.

View File

@@ -0,0 +1,21 @@
created: 20230304183158728
modified: 20230304183159654
tags: [[levenshtein Operator]] [[Operator Examples]]
title: levenshtein Operator (Examples)
type: text/vnd.tiddlywiki
Determine the Levenshtein distance between two words:
<<.operator-example 1 "[[motel]levenshtein[money]]">>
List the 10 tiddler titles with the smallest Levenstein distance to "~TiddlyWiki":
<$macrocall $name='wikitext-example-without-html'
src="""<ul>
<$list filter="[all[tiddlers]!is[system]] :sort:number[levenshtein[TiddlyWiki]] :and[first[10]]">
<li>
<$link /> (<$text text={{{ [all[current]levenshtein[TiddlyWiki]] }}} />)
</li>
</$list>
</ul>
"""/>

View File

@@ -0,0 +1,43 @@
created: 20230304160331362
modified: 20230304160332927
tags: [[makepatches Operator]] [[applypatches Operator]] [[Operator Examples]]
title: makepatches and applypatches Operator (Examples)
type: text/vnd.tiddlywiki
These examples use the example texts in [[Hamlet]], taken from [[https://neil.fraser.name/software/diff_match_patch/demos/patch.html]]
|^!Shakespeare's original |@@white-space: pre-wrap;{{Hamlet##Shakespeare-old}}@@ |
|^!Modern English |@@white-space: pre-wrap;{{Hamlet##Shakespeare-new}}@@ |
|^!Trekkie's Copy |@@white-space: pre-wrap;{{Hamlet##Trekkie-old}}@@ |
<div class="doc-examples-hard-breaks">
Use `makepatches` to generate the set of patches to transform Shakepeare's original into Modern English:
<<.operator-example 1 "[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}]">>
Use `applypatches` to apply the patches to Shakespeare's original text:
<<.operator-example 2 "[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}] :map[{Hamlet##Shakespeare-old}applypatches<currentTiddler>]">>
In the above example, the [[Map Filter Run Prefix]] is used to pass the patches information as a parameter to `applypatches`. Inside `:map`, <<.value currentTiddler>> is set to the input title (i.e. the previously generated patches).
The patch information from the Shakepeare texts can also be used to transform the //Trekkie's Copy// to a Modern English version:
<<.operator-example 3 "[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]">>
The above examples used the character mode of `makepatches`. The `word` mode yields very similar results in this case, even when applied to the //Trekkie's Copy//.
<<.operator-example 4 "[{Hamlet##Shakespeare-old}makepatches:words{Hamlet##Shakespeare-new}]">>
<<.operator-example 5 "[{Hamlet##Shakespeare-old}makepatches:words{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]">>
The `lines` mode doesn't work as well in this application:
<<.operator-example 6 "[{Hamlet##Shakespeare-old}makepatches:lines{Hamlet##Shakespeare-new}]">>
<<.operator-example 7 "[{Hamlet##Shakespeare-old}makepatches:lines{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]">>
It is better suited as a very fast algorithm to detect line-wise incremental changes to texts and store only the changes instead of multiple versions of the whole texts.
</div>

View File

@@ -1,17 +1,17 @@
caption: get
created: 20140426183123179
modified: 20150203185001000
modified: 20230309163844434
op-input: a [[selection of titles|Title Selection]]
op-output: the values of field <<.place F>> in each of the input titles
op-parameter: the name of a [[field|TiddlerFields]]
op-parameter-name: F
op-purpose: select all values of a field in the input titles
tags: [[Filter Operators]] [[Field Operators]]
title: get Operator
type: text/vnd.tiddlywiki
caption: get
op-purpose: select all values of a field in the input titles
op-input: a [[selection of titles|Title Selection]]
op-parameter: the name of a [[field|TiddlerFields]]
op-parameter-name: F
op-output: the values of field <<.place F>> in each of the input titles
Each input title is processed in turn. If the corresponding tiddler contains field <<.place F>>, and the value of this field is not empty, then its value is appended to the output.
Unlike most other [[Filter Operators]], the [[selection|Title Selection]] output by <<.op get>> can contain duplicates. To avoid duplicates, use `each[F]get[F]`.
<<.tip "Unlike most other [[Filter Operators]], the [[selection|Title Selection]] output by <<.op get>> can contain duplicates. To avoid duplicates, use `get[F]unique[]`.">>
<<.operator-examples "get">>

View File

@@ -1,17 +1,16 @@
caption: getindex
created: 20150203140000000
modified: 20150203140000000
modified: 20230309163838670
op-input: a [[selection of titles|Title Selection]]
op-output: the values of property <<.place P>> in each of the input titles
op-parameter: the name of a [[property|DataTiddlers]]
op-parameter-name: P
op-purpose: select all values of a data property in the input titles
tags: [[Filter Operators]] [[Field Operators]]
title: getindex Operator
caption: getindex
op-purpose: select all values of a data property in the input titles
<$macrocall $name=".operator-def"
input="a [[selection of titles|Title Selection]]"
parameter="the name of a [[property|DataTiddlers]]"
paramName="P"
output="the values of property <<.place P>> in each of the input titles"
/>
Each input title is processed in turn, and is ignored if it does not denote a [[data tiddler|DataTiddlers]]. If the corresponding tiddler contains property <<.place P>>, and the value of this property is not empty, then its value is appended to the output.
Each input title is processed in turn, and is ignored if it does not denote a [[data tiddler|DataTiddlers]]. If the tiddler contains property <<.place P>>, the value of that property is [[dominantly appended|Dominant Append]] to the output.
<<.tip "Unlike most other [[Filter Operators]], the [[selection|Title Selection]] output by <<.op getindex>> can contain duplicates. To avoid duplicates, use `getindex[P]unique[]`.">>
<<.operator-examples "getindex">>

View File

@@ -1,9 +1,9 @@
caption: has
created: 20140410103123179
modified: 20190518145446047
modified: 20230306143207920
op-input: a [[selection of titles|Title Selection]]
op-neg-output: ''without suffix''<br>&raquo; those input tiddlers in which field <<.place F>> does <<.em not>> exist or has an empty value<br>''suffix `field`''<br>&raquo; those input tiddlers in which field <<.place F>> does <<.em not>> exist<br>''suffix `index`''<br>&raquo; those input tiddlers in which index <<.place F>> does <<.em not>> exist
op-output: ''without suffix''<br>&raquo; those input tiddlers in which field <<.place F>> has a non-empty value<br>''suffix `field`''<br>&raquo; those input tiddlers in which field <<.place F>> exists
op-neg-output: ''without suffix''<br>&raquo; those input tiddlers in which field <<.place F>> does <<.em not>> exist or has an empty value<br>''suffix `field`''<br>&raquo; those input tiddlers in which field <<.place F>> does <<.em not>> exist<br>''suffix `index`''<br>&raquo; those input data tiddlers in which index <<.place F>> does <<.em not>> exist
op-output: ''without suffix''<br>&raquo; those input tiddlers in which field <<.place F>> has a non-empty value<br>''suffix `field`''<br>&raquo; those input tiddlers in which field <<.place F>> exists<br>''suffix `index`''<br>&raquo; those input data tiddlers in which index <<.place F>> exists
op-parameter: the name of a [[field|TiddlerFields]]<br>''suffix `index`''<br>&raquo; those input tiddlers in which index <<.place F>> exists
op-parameter: the name of a [[field|TiddlerFields]] or, optionally an [[index|TextReference]]
op-parameter-name: F

View File

@@ -0,0 +1,17 @@
caption: levenshtein
created: 20230304181639768
modified: 20230304181642365
op-purpose: determine the Levenshtein distance of the input title(s) and a given string
op-input: a [[selection of titles|Title Selection]]
op-parameter: a string
op-parameter-name: S
op-output: the Levenshtein distance between the input title(s) and <<.place S>>
tags: [[Filter Operators]] [[String Operators]]
title: levenshtein Operator
type: text/vnd.tiddlywiki
<<.from-version "5.2.6">>
The Levenshtein distance is a metric for measuring the difference between two strings. Informally, the Levenshtein distance between two strings is the //minimum// number of single-character edits required to change one string into the other.
<<.operator-examples "levenshtein">>

View File

@@ -0,0 +1,23 @@
caption: makepatches
created: 20230304122354967
modified: 20230304122400128
op-purpose: returns a set of patches that transform the input to a given string
op-input: a [[selection of titles|Title Selection]]
op-parameter: a string of characters
op-parameter-name: S
op-output: a set of patch instructions per input title to be used by the [[applypatches Operator]] to transform the input title(s) into the string <<.place S>>
op-suffix: `lines` to operate in line mode, `words` to operate in word mode. If omitted (default), the algorithm operates in character mode. See notes below.
op-suffix-name: T
tags: [[Filter Operators]] [[String Operators]]
title: makepatches Operator
type: text/vnd.tiddlywiki
<<.from-version "5.2.6">>
The difference algorithm operates in character mode by default. This produces the most detailed diff possible. In `words` mode, each word in the input text is transformed into a meta-character, upon which the algorithm then operates. In the default character mode, the filter would find two patches between "ActionWidget" and "Action-Widgets" (the hyphen and the plural s), while in `words` mode, the whole word is found to be changed. In `lines` mode, the meta-character is formed from the whole line, delimited by newline characters, and is found to be changed independent of the number of changes within the line.
The different modes influence the result when the patches are applied to texts other than the original, as well as the runtime.
<<.tip "The calculation in `words` mode is roughly 10 times faster than the default character mode, while `lines` mode can be more than 100 times faster than the default.">>
<<.operator-examples "makepatches and applypatches">>

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: 20221219184500440
modified: 20230320184352916
tags: TableOfContents
title: HelloThere
type: text/vnd.tiddlywiki

View File

@@ -33,29 +33,17 @@ Note the various places you need to indicate the number of columns
```
@@.fourcolumns
<$list filter="[tag[Filter Operators]]" variable="foo"><br>
<<foo>>
<$list filter="[tag[Filter Operators]]" variable="foo">
<<foo>><br>
</$list>
@@
```
!! Example showing partial list of filter operators
<style>
.fourcolumns {
display:block;
column-count:4;
column-gap:1em;
-moz-column-count:4;
-moz-column-gap:1em;
-webkit-column-count: 4;
-webkit-column-gap:1em;
}
</style>
@@.fourcolumns
<$list filter="[tag[Filter Operators]limit[24]]" variable="foo"><br>
<<foo>>
<$list filter="[tag[Filter Operators]limit[24]]" variable="foo">
<<foo>><br>
</$list>
@@

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -6,7 +6,7 @@ type: text/vnd.tiddlywiki
Making lists of items plays a central role in working with TiddlyWiki. The following is a brief run-through of some of the more common techniques.
~TiddlyWiki [[uses|The Extended Listops Filters]] lists [[internally|ListField]] for many purposes so the word can have several meanings. Here we are concerned with displaying sequences of items, but not necessarily presented as a conventional bullet list.
~TiddlyWiki [[uses|Extended Listops Filters]] lists [[internally|ListField]] for many purposes so the word can have several meanings. Here we are concerned with displaying sequences of items, but not necessarily presented as a conventional bullet list.
! Manually Typed Lists

View File

@@ -112,7 +112,7 @@ Prompted by the [[General Data Protection Regulation (GDPR)|https://en.wikipedia
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3093]] problem with crash when dragging over TiddlyWiki on some browsers
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3079]] issue with new journal button
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3164]] problem with ''filter'' and ''value'' attributes of SetWidget
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3190]] problem with numeric operands in the [[The Extended Listops Filters]]
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3190]] problem with numeric operands in the [[Extended Listops Filters]]
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/df1f7e9798b5f6c3d2c3fd82e438cbc9713ade04]] problem with "put" saver and 412 return codes
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/3048]] problem with variable references in field values in the edit template
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/pull/3219]] behaviour of list-after field so that the tiddler is placed at the end of the list if the list-after field is present but empty

View File

@@ -1,39 +1,72 @@
caption: 5.2.6
created: 20230119221001957
modified: 20230119221001957
created: 20230320184352916
modified: 20230320184352916
released: 20230320184352916
tags: ReleaseNotes
title: Release 5.2.6
type: text/vnd.tiddlywiki
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.5...master]]//
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.2.5...v5.2.6]]//
<<.banner-credits
credit:"""Congratulations to [[StS|https://talk.tiddlywiki.org/u/StS]] for their winning design for the banner for this release (here is the [[competition thread|https://talk.tiddlywiki.org/t/new-release-banner-competition-for-tiddlywiki-v5-2-6/6403/3]] and the [[voting thread|https://talk.tiddlywiki.org/t/vote-for-the-tiddlywiki-banner-v5-2-6/6469]]).
"""
url:"https://raw.githubusercontent.com/Jermolene/TiddlyWiki5/3a2831870b4418b8b01d155b057db5b7485562c1/editions/tw5.com/tiddlers/images/New%20Release%20Banner.png"
>>
! Major Improvements
!! Improved Markdown Plugin
* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6528">> the [[Markdown Plugin]] to use the newer and better maintained [[markdown-it|https://github.com/markdown-it/markdown-it]] library. The previous Markdown plugin remains available as "markdown-legacy"
!! Better Handling of Loss of Network Connectivity with Client Server Configuration
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7169">> integration between the [[BrowserStorage Plugin]] and the client-server configuration to allow changes to be made while offline and then later resynchronised with the server
!! New Diff-Match-Patch Primitives
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7290">> three new operators exposing previously hidden features of the [[Diff-Match-Patch|https://neil.fraser.name/software/diff_match_patch]] library that is integrated with TiddlyWiki:
** new [[levenshtein Operator]] to calculate the similarity of two strings as the number of characters that need to be inserted, deleted or modified in order to turn one into the other
** new [[makepatches Operator]] and [[applypatches Operator]] that can be used to make and apply patches that represent the difference between two different texts. See the [[examples|makepatches and applypatches Operator (Examples)]]
! Translation Improvements
Improvements to the following translations:
* Chinese
* German
* Italian
* Polish
! Plugin Improvements
* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/pull/6528">> the [[Markdown Plugin]] to use the newer and better maintained [[markdown-it|https://github.com/markdown-it/markdown-it]] library. The previous Markdown plugin remains available as "markdown-legacy"
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7176">> [[Innerwiki Plugin]] to allow the `<$data>` widget to override existing tiddler fields
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7207">>, <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/commit/c39ef398bffae12c0ed7324d9b6d9d29f0f2f9ff">> and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/commit/8f7441f296351a4dd0852c3c782f8874d398e052">> problem preventing [[Share Plugin]] from working properly
* <<.link-badge-updated "https://github.com/Jermolene/TiddlyWiki5/commit/524cee1489f260375cac8cfe878fdc5942a4596e">> [[XLSX Plugin|XLSX Utilities Edition]] to handle importing numeric fields
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/81f514116657d0d567be7a4c45762a85beaa8bc0">> Dynannotate plugin crash when using the fake DOM used for static rendering
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7281">> bug where pasting text into the CodeMirror editor also opened an `$:/Import` tiddler
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7334">> documentation for the [[Railroad Plugin]]
! Accessibility Improvements
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7232">> appearance of save wiki button so that it is accessible to users without colour vision
! Usability Improvements
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7217">> consistency of tiddler deletion by allowing missing tiddlers to be 'deleted', which just results in them being closed
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/34643a42790777f1b235f57b5093bb29bd0b3a14">> layout switcher to include an optional icon for each layout
* <<.link-badge-removed "https://github.com/Jermolene/TiddlyWiki5/commit/c0615e20ecf7d5d5e66d8a2acd28b80e8d59688d">> [[improvements to table layout|https://github.com/Jermolene/TiddlyWiki5/pull/7010]] from v5.2.5 that have proved to not be backwards compatible
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7323">> support for `&dollar;` HTML entity
! Widget Improvements
*
* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7222">> EditTextWidget to support `focusSelectFromStart` and `focusSelectFromEnd` attributes to give better control over text selection
! Filter improvements
* <<.link-badge-extended "https://github.com/Jermolene/TiddlyWiki5/pull/7121">> [[encodeuricomponent Operator]] to encode characters such as `*` that are illegal in Windows filenames
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/commit/89fd8871b6217634c9896b9402069757ca5ea189">> [[encodebase64 Operator]] and [[decodebase64 Operator]]
! Hackability Improvements
@@ -41,6 +74,7 @@ Improvements to the following translations:
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7118">> readability of [[tag-picker Macro]] and [[keyboard-driven-input Macro]]
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7129">> reliability of [[list-links-draggable Macro]] and [[list-tagged-draggable Macro]] by using the new GenesisWidget instead of textual substitution
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7210">> [[external JavaScript core support|Using the external JavaScript template]] to make it possible to save an external JS wiki as a standard single file wiki
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7007">> a warning message in the browser console when the Zoomin storyview fails due to the tiddler view template lacking a single containing element
! Bug Fixes
@@ -50,43 +84,60 @@ Improvements to the following translations:
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7121">> (and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/pull/7219">>) overriding `toc-caption` macro for [[Table-of-Contents Macros]]
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7212">> rendering of $:/core/ui/MoreSideBar/Tags when viewed within the story river
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7156">> undefined variable crash in [[reduce Operator]], [[filter Operator]] and [[sortsub Operator]]
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7153">> GenesisWidget not to create anything if the `$type` attribute is blank or missing
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/issues/7153">> GenesisWidget not to create anything if the `$type` attribute is blank or missing
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7230">> GenesisWidget to pass `isBlock` flag to the generated widget
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7160">> crash using [[jsonget Operator]] with "fixed" as key name
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/0b39e47ce88c7620b7a66c1553a71efaff06edb9">> importing of MP3 files to match current browser implementations
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7122">> crash when attempting to create an element with a blank tag name
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7224">> layout issue with "save tiddler" button
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/3d0ec5b1bdc157f87d65b8c9b76e681c14337eb4">> (and <<.link-badge-here "https://github.com/Jermolene/TiddlyWiki5/commit/4e5c957e975459350cd7df3038e5fb3c7aea859f">>) handling of whitespace in lists to cover all Unicode whitespace characters
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7228">> test spacing of parser rule checkboxes in control panel
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/f249b79e81e51d48364ea8147fe27850df9f577f">> CSS classes assigned to edit toolbar buttons
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7247">> usage of broken CSS class `tc-storyview-zoomin-tiddler` in Zoomin story view
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7243">> usage of `importTitle` and `autoOpenOnImport` options for [[WidgetMessage: tm-import-tiddlers]]
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7276">> fixed text editor refresh when the palette is changed
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7270">> crash with LetWidget when referencing a variable that exists but has an undefined value
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7354">> unwanted double braces around tags specified in $:/config/NewTiddler/Tags when using "new here" button
! Node.js Improvements
* <<.link-badge-added "https://github.com/Jermolene/TiddlyWiki5/pull/7169">> integration between the [[BrowserStorage Plugin]] and the client-server configuration to allow changes to be made while offline and then later resynchronised with the server
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/7130">> duplicate fields in internal templates used in client-server configuration
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7138">> lazy loading not triggering a sync from the server
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/commit/bf8e1ca5b0587787bf80692b0213bb7b038c7868">> crash on creating a new tiddler if anonymous users manage to create syncable tiddlers in a read only wiki
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/commit/95e61688397ff1bc9be04193bc4ce2e3c8c48dce">> handling of logout in the client-server configuration to avoid 404 errors
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/issues/7238">> problem with saving tiddlers with `_canonical_uri` field as `.tid` files
* <<.link-badge-fixed "https://github.com/Jermolene/TiddlyWiki5/pull/6953">> missing meta viewport to static river template
! Performance Improvements
*
* <<.link-badge-improved "https://github.com/Jermolene/TiddlyWiki5/pull/7299">> field indexer to more efficiently process lookups
! 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 """
andrigamerita
AnthonyMuscio
BramChen
btheado
cdruan
CrossEye
cs8425
EvidentlyCube
fkmiec
flibbles
GameDungeon
hffqyd
jeffrey4l
joebordes
kookma
linonetwo
m42e
Marxsal
mateuszwilczek
newmedicine
michsa
pippep
pmario
saqimtiaz
@@ -94,4 +145,4 @@ Telumire
twMat
wincentbalin
yaisog
""">>
""">>

View File

@@ -0,0 +1,49 @@
caption: tw5-server
color: #70c9a0
community-author: hffqyd
created: 20230302011710789
delivery: Server-side Script
description: Web server for saving and uploading
method: save
modified: 20230302055929311
tags: Android Chrome Firefox [[Internet Explorer]] Linux Mac Opera Safari Saving Windows iOS Edge
title: Saving via a Minimal Web Server
type: text/vnd.tiddlywiki
A local server for TiddlyWiki5 that saves and backups wikis, inspired by
[[tw5-server.rb | https://gist.github.com/jimfoltz/ee791c1bdd30ce137bc23cce826096da]].
tw5-server provides features of:
* Server for TiddlyWiki5, as well as other files (e.g. images used in TW5 `[img[images/*.png]]`);
* Easy to save wiki via browsers;
* Backup wiki in compress format (.gz), to save disk space;
* Auto clean backups: keep one newest per previous month, keep all backups in current month.
* Upload files/images to server, for use in tiddlywiki as external links.
* Offer binary executable for Linux, macos and windows.
Download executable script and binary at the github.com [[tw5-server|https://github.com/hffqyd/tw5-server]].
! Usage
```bash
# python script:
python tw5-server.py -p 8000 -d ./ -b backup_dir
# binary file:
tw5server -a:192.168.0.10 -p:8000 -d:./ -b:backup
-h usage help
-a address, defautl localhost
-p port, default 8000
-d directory to servering, default `current dir`
-b backup directory name, default `backup`
-l log saving messages to stdout
Backups auto-clean strategy:
Keep all backups in current month, keep only the newest one for previous months.
```
In Unix/Linux, just excute `./tw5-server.py` (with `chmod +x tw5-server.py`).
Then go to http://localhost:8000 (or other address:port specified in command) in your web browser, and click on your wiki html file.

View File

@@ -133,6 +133,10 @@ td svg {
padding-left: 20px;
}
.doc-examples-hard-breaks .doc-example-result li {
white-space: pre-wrap;
}
.doc-bad-example code, .doc-bad-example pre, table.doc-bad-example {
background-color:#ffff80;
}

View File

@@ -325,3 +325,22 @@ type: text/vnd.tiddlywiki
.tc-btn-download:active {
box-shadow: none;
}
/* WikiText rules */
.multi-columns,
.fourcolumns {
display: block;
column-count: 4;
column-gap: 1em;
-moz-column-count: 4;
-moz-column-gap: 1em;
-webkit-column-count: 4;
-webkit-column-gap: 1em;
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.multi-columns {
column-count: 2;
}
}

View File

@@ -1,25 +1,11 @@
caption: action-listops
created: 20141025120850184
list: efg hlm pqr
modified: 20211115091121133
modified: 20230301183438774
myfield:
revision: 0
tags: ActionWidgets Widgets
title: ActionListopsWidget
type: text/vnd.tiddlywiki
\define .operator-rows(filter)
<$list filter="$filter$"><tr>
<td><$link>{{!!caption}}</$link></td>
<td>{{!!op-purpose}} <$list filter="[all[current]tag[Common Operators]]">{{$:/core/images/done-button}}</$list></td>
<td align="center"><$list filter="[all[current]tag[Negatable Operators]]">`!`</$list></td>
</tr></$list>
\end
\define .group-heading(_)
<tr class="doc-table-subheading"><th colspan="3" align="center">$_$</th></tr>
\end
! Introduction
The ''action-listops'' widget is an [[action widget|ActionWidgets]] that manipulates user lists in any field or data index. ActionWidgets are used within triggering widgets such as the ButtonWidget.
@@ -34,9 +20,9 @@ The ''action-listops'' widget is invisible. Any content within it is ignored.
|$index |Optional index of a property in a [[data tiddler|DataTiddlers]] index to be manipulated as a list |
|$filter |An optional filter expression, the output of which will be saved to the field/index being manipulated |
|$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 'tags' field of the target tiddler as input, and saves the modified list of tags back to the 'tags' field |
|$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 |
! $filter vs. $subfilter
!! Using $filter or $subfilter
Standalone use of the `$subfilter` attribute can be replaced by using a (more complicated) `$filter` attribute value.
@@ -46,15 +32,15 @@ For example, the items "abc" and "123" can be appended to the field `myfield` us
<$action-listops $field="myfield" $subfilter="abc 123"/>
```
The same can be achieved using the `$filter` attribute and prepending the [[Filter Run]] `[all[current]get[myfield]enlist-input[]]` to the [[Filter Expression]]:
The same can be achieved using the `$filter` attribute and prepending the [[Filter Run]] `[enlist{!!myfield}]` to the [[Filter Expression]]:
```
<$action-listops $field="myfield" $filter="[all[current]get[myfield]enlist-input[]] abc 123"/>
<$action-listops $field="myfield" $filter="[enlist{!!myfield}] abc 123"/>
```
The short form is more convenient, but the long form is useful for live-debugging complicated `$subfilter` values using the filter tab of [[$:/AdvancedSearch]]. By using [[$:/AdvancedSearch]], the [[Filter Expression]] can be tested before using ''action-listops'' to modify actual tiddler fields. For this use case, the `all[current]` portion of the expression needs to be changed to select the proper test tiddler.
! $tags vs. $field + $subfilter
!! Using $tags or $subfilter
[[Tagging]] is implemented using a tiddler's 'tags' field, so appending the tags "abc" and "123" using the `$tags` attribute like this:
@@ -68,110 +54,53 @@ is mostly equivalent to using `$subfilter` along with "tags" for the value of `$
<$action-listops $field="tags" $subfilter="abc 123"/>
```
! $action-listops widget vs. $action-setfield widget
!! Comparison to [[ActionSetFieldWidget]]
The ActionSetFieldWidget replaces a field's value using `$field`/`$value` attributes. A single ActionSetFieldWidget can be used to set any number of fields by using attributes not starting with $.
In general, ActionSetFieldWidget is better for setting multiple fields at once and for replacing the value of a field, which can also be a list. The ActionListopsWidget is better for modifying a list field based on the existing list and for using a [[Filter Expression]] to derive the value of the field.
The ActionListopsWidget replaces or modifies a single field's value. The new value is generated using filters.
The ~ActionSetFieldWidget sets the value of a field using `$field` and `$value` attribute pairs or attributes that do not start with a `$`. A single ~ActionSetFieldWidget can be used to set any number of fields of a single tiddler.
The following two examples are functionally equivalent:
The ~ActionListopsWidget replaces or modifies a single field's value using filter expressions.
The following widgets are functionally equivalent:
```
<$action-setfield $field="myfield" $value="abc 123"/>
```
```
<$action-setfield myfield="abc 123"/>
<$action-listops $field="myfield" $filter="abc 123"/>
```
Note that <<.value "abc 123">> in the first two cases is a literal string that is assigned to the field <<.field myfield>>, but in the third case a filter expression which evaluates to the same string.
In general, ActionSetFieldWidget is better for setting multiple fields at once and for replacing a field's value. The ActionListopsWidget is better for modifying a field based on the field's existing value and for using a [[Filter Expression]] to derive the value.
!! Extended Filter Operators
! Extended Filter Operators
A number of [[Extended Listops Filters]] are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list.
A number of [[extended filter operators|The Extended Listops Filters]] are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list.
!! Notes on de-duplication
<table>
<<.group-heading "Listops Operators">>
<tr>
<th align="left">Operator</th>
<th align="left">Purpose</th>
<th></th>
</tr>
<<.operator-rows "[tag[Filter Operators]tag[Listops Operators]tag[Order Operators]!tag[String Operators]!tag[Tag Operators]!tag[Special Operators]sort[]]">>
</table>
In some cases, there may occur unexpected de-duplication of lists.
! Examples
!!! Assignments to the <<.field list>> field
In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default.)
When assigning filter results to the <<.field list>> field (default), the generated list is automatically de-duplicated, so
```
<$action-listops $filter="[[1]] :and[[1]]"/>
```
will result in the <<.field list>> field of the current tiddler containing the string <<.value 1>>, but not <<.value "1 1">>.
!!! Input to the subfilter expression
The input to the subfilter expression in the `$subfilter` attribute is also de-duplicated. If you rely on lists containing duplicates, consider using this alternative using the `$filter` attribute:
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $field="myfield" $subfilter="efg hlm pqr"/>
Populate 'myfield'
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="abc xyz"/>
Append More Items
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-abc -hlm"/>
Remove Items
</$button>
<$button>
<$action-listops $field="myfield" $filter="[[]]"/>
Clear 'myfield'
<$action-listops $field="myfield" $filter="[enlist:raw{!!myfield}] :all[[abc]]" />
Add 'abc' to 'myfield'
</$button>
<$list filter="[list[!!myfield]]">
<$list filter="[enlist:raw{!!myfield}]" template="$:/core/ui/ListItemTemplate" />
"""/>
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>>.
</$list>"""/>
---
In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/>
Mangle List
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/>
Unmangle List
</$button>
<$list filter="[list[!!myfield]]">
</$list>"""/>
---
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.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/>
Populate 'tags'
</$button>
<$button>
<$action-listops $tags="+[!remove:2{!!tags}]"/>
Remove Last Two Tags
</$button>
<$button>
<$action-listops $tags="+[!prefix[$:/]]"/>
Remove System Tags
</$button>
<$button>
<$action-listops $tags="-Mon -Tue"/>
Remove Mon and Tue
</$button>
<$button>
<$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/>
Remove User Tags
</$button>
<$button>
<$action-listops $tags="+[[]] ActionWidgets Widgets"/>
Clear Tags
</$button>
<$list filter="[list[!!tags]]">
</$list>"""/>
! [[Examples|ActionListopsWidget (Examples)]]

View File

@@ -11,7 +11,7 @@ The browse widget displays an HTML file browser button that allows the user to c
! Content and Attributes
The content of the `<$browse>` widget is ignored.
The content of the <<.wid BrowseWidget>> widget is ignored.
|!Attribute |!Description |
|multiple |Set to "multiple" to select multiple file upload |
@@ -26,10 +26,10 @@ On iPhone/iPad choosing the multiple option will remove the ability to take phot
''e.g.''
```
<$browse>
<$browse/>
```
renders as:
<$browse>
<$browse/>

View File

@@ -1,6 +1,6 @@
caption: edit-text
created: 20131024141900000
modified: 20211104200554064
modified: 20230122210049893
tags: Widgets
title: EditTextWidget
type: text/vnd.tiddlywiki
@@ -24,6 +24,8 @@ The content of the `<$edit-text>` widget is ignored.
|placeholder |Placeholder text to be displayed when the edit field is empty |
|focusPopup |Title of a state tiddler for a popup that is displayed when the editing element has focus |
|focus |Set to "yes" or "true" to automatically focus the editor after creation |
|focusSelectFromStart |<<.from-version 5.2.6>> If the `focus` attribute is enabled, determines the position of the start of the selection: `0` (default) places the start of the selection at the beginning of the text, `1` places the start of the selection after the first character, etc. |
|focusSelectFromEnd |<<.from-version 5.2.6>> If the `focus` attribute is enabled, determines the position of the end of the selection: `0` (default) places the end of the selection at the end of the text, `1` places the start of the selection before the final character, etc. |
|tabindex |Sets the `tabindex` attribute of the input or textarea to the given value |
|autocomplete |<<.from-version 5.1.23>> An optional string to provide a hint to the browser how to handle autocomplete for this input |
|tag |Overrides the generated HTML editing element tag. For a multi-line editor use `tag=textarea`. For a single-line editor use `tag=input` |
@@ -38,8 +40,7 @@ The content of the `<$edit-text>` widget is ignored.
|disabled|<<.from-version "5.1.23">> Optional, disables the text input if set to "yes". Defaults to "no"|
|fileDrop|<<.from-version "5.2.0">> Optional. When set to "yes" allows dropping or pasting images into the editor to import them. Defaults to "no"|
! Example
! Examples
If you wanted to change the field //myconfig// of the tiddler //AppSettings//, you could use an EditTextWidget to edit the field, and then show the result anywhere else by using `{{AppSettings!!myconfig}}`. Note that this will create tiddler AppSettings if it doesn't already exist.
@@ -48,3 +49,20 @@ eg="""<$edit-text tiddler="AppSettings" field="myconfig"/><p/>
Value of ''myconfig'' : {{AppSettings!!myconfig}}
"""/>
!! Text Selection
If the edit field already contains text or a default value is provided, you can use the `focusSelectFromStart` and `focusSelectFromEnd` attributes to only select part of the text when using `focus="yes"`.
Partial selection when editing this tiddler's //caption// field:
<$macrocall $name=".example" n="2"
eg="""<$edit-text tiddler=<<currentTiddler>> field="caption" focus="yes" focusSelectFromStart="5" />
"""/>
!!! {{!!heading}}
Provide a dated heading for this example where only the placeholder (but not the date) is selected for easier text input:
<$macrocall $name=".example" n="3"
eg="""<$edit-text tiddler=<<currentTiddler>> field="heading" size="25" focus="yes" focusSelectFromEnd="13" default={{{ [[Heading Text (]] [<now YYYY-0MM-0DD>] [[)]] +[join[]] }}} />
"""/>

View File

@@ -0,0 +1,138 @@
created: 20151014170727812
days: Fri Wed Mon Tue
dofwks: Mon Tue Wed Thu Fri Sat Sun
item1: six
item2: seven
item3: eight
list: Yesterday Today Tomorrow
marker: Thursday
modified: 20230227175501965
myfield: Monday Tuesday [[Middle of the Week]] Thursday Friday Saturday Sunday
numbers: 1 2 3 4 five 6 7 8 9
tags: Filters
title: Extended Listops Filters
\define .operator-rows(filter)
<$list filter="$filter$"><tr>
<td><$link>{{!!caption}}</$link></td>
<td>{{!!op-purpose}}</td>
<td align="center"><$list filter="[all[current]tag[Common Operators]]">✓</$list></td>
<td align="center"><$list filter="[all[current]tag[Negatable Operators]]">`!`</$list></td>
</tr></$list>
\end
\define .group-heading(_)
<tr class="doc-table-subheading"><th colspan="4" align="center">$_$</th></tr>
\end
! Introduction
A number of filters are used to manipulate lists.
Some filters are designed to move items from the tail of the list and insert them at specified locations in the list, e.g. [[putafter|putafter Operator]] or [[putbefore|putbefore Operator]]. Items are often appended to the list before using these filters. In general, these filters accept a suffix specifying the number of items to move (default to 1.)
Some filters are designed to either add or remove from the list, a selected range of items from an array, e.g. [[append|append Operator]] or [[remove|remove Operator]]. These filters are best used with a reference to an array, stored in a field or data index elsewhere in the wiki (they may be used with a simple list of items, provided the items do not include white space.) In general, these filters accept a suffix specifying the number of items to move (default to All.)
<table>
<<.group-heading "Listops Operators">>
<tr>
<th align="left">Operator</th>
<th align="left">Purpose</th>
<th>✓</th>
<th>`!`</th>
</tr>
<<.operator-rows "[tag[Filter Operators]tag[Listops Operators]tag[Order Operators]!tag[String Operators]!tag[Tag Operators]!tag[Special Operators]sort[]]">>
</table>
! Examples
In this example we shall populate the '~DataIndex' index of the tiddler '~MyData' with the names of the days of the week, then clear this list.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[list[Days of the Week]]"/>
Get days-of-the-week
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]"/>
Clear
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to insert items before and after a marker item (Wednesday) that are first appended to the list.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="one two +[putbefore:2[Wednesday]]"/>
Put 2 Items Before Wednesday
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="four five +[putafter:2[Wednesday]] three +[putbefore[Wednesday]]"/>
Put One Item Before & Two Items After Wednesday
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to replace the marker item (Wednesday) with items which are first appended to the list. We shall then move 3 items to the head of the list which have first been appended to the list from referenced fields.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[[---o]] [[o---]] +[replace:2{!!marker}]"/>
Replace '!!marker' with 2 Items
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[{!!item1}] [{!!item2}] [{!!item3}] +[putfirst:3[]]"/>
Put 3 Items First
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to append to the truncated list, items from a referenced field. We shall then remove the first two of the items added.
<$macrocall $name='wikitext-example-without-html'
src="""|list: |<$view field="list"/> |
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[allbefore:include[Wednesday]] +[prepend{!!list}]"/>
Prepend '!!list' to items before 'Wednesday'
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[remove:2{!!list}]"/>
Remove first two items in '!!list' from current list
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!remove:1{!!list}]"/>
Remove last item in '!!list' from current list
</$button>
{{ListopsData}}"""/>
---
In this example we shall populate the list with numbers, then move items one by one from the head to the tail and from the tail to the head (best seen by clicking the lower buttons several times.)
This example illustrates that the append[] and prepend[] operators do not enforce unique instances of an item and that, with the next run, any duplicates are removed.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]" $subfilter="+[append:3{!!numbers}]"/>
Setup some numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!append:6{!!numbers}]"/>
Append more numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putfirst:2[]]"/>
Move last 2 items to the head
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putlast[]]"/>
Move the head to the last item
</$button>
{{ListopsData}}"""/>

View File

@@ -1,114 +1,5 @@
created: 20151014170727812
days: Fri Wed Mon Tue
dofwks: Mon Tue Wed Thu Fri Sat Sun
item1: six
item2: seven
item3: eight
list: Yesterday Today Tomorrow
marker: Thursday
modified: 20211114011103356
myfield: Monday Tuesday [[Middle of the Week]] Thursday Friday Saturday Sunday
numbers: 1 2 3 4 five 6 7 8 9
tags: Filters
created: 20230301172832597
modified: 20230301172832597
title: The Extended Listops Filters
! Introduction
A number of extended filters are necessary to manipulate lists.
The first set of filters are designed to move items from the tail of the list and insert them at specified locations in the list. Items are often appended to the list before using these filters. In general, these filters accept a suffix specifying the number of items to move (default to 1.)
A second set of filters are designed to either add or remove from the list, a selected range of items from an array. These filters are best used with a reference to an array, stored in a field or data index elsewhere in the wiki (they may be used with a simple list of items, provided the items do not include white space.) In general, these filters accept a suffix specifying the number of items to move (default to All.)
! Examples
In this example we shall populate the '~DataIndex' index of the tiddler '~MyData' with the names of the days of the week, then clear this list.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[list[Days of the Week]]"/>
Get days-of-the-week
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]"/>
Clear
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to insert items before and after a marker item (Wednesday) that are first appended to the list.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="one two +[putbefore:2[Wednesday]]"/>
Put 2 Items Before Wednesday
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="four five +[putafter:2[Wednesday]] three +[putbefore[Wednesday]]"/>
Put One Item Before & Two Items After Wednesday
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to replace the marker item (Wednesday) with items which are first appended to the list. We shall then move 3 items to the head of the list which have first been appended to the list from referenced fields.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[[---o]] [[o---]] +[replace:2{!!marker}]"/>
Replace '!!marker' with 2 Items
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[{!!item1}] [{!!item2}] [{!!item3}] +[putfirst:3[]]"/>
Put 3 Items First
</$button>
{{ListopsData}}"""/>
---
In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to append to the truncated list, items from a referenced field. We shall then remove the first two of the items added.
<$macrocall $name='wikitext-example-without-html'
src="""|list: |<$view field="list"/> |
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[allbefore:include[Wednesday]] +[prepend{!!list}]"/>
Prepend '!!list' to items before 'Wednesday'
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[remove:2{!!list}]"/>
Remove first two items in '!!list' from current list
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!remove:1{!!list}]"/>
Remove last item in '!!list' from current list
</$button>
{{ListopsData}}"""/>
---
In this example we shall populate the list with numbers, then move items one by one from the head to the tail and from the tail to the head (best seen by clicking the lower buttons several times.)
This example illustrates that the append[] and prepend[] operators do not enforce unique instances of an item and that, with the next run, any duplicates are removed.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]" $subfilter="+[append:3{!!numbers}]"/>
Setup some numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!append:6{!!numbers}]"/>
Append more numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putfirst:2[]]"/>
Move last 2 items to the head
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putlast[]]"/>
Move the head to the last item
</$button>
{{ListopsData}}"""/>
See [[Extended Listops Filters]]

View File

@@ -0,0 +1,81 @@
created: 20230301174431218
list: efg hlm pqr
modified: 20230301174431218
myfield:
revision: 0
title: ActionListopsWidget (Examples)
type: text/vnd.tiddlywiki
In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default).
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $field="myfield" $filter="efg hlm pqr"/>
Populate 'myfield'
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="abc xyz"/>
Append More Items
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-abc -hlm"/>
Remove Items
</$button>
<$button>
<$action-listops $field="myfield" $filter="[[]]"/>
Clear 'myfield'
</$button>
<$list filter="[list[!!myfield]]">
</$list>"""/>
---
In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/>
Mangle List
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/>
Unmangle List
</$button>
<$list filter="[list[!!myfield]]">
</$list>"""/>
---
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.
<$macrocall $name='wikitext-example-without-html'
src="""<$button>
<$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/>
Populate 'tags'
</$button>
<$button>
<$action-listops $tags="+[!remove:2{!!tags}]"/>
Remove Last Two Tags
</$button>
<$button>
<$action-listops $tags="+[!prefix[$:/]]"/>
Remove System Tags
</$button>
<$button>
<$action-listops $tags="-Mon -Tue"/>
Remove Mon and Tue
</$button>
<$button>
<$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/>
Remove User Tags
</$button>
<$button>
<$action-listops $tags="+[[]] ActionWidgets Widgets"/>
Clear Tags
</$button>
<$list filter="[list[!!tags]]">
</$list>"""/>

View File

@@ -1,19 +1,60 @@
caption: Formatting
created: 20131205155959399
modified: 20220513120211686
modified: 20230303215447403
tags: WikiText
title: Formatting in WikiText
type: text/vnd.tiddlywiki
Available character formatting includes:
!! Overview
* <code>&#96;backticks&#96;</code> for `code` (<<.icon $:/core/images/mono-line>>)
** Alternatively, <code>&#96;&#96;double backticks allows &#96;embedded&#96; backticks&#96;&#96;</code><br><br>
* `''bold''` for ''bold text'' (<<.icon $:/core/images/bold>>)<br><br>
* `//italic//` for //italic text// (<<.icon $:/core/images/italic>>)<br><br>
* `__underscore__` for __underscored text__ (<<.icon $:/core/images/underline>>)<br><br>
* `^^superscript^^` for ^^superscripted^^ text (<<.icon $:/core/images/superscript>>)<br><br>
* `,,subscript,,` for ,,subscripted,, text (<<.icon $:/core/images/subscript>>)<br><br>
* `~~strikethrough~~` for ~~strikethrough~~ text (<<.icon $:/core/images/strikethrough>>)
Available character formatting in WikiText includes:
See also: [[Code Blocks in WikiText]]
|Wikitext | Button | Shortcut |Rendered Output |h
|Double single quotes are used for `''bold text''`| <kbd><<.icon $:/core/images/bold>></kbd> | <kbd><<displayshortcuts "((bold))">></kbd> |Double single quotes are used for ''bold text'' |
|Double slashes are used for `//italic text//`| <kbd><<.icon $:/core/images/italic>></kbd> | <kbd><<displayshortcuts "((italic))">></kbd> |Double slashes are used for //italic text//|
|Double underscores are used for `__underlined text__`| <kbd><<.icon $:/core/images/underline>></kbd> | <kbd><<displayshortcuts "((underline))">></kbd> |Double underscores are used for __underlined text__ |
|Double circumflex accents are used for `^^superscripted^^` text | <kbd><<.icon $:/core/images/superscript>></kbd> | <kbd><<displayshortcuts "((superscript))">></kbd> |Double circumflex accents are used for ^^superscripted^^ text |
|Double commas are used for `,,subscripted,,` text | <kbd><<.icon $:/core/images/subscript>></kbd> | <kbd><<displayshortcuts "((subscript))">></kbd> |Double commas are used for ,,subscripted,, text |
|Double tilde signs are used for `~~strikethrough~~` text | <kbd><<.icon $:/core/images/strikethrough>></kbd> | <kbd><<displayshortcuts "((strikethrough))">></kbd> |Double tilde signs are used for ~~strikethrough~~ text |
|Single backticks are used for ```code` `` | <kbd><<.icon $:/core/images/mono-line>></kbd> | <kbd><<displayshortcuts "((mono-line))">></kbd> |Single backticks are used for `code` |
|Double @ characters are used to create a `@@highlight@@` | - | - |Double @ characters are used to create a @@highlight@@ |
See [[Styles and Classes in WikiText]] for more formatting options
!! Embedded Backticks
|Wikitext |Rendered Output|h
|<code>&#96;&#96;double backticks allows &#96;embedded&#96; backticks&#96;&#96;</code>|``double backticks allows `embedded` backticks``|
!! Keyboard Shortcuts
The full list of KeyboardShortcuts can be found in the $:/ControlPanel -> ''Keyboard Shortcuts'' tab.
!! Semantic Information
|Wikitext | Resulting HTML Code |h
|Double single quotes are used for `''bold text''`|Double single quotes are used for `<strong>bold text</strong>` |
|Double slashes are used for `//italic text//`|Double slashes are used for `<em>italic text</em>` |
|Double underscores are used for `__underlined text__`|Double underscores are used for `<u>underlined text<u>` |
|Double circumflex accents are used for `^^superscripted^^` text |Double circumflex accents are used for `<sup>superscripted</sup>` text |
|Double commas are used for `,,subscripted,,` text |Double commas are used for `<sub>subscripted</sub>` text |
|Double tilde signs are used for `~~strikethrough~~` text |Double tilde signs are used for `<strike>strikethrough</strike>` text |
|Single backticks are used for ```code` `` |Single backticks are used for `<code>code</code>` |
|Double @ characters are used to create a `@@highlight@@` |Double @ characters are used to create a `<span class="tc-inline-style">highlighted</span>` |
!! Bold vs Strong
In TW we use the term "bold" instead of "strong" because most users are used to it. ... The rendering process converts our "bold text" into the STRONG HTML element.
>The `<strong>` element is for content that is of greater importance, while the `<b>` element is used to draw attention to text without indicating that it's more important.
>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong#b_vs._strong
!! Underline vs. Underscore
>Use underline to describe text formatting that puts a line under the characters. Use underscore to refer to the underscore character ( _ ).
>https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/u/underline-vs-underscore
!! Emphasis vs Italics
>The `<em>` element represents stress emphasis of its contents, while the `<i>` element represents text that is set off from the normal prose, such as a foreign word, fictional character thoughts, or when the text refers to the definition of a word instead of representing its semantic meaning. (The title of a work, such as the name of a book or movie, should use `<cite>`.)
>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em#i_vs._em

View File

@@ -0,0 +1,66 @@
created: 20130204165019000
modified: 20221025124615415
tags: WikiText
title: HTML Entities
type: text/vnd.tiddlywiki
!! Summary
Use HTML entities to enter characters that cannot easily be typed on an ordinary keyboard. They take the form of an ampersand (`&`), an identifying string, and a terminating semi-colon (`;`), e.g. `&amp;` for the ''&'' character.
!! Markup
```
The value of Tiddlers&trade; cannot even be expressed in &pound;, &euro; or &dollar;.
```
''Displays as:''
The value of Tiddlers&trade; cannot even be expressed in &pound;, &euro; or &dollar;.
!! Entity References
Comprehensive lists of html entities can be found at...
* [[Mozilla Developer Network -- Entities|https://developer.mozilla.org/en-US/docs/Glossary/Entity]]
* [[HTML Spec official list -- Entities|https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references]]
!! Examples Of Common And Useful Entities
|>|>|>|>|>|>| ! HTML Entities |
| &amp;nbsp; | &nbsp; | no-break space | &nbsp;&nbsp; | &amp;apos; | &apos; | single quote, apostrophe |
| &amp;ndash; | &ndash; | en dash |~| &amp;quot; | " | quotation mark |
| &amp;mdash; | &mdash; | em dash |~| &amp;prime; | &prime; | prime; minutes; feet |
| &amp;hellip; | &hellip; | horizontal ellipsis |~| &amp;Prime; | &Prime; | double prime; seconds; inches |
| &amp;copy; | &copy; | Copyright symbol |~| &amp;lsquo; | &lsquo; | left single quote |
| &amp;reg; | &reg; | Registered symbol |~| &amp;rsquo; | &rsquo; | right single quote |
| &amp;trade; | &trade; | Trademark symbol |~| &amp;ldquo; | &ldquo; | left double quote |
| &amp;dagger; | &dagger; | dagger |~| &amp;rdquo; | &rdquo; | right double quote |
| &amp;Dagger; | &Dagger; | double dagger |~| &amp;laquo; | &laquo; | left angle quote |
| &amp;para; | &para; | paragraph sign |~| &amp;raquo; | &raquo; | right angle quote |
| &amp;sect; | &sect; | section sign |~| &amp;times; | &times; | multiplication symbol |
| &amp;uarr; | &uarr; | up arrow |~| &amp;darr; | &darr; | down arrow |
| &amp;larr; | &larr; | left arrow |~| &amp;rarr; | &rarr; | right arrow |
| &amp;lArr; | &lArr; | double left arrow |~| &amp;rArr; | &rArr; | double right arrow |
| &amp;harr; | &harr; | left right arrow |~| &amp;hArr; | &hArr; | double left right arrow |
!! Accented Characters
The table below shows how accented characters can be built up by //substituting// the
underscore (_) in the second table into the corresponding character. eg:
|Code |Character |Example |Result |h
|`&Auml;` |Ä | `&Auml;pfel` |&Auml;pfel |
|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>| ! Accented Characters |
| grave accent | &amp;_grave; | &Agrave; | &agrave; | &Egrave; | &egrave; | &Igrave; | &igrave; | &Ograve; | &ograve; | &Ugrave; | &ugrave; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| acute accent | &amp;_acute; | &Aacute; | &aacute; | &Eacute; | &eacute; | &Iacute; | &iacute; | &Oacute; | &oacute; | &Uacute; | &uacute; | &nbsp; | &nbsp; | &Yacute; | &yacute; | &nbsp; | &nbsp; |
| circumflex accent | &amp;_circ; | &Acirc; | &acirc; | &Ecirc; | &ecirc; | &Icirc; | &icirc; | &Ocirc; | &ocirc; | &Ucirc; | &ucirc; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| umlaut mark | &amp;_uml; | &Auml; | &auml; | &Euml; | &euml; | &Iuml; | &iuml; | &Ouml; | &ouml; | &Uuml; | &uuml; | &nbsp; | &nbsp; | &Yuml; | &yuml; | &nbsp; | &nbsp; |
| tilde | &amp;_tilde; | &Atilde; | &atilde; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Otilde; | &otilde; | &nbsp; | &nbsp; | &Ntilde; | &ntilde; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| ring | &amp;_ring; | &Aring; | &aring; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| slash | &amp;_slash; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Oslash; | &oslash; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| cedilla | &amp;_cedil; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Ccedil; | &ccedil; |

View File

@@ -5,26 +5,36 @@ title: Styles and Classes in WikiText
type: text/vnd.tiddlywiki
caption: Styles and Classes
You can use this construction to cause the wrapped content to be assigned specified CSS classes or styles:
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.
<<wikitext-example src:"@@.myStyle
* List One
* List Two
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.
<<wikitext-example src:"@@some highlighted text@@">>
Style attributes, e.g. `color`, each followed by `;` semicolon can be introduced immediately after the opening `@@`.
<<wikitext-example src:"@@color:steelblue;background-color:lightcyan;some styled text@@">>
Similarly a style can be applied to a multiline content:
<<wikitext-example src:"@@background-color:lightcyan;
* Item one
* Item two
@@
">>
Similar syntax is used to assign styles. For example:
A class may be applied to a multiline content only:
<<wikitext-example src:"@@background-color:red;
* List One
* List Two
@@
">>
Multiple styles and classes can be mixed. For example:
<<wikitext-example src:"@@.tc-tiddler-frame
@@width:400px;
Some text
<<wikitext-example src:"@@.tc-double-spaced-list
* Item one
* Item two
@@">>
Multiple classes and styles can be used together:
<<wikitext-example src:"@@.tc-double-spaced-list
@@width:400px;background-color:lightcyan;
* Item one
* Item two
@@
">>

View File

@@ -52,7 +52,7 @@
"--render","[!is[system]]","[encodeuricomponent[]addprefix[static/]addsuffix[.html]]","text/plain","$:/core/templates/static.tiddler.html",
"--render","$:/core/templates/static.template.css","static/static.css","text/plain"],
"external-js": [
"--render","$:/core/save/offline-external-js","index.html","text/plain",
"--render","$:/core/save/offline-external-js","[[external-]addsuffix<version>addsuffix[.html]]","text/plain",
"--render","$:/core/templates/tiddlywiki5.js","[[tiddlywikicore-]addsuffix<version>addsuffix[.js]]","text/plain"]
},
"config": {

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type:
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
يجب حفظ التغييرات التي قمت بها على هذا الويكي كملف تدلي ويكي بامتداد HTML .
!!! متصفحات سطح المكتب
# أختر/ي "حفظ باسم" من قائمة "ملف"
# اختر/ي اسم الملف وموقعه
# * تتطلب بعض المتصفحات أيضًا تحديد تنسيق حفظ الملف بشكل صريح كـ "صفحة الويب ، HTML فقط" أو ما شابه
# أغلق علامة التبويب هذه
!!! متصفحات الهواتف الذكية
# إنشاء بوك مارك لهذه الصفحة
# * إذا قمت بإعداد iCloud أو Google Sync ، فستتم مزامنة الإشارة المرجعية تلقائيًا إلى سطح المكتب حيث يمكنك فتحه وحفظه كما هو موضح أعلاه
# أغلق علامة التبويب هذه
// إذا فتحت البوك مارك مرة أخرى في متصفح سفاري للموبايل ، فستظهر لك هذه الرسالة مرة أخرى. إذا كنت تريد المضي قدمًا واستخدام الملف ، فما عليك سوى النقر فوق الزر "إغلاق" أدناه //

View File

@@ -1,7 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Els vostres canvis a aquest wiki s'han de desar com un fitxer HTML ~TiddlyWiki.!!! Navegadors d'escriptori# Trieu ''Anomena i desa'' al menú ''Fitxer''# Trieu un nom i un lloc per al fitxer#* Per alguns navegadors també cal que el format del fitxer sigui 'Pàgina web, només HTML'' o similar# Tanqueu aquesta pestanya!!! Navegadors per mòbils# Deseu aquesta pàgina als Preferits#* Si teniu configurat iCloud o Google Sync llavors el preferits es sincronitzarà automaticament amb el vostre ordinador des d'on el podreu obrir i desar com s'indica més amunt# Tanqueu aquests pestanya//Si torneu a obrir el preferits a Safari Mobile tornareu a veure el missatge. Si voleu continuar i utilitzar el fitxer, només heu de clicat el botó 'tanca'' de sota//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Změny v této wiki je potřeba uložit jako ~TiddlyWiki HTML soubor.
!!! PC prohlížeče
# Vyberte ''Uložit jako...'' z menu ''Soubor''
# Zvolte složku a jméno souboru
#* V některých prohlížečích je třeba nastavit formát ukládní na ''Webová stránka, pouze HTML'' nebo podobné
# Zavřete tento tab
!!! Mobilní prohlížeče
# Uložte tuto stránku do záložek
#* Pokud máte nastavený iCloud nebo Google Sync, záložky se automaticky synchronizují s počítačem, kde můžete link otevřít a uložit podle postupu výše
# Zavřete tento tab
//Pokud otevřete záložku znovu v Mobile Safari uvidíte tuto zpávu znovu. Pokud chcete pokračovat v práci, prostě klikněte na tlačítko ''zavřít'' nížš//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Dine ændringer til denne wiki skal gemmes som en ~TiddlyWiki HTML file.
!!! Computer browsere
# Vælg ''Gem som'' fra ''Fil'' menuen
# Vælg et filnavn og placering
#* Nogle browsere kræver også, at du eksplicit angiver filens format som ''Webpage, HTML kun'' eller lignende
# Luk denne fane
!!! Smartphone browsere
# Opret et bogmærke til denne side
#* Hvis du har iCloud eller Google Sync sat op vil bogmærket automatisk synkroniseres til din desktop, hvor du kan åbne den og gemme den som ovenfor beskrevet
# Luk denne fane
//Hvis du åbner bogmærket igen i Mobile Safari vil du se denne besked igen. Hvis du ønsker at fortsætte og bruge filen, skal du blot klikke på ''luk'' knappen nedenfor//

View File

@@ -1,23 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Aktuellen Stand speichern
footer: <$button message="tm-close-tiddler">Schließen</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Ihre Änderungen sollen als ~TiddlyWiki HTML Datei gespeichert werden.
!!! Desktop Browser
# Verwenden Sie ''Speichern unter'' aus dem ''Datei'' Menü.
# Wählen Sie den Dateinamen und das Verzeichnis.
#* Bei einigen Browsern müssen Sie das Format explizit angeben. Zb: ''Webseite, nur HTML'' oder ähnliches.
# Den Browser-Tab schließen.
!!! Smartphone Browser
# Erstellen Sie ein "Lesezeichen"
#* Wenn Sie "iCloud" oder "Google Sync" verwenden, dann werden Ihre Daten automatisch mit dem Desktop PC synchronisiert. Dort können Sie wie oben beschrieben fortfahren.
# Den Browser-Tab schließen.
//Wenn Sie das Lesezeichen mit "Mobile Safari" öffnen, dann wird diese Meldung erneut angezeigt. Klicken Sie ''Schließen'' um fort zu fahren.//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Αποθηκεύστε την εργασία σας
footer: <$button message="tm-close-tiddler">Κλείσε</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Οι αλλαγές σας σε αυτό το wiki χρειάζεται να αποθηκευτούν ως ένα ~TiddlyWiki HTML αρχείο.
!!! Προγράμματα πλοήγησης για επιτραπέζιους υπολογιστές
# Διαλέξτε ''Αποθήκευση ως'' από το μενού ''Αρχείο''
# Διαλέξτε ένα όνομα αρχείου καθώς και μια τοποθεσία
#* Μερικά προγράμματα πλοήγησης χρειάζονται επιπρόσθετα να προσδιορίσετε την μορφή με την οποία θα αποθηκεύσετε το αρχείο ως ''Ιστοσελίδα πλήρης, HTML μόνο'' ή κάτι παρόμοιο
# Κλείστε αυτήν την καρτέλα
!!! Προγράμματα πλοήγησης για έξυπνα κινητά τηλέφωνα
# Φτιάξτε έναν σελιδοδείκτη για αυτήν την σελίδα
#* Αν έχετε iCloud, ή Google Sync εγκατάσταση τότε ο σελιδοδείκτης αυτόματα θα συγχρονιστεί με τον επιτραπέζιο υπολογιστή από όπου μπορείτε να τον ανοίξετε και να τον αποθηκεύσετε όπως παραπάνω
# Κλείστε αυτήν την καρτέλα
//Αν ανοίξετε τον σελιδοδείκτη ξανά σε ένα κινητό με Safari θα δείτε αυτό το μήνυμα πάλι. Αν θέλετε να προχωρήσετε και να χρησιμοποιήσετε το αρχείο απλώς πατήστε το ''κλείσε'' κουμπί παρακάτω//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Los cambios realizados a este wiki necesitan ser guardados como archivo ~TiddlyWiki HTML.
!!! Navegadores de ordenador
# Selecciona ''Guardar como'' en el menú ''Archivo''
# Elige nombre de archivo y directorio
#* Algunos navegadores también piden que especifiques el formato como ''Página web, sólo HTML'' o similar
# Cierra esta pestaña
!!! Navegadores en teléfonos o tabletas
# Añade la página a tus favoritos
#* Si tienes iCloud o Google Sync los favoritos se sincronizarán automáticamente con tu ordenador, desde donde puedes abrirlos o guardarlos como se explica más arriba
# Cierra esta pestaña
//Si en Mobile Safari vuelves a abrir los favoritos, volverás a ver este mensaje. Si quieres continuar y usar el archivo, simplemente cierra haciendo clic en el boton de cerrar indicado abajo.//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Enregistrez votre travail
footer: <$button message="tm-close-tiddler">Fermer</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Les modifications effectuées dans ce wiki doivent être sauvegardées sous forme de fichier ~TiddlyWiki HTML.
!!! Navigateurs de bureau
# Sélectionnez ''Enregistrer sous'' depuis le menu ''Fichier''
# Choisissez un nom de fichier et un dossier
#* Certains navigateurs demandent aussi de spécifier explicitement le format d'enregistrement, à savoir ''Page Web, HTML uniquement'' ou quelque chose d'approchant
# Fermez cet onglet
!!! Navigateurs sur smartphone
# Créez un favori/signet pour cette page
#* Si vous utilisez iCloud ou Google Sync, le signet sera automatiquement synchronisé avec le navigateur de votre ordinateur de bureau, d'où vous pourrez l'ouvrir et enregistrer le fichier comme indiqué ci-dessus
# Fermez cet onglet
//Si vous ouvrez à nouveau le signet dans Safari pour mobile, vous verrez ce message une nouvelle fois. Si vous voulez continuer et utiliser le fichier, cliquez simplement sur le bouton ''Fermer'' ci-dessous//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
इस विकि में आपके परिवर्तन एक ~ टिड्लीविकि HTML फ़ाइल के रूप में सहेजा जाना चाहिए।
!!! डेस्कटॉप ब्राउज़र
# चुनें '' के रूप में सहेजें '' '' फ़ाइल '' मेनू से
# एक फ़ाइल नाम और स्थान का चयन
# * कुछ ब्राउज़रों भी आप स्पष्ट रूप से '' वेबपेज, एचटीएमएल केवल '' या इसी तरह के रूप प्रारूप बचत फ़ाइल को निर्दिष्ट करने की आवश्यकता होती है
# इस टैब बंद करें
!!! स्मार्टफ़ोन ब्राउज़रों
# इस पृष्ठ पर एक बुकमार्क बनाएं
# * आप iCloud या गूगल सिंक आप इसे खोल सकते हैं जहां फिर बुकमार्क स्वचालित रूप से अपने डेस्कटॉप के लिए सिंक जाएगा और ऊपर के रूप में इसे बचाने के लिए स्थापित मिल गया है
# इस टैब बंद करें
आप मोबाइल सफारी में फिर से बुकमार्क खोलते हैं // आप फिर से इस संदेश को देखेंगे। तुम आगे बढ़ो और फ़ाइल का उपयोग करना चाहते हैं, तो बस // नीचे '' करीब '' बटन पर क्लिक करें

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Tu cambios a iste wiki debe esser salvate como un file HTML ~TiddlyWiki.
!!! Navigatores sur computatores stationari
# Selige ''Salva como'' in le menu ''File''
# Selige un nomine de file e location
#* Alcun navigatores pote demandar que on specifica le formato de salvar como ''Pagina web, HTML solmente'' o simile
# Claude iste scheda
!!! Navitatores sur telephonos mobile
# Crea un marcator a iste pagina
#* Si tu ha iCloud o Google Sync activate, alora le marcator va automaticamente synchronisar con tu computator, ubi tu pote aperir lo e salvar lo como describite in alto
# Claude iste scheda
//Si on aperi le marcator de novo in Mobile Safari, on vide iste message de novo. Si on vole avantiar e usar le file, clicca sur le button ''claude'' in basso//

View File

@@ -1,21 +0,0 @@
title: $:/language/Modals/SaveInstructions
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Chiudi</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Le modifiche a questo wiki devono essere salvate come un file ~TiddlyWiki HTML.
!!! Browser su desktop
# Seleziona ''Salva con nome'' dal menu ''File''
# Scegli la posizione ed un nome file
#* Alcuni browser richiedono che sia indicato esplicitamente che il file deve essere salvato con il formato ''Webpage, solo HTML'' o qualcosa di simile
# Chiudi questo tab
!!! Browser su smartphone
# Crea un bookmark per questa pagina
#* Se hai attivato iCloud o Google Sync allora il bookmark sar&agrave; automaticamente sincronizzato con il tuo desktop dove potrai aprire il link e salvare il wiki come sopra
# Chiudi questo tab
//Se riapri il bookmark con Mobile Safari vedrai ancora questo messaggio. Se desideri proseguire ed utilizzare il file, clicca semplicemente il pulsante ''chiudi'' qui sotto//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: 作業内容を保存する
footer: <$button message="tm-close-tiddler">閉じる</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
この wiki への変更内容を ~TiddlyWiki HTML ファイルとして保存する必要があります。
!!! デスクトップブラウザの場合
# ''ファイル'' メニューから ''名前を付けて保存'' を選択します
# 保存場所とファイル名を指定します
#* 一部のブラウザでは保存のときに ''Webページ HTMLのみ'' などといった形式を選択しなければいけない場合があります
# タブを閉じます
!!! スマートフォンブラウザの場合
# このページをブックマークします
#* すでに iCloud や Google Sync が設定済みならばブックマークは自動的にデスクトップ機に同期されます。デスクトップ機で改めてブックマークを開き、上記の手順で保存してください
# タブを閉じます
//モバイルサファリでそのブックマークを開くとこのメッセージが再度表示されます。下にある「閉じる」ボタンでその先に進めます。//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: 작업 저장
footer: <$button message="tm-close-tiddler">{{$:/language/Buttons/Close/Caption}}</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
이 위키의 바뀜을 티들리위키 HTML 파일로 저장해야 합니다.
!!! 데스크톱 브라우저
# ''파일'' 메뉴에서 ''다른 이름으로 저장''을 선택합니다
# 파일 이름 및 위치를 선택합니다
#* 어떤 브라우저는 파일 저장 형식을 ''웹페이지, HTML만'' 또는 이와 유사한 형식으로 명시적으로 지정할 필요가 있습니다
# 이 탭을 닫습니다
!!! 스마트폰 브라우저
# 이 페이지로 북마크를 만듭니다
#* iCloud 또는 Google 동기화 설정이 있다면 북마크는 자동으로 위와 같이 열고 저장할 수 있는 데스크톱에 자동으로 동기화됩니다
# 이 탭을 닫습니다
//모바일 Safari에서 북마크를 다시 연다면 이 메시지를 다시 볼 수 있습니다. 진행하고 파일을 사용하려면, 아래 ''닫기'' 버튼을 클릭하세요//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Je veranderingen aan deze wiki dienen als een ~TiddlyWiki HTML bestand opgeslagen te worden.
!!! Desktop browsers
# Kies ''Opslaan Als'' van het ''Bestand'' menu
# Kies een bestandsnaam en locatie
#* Bij sommige browsers moet het formaat expliciet opgegeven worden als ''Webpage, alleen HTML'' o.i.d.
# Sluit de browsertab
!!! Smartphone browsers
# Maak een favoriet naar deze pagina
#* Bij gebruik van iCloud of Google Sync worden favorieten automatisch met de desktop-PC gesynchroniseerd en kan je te werk gaan als boven beschreven
# Sluit de browsertab
//Wordt de favoriet in mobile Safari geopend dan zie je de melding weer. Klik ''sluit'' om verder te gaan//

View File

@@ -1,7 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
ਇਸ ਵਿਕੀ 'ਨੂੰ ਆਪਣੇ ਬਦਲਾਅ ਲਈ ਇੱਕ ~ TiddlyWiki ਨੂੰ HTML ਫਾਇਲ ਦੇ ਤੌਰ ਤੇ ਸੰਭਾਲਿਆ ਜਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ. !!! ਡੈਸਕਟਾਪ ਮੇਨੂ # 'ਵੈੱਬਪੇਜ, HTML ਸਿਰਫ' 'ਜ ਇਸੇ # ਕੁਝ ਬਰਾਊਜ਼ਰ ਵੀ ਤੁਹਾਨੂੰ ਸਪਸ਼ਟ' ਦੇ ਤੌਰ ਤੇ ਫਾਰਮੈਟ ਵਿੱਚ ਸੰਭਾਲਣ ਲਈ ਫਾਇਲ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਲੋੜ ਹੈ * ਇੱਕ ਫਾਇਲ ਅਤੇ ਟਿਕਾਣਾ # ਚੁਣੋ '' '' ਫਾਇਲ 'ਤੱਕ # ਚੁਣੋ' 'ਸੰਭਾਲੋ' 'ਬਰਾਊਜ਼ਰ ਇਹ ਟੈਬ ਬੰਦ ਕਰੋ !!! ਸਮਾਰਟਫੋਨ ਬਰਾਊਜ਼ਰ # ਤੁਹਾਨੂੰ iCloud ਜ Google ਸਮਕਾਲਤਾ ਤਦ ਬੁੱਕਮਾਰਕ ਨੂੰ ਆਪਣੇ ਆਪ ਹੀ ਇਹ ਟੈਬ // ਖੋਲ੍ਹਣ ਜੇ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਖੋਲ ਸਕਦੇ ਹਨ, ਜਿੱਥੇ ਆਪਣੇ ਡੈਸਕਟਾਪ ਨੂੰ ਸਮਕਾਲੀ ਕਰਨ ਤੇ ਅਤੇ # Close ਉਪਰ ਦੇ ਰੂਪ ਵਿੱਚ ਇਸ ਨੂੰ ਬਚਾ ਕਰੇਗਾ ਸੈੱਟ ਅੱਪ ਮਿਲ ਜੇ ਇਸ ਸਫ਼ੇ # * ਕਰਨ ਲਈ ਇੱਕ ਬੁੱਕਮਾਰਕ ਬਣਾਓ ਬੁੱਕਮਾਰਕ ਨੂੰ ਫਿਰ ਮੋਬਾਈਲ ਸਫਾਰੀ ਵਿੱਚ ਤੁਹਾਨੂੰ ਇਹ ਸੁਨੇਹਾ ਮੁੜ ਕੇ ਜਾਵੇਗਾ. ਤੁਹਾਨੂੰ ਅੱਗੇ ਜਾਣ ਅਤੇ ਫਾਇਲ ਨੂੰ ਇਸਤੇਮਾਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਨੂੰ ਸਿਰਫ਼ // ਹੇਠ '' ਬੰਦ ਕਰੋ '' ਬਟਨ ਨੂੰ ਦਬਾਉ

View File

@@ -1,11 +1,13 @@
title: $:/language/Docs/Fields/
_canonical_uri: Pełny adres URL do zewnętrznego obrazu
author: Imię autora wtyczki
bag: Nazwa worka, z ktorego pochodzi tiddler
caption: Tekst wyświetlany na zakładce lub przycisku
code-body: Ustawienie wartości na ''tak'' spowoduje wyświetlanie tiddlera jako kod
color: Wartość koloru CSS powiążanego z tym tiddlerem
component: Nazwa komponentu odpowiedzialnego za [[alert|AlertMechanism]]
core-version: Wersja TiddlyWiki która jest wspierana przez wtyczkę
current-tiddler: Używane by zapamiętać ostatniego tiddlera w [[liście historii|HistoryMechanism]]
created: Data kiedy utworzono tiddlera
creator: Imię twórcy tiddlera
@@ -22,7 +24,9 @@ list-before: Jeżeli ustawione, nazwa tiddlera przed którym ten tiddler będzie
list-after: Jeżeli ustawione, nazwa tiddlera po którym ten tiddler będzie dodany w sortowanej liście nazw tiddlerów; lub na końcu listy jeżeli pole jest obecne ale puste
modified: Czas i data ostatniej modyfikacji
modifier: Tytuł tiddlera powiązanego z osobą, która ostatnio modyfikowała tego tiddlera
module-type: Rodzaj modułu używany przez wtyczki napisane w javascripcie
name: Czytelna nazwa powiązana z tiddlerem wtyczki
parent-plugin: Określa nadrzędną wtyczkę
plugin-priority: Numeryczna wartość określająca tiddlera wtyczki
plugin-type: Typ tiddlera wtyczki
revision: Numer rewizji tiddlera przechowywany na serwerze

View File

@@ -1,21 +0,0 @@
title: $:/language/Modals/SaveInstructions
subtitle: Zapisz swoje zmiany
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Twoje zmieny muszą być zapisane jako plike HTML ~TiddlyWiki.
!!! Przeglądarki na komputerach stacjonarnych
# Wybierz ``Zapisz Jako`` z menu ``Plik``
# Wybierz nazwię i miejsce
#* Niektóre przeglądarki wymagają ręcznego ustawienia formatu pliku na ''Strona internetowa, HTML'' lub podobne
# Zamknij zakładkę
!!! Przeglądarki na smarfonach
# Dodaj stronę do zakładek
# Jeżeli używasz iCloud lub synchronizacji Google, zakładka zostanie automatycznie zsynchronizowania z komputerem stacjonarnym, gdzie możesz zapisać wiki używając kroków powyżej.
# Zamknij zakładkę
//Jeżeli otworzysz zakładkę ponownie na Mobilnej Safari zobaczysz ponownie tą wiadomość. Jeżeli chcesz używać tego pliku, po prostu kliknij przycisk ''zamknij'' poniżej//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: http://tiddlywiki.com/static/SavingChanges.html
As suas alterações a esta wiki necessitam ser gravadas como um arquivo HTML ~TiddlyWiki
!!! Navegadores de computador pessoal
# Selecione ''Salvar como'' do menu ''Arquivo''
# Escolha um nome e uma localização para o seu arquivo
#* Alguns navegadores necessitam que se especifique explicitamente o formato de gravação como ''Página da Internet, apenas HTML'' ou algo similar
# Fechar esta guia
!!! Navegadores em smartfones, tablets e celulares
# Crie um marcador ou favorito desta página
#* Se tiver o iCloud ou Google Sync configurados o seu marcador irá ser automaticamente sincronizado com o seu computador pessoal onde poderá abrir e gravar conforme indicado acima
# Fechar esta guia
//Se abrir o marcador outra vez no Mobile Safari verá esta mensagem outra vez. Se quiser prosseguir e utilizar o arquivo, clique no botão ''fechar'' abaixo//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
As suas alterações a esta wiki necessitam de ser gravadas como um ficheiro HTML ~TiddlyWiki
!!! Navegadores de computador pessoal
# Seleccione ''Guardar como'' do menu ''Ficheiro''
# Escolha um nome e uma localização para o seu ficheiro
#* Alguns navegadores necessitam que se especifique explicitamente o formato de gravação como ''Página da Internet, apenas HTML'' ou algo similar
# Fechar este separador
!!! Navegadores em telemóveis ou dispositivos móveis
# Crie um marcador ou favorito desta página
#* Se tiver o iCloud ou Google Sync configurados o seu marcador irá ser automaticamente sincronizado com o seu computador pessoal onde poderá abrir e gravar conforme indicado acima
# Fechar este separador
//Se abrir o marcador outra vez no Mobile Safari verá esta mensagem outra vez. Se quiser prosseguir e utilizar o ficheiro, clique no botão ''fechar'' abaixo//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Сохраните свою работу
footer: <$button message="tm-close-tiddler">Закрыть</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Изменения должны быть сохранены в виде HTML файла ~TiddlyWiki.
!!! На компьютере
# Нажмите ''Сохранить как'' в меню ''Файл''
# Выберите название и расположение файла
#* Иногда требуется также явно указать формат сохраняемого файла: ''Веб-страница, только HTML'' или подобный
# Закройте эту вкладку
!!! На смартфоне
# Поместите эту страницу в закладки
#* Если у вас настроен iCloud или Google Sync, тогда закладка автоматически синхронизируется с компьютером, и вы сможете открыть её и сохранить по инструкции для компьютеров
# Закройте эту вкладку
//При открытии закладки в Mobile Safari вы снова увидите это сообщение. Если вы хотите продолжить работу с файлом, нажмите на кнопку ''Закрыть'' ниже//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Vaše zmeny v tomto wiki treba uložiť ako ~TiddlyWiki HTML súbor.
!!! PC browsery
# Zvoľte si ''Uložiť ako'' z menu ''Súbor''
# Zvoľte si meno súboru a miesto
#* Pri niektorých browseroch sa vyžaduje presne definovať formát uloženia ako ''web stránka, len HTML'' alebo niečo podobné
# Zatvorte túto záložku (tab)
!!! Browsery v mobiloch
# Vytvorte pre túto stránku bookmark
#* Ak používate iCloud alebo Google Sync, tak sa bookmark automaticky zosynchronizuje s vaším PC, kde wiki súbor môžete otvoriť a uložiť
# Zatvorte túto záložku (tab)
//Ak bookmar znovu otvoríte v Mobile Safari, uvidíte túto hlášku znovu. Ak chcete rovno pokračovať a pracovať so súborom, tak len stlačte tlačítko ''zatvoriť'' nižšie//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: http://tiddlywiki.com/static/SavingChanges.html
Vaše spremembe v tem wikiju je treba shraniti kot datoteko HTML TiddlyWiki.
!!! Namizni brskalniki
# V meniju »Datoteka« izberite »Shrani kot«
# Izberite ime datoteke in lokacijo
#* Nekateri brskalniki zahtevajo, da izrecno določite obliko shranjevanja datoteke kot »spletna stran, samo HTML« ali podobno
# Zaprite ta zavihek
!!! Brskalniki na pametnih telefonih
# Stran dodajte med zaznamke
#* Če imate nastavljeno možnost iCloud ali Google Sync, se zaznamek samodejno sinhronizira z namizjem, kjer ga lahko odprete in ga shranite, kot je navedeno zgoraj
# Zaprite ta zavihek
//Če zaznamek znova odprete v aplikaciji Mobile Safari, se to sporočilo znova prikaže. Če želite nadaljevati in uporabiti datoteko, kliknite gumb »Zapri« spodaj//

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">Close</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
Dina ändringar för denna wiki behöver sparas som en ~TiddlyWiki HTML-fil.
!!! Webbläsare för datorer
# Välj ''Spara som'' från ''Arkivmenyn''
# Välj filnamn och plats
#* Vissa webbläsare kräver att man anger filens format som tex ''Websida, endast HTML'' eller liknande
# Stäng denna fliken
!!! Webbläsare för smartphones
# Skapa ett bokmärke till denna sidan
#* Om du har iCloud eller Google Sync inställt så kommer bokmärket automatiskt synkas till ditt skrivbord där du kan öppna och spara den enligt ovan
# Stäng denna fliken
//Om du öppnar bokmärket igen i Mobile Safari så kommer du se detta meddelande igen. Om du vill fortsätta och använda filen, klicka bara på ''stängknappen'' nedanför//

View File

@@ -40,6 +40,7 @@ Error/RetrievingSkinny: 简要条目清单提取错误
Error/SavingToTWEdit: 保存到 TWEdit 时,发生错误
Error/WhileSaving: 保存时,发生错误
Error/XMLHttpRequest: XMLHttpRequest 错误代码
Error/ZoominTextNode: 故事视图错误:您似乎尝试与显示在自定义容器中的条目进行交互。这很可能是由于将 `$:/tags/StoryTiddlerTemplateFilter` 与开头包含文本或空格的模板一起使用引起的。请使用编译指示 `\whitespace trim`,并确保条目的全部内容都包含在单个 HTML 元素中。导致此问题的文本:
InternalJavaScriptError/Title: 内部的 JavaScript 错误
InternalJavaScriptError/Hint: 喔,真是令人尴尬。建议刷新您的浏览器,重新启动 TiddlyWiki
LayoutSwitcher/Description: 打开布局切换器

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">关闭</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
您对此 wiki 的变更需被保存为 ~TiddlyWiki HTML 文件。
!!! 桌面版浏览器
# 从''文件''菜单点选 ''另存为''
# 选定文件名及保存位置
#* 某些浏览器依然需要明确指定文件格式为 ''Webpage, HTML only'' 或类似的。
# 关闭此页签
!!! 智能手机版浏览器
# 为此页建立书签
#* 若您已设置 iCloud 或 Google 同步,该书签将自动与之前开启及保存于您电脑的书签同步。
# 关闭此页签
//若您再次于 Mobile Safari 开启该书签,将会再看到此信息。若要继续使用该文件,只需点击下列 ''关闭'' 按钮//

View File

@@ -40,6 +40,7 @@ Error/RetrievingSkinny: 簡要條目清單擷取錯誤
Error/SavingToTWEdit: 儲存到 TWEdit 時,發生錯誤
Error/WhileSaving: 儲存時,發生錯誤
Error/XMLHttpRequest: XMLHttpRequest 錯誤代碼
Error/ZoominTextNode: 故事視圖錯誤:您似乎嘗試與顯示在自定義容器中的條目進行互動。這很可能是由於將 `$:/tags/StoryTiddlerTemplateFilter` 與開頭包含文字或空格的範本一起使用引起的。請使用編譯指示 `\whitespace trim`,並確保條目的全部內容都包含在單個 HTML 元素中。導致此問題的文字:
InternalJavaScriptError/Title: 內部的 JavaScript 錯誤
InternalJavaScriptError/Hint: 喔,真是令人尷尬。建議刷新您的瀏覽器,重新啟動 TiddlyWiki
LayoutSwitcher/Description: 開啟版面切換器

View File

@@ -1,22 +0,0 @@
title: $:/language/Modals/SaveInstructions
type: text/vnd.tiddlywiki
subtitle: Save your work
footer: <$button message="tm-close-tiddler">關閉</$button>
help: https://tiddlywiki.com/static/SavingChanges.html
您對此 wiki 的變更需被儲存為 ~TiddlyWiki HTML 檔案。
!!! 桌面版瀏覽器
# 從''檔案''選單點選 ''另存新檔''
# 選定檔名及儲存位置
#* 某些瀏覽器依然需要明確指定檔案格式為 ''Webpage, HTML only'' 或類似的。
# 關閉此頁籤
!!! 智慧手機版瀏覽器
# 為此頁建立書籤
#* 若您已設定 iCloud 或 Google 同步,該書籤將自動與之前開啟及儲存於您電腦的書籤同步。
# 關閉此頁籤
//若您再次於 Mobile Safari 開啟該書籤,將會再看到此訊息。若要繼續使用該檔案,只需點擊下列 ''關閉'' 按鈕//

View File

@@ -519,3 +519,11 @@ Scott Sauye, @CrossEye, 2023-01-04
Marcus Winter, @yaisog, 2023-01-07
Ethan Weller, @gamedungeon, 2023-01-17
Mateusz Wilczek, @mateuszwilczek, 2023/02/16
Andrea Octo, @andrigamerita, 2023/02/24
HuanC Fu, @hffqyd, 2023/03/03
Michelle Saad, @michsa, 2023-03-08

View File

@@ -1,7 +1,7 @@
{
"name": "tiddlywiki",
"preferGlobal": "true",
"version": "5.2.6-prerelease",
"version": "5.2.6",
"author": "Jeremy Ruston <jeremy@jermolene.com>",
"description": "a non-linear personal web notebook",
"contributors": [

View File

@@ -220,9 +220,15 @@ function CodeMirrorEngine(options) {
}
});
this.cm.on("paste",function(cm,event) {
event["twEditor"] = true;
self.widget.handlePasteEvent.call(self.widget,event);
});
} else {
this.cm.on("paste",function(cm,event){
event["twEditor"] = true;
});
}
;
}
/*

View File

@@ -140,7 +140,7 @@ FileSystemAdaptor.prototype.deleteTiddler = function(title,callback,options) {
}
}
// Remove the tiddler from self.boot.files & return null adaptorInfo
delete self.boot.files[title];
self.removeTiddlerFileInfo(title);
return callback(null,null);
});
} else {
@@ -148,6 +148,16 @@ FileSystemAdaptor.prototype.deleteTiddler = function(title,callback,options) {
}
};
/*
Delete a tiddler in cache, without modifying file system.
*/
FileSystemAdaptor.prototype.removeTiddlerFileInfo = function(title) {
// Only delete the tiddler info if we have writable information for the file
if(this.boot.files[title]) {
delete this.boot.files[title];
};
};
if(fs) {
exports.adaptorClass = FileSystemAdaptor;
}

View File

@@ -6,17 +6,13 @@ module-type: parser
Wraps up the markdown-it parser for use as a Parser in TiddlyWiki
\*/
(function(realRequire){
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var require = function(m) {
return realRequire("$:/plugins/tiddlywiki/markdown/" + m + ".js");
};
var MarkdownIt = require("markdown-it");
var MarkdownIt = require("./markdown-it");
function parseAsBoolean(tiddlerName) {
return $tw.wiki.getTiddlerText(tiddlerName,"false").trim().toLowerCase() === "true";
@@ -61,8 +57,10 @@ function setupWikiRules(pluginOptions) {
return rulesInfo;
}
var WikiParser = require("$:/core/modules/parsers/wikiparser/wikiparser.js")["text/vnd.tiddlywiki"];
// first pass: get all rule classes
var wikiParser = new $tw.Wiki.parsers["text/vnd.tiddlywiki"](null, '', {parseAsInline: true, wiki: $tw.wiki});
var wikiParser = new WikiParser(null, '', {parseAsInline: true, wiki: $tw.wiki});
// restore all possible rules from each rule class
wikiParser.pragmaRules = collectAllRules(wikiParser.pragmaRuleClasses,'pragma');
@@ -100,12 +98,12 @@ function setupWikiRules(pluginOptions) {
// Creates markdown-it parser
function createMarkdownEngine(markdownItOptions, pluginOptions) {
var md = new MarkdownIt(markdownItOptions)
.use(require("markdown-it-sub"))
.use(require("markdown-it-sup"))
.use(require("markdown-it-ins"))
.use(require("markdown-it-mark"))
.use(require("markdown-it-footnote"))
.use(require("markdown-it-deflist"));
.use(require("./markdown-it-sub"))
.use(require("./markdown-it-sup"))
.use(require("./markdown-it-ins"))
.use(require("./markdown-it-mark"))
.use(require("./markdown-it-footnote"))
.use(require("./markdown-it-deflist"));
var results = setupWikiRules(pluginOptions);
@@ -116,10 +114,10 @@ function createMarkdownEngine(markdownItOptions, pluginOptions) {
MarkdownParser.prototype.inlineRules = results.inlineRules;
if(pluginOptions.renderWikiText && $tw.modules.titles["$:/plugins/tiddlywiki/katex/katex.min.js"]) {
md.use(require("markdown-it-katex"));
md.use(require("./markdown-it-katex"));
}
md.use(require("markdown-it-tiddlywiki"),{
md.use(require("./markdown-it-tiddlywiki"),{
renderWikiText: pluginOptions.renderWikiText,
blockRules: results.blockRules,
inlineRules: results.inlineRules
@@ -263,4 +261,4 @@ function MarkdownParser(type,text,options) {
exports["text/markdown"] = MarkdownParser;
exports["text/x-markdown"] = MarkdownParser;
})(require);
})();

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